Microservices Flashcards

1
Q

What are microservices?

A

Microservices is an architectural style that structures an application as a collection of services that are:

  1. Highly maintainable and testable (enables rapid and frequent development and deployment)
  2. Loosely coupled (with other services, enables a team to work independently the majority of time on their service(s) without being impacted by changes to other services and without affecting other services)
  3. Independently deployable (enables a team to deploy their service without having to coordinate with other teams)
  4. Owned by a small team (essential for high productivity by avoiding the high communication head of large teams)
  5. Oraganized around business capabilities

The microservices architecture enables the rapid, frequent and reliable delivery of large complex applications. It also allows an organization to evolve its technology stack.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the Monolithic Architecture pattern?

A

The application is deployed as a single monolithic application, for example one or more Java WAR files that run on Tomcat, exposing various services and endpoints.

  • Simple to develop, deploy and scale with load-balancer.
  • As the application and team grows, becomes more difficult to understand and modify so dev slows down. Modularity breaks down over time since no hard module boundaries. Quality of code declines over time.
  • Large code base bloat for IDE and web containers.
  • Continuous deployment becomes difficult
  • Scaling difficulities, one-dimensional, caching issues, no ability to separate service resource requirements and maintain efficiently.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly