SlideShare a Scribd company logo
1 of 52
@olliwegner
@stilkov
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/modular-ecommerce-website
Presented at QCon London
www.qconlondon.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
From Parts to a Whole:
Modular Development
of a Large-Scale
e-Commerce Site
QCon, London 06/03/2014
Oliver Wegner • Stefan Tilkov
1. Reviewing architectures
Generic Architecture Review Results
Building
features takes
too long
Technical debt is
well-known and
not addressed
Deployment is
way too
complicated
and slow
Replacement would
be way too
expensive
Scalability has
reached its limit
Architectural quality
has degraded
“-ility” problems
abound
http://www.flickr.com/photos/krissymayhew/5463349254, Krissy Mayhew
Any architecture’s quality is directly
proportional to the number of bottlenecks
limiting its evolution, development, and
operations
Conway’s Law
“Organizations which design systems are
constrained to produce systems which are
copies of the communication structures of
these organizations.” – M.E. Conway
Organization → Architecture
Reversal 1
Any particular architecture approach
constraints organizational options – i.e.
makes some organizational models simple
and others hard to implement.
Architecture → Organization
Reversal 2
Choosing a particular architecture can be a
means of optimizing for a desired
organizational structure.
Architecture → Organization
2. Rebuilding Otto.de
e-Commerce Solutions & Technology Product
5 March 2014
Seite 10
Percentageofturnover
For the last 15 years the E-Commerce
business has become more important
4.200
Employees > 2.1 Billion €
turnover
> 2 Million items
on Otto.de
80% turnover
online
But why rebuild Otto.de?
Non-functional:
Functional:
Goals
Scalable
Simple
Personalized
Realtime
Time To
Market
Data-Driven
Test-Driven
Fast
Reliable
Features
OTTO Backend Infrastructure
How green is the green field?
Product
Information
Management
Customer
Management
OTTO E-Commerce Frontend Infrastructure
Articles Orders
Order
Management
Customer
Start of the project LHOTSE
Technical system architecture
Open Source as core technologies
One Prototype to define the technology stack
Project organization with autonomous teams
Scrum as an agile development method
3. A system-of-systems
approach
Macro (technical) architecture
Domain architecture
JRuby
 C#
Scala
Groovy
Java
Clojure
RDBMS
NoSQL
K/V
RDBMS
RDBMS/
DWH
NoSQL
DocDB
RDBMS
NoSQL
K/V
RDBMS
RDBMS/
DWH
NoSQL
DocDB
Micro architecture
Persistence
Logic
UI
ModuleA
ModuleB
ModuleC
System A
Persistence
Logic
UI
System B
Persistence
Logic
UI
System C
Persistence
Logic
UI
4. The Otto architecture
Buying Process – as you already know it
SearchDiscover Assess Order Check
Customer Journey
The E-Commerce Business Architecture –
Vertical and Horizontal aspects of the product Otto.de
1 Website = 1 Product = 1 System = 1 Engineering Team ?
Discover Search Assess Order Check
Usability
Webanalytics and Testing
Online and Performance Marketing
Platform Engineering
System architecture is vertical
Search Product Order User After
Sales
UI UI UI UI UI
…
User Auth
UI UI
After
Sales
UI
1 Team à N Systems 1 System à 1 Team
Organizational aspects
RESTful Architecture
Shared Nothing
Vertical Design
Data Governance
Buy when non core
Common Technologies
Macro-Architecture Micro-Architecture
Architecture rules
The 3 Faces of Product Ownership
Technical
Lead
Project
Lead
Business
Lead Product Owner
Project start with distributed teams
Team
Search
Team
Discover
Team
Order
…
Team
Check
But how to deal with frontend integration?
5. Frontend Integration
Development
Deployment
Storage
Backend call
Edge integration
Server-side integration options
RPC
RESTRMI
ESI
Homegrown
(Portal server)
Build tools
Chef, Puppet, …
Asset pipeline
Git/SVN submodules Gems
Maven artifacts
DB replication
Feeds
Link
Replaced link
Client-side integration options
Client call
Magical integration concept
Unobtrusive JS
ROCA-style
oEmbed
SPA-style
Otto.de – detail view
Otto.de - Basket
Management of JS and CSS from each team
Order
Personalization
User
System View
Separate teams for horizontal aspects
Team
Discover
Team
Search
Team
Order
Team
Assetserver
Decoupling
Versioned storage
GitHub
Local SCM
Asset Server
6. A/B-Testing
AB-Testing in a distributed environment – What is an AB-
Test
99%
1%
Solution with a centralized framework every team has to
include in their repository
Backoffice
UI for Managing Tests
Persistence
DB
R
E
S
T
Vertical (e.g. Search)
Pull Experiment Data
from Backoffice
User Request User Response
Testing specific
and Vertical
independent logic
DB
Solution with a dedicated Vertical and loose coupling
Backoffice
UI for Managing Tests
Persistence
DB
R
E
S
T
Pull Data
from Back-
office
Testing
Vertical
Testing Logic
Persists all Tests
DB
Vertical
(e.g. Search)
Implement and
Deliver Alternative A
and B
DB
Request Response
R
E
S
T
ESI-Includes
Frontend-
Proxy
7. Conclusion
Results of the project LHOTSE
Finished before schedule: October, 24th à 4 months earlier
2 years in total
Scaled to >100 people
Finished in budget
Finished in quality
Minimum Viable Product
Lessons learned in applying a system-of-systems approach
Independent,
autonomous systems for
maximum decoupling
Strict macro
architecture rules
Teams with
their own
decisions
Be skeptical of
“easy” solutions
Address cross-
functional concerns
Minimize cross-
functional concerns
Minimize need
for coordination
Prefer “pull” to
“push” sharing
@olliwegner
@stilkov
BACKUP
Plattform Engineering delivers the basic infrastructure for
all verticals
Team
Search
Team
Discover
Team
Order
…
Team
Plattform Engineering
Logging
Deployment
Provisioning Infrastructure
Components
Microservices?
Microservices Approach
– Very small
– 100s
– Does one thing only
– Separate client (?)
Vertical Systems Approach
– Medium-sized
– 10s
– Small # of related things
– Includes UI
Watch the video with slide synchronization on
InfoQ.com!
http://www.infoq.com/presentations/modular-
ecommerce-website

More Related Content

Viewers also liked

Steps to Effective SharePoint Governance - SPFest Chicago
Steps to Effective SharePoint Governance - SPFest ChicagoSteps to Effective SharePoint Governance - SPFest Chicago
Steps to Effective SharePoint Governance - SPFest Chicago
Richard Harbridge
 
A Pragmatist's Guide to Designing Enterprise Content Types by Chris Beckett -...
A Pragmatist's Guide to Designing Enterprise Content Types by Chris Beckett -...A Pragmatist's Guide to Designing Enterprise Content Types by Chris Beckett -...
A Pragmatist's Guide to Designing Enterprise Content Types by Chris Beckett -...
SPTechCon
 

Viewers also liked (17)

Content Modelling Workshop (J Gollner TC World 2013)
Content Modelling Workshop (J Gollner TC World 2013)Content Modelling Workshop (J Gollner TC World 2013)
Content Modelling Workshop (J Gollner TC World 2013)
 
SharePoint 2013 Taxonomy Tour
SharePoint 2013 Taxonomy TourSharePoint 2013 Taxonomy Tour
SharePoint 2013 Taxonomy Tour
 
Introduction to Content Modelling
Introduction to Content Modelling Introduction to Content Modelling
Introduction to Content Modelling
 
Steps to Effective SharePoint Governance - SPFest Chicago
Steps to Effective SharePoint Governance - SPFest ChicagoSteps to Effective SharePoint Governance - SPFest Chicago
Steps to Effective SharePoint Governance - SPFest Chicago
 
IA Summit 2013 Closing Plenary
IA Summit 2013 Closing PlenaryIA Summit 2013 Closing Plenary
IA Summit 2013 Closing Plenary
 
Establishing Content Structure & Information Governance in SharePoint
Establishing Content Structure & Information Governance in SharePointEstablishing Content Structure & Information Governance in SharePoint
Establishing Content Structure & Information Governance in SharePoint
 
Content Networks: Slides, Video, Audio, Lists, Graphic, Social & Docs
Content Networks: Slides, Video, Audio, Lists, Graphic, Social & DocsContent Networks: Slides, Video, Audio, Lists, Graphic, Social & Docs
Content Networks: Slides, Video, Audio, Lists, Graphic, Social & Docs
 
Implementing a Taxonomy in a Content Management Portal
Implementing a Taxonomy in a Content Management PortalImplementing a Taxonomy in a Content Management Portal
Implementing a Taxonomy in a Content Management Portal
 
Content Architecture At Work
Content Architecture At WorkContent Architecture At Work
Content Architecture At Work
 
IMMERSE 2016 Introducing content fragments
IMMERSE 2016 Introducing content fragmentsIMMERSE 2016 Introducing content fragments
IMMERSE 2016 Introducing content fragments
 
A Pragmatist's Guide to Designing Enterprise Content Types by Chris Beckett -...
A Pragmatist's Guide to Designing Enterprise Content Types by Chris Beckett -...A Pragmatist's Guide to Designing Enterprise Content Types by Chris Beckett -...
A Pragmatist's Guide to Designing Enterprise Content Types by Chris Beckett -...
 
Content Modelling Workshop Preview
Content Modelling Workshop PreviewContent Modelling Workshop Preview
Content Modelling Workshop Preview
 
Thriving in a world of change: Future-friendly content with Drupal
Thriving in a world of change: Future-friendly content with DrupalThriving in a world of change: Future-friendly content with Drupal
Thriving in a world of change: Future-friendly content with Drupal
 
Defining Content Architecture
Defining Content ArchitectureDefining Content Architecture
Defining Content Architecture
 
Content Auditing: Unearthing the Substance of Your Brand
Content Auditing: Unearthing the Substance of Your BrandContent Auditing: Unearthing the Substance of Your Brand
Content Auditing: Unearthing the Substance of Your Brand
 
EPC Group SharePoint 2010 Enterprise Content Management - ECM Best Practices
EPC Group SharePoint 2010 Enterprise Content Management - ECM Best PracticesEPC Group SharePoint 2010 Enterprise Content Management - ECM Best Practices
EPC Group SharePoint 2010 Enterprise Content Management - ECM Best Practices
 
Align Business Data & Analytics for Digital Transformation
Align Business Data & Analytics for Digital TransformationAlign Business Data & Analytics for Digital Transformation
Align Business Data & Analytics for Digital Transformation
 

More from C4Media

More from C4Media (20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

From Parts to a Whole: Modular Development of a Large-Scale e-Commerce Site