Microservices

Why and when you should consider it...

...And when you shouldn't.

About me

  • Lead Engineer at 8 Securities
  • Back-End development (mainly ASP.NET)
  • DevOps / Cloud Architecture and Web Services (Azure & AWS)
  • Agile development and project management

What is a Monolith

Resources

Service Layer

Repositories

Data Mappers / ORMs

Gateways

Domain

Http Client

Simple design

Easy communications

Why need more...

What is a Monolith

...And it scales.

Load Balancer

Cons of Monolith

  • Software
    • Maintenance
    • Stack / framework / language
  • Hardware
    • Slow and risky deployment
    • Slow scaling
  • Human
    • Power centralization
    • Bureaucracy

How To MicroService

Resources

Service Layer

Repositories

Data Mappers / ORMs

Gateways

Domain

Http Client

Ordering

Payment

Product

Shipment

How To MicroService

Ordering

Payment

Product

Shipment

Ordering

Payment

Product

Shipment

How To MicroService

Ordering

Payment

Product

Shipment

PROS of MICROSERVICES

  • Software
    • Less maintenance
    • Independent stack / framework / language
  • Hardware
    • Independent / faster / safer deployment
    • Independent / faster scaling
  • Human
    • Less power centralization
    • Less bureaucracy

Cons of MICROSERVICES

  • Software
    • Asynchronous messaging needed
    • Needs better software architect skills to set up
  • Hardware
    • Continuous deployment more complex​ to set up
    • More network calls
    • Needs better DevOps skills
  • Human
    • Migration might encounter resistance
    • You might have to fire a few middle managers

CI/CD For MICROSERVICES

Build Server

Code Repo

Build

Run unit tests

Clone

Run integration tests

https://my.microservice.com/

Swap

Destroy

https://my.microservice.com/

Webhook

Made with Slides.com