olliwegner stilkov
play

@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


  1. @olliwegner @stilkov

  2. Oliver Wegner • Stefan Tilkov From Parts to a Whole: Modular Development of a Large-Scale e-Commerce Site QCon, London 06/03/2014

  3. 1. Reviewing architectures

  4. Generic Architecture Review Results Deployment is Building way too Technical debt is features takes complicated well-known and too long and slow not addressed Architectural quality has degraded Scalability has reached its limit “-ility” problems Replacement would abound be way too expensive

  5. Any architecture’s quality is directly proportional to the number of bottlenecks limiting its evolution, development, and operations http://www.flickr.com/photos/krissymayhew/5463349254, Krissy Mayh

  6. Conway’s Law Organization → Architecture “Organizations which design systems are constrained to produce systems which are copies of the communication structures of these organizations.” – M.E. Conway

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

  8. Reversal 2 Architecture → Organization Choosing a particular architecture can be a means of optimizing for a desired organizational structure.

  9. 2. Rebuilding Otto.de

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

  11. But why rebuild Otto.de?

  12. Goals Non-functional: Time To Simple Market Functional: Test-Driven Data-Driven Reliable Personalized Features Scalable Fast Realtime

  13. How green is the green field? OTTO E-Commerce Frontend Infrastructure Articles Orders Customer OTTO Backend Infrastructure Product Customer Order Information Management Management Management

  14. Start of the project LHOTSE Open Source as core technologies One Prototype to define the technology stack Project organization with autonomous teams Scrum as an agile development method Technical system architecture

  15. 3. A system-of-systems approach

  16. Domain architecture Macro (technical) architecture

  17. JRuby C# Groovy Scala Clojure Java

  18. NoSQL RDBMS K/V RDBMS/ NoSQL RDBMS DWH DocDB

  19. NoSQL RDBMS K/V RDBMS/ NoSQL RDBMS DWH DocDB Micro architecture

  20. Module C Module B Module A Persistence Logic UI

  21. UI UI UI Logic Logic Logic Persistence Persistence Persistence System A System B System C

  22. 4. The Otto architecture

  23. Buying Process – as you already know it Customer Journey Discover Search Assess Order Check

  24. The E-Commerce Business Architecture – Vertical and Horizontal aspects of the product Otto.de Discover Search Assess Order Check Usability Webanalytics and Testing Online and Performance Marketing Platform Engineering 1 Website = 1 Product = 1 System = 1 Engineering Team ?

  25. System architecture is vertical UI UI UI UI UI Search Product Order User After … Sales

  26. Organizational aspects UI UI UI User Auth After Sales 1 Team à N Systems 1 System à 1 Team

  27. Architecture rules Micro-Architecture Macro-Architecture RESTful Architecture Buy when non core Shared Nothing Common Technologies Vertical Design Data Governance

  28. The 3 Faces of Product Ownership Business Lead Product Owner Project Technical Lead Lead

  29. Project start with distributed teams … Team Team Team Team Discover Search Check Order But how to deal with frontend integration?

  30. 5. Frontend Integration

  31. Server-side integration options ESI (Portal server) Edge integration Homegrown REST RMI Backend call RPC Feeds Storage DB replication Chef, Puppet, … Deployment Build tools Asset pipeline Git/SVN submodules Gems Development Maven artifacts

  32. Client-side integration options Client call SPA-style oEmbed Unobtrusive JS Replaced link ROCA-style Magical integration concept Link

  33. Otto.de – detail view

  34. Otto.de - Basket

  35. Management of JS and CSS from each team System View Order User Personalization

  36. Separate teams for horizontal aspects Team Search Team Team Discover Order Team Assetserver

  37. Decoupling Versioned storage Asset Server Local SCM GitHub

  38. 6. A/B-Testing

  39. AB-Testing in a distributed environment – What is an AB- Test 1% 99%

  40. Solution with a centralized framework every team has to include in their repository User Request User Response Backoffice R Vertical (e.g. Search) E S UI for Managing Tests T Persistence Pull Experiment Data from Backoffice Testing specific and Vertical independent logic DB DB

  41. Solution with a dedicated Vertical and loose coupling Request Response Testing Vertical Backoffice R R Vertical (e.g. Search) E E S S Implement and UI for Managing Tests T Testing Logic T Deliver Alternative A Persistence Persists all Tests and B ESI-Includes Pull Data Frontend- from Back- Proxy office DB DB DB

  42. 7. Conclusion

  43. Results of the project LHOTSE 2 years in total Scaled to >100 people Finished in budget Finished in quality Finished before schedule: October, 24th à 4 months earlier Minimum Viable Product

  44. Lessons learned in applying a system-of-systems approach Independent, autonomous systems for Prefer “pull” to maximum decoupling “push” sharing Strict macro architecture rules Minimize cross- functional concerns Address cross- functional concerns Minimize need Be skeptical of for coordination “easy” solutions Teams with their own decisions

  45. @olliwegner @stilkov

  46. BACKUP

  47. Plattform Engineering delivers the basic infrastructure for all verticals … Team Team Team Team Discover Search Plattform Engineering Order Infrastructure Deployment Logging Provisioning Components

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

Recommend


More recommend