Microservices

by Martin Micunda

Monolith

Monolith

Microservice

Monolith

Microservice

Monolith

Microservice

Characteristics of Microservices

  1. Organised around Business Capabilities
  2. Products not Projects
  3. Decentralised Governance
  4. Decentralised Data Management
  5. Scalability
  6. Infrastructure Automation
  7. Design for failure
  8. Versioning

"Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure."

-- Melvyn Conway, 1967

Characteristics of Microservices

  1. Organised around Business Capabilities
  2. Products not Projects
  3. Decentralised Governance
  4. Decentralised Data Management
  5. Scalability
  6. Infrastructure Automation
  7. Design for failure
  8. Versioning
  • Team should own a product over its full lifetime
  • Inspiration for this is Amazon's notion of "you build, you run it"
  • Team takes full responsibility for the software in production
  • Developers have day-to-day contact with how their software behaves in production and increases contact with their users
  • Group take responsibility for failure

Characteristics of Microservices

  1. Organised around Business Capabilities
  2. Products not Projects
  3. Decentralised Governance
  4. Decentralised Data Management
  5. Scalability
  6. Infrastructure Automation
  7. Design for failure
  8. Versioning
  • Centralised governance is the tendency to standardise on single technology platforms
  • Different problems can be solve with different technologies (hard to do that in monolith apps where we depends on one technology stack)

Characteristics of Microservices

  1. Organised around Business Capabilities
  2. Products not Projects
  3. Decentralised Governance
  4. Decentralised Data Management
  5. Scalability
  6. Infrastructure Automation
  7. Design for failure
  8. Versioning

Characteristics of Microservices

  1. Organised around Business Capabilities
  2. Products not Projects
  3. Decentralised Governance
  4. Decentralised Data Management
  5. Scalability
  6. Infrastructure Automation
  7. Design for failure
  8. Versioning

Characteristics of Microservices

  1. Organised around Business Capabilities
  2. Products not Projects
  3. Decentralised Governance
  4. Decentralised Data Management
  5. Scalability
  6. Infrastructure Automation
  7. Design for failure
  8. Versioning

Characteristics of Microservices

  1. Organised around Business Capabilities
  2. Products not Projects
  3. Decentralised Governance
  4. Decentralised Data Management
  5. Scalability
  6. Infrastructure Automation
  7. Design for failure
  8. Versioning

Characteristics of Microservices

  1. Organised around Business Capabilities
  2. Products not Projects
  3. Decentralised Governance
  4. Decentralised Data Management
  5. Scalability
  6. Infrastructure Automation
  7. Design for failure
  8. Versioning
  • Leave multiple old micsroservices versions running
  • Fast introduction vs. slow retirement asymmetry

How big is microservice?

Why microservices?

Because monolithic apps lack:

  • Scalability
  • Modularity
  • Availability
  • Portability
  • Decentralisation
  • Partial Deployment

Rapid Provisioning

 

Rapid Provisioning

Monitoring

Rapid Provisioning

Monitoring

Rapid Application Deployment

Rapid Provisioning

Monitoring

Rapid Application Deployment

Devops Culture

Resources

Questions?

Thanks!