AutoScout24’s Technology Change
www.autoscout24.de
Von Bayern in die Cloud
2014
Architecture
Operations
Stack
Culture
Monolith
Services (aka Swimlanes)
Windows
.NET
Oracle
C#
VMware
DevOps
Developer
Operations
Self-operated Data Centers
Tatsu
2 Million Vehicles
100 in IT
3.250.000.000Page Impressions per Month
Architecture
Operations
Stack
Culture
Monolith
Services (aka Swimlanes)
Windows
.NET
Oracle
C#
VMware
DevOps
Developer
Operations
Self-operated Data Centers
Monolith
~40 devs
Feature / code freeze
2010
2010
4 weeks release cycle
Release time: hours
Monolith
~40 devs
Feature / code freeze
2010
2011
2 weeks release cycle
Release time: hours
Architecture
UI Layer
Business Logic Layer
Database Layer
Featu
re
C
Featu
re A
Featu
re B Fe
atu
re
D
Featu
re E
TeamCity log
Monolithic Apps - Failure & Availability
Release features as fast as possible!
“When will feature XYZ be released?”
“Why not just after finishing it?”
Teams were trying to release as many changes as they could.
2012 - Cutting the Monolith
Services (aka Swimlanes)
Team App
Team App
Team App...
Feature Feature
Feature
...FeatureB
FeatureA
FeatureX
Team 1 Team N
Architecture vision
Architecture vision
Goals:
● Reduce time-to-market, allow fast feedback
Principles:
● Support team autonomy by building independent things● Organize around products, not projects, keep ownership● Build things for change and replacement, not for re-use● Decentralized data management
3rd generation todayMonolithic Rails > JS / Rails / Scala > Microservices
5th generation todayMonolithic Perl > Monolithic C++ > Java >
Microservices
Nth generation todayMonolithic C++ > Perl / C++ > Java / Scala >
Microservices
Monolithic C# > Swimlanes C# > ???
Microservices
BusinessLogic
BusinessLogic
UI
BusinessLogic
UI
Domain architecture
What are the main systems / services, their responsibilities and dependencies?
Macro architecture
How systems / services talk to each other? What platform are they run on?
Micro architecture
How and using which language and runtime every system is implemented? Which database is used?
Architecture guidelines
Macro architecture Micro architecture
● Continuous Delivery
(principles)● Share nothing model● UI (+ integration)● Replicated data● Logging, Monitoring● Communication protocols● Resilience
● Continuous Delivery
(implementation)● Free to choose technology● Optimization points● Testable integration
Architecture
Operations
Stack
Culture
Micro
services
Windows
.NET
Oracle
C#
VMware
DevOps
Developer
Operations
Self-operated Data Centers
2000 Servers
2 Data Centers
http://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites
Giants
Stand on the Shoulders of
Architecture
Operations
Stack
Culture
Micro
services
Linux
JVM
DynamoDB
Scala
VMware
DevOps
Developer
Operations
Self-operated Data Centers
Self-operated data centers
● Two own data centers (main and backup) in Munich & Nuremberg● Virtualization based on VMware infrastructure
Pains:
● Slow provisioning involving manual steps● “Pet” servers, only partially automated● Infrastructure (LB, etc.) with lots of manual configuration● Backup DC is not serving traffic most of the time● It’s challenging to keep backup DC up-to-date and make sure it will
work
Cloud?
● “Don’t reinvent the wheel!”
Pros:
● Self-service● Fast provisioning● Infrastructure as code, automate everything● Immutable servers thanks to fast provisioning● Try things in production thanks to fast provisioning● No over-provisioning thanks to scaling functionality
Architecture
Operations
Stack
Culture
Micro
services
Linux
JVM
DynamoDB
Scala
Cloud
EC2
DevOps
Developer
Operations
Dev/Ops
Ops
Team
Architecture
Operations
Stack
Culture
Micro
services
Linux
JVM
DynamoDB
Scala
Cloud
EC2
Engineers
You run it
You build it
Re-built it all...
...while keeping the platform running!
Progress
1
2
3
Progress
2 months 1 team Infrastructure only
5 months 2 teams 3 microservices
8 months 4 teams 10 microservices
... ... ...
It’s just...
...a beginning
Picture Credits• Slide 4: "Tatsu Sign" by Martin Lewison, licensed under CC BY-SA 2.0• Slide 7: "HotWheels - '69 Ford Torino Talladega“ by Leap Kye, licensed under CC BY-ND 2.0
Alexey [email protected]@gravanov
Philipp [email protected]@pgarbe