Why Another Architecture?
  • Driven by same age old tested and trusted principle of Divide and Rule.

    Divide the system into smaller(micro) and more manageble services

  • Yes, it still can't beat the law of conservation of challenges.

    Total amount of Challenges always stays the same. It can only be transformed from one form to another.

  • It just tries to divide it into a number of smaller and manageble challenges.

    Not always though. Depends on how you divide the system in the first place.
Microservice
  • Service is a self-contained and well-defined functionality, which is independent of the state of another such service.

  • A Microservice is a self-contained functionality(ies)/service(s) with well-defined interface (API) and its collaborations with other such microservices.

  • And most importantly it is independently deployable
Benefits
  • Autonomy.

    In technology adoption: Allows teams to choose the right tools and technologies best suitable for the service leading to better performance, efficiency, productivity and latest technology adoption.

    In update, deploy: Allows teams to update, deploy services autonomously as long as API and collaborations of the service has not changed, without taking the whole system offline.

  • Resilience

    The system continues to function even if one or more services fail leading to better user experience.

    The failed services can be fixed/recovered more rapidly without bringing down the entire system.

  • Agility

    Breaking the system into smaller chunks of functionalities/services speeds up development. It empower teams to create, test, and deploy small and frequent releases rapidly.

  • Scalability

    Services can scale up or down instantly as per the demand thereby optimizing resource allocation and cost (thanks to advancement of containerization technologies)

Challenges
  • Distributed Logging

    No single source of truth for developers and operations teams as loggings are scattered accross different services.

    There are tools available though for aggregating the logs.

  • Monitoring and Infrastructure Management

    Complicated as many moving parts exist.