C# Modifiers

microservices

According to the paper written by Martin Fowler and James Lewis here, “the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies. “ The microservice architecture style has the following pros and cons.
Pros:
    - Enable you to select the most appropriate technology stack. No need to rely on a framework to do everything:
    - Have much smaller codebases so deployment and build times are much quicker
    - Allow you to release smaller change sets
    - Are easier and more cost-effective to scale, as they allow you to focus on scaling just those services that need scaling and not your whole application
Cons:
    - Increase the development time of new features at the beginning
    - Can make application refactoring difficult though techniques like API versioning can mitigate this
    - Introduce additional operational complexity as you have many moving parts that need to be monitored closely
In order to make the microservice work correctly, we will need to ensure the following four things are necessary. They also reflect the above definition and the nine characteristics listed in the paper.
1. Small Services◦Organization around business capabilities
    - Running in its own process
2. Service Discovery
    - Service running in its own process communicating with HTTP
    - Deployed as a fully self-contained component
    - Smart endpoints and dumb pipes
3. Automated Monitoring and Management◦Infrastructure automation
    - Design for failure
    - Decentralized governance
4. Low Friction Deployment
    - Can be individually scaled and updated
Azure Service Fabric is a platform for reliable, hyperscale, microservice-based applications. It is available both on-premises with Windows Server 2012 as well as in the cloud with Azure.

Comments