Microservices

alt text

There is no accepted definition of a microservice, you will find for example:

  • "Small autonomous services that work together" By: Sam Newman

  • "In short, the microservice architectural style is a approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mecahcnism, often and HTTP..."

  • "There is a bare minimun of centralized management of these services, which may be written in different programming languages and use different data storage technologies" by: Martin Fowler

  • REST

  • And Small whell chosen deployable units

  • And cloud enabled

How Does it Look?

alt tex

Microservices Advantages

  • New Technology and Process Adaption
  • Dynamic Scaling
  • Faster Release Cycles

Microservices Challenges

  • Bounded Context: ¿How do you identify the boundary for each os these microservices? ¿How do you identify what to do in each of these microservices? ¿How do you decide what you should do and what no?
  • Configuration Management
  • Dynamic Scale Up and Scale Down
  • Visibility: If I say the functionality is now distributed among 10 microservices and there is a bug, How do you identify where the bug is?
  • Pack of cards: How do i prevent one microservices being down taking down entire application? ¿How do i build fault-tolerance?

How we can solve all those challenges?

  • CONTAINERIZATION
  • ORCHESTATION

alt text

References

· https://www.geeksforgeeks.org/todo-list-app-using-flask-python/ · https://github.com/cosmoshadab/todo-app-flask · https://github.com/bhavaniravi/flask-tutorial/blob/master/app/app.py