Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin urna odio, aliquam vulputate faucibus id, elementum lobortis felis. Mauris urna dolor, placerat ac sagittis quis.
Monolitik adalah suatu arsitektur aplikasi berupa 1 codebase yang memiliki banyak modul dimana setiap modul memiliki fungsi yang berbeda beda.
Microservice adalah suatu arsitektur aplikasi dimana setiap aplikasi memiliki codebase yang kecil dan hanyak memiliki 1 tujuan.
This differs from the traditional model, where a separate data layer handles data persistence.
You can update a service without redeploying the entire application, and roll back or roll forward an update if something goes wrong. Bug fixes and feature releases are more manageable and less risky.
If a service goes down, it won’t take out the entire application. However, that doesn’t mean you get resiliency for free. You still need to follow resiliency best practices and design patterns. See Designing resilient applications for Azure.
Teams can pick the technology that best fits their service.
Services can be scaled independently. At the same time, the higher density of services per VM means that VM resources are fully utilized. Using placement constraints, a services can be matched to a VM profile (high CPU, high memory, and so on).
Individual teams are responsible for designing and building services. Avoid sharing code or data schemas.
Use the best storage for each service and data type.
Avoid leaking implementation details. APIs should model the domain, not the internal implementation of the service.
Causes of coupling include shared database schemas and rigid communication protocols.
The gateway should handle and route client requests without any knowledge of the business rules or domain logic. Otherwise, the gateway becomes a dependency and can cause coupling between services.
Functions that are likely to change together should be packaged and deployed together. If they reside in separate services, those services end up being tightly coupled, because a change in one service will require updating the other service. Overly chatty communication between two services may be a symptom of tight coupling and low cohesion.
Use resiliency strategies to prevent failures within a service from cascading. See Resiliency patterns and Designing resilient applications.
Individual teams are responsible for designing and building services. Avoid sharing code or data schemas.
Use the best storage for each service and data type.
Avoid leaking implementation details. APIs should model the domain, not the internal implementation of the service.
Causes of coupling include shared database schemas and rigid communication protocols.
The gateway should handle and route client requests without any knowledge of the business rules or domain logic. Otherwise, the gateway becomes a dependency and can cause coupling between services.
Functions that are likely to change together should be packaged and deployed together. If they reside in separate services, those services end up being tightly coupled, because a change in one service will require updating the other service. Overly chatty communication between two services may be a symptom of tight coupling and low cohesion.
Use resiliency strategies to prevent failures within a service from cascading. See Resiliency patterns and Designing resilient applications.
Strangler Pattern adalah suatu metode migrasi arsitektur monolitik ke microservice dengan cara mengganti suatu fungsi atau module tertentu dengan service baru yang berdisi sendiri diluar codebase induknya.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin urna odio, aliquam vulputate faucibus id, elementum lobortis felis. Mauris urna dolor, placerat ac sagittis quis.