Upload
zalando-technology
View
848
Download
2
Embed Size (px)
Citation preview
How We Made Our Tech Organization
andArchitecture
Converge Towards Scalability
Dan Persa
@danpersa
commerce.codetalks
April 2016
Berlin, Germany
EUROPE’S LEADING ONLINE FASHION PLATFORM
15 countries3 fulfillment centers18+ million active customers~3 billion € revenue 2015130+ million visits per month10.000+ employees
Visit us: tech.zalando.com
12
Conway’s Law
“organizations which design systems ...are constrained to produce designs which are copies of the communication structures of these organizations”
TECH ORGANIZATION SCALABILITY
ATTRACT NEW,
TALENTED PEOPLEKEEP THE TEAMS HAPPY
CREATE DIVERSITY ENCOURAGE INNOVATION
26
Zalando technologists come from more than 72 countries around the world. With so many languages, backgrounds, beliefs and ideas, how do we make it work? By celebrating our diversity and learning from
each other. We are all different, but we are all Zalandos.
MANY BACKGROUNDS, ONE TEAM
30
Do “Open Source First”If your Zalando project can also be useful to non-Zalandos, release it as open
source from the start.
Share Your CodeAll code shared between teams must be open source.
Be SafeTo ensure the broadest possible use of your project, use the MIT License only.
Deliver QualityProvide a great out-of-the-box experience.
OPEN SOURCE PRINCIPLES
36
OKRS
COMPANY OKRS
FASHION STORE OKRS OTHER DEPARTMENT OKRS
PATHFINDER TEAM OKRS
OTHER FASHION STORE TEAM OKRS
LOGISTICS OKRS ...
...
ARCHITECTURE SCALABILITY
MANY TEAMS WORKING AT
DIFFERENT FEATURES IN PARALLEL
TEAM AUTONOMY
ADD FEATURES FAST
PROGRAMMING LANGUAGE
DIVERSITY
EASY A/B TESTING AND REMOVING
FEATURES
Thousands of Java classes, undocumented featuresBusiness logic on all layers (including the database),
while “channels”, copy-pasta JSPs and global JS objects in the frontend
42
Put the Jimmy to REST!
Enable team autonomy
Consistent user experience
Rapid feature development
Continuous deployment
Establish best practices
Tech stack update
PROJECT MISSION
INTERNET
SKIPPERrouter
JIMMY
INNKEEPERroute management API
TAILORlayout service
QUILTtemplate management API
FRAGMENTS REST APIs
HEADER
CART
TAILORlayout service CART FRAGMENT
Team COAST
HEADER FRAGMENTTeam Navigation
QUILTtemplate management API
CART TEMPLATE
TRACKING TRACKING FRAGMENTTeam TRCKNG
https://cart.coast.zalan.do
https://eb-fragment.trckng.zalan.do
https://header-fragment-release.navigation.zalan.do
From Skipperhttps://zalando.de/cart
Translation ServiceTeam Pathfinder
IAM APITeam GreendaleFRAGMENT
Your Team API Your Team
From TailorHTML Render
AJAX APIs
Internal API Client
From Skipper
Cart ServiceTeam COAST