@olliwegner @stilkov Oliver Wegner Stefan Tilkov From Parts to a - - PowerPoint PPT Presentation

olliwegner stilkov
SMART_READER_LITE
LIVE PREVIEW

@olliwegner @stilkov Oliver Wegner Stefan Tilkov From Parts to a - - PowerPoint PPT Presentation

@olliwegner @stilkov Oliver Wegner Stefan Tilkov From Parts to a Whole: Modular Development of a Large-Scale e-Commerce Site QCon, London 06/03/2014 1. Reviewing architectures Generic Architecture Review Results Deployment is Building


slide-1
SLIDE 1

@olliwegner @stilkov

slide-2
SLIDE 2

From Parts to a Whole: Modular Development

  • f a Large-Scale

e-Commerce Site

QCon, London 06/03/2014

Oliver Wegner • Stefan Tilkov

slide-3
SLIDE 3
  • 1. Reviewing architectures
slide-4
SLIDE 4

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

slide-5
SLIDE 5

http://www.flickr.com/photos/krissymayhew/5463349254, Krissy Mayh

Any architecture’s quality is directly proportional to the number of bottlenecks limiting its evolution, development, and

  • perations
slide-6
SLIDE 6

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

slide-7
SLIDE 7

Reversal 1 Any particular architecture approach constraints organizational options – i.e. makes some organizational models simple and others hard to implement. Architecture → Organization

slide-8
SLIDE 8

Reversal 2 Choosing a particular architecture can be a means of optimizing for a desired

  • rganizational structure.

Architecture → Organization

slide-9
SLIDE 9
  • 2. Rebuilding Otto.de
slide-10
SLIDE 10

e-Commerce Solutions & Technology Product 5 March 2014 Seite 10 Percentage of turnover For the last 15 years the E-Commerce business has become more important 4.200 Employees > 2.1 Billion € turnover > 2 Million items

  • n Otto.de

80% turnover

  • nline
slide-11
SLIDE 11

But why rebuild Otto.de?

slide-12
SLIDE 12

Non-functional: Functional:

Goals

Scalable Simple Personalized Realtime Time To Market Data-Driven Test-Driven Fast Reliable Features

slide-13
SLIDE 13

OTTO Backend Infrastructure How green is the green field? Product Information Management Customer Management OTTO E-Commerce Frontend Infrastructure

Articles Orders

Order Management

Customer

slide-14
SLIDE 14

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

slide-15
SLIDE 15
  • 3. A system-of-systems

approach

slide-16
SLIDE 16

Macro (technical) architecture Domain architecture

slide-17
SLIDE 17

JRuby C# Scala Groovy Java Clojure

slide-18
SLIDE 18

RDBMS NoSQL K/V RDBMS RDBMS/ DWH NoSQL DocDB

slide-19
SLIDE 19

RDBMS NoSQL K/V RDBMS RDBMS/ DWH NoSQL DocDB

Micro architecture

slide-20
SLIDE 20

Persistence Logic UI Module A Module B Module C

slide-21
SLIDE 21

System A Persistence Logic UI System B Persistence Logic UI System C Persistence Logic UI

slide-22
SLIDE 22
  • 4. The Otto architecture
slide-23
SLIDE 23

Buying Process – as you already know it

Search Discover Assess Order Check Customer Journey

slide-24
SLIDE 24

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

slide-25
SLIDE 25

System architecture is vertical

Search Product Order User After Sales UI UI UI UI UI

slide-26
SLIDE 26

User Auth UI UI After Sales UI

1 Team à N Systems 1 System à 1 Team

Organizational aspects

slide-27
SLIDE 27

RESTful Architecture Shared Nothing Vertical Design Data Governance Buy when non core Common Technologies

Macro-Architecture Micro-Architecture Architecture rules

slide-28
SLIDE 28

The 3 Faces of Product Ownership

Technical Lead Project Lead Business Lead Product Owner

slide-29
SLIDE 29

Project start with distributed teams

Team Search Team Discover Team Order

Team Check

But how to deal with frontend integration?

slide-30
SLIDE 30
  • 5. Frontend Integration
slide-31
SLIDE 31

Development Deployment Storage Backend call Edge integration Server-side integration options

RPC REST RMI ESI Homegrown (Portal server) Build tools Chef, Puppet, … Asset pipeline Git/SVN submodules Gems Maven artifacts DB replication Feeds

slide-32
SLIDE 32

Link Replaced link Client-side integration options Client call

Magical integration concept Unobtrusive JS ROCA-style

  • Embed

SPA-style

slide-33
SLIDE 33

Otto.de – detail view

slide-34
SLIDE 34

Otto.de - Basket

slide-35
SLIDE 35

Management of JS and CSS from each team

Order Personalization User

System View

slide-36
SLIDE 36

Separate teams for horizontal aspects

Team Discover Team Search Team Order Team Assetserver

slide-37
SLIDE 37
slide-38
SLIDE 38

Decoupling

Versioned storage

GitHub Local SCM Asset Server

slide-39
SLIDE 39
  • 6. A/B-Testing
slide-40
SLIDE 40

AB-Testing in a distributed environment – What is an AB- Test

99% 1%

slide-41
SLIDE 41

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

slide-42
SLIDE 42

Solution with a dedicated Vertical and loose coupling Backoffice

UI for Managing Tests Persistence DB R E S T

Pull Data from Back-

  • ffice

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

slide-43
SLIDE 43
  • 7. Conclusion
slide-44
SLIDE 44

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

slide-45
SLIDE 45

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

slide-46
SLIDE 46

@olliwegner @stilkov

slide-47
SLIDE 47

BACKUP

slide-48
SLIDE 48

Plattform Engineering delivers the basic infrastructure for all verticals

Team Search Team Discover Team Order

Team Plattform Engineering Logging Deployment Provisioning Infrastructure Components

slide-49
SLIDE 49

Microservices? Microservices Approach – Very small – 100s – Does one thing only – Separate client (?) Vertical Systems Approach – Medium-sized – 10s – Small # of related things – Includes UI