Scaling Architecture
@ Zalando
Felix Müller - @fmueller_bln
Slide 2
Slide 2 text
About me
Software Architect @ Zalando
Software Engineer by heart
8 years in IT
2 years as an Architect
Twitter: @fmueller_bln
Slide 3
Slide 3 text
Zalando
Slide 4
Slide 4 text
Who knows
Zalando?
Slide 5
Slide 5 text
2008
Slide 6
Slide 6 text
2 monoliths...
Slide 7
Slide 7 text
2015
Slide 8
Slide 8 text
How big are we
now?
Slide 9
Slide 9 text
Zalando in Numbers
~ EUR 3 billion revenue
> 160m visits per month
> 11000 employees in Europe
~ 1600 tech employees
7 tech hubs: Berlin, Dublin, Helsinki...
Slide 10
Slide 10 text
Still growing rapidly
Slide 11
Slide 11 text
2015 something more
happened...
Slide 12
Slide 12 text
We want
autonomous teams
to deliver amazing
products efficiently
at scale.
Slide 13
Slide 13 text
Radical Agility
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
Tech Constitution
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
Rules of Play
https://github.com/zalando/zalando-rules-of-play
Slide 18
Slide 18 text
Which architecture
style is fostered by
Radical Agility?
Slide 19
Slide 19 text
Architecture Principles
Slide 20
Slide 20 text
Architecture
Principles
https://github.com/zalando/zalando-rules-of-play#architecture
We prefer loosely coupled services.
Slide 21
Slide 21 text
Architecture Principles in detail
Microservice with RESTful APIs
Favor message-driven
Everything fails
Operational Excellence
Loosely coupled systems
Asynchronous communication
Resilient systems
Automate everything
Slide 22
Slide 22 text
How do we operate
our services?
Slide 23
Slide 23 text
AWS Setup
Slide 24
Slide 24 text
AWS Setup
Each team has its own account
You build it, you run it
Deployment via our STUPS tooling
Team
Team
Team
AWS Account
AWS Account
AWS Account
T h e Internet
Slide 25
Slide 25 text
STUPS.io
Slide 26
Slide 26 text
STUPS.io
Slide 27
Slide 27 text
How do we test our
services?
Slide 28
Slide 28 text
Testing
Slide 29
Slide 29 text
Testing
Of course, automated testing - a lot
Trade-off:
Time to prod <> test coverage (with
real systems)
Testing flows becomes harder with
microservices
Slide 30
Slide 30 text
Our Testing Pyramid - where to run what
Slide 31
Slide 31 text
Consumer-driven Contracts
Better collaboration between teams
Emphasize importance of APIs
Lowers inter-team alignment efforts
Slide 32
Slide 32 text
How do teams
collaborate?
Slide 33
Slide 33 text
Collaboration
between teams
At best, not necessary to deliver
Through APIs
Through Code - shared code
Slide 34
Slide 34 text
Open Source Culture
Slide 35
Slide 35 text
Open Source
Culture
https://github.com/zalando/zalando-howto-open-source
Open Source Evangelist, Lauri Apple
Open Source Guild
Management supports Open Source
Slide 36
Slide 36 text
Example for Open Source @ Zalando
https://github.com/integrations/zappr
Zappr
Approvals for pull requests
Started in our Innovation Labs
Now an official Github plugin
Slide 37
Slide 37 text
Open Source First
Slide 38
Slide 38 text
Shared code
between teams has
to be open source.
Slide 39
Slide 39 text
Inner Source
Slide 40
Slide 40 text
And how does
architecture work
takes place?
Slide 41
Slide 41 text
T h e Architect
Slide 42
Slide 42 text
T h e Architect
Slide 43
Slide 43 text
Service architecture
is designed by
delivery teams.
Slide 44
Slide 44 text
Global architecture
is owned by the
Architecture team.
Slide 45
Slide 45 text
Architecture Team
Slide 46
Slide 46 text
Architecture
Team
Overarching team to support delivery teams
4 in Berlin, 1 in Dublin
Focus on new platform and APIs
Tech decisions with company-wide
impact
Slide 47
Slide 47 text
We support teams
in building most
appropriate tech
solutions.
Slide 48
Slide 48 text
Radical Agility vs Arc Team?
We respect self-autonomy of teams.
We support teams as technical consultants.
We can provide outside perspective + broader technical
overview.
We let teams make their own architecture decisions.
Slide 49
Slide 49 text
There was team
collaboration
through APIs...
Slide 50
Slide 50 text
API Guild
Slide 51
Slide 51 text
API Guild
Group of Architect and Engineers
Develops API Guidelines
Drives API Reviews
Slide 52
Slide 52 text
API First
Slide 53
Slide 53 text
API Reviews
Feedback Culture
Foster review culture
Get feedback as soon as possible
API Guild is public review partner
Slide 54
Slide 54 text
API Guidelines
Slide 55
Slide 55 text
API Guidelines
https://github.com/zalando/restful-api-guidelines
REST Maturity Level 2
Backward compatibility over
versioning
Common Naming Rules and
Data Objects
Slide 56
Slide 56 text
API Guidelines
Slide 57
Slide 57 text
Our future system
will consist of
thousands of
microservices.
Slide 58
Slide 58 text
How do teams find
available APIs?
Slide 59
Slide 59 text
API Discovery
Slide 60
Slide 60 text
API Discovery
A system to crawl and curate all
deployed APIs.
https://github.com/zalando-stups/twintip-storage
https://github.com/zalando-stups/twintip-crawler
https://github.com/zalando-stups/swagger-ui
Twintip
Crawler
Twintip
Storage
Swagger
UI
APIs
Slide 61
Slide 61 text
API Discovery
Slide 62
Slide 62 text
How do teams
choose tech stacks?
Slide 63
Slide 63 text
Technologists Guild
Slide 64
Slide 64 text
Technologists
Guild
Knowledge sharing and discussion
Owns and curates Tech Radar
Owns internal Tech Compendium
Slide 65
Slide 65 text
Tech Radar
Slide 66
Slide 66 text
Tech Radar
We try to give delivery teams guidance
in choosing technologies.
Tech Radar is created by involved
engineers in the technologists guild.
Each team is encouraged to contribute
experience reports.
https://zalando.github.io/tech-radar
Slide 67
Slide 67 text
No content
Slide 68
Slide 68 text
Scaling Architecture @ Zalando
Zalando in general
Autonomous delivery teams
Overarching architecture team
Rules of Play
Architecture Principles
Open Source Culture
Architecture specific
API Guild + Guidelines
API Reviews
API Discovery
Technologists Guild
Tech Radar