Microservices Fundamentals
Web Application or Microservices GO or NOT GOT
https://www.youtube.com/watch?v=FO_qg9ETcT0&list=PLD-mYtebG3X9HaZ1T39-aF4ghEtWy9-v3&index=3
Monolithic
Disadvantages
- A single executable file to the whole application. Deployment issues. Regression testings. Performance testings and measures. A single modification causes all these tasks.
- Maintain of whole code base. Deployment. Isolation. Debugging. Diagnosis. All these are hard.
Advantages
- Easy testing (1 app) by mocking
- Easy monitoring (1 app)
Microservices
It is like SOA 2.0.
It is DDD Domain Driven Development.
Individually deploy and mantain
Dedicated purpose of living
It runs own processes (own web container)
Comunicate with other services via light weight way (HTTP)
Scale independently. Scale and deploy as individual services
Use different languages: Spring Boot, Drop Wizard, WS MS for Java
Smaller teams
Y-axis is microservices by function division. Only scale those microservices more demanding and by peak hours.
Microservices design and frameworks
Frameworks:
Spring Boot, Drop Wizard, WS MS for Java. API gateways, governance registry, etc
Design:
Service resilience
Fault tolerance: with proxy, failure mechanism or implementing circuit breaker pattern.
Deployment:
Kubernates framework, Docker, containers
Fullstack team:
Java, API, DBA, QA, UI, fullstack team
Visibility from consumer to backend
Reestructuring team
You build it you own it
Best practices for Microservices / Web Application Developers
https://www.youtube.com/watch?v=Alj5sqsv0QU&index=4&list=PLD-mYtebG3X9HaZ1T39-aF4ghEtWy9-v3
Design
DDD Design Driven Development
References
https://www.youtube.com/watch?v=FO_qg9ETcT0&list=PLD-mYtebG3X9HaZ1T39-aF4ghEtWy9-v3&index=3