6. Our Journey to (Micro)-Services from 2015 - 2017
6
2 Developers 15 Developers
Fixed Data Model Flexible Data Model
MVC API First + SPA
10 Customers 120 Customers
MVP Enterprise Ready
14. 14
View
Controller
Model
LeanIX 2012 - 2014 LeanIX 2015 - 2017
Single Page App
REST-
API
REST-
API
REST-
API
REST-
API
REST-
API
REST-
API
Pathfinder MTM Survey Metrics Export Webhooks
REST-
API
Images
We have completed our transition
17. 17
query
{
allBusinessCapabilities {
factSheets {
id
displayName
relToChild {factSheet{id}}
}
}
allApplications {
factSheets {
id
displayName
relToChild {factSheet{id}}
relApplToBusCapability {factSheet{id}}
}
}
}
• JSON-based query language to
request required data
• Graph-based access to data
• Strongly typed API for each
LeanIX workspace (full multi-
tenancy)
Example: One request to build report
Solution: Facebook’s GraphQL – “SQL” for APIs
18. 18
Load-Balancer (default = blue)
Svc A
1.0
Svc B
1.0
Svc C
1.0
DB, Index, Queue DB, Elastic
Green-Blue Deployment to quickly release functionality
19. Containers with new version are started
19
Load-Balancer (default = blue)
Svc A
1.0
Svc A
1.1
Svc B
1.0
Svc C
1.0
DB, Index, Queue DB, Elastic
Svc B
1.1
Svc C
1.1
20. 20
Load-Balancer (default = BLUE)
Svc A
1.0
Svc A
1.1
Svc B
1.0
Svc C
1.0
DB, Index, Queue DB, Elastic
Test
Svc B
1.1
Svc C
1.1
Special users / Testers can access them in production
21. 21
Load-Balancer (default = GREEN)
Svc A
1.0
Svc A
1.1
Svc B
1.0
Svc C
1.0
DB, Index, Queue DB, Elastic
Svc B
1.1
Svc C
1.1
Load-Balancer switches to new versions
22. Full-schema rebuild without downtime
22
v42,
in_use
Index
Info A
(global) workspace y
Business
data
workspace x
Business
data
V43,
not_in
_use
Index
Info B
(global)
Schema v43,
rebuilding
(blue)
Schema v42,
active
(green)
Side A Side B
23. Operations monitoring toolchain
23
InstanceInstanceInstances
GET /healthcheck
Servers
CPU / Mem / Errors
Logfiles
Incidents
Incidents
DISABLED
#status
OCE on duty
status.leanix.net
Escalation
InstanceShared
Services
Servers
CPU / Mem / Errors
Logfiles DISABLED
Incidents
GET /healthcheck Incidents
CS classifies
as EC-1
EC-1
Bugs
Engineering
via Zendesk Tab
support@leanix.net
Incident auto-generated
Incident manual
Engineering
Customer Success
25. You are not Netflix – Find your definition
25
# Developers > # of Services
API first
Swagger Docs
One Function Concern
Containerized
No shared DBs Config via Env*
*See The 12-Factor App
29. Eat your own dogfood! – Automatic Documentation
29
Source-Code Repository
Source code
Build Info
YAML-Metadata file
Continuous
Integration (CI)
Pivio
Client
Inventory
1
1 Dependencies from build system, e.g. uses Hibernate3, Java8, etc.
2 Automatically triggered, when a new release is created
3 Updates Information in Inventory
2 3
30. … based on open-source description format Pivio
30
• Developer-friendly
„YAML“ format
• Open-Source Client
and Server: pivio.io
• Extracts Dependencies
from Java & Javascript
Projects
• Easily extensible for
more build-systems
31. Don’t forget the fun - Carnival is big in Bonn ;-)
31
</>
WE ARE
HIRING!