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

Modularization via microservices

Modularization via microservices

Stefan Tilkov

October 29, 2015
Tweet

More Decks by Stefan Tilkov

Other Decks in Technology

Transcript

  1. Problems Some People Have 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
  2. „Organizations which design systems […] are constrained to produce designs

    which are copies of the communication structures of these organizations.“ — Melvin Conway, 1968
  3. “Flavors” of Microservices > “Microservice” is a very ill-defined term

    and means different things to different people > Two mainstream interpretations of the term: > Self-contained systems (SCS) > “Proper” microservices (where “micro” means “really small”)
  4. Self-contained Systems (SCS) UI Logic DB UI Logic DB UI

    Logic DB Shop system Shop system Products Checkout Search UI-level integration UI Logic DB Products Checkout Search data replication Business domain broken down into vertical slices
  5. “Proper” Microservices UI Shop system Products Checkout Search Logic DB

    Logic DB Logic DB Logic DB Logic Logic Logic Logic Shop system UI Logic DB Products Checkout Search Checkout Products Search Business domain broken down into UI and services
  6. SCS and Microservices Combined UI Shop system Products Checkout Search

    UI-level integration Logic DB Logic DB UI Logic Logic Logic UI Logic DB Logic Logic DB data replication Logic Logic Service-oriented on both macro and micro level
  7. Some equations 1 Service = 1 Deployment Unit
 (“can be

    deployed independently”) 1 Service = 1 Team
 (“one team is responsible for building it”) 1 Service = 1 Bounded Context
 (“does only one thing, but does it well”)
  8. Business processes? > Require inherent support – not just “lipstick

    on a pig” > process support within a single monolithic app ≠ agility > Microservices as containers for atomic microflows
  9. Support for change in multiple dimensions > Business logic within

    implementations > Non-functional requirements > Implementation technology → independently for each service
  10. Delivering monoliths vs. microservices Commit Stage Automated Acceptance Testing Automated

    Capacity Testing Manual Explorative Testing Release Commit Stage Automated Acceptance Testing Automated Capacity Testing Manual Explorative Testing Release Commit Stage Automated Acceptance Testing Automated Capacity Testing Manual Explorative Testing Release Commit Stage Automated Acceptance Testing Automated Capacity Testing Manual Explorative Testing Release Commit Stage Automated Acceptance Testing Automated Capacity Testing Manual Explorative Testing Release > separate deployment pipelines per team > services can be released and deployed independently > smaller and more frequent releases > the whole system is released and deployed in one go > requires significant coordination within the team(s) > large, infrequent releases
  11. 10 Benefits of microservices 1. Isolation 2. Autonomy 3. Indidual

    Scalability 4. Resilience 5. Cloud affinity 6. Experimentation 7. Rapid Feedback 8. Flexibility 9. Replacability 10. Ecosystem
  12. Stefan Tilkov, @stilkov [email protected] http://www.innoq.com/blog/st/ Phone: +49 170 471 2625

    innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein Germany Phone: +49 2173 3366-0 innoQ Schweiz GmbH Gewerbestr. 11 CH-6330 Cham Switzerland Phone: +41 41 743 0116 www.innoq.com Ohlauer Straße 43 10999 Berlin Germany Phone: +49 2173 3366-0 Robert-Bosch-Straße 7 64293 Darmstadt Germany Phone: +49 2173 3366-0 Radlkoferstraße 2 D-81373 München Germany Telefon +49 (0) 89 741185-270 Thank you. Questions? Comments?