Slide 1

Slide 1 text

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

Slide 69

Slide 69 text

Thanks. Questions? Twitter: @fmueller_bln