Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scaling Architecture @ Zalando

A7e499800d9008d62830dfe431bd8ddb?s=47 Felix Müller
November 14, 2016

Scaling Architecture @ Zalando

This talks describes how we scale our architecture work at Zalando.

A7e499800d9008d62830dfe431bd8ddb?s=128

Felix Müller

November 14, 2016
Tweet

Transcript

  1. Scaling Architecture @ Zalando Felix Müller - @fmueller_bln

  2. About me Software Architect @ Zalando Software Engineer by heart

    8 years in IT 2 years as an Architect Twitter: @fmueller_bln
  3. Zalando

  4. Who knows Zalando?

  5. 2008

  6. 2 monoliths...

  7. 2015

  8. How big are we now?

  9. Zalando in Numbers ~ EUR 3 billion revenue > 160m

    visits per month > 11000 employees in Europe ~ 1600 tech employees 7 tech hubs: Berlin, Dublin, Helsinki...
  10. Still growing rapidly

  11. 2015 something more happened...

  12. We want autonomous teams to deliver amazing products efficiently at

    scale.
  13. Radical Agility

  14. None
  15. Tech Constitution

  16. None
  17. Rules of Play https://github.com/zalando/zalando-rules-of-play

  18. Which architecture style is fostered by Radical Agility?

  19. Architecture Principles

  20. Architecture Principles https://github.com/zalando/zalando-rules-of-play#architecture We prefer loosely coupled services.

  21. Architecture Principles in detail Microservice with RESTful APIs Favor message-driven

    Everything fails Operational Excellence Loosely coupled systems Asynchronous communication Resilient systems Automate everything
  22. How do we operate our services?

  23. AWS Setup

  24. 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
  25. STUPS.io

  26. STUPS.io

  27. How do we test our services?

  28. Testing

  29. Testing Of course, automated testing - a lot Trade-off: Time

    to prod <> test coverage (with real systems) Testing flows becomes harder with microservices
  30. Our Testing Pyramid - where to run what

  31. Consumer-driven Contracts Better collaboration between teams Emphasize importance of APIs

    Lowers inter-team alignment efforts
  32. How do teams collaborate?

  33. Collaboration between teams At best, not necessary to deliver Through

    APIs Through Code - shared code
  34. Open Source Culture

  35. Open Source Culture https://github.com/zalando/zalando-howto-open-source Open Source Evangelist, Lauri Apple Open

    Source Guild Management supports Open Source
  36. 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
  37. Open Source First

  38. Shared code between teams has to be open source.

  39. Inner Source

  40. And how does architecture work takes place?

  41. T h e Architect

  42. T h e Architect

  43. Service architecture is designed by delivery teams.

  44. Global architecture is owned by the Architecture team.

  45. Architecture Team

  46. 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
  47. We support teams in building most appropriate tech solutions.

  48. 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.
  49. There was team collaboration through APIs...

  50. API Guild

  51. API Guild Group of Architect and Engineers Develops API Guidelines

    Drives API Reviews
  52. API First

  53. API Reviews Feedback Culture Foster review culture Get feedback as

    soon as possible API Guild is public review partner
  54. API Guidelines

  55. API Guidelines https://github.com/zalando/restful-api-guidelines REST Maturity Level 2 Backward compatibility over

    versioning Common Naming Rules and Data Objects
  56. API Guidelines

  57. Our future system will consist of thousands of microservices.

  58. How do teams find available APIs?

  59. API Discovery

  60. 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
  61. API Discovery

  62. How do teams choose tech stacks?

  63. Technologists Guild

  64. Technologists Guild Knowledge sharing and discussion Owns and curates Tech

    Radar Owns internal Tech Compendium
  65. Tech Radar

  66. 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
  67. None
  68. 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
  69. Thanks. Questions? Twitter: @fmueller_bln