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

From Monolith to Platform

From Monolith to Platform

Lesara's journey from two monolithic applications to an ecommerce platform. The talk was presented first at the Symfony User Group Berlin, hosted by Lesara.

28764a44623db0ef2d95b914054c916f?s=128

Robin Müller

April 18, 2018
Tweet

More Decks by Robin Müller

Other Decks in Technology

Transcript

  1. From Monolith to Platform Berlin, April 2018 Robin Müller, CTO

    @_RobM
  2. 2 Architecture Business Tech Team Process › 775k page views

    p.m. › 80k revenue p.m. › <1% conversion rate › No monitoring › No backup › 1 CTO ( = Backend Developer) › 1 PM › 1 Frontend Developer › 1.5 Freelance Backend Developers › Kanban = ”Build as you go” › No CI › No tests But we shipped parcels and had actual revenue! Where we started 2013
  3. 3 Architecture First principles were born › Architecture › Hexagonal

    architecture › Asynchronous communication via RabbitMQ › Tooling › Switch from ZF1 to Symfony2 › Replaced github with gitlab › Rolled out message queueing › Development › Unit tests › Introduction of CI Then we built the 3rd and 4th application, breaking up monolith 1
  4. More applications, more data, more teams, more mess 4 Q1

    2018 › 1 Magento Application › 1 ZF1 Application › 1 Android App › 1 iOS App › 2 Go Applications › 1 Java Desktop Application › 1 Symfony 2.8 Application › 13 Symfony 3 Application › Several ML Models (Python + Tensorflow) › ..and more to come
  5. Decide on best practices working for your organization 5 Stack

    › Software › Software Architecture › Software Stack › Logging › System Coupling › Infrastructure › Cloud vs. Bare Metal › Monitoring › Scaling › Data Ownership › Make vs. Buy Quality › Tooling › IDE › CI › DVCS › Testing › Unit Tests › Functional Tests › Smoke Tests › Security › Risk analysis › Backup & recovery strategy › Maintainability Organization › Ownership › Team Structure › Product Managers? › Tech Leads? › Education › Introduction of new Tech › Prototyping? › Consulting?
  6. Micro service kit › Standard stack and libraries for your

    Micro services › Docker configuration › Monitoring (Queues, logfiles, application, …) › Standard architecture (Hexagonal architecture) › Authentication & Security 6
  7. Decoupling Publisher-Subscriber-Model 7 Makes it easier than ever to share

    information between systems › Systems publish their information to an Exchange › Shop: orders, customers, products › Whenever an order / customer / product changes, updates are sent › Other systems can subscribe to the updates over a standard interface › Less load, easy failover!
  8. Cloud use cases 8 Use case PaaS Traffic peaks Computation

    on Spot Bare Metal Details Technology available as PaaS Drop in replacement Temporary peaks Spin up instances in the cloud via auto scaling Can be done in parallel Not critical Always on, high memory, CPU and IO required Upsides Low maintenance High scalability Costs only for a limited amount of time Combination of low costs and highly scalable High computing power for a low price Cost Low availability cost Charged per request High, but time limited, otherwise low Low costs (80% discount) 5-10% of comparable cloud costs Examples AWS S3, Google BigQuery AWS EC2 Google Container Engine Calculate ML models on AWS Spot instances or GC Preemptibles MySQL cluster Elasticsearch cluster
  9. Monitoring with ELK 9

  10. Open Source Stack 10