microservices
Workshop
Created by
Andreas Grohmann
/
andreas.grohmann@gmx.de
/
twitter.com/grohmeo
Microservices vs. Monolith
Scaling - Microservices vs. Monolith
## overview Microservices is an approach where a single application is devided into multiple different services. ### services * run in single process * could implemented in different programming languages * use simple communication, e.g. API's using HTTP REST (synch) or AMQP (asynch) * independent deployable * could use different data storage * minimal centralized administration
### component separation by services * find exchangeable and replaceable software components * services run as out-of-service components, use e.g. web-service calls * find interface that minimize dependencies * support interface in different versions * low coupling for interface advantage * independent deployment of services disadvantage * web-service calls more expensive than in-process calls
conventional teams
conways law
cross functional teams
#### Microservice approach * team not diveded in UI, Backend, DBA's * teams take care of whole technology stack
### products vs. projects #### traditional projects * development * handover * respnsibility change #### Microservices approach * "you build it, you run it" * developers learn about practical use * direct costumer contact * continuous relation to products * easier to achieve with small services
### smart endpoints dump pipes * low coupling, high cohesion between services * use simple protocols like REST, AMQP * no complex protocols like SOAP etc.
decentralized datamanagement
## Links * [Martin Flower - Microservices](https://martinfowler.com/articles/microservices.html)
Questions?