Reduce complexity – Ensure compliance – Enable growth
5
ReduceComplexity
EnableGrowth
EnsureCompliance
CloudTransformation
Monolith to Microservices
ApplicationRationalization
TechnologyObsolescence
(e.g. SAP Hana)
Data Compliance(e.g. GDPR)
Post MergerHarmonization
StandardsGovernance
IntegrationArchitecture
IoTArchitectures
CUSTOMER USE CASES
!
"
#
6
2012 20172016201520142013
Helping global leaders to reinvent their IT Architecture
“The easiest approach to conquer a complex domain”
“Best-of-class tool for the modern enterprise
architecture management”
MORE REQUIREMENTS
• Single-Sign-On (SSO)
• Custom Data Model
• Workflows & Surveys
• Real-time metrics
• …
How to avoid becoming a Swiss knife?
7
MORE INTEGRATIONS
• Service Now
• Apptio
• SAP
• Slack
• …
What is a Microservice?
9
VPCloudArchitectureAmazonWebservicesFormerCTONetflix
Service-oriented architecturecomposed ofloosely coupled elements
that havebounded contexts
What is a Microservice?
10
Service-oriented architecturecomposed ofloosely coupled elements
that havebounded contexts
Services communicate with each other over
the network (internet)
What is a Microservice?
11
Service-oriented architecturecomposed ofloosely coupled elements
that havebounded contexts
You can update the services
independently; updating one service
doesn’t require changing any other
services.
What is a Microservice?
12
Service-oriented architecturecomposed ofloosely coupled elements
that havebounded contexts
Self-contained: You do not need to know the
internals of other Microservices, strict interaction via APIs
How are Microservices different from a SOA?
13
Communication
SOA Microservices
SOAP JSON / Binary
Service Definition WSDL Swagger / JSON Schema
Service Interface Webservice REST-APIs
1. Fast Networks & Low Latency: Allow high amount of Microservices-Calls
2. Developer Friendly: JSON has reached much larger audience, esp. Web-Developers
3. Pragmatic: Standards set by successful tech companies, not by industry consortiums
Granularity Medium/Small Small/Micro
Microservices are on the roadmap
15Source:LeanIXSurvey
80 %of surveyed companies bet on microservices
Microservices make you faster
16Source:LeanIXSurvey
5xfaster than those who don’t use microservices.
Companies who use microservices deploy
We have completed our transition to Microservices
18
View
Controller
Model
SinglePageApp
LeanIX2012- 2014 LeanIX2015- 2017
REST-API
REST-API
REST-API
REST-API
REST-API
REST-API
Pathfinder(2017)
MTM(2015)
Survey(2015)
Metrics(2016)
Export(2015)
Webhooks(2015)
Data-base
REST-API
Images(2015)
19
1 Agile Process
2 API-First
3 Containerization
4
5 Event-Sourcing
5 design decisionsfor our Microservicestransition
Automation
Git-Flow ensures 4-eye principle and continuous learning
23
Pull-Request:Codereviewofatleastoneotherdeveloper
A monolithic architecture would hinder our growth
25
$ $ $ $$ $ $ $$ $ $ $$ $ $ $$ $ $ $
Build Test Deploy
Developers Monolith Delivery Pipeline
Microservices allow us to scale
26
$ $ $ $
$ $ $ $
$ $ $ $
$ $ $ $
Build Test Deploy
Build Test Deploy
Build Test Deploy
Build Test Deploy
Developers Microservices Delivery Pipelines
REST-APIs are great – but have performance limits
29
/applications /capabilities
GET GET
Display interactive reports very fast Many requests & unnecessary network load
Generic REST-APIs create unnecessary effort
30
Interface
Application
Provider
ITComponent
Project
UserGroup
DataObject
Tech.Stack
BusinessCapability
Process
Allow full customization of data model Uncomfortable generic access to data
/factSheets
/factSheets/<ID>/attributes
GET
GET
/factSheets/<ID>/relationsGET
Solution: Facebook’s GraphQL – “SQL” for APIs
31
query{
allBusinessCapabilities {factSheets {
iddisplayNamerelToChild {factSheet{id}}
}}allApplications {
factSheets {iddisplayNamerelToChild {factSheet{id}}relApplToBusCapability {factSheet{id}}
}}
}
• JSON-based query language to request required data
• Graph-based access to EA data
• Strongly typed API for each LeanIX workspace (full multi-tenancy)
Example: One request to build report
Every Microservice packaged as a Docker Image
34
Server
HostOS
Hypervisor
GuestOS
Libs
AppA
GuestOS
Libs
AppB
Resource overhead due to virtualization
VM VM
Server
HostOS
Docker Engine
svc1 svc2
Libs
Container Container
svc3
Container
Libs
Efficient packaging and distribution
Green-Blue Deployment to quickly release functionality
35
Load-Balancer(default=blue)
SvcA1.0
SvcB1.0
SvcC1.0
DB,Index,Queue DB,Elastic
Green-Blue Deployment to quickly release functionality
36
Load-Balancer(default=blue)
SvcA1.0
SvcA1.1
SvcB1.0
SvcC1.0
DB,Index,Queue DB,Elastic
SvcB1.1
SvcC1.1
Green-Blue Deployment to quickly release functionality
37
Load-Balancer(default=BLUE)
SvcA1.0
SvcA1.1
SvcB1.0
SvcC1.0
DB,Index,Queue DB,Elastic
Test
SvcB1.1
SvcC1.1
Green-Blue Deployment to quickly release functionality
38
Load-Balancer(default=GREEN)
SvcA1.0
SvcA1.1
SvcB1.0
SvcC1.0
DB,Index,Queue DB,Elastic
SvcB1.1
SvcC1.1
Highly automated pipeline allows us to deploy every day
40
Develop Build Test Deploy
Develop Machines
Staging ServerProduction Servers EU
Docker Hub
Monitoring is critical to ensure enterprise level service
42ELK=ElasticLogstash Kibana
Availability
Performance
Logfiles
Service Description
• Everymicroservicehasahealth-checkURL• AvailabilityCheck&ResponseTime
• ServerMetrics:CPU,Memory,etc.• Docker MetricsperContainer:CPU,Mem,…• BrowserMetrics:PageLoad,JSErrors
• Centralstorage for logfiles• Similar for ELK-Stack,butas aService
Alerting• Singlepoint for allalerts• Informs operations managers onduty
Dashboard• Dashboardwhich shows main KPIs• Running onScreensinLeanIXOffice
47
“You can’t build your IT architecture today with yesterday’s tools and stay in business tomorrow”