Microservice Architecture:
Microservices is an architectural style that structures an application as a collection of services that are. Highly maintainable and testable. Loosely coupled. Independently deployable. Organized around business capabilities.
Microservice architecture is increasingly adopted by organization as an inbuilt mechanism for developing enterprise application. Cloud based solution such as software as a service (SaaS) and platform as a service (PaaS) is driving the market. The advantage of microservices architecture includes improvement in fault isolation system, provide easy platform for new developer and helps to eradicate long term commitment on single technology.
Why do we need microservices in architecture?
Microservice architecture allows you to maximize deployment velocity and application reliability by helping you move at the speed of the market. Since applications each run in their own containerized environment, applications can be moved anywhere without altering the environment
Client – The client apps usually need to consume functionality from more than one microservice. The client needs to handle multiple calls to microservice endpoints if that consumption is performed directly. Client apps need to be updated frequently, making the solution harder to evolve.
Static Content – After the microservices communicate within themselves, they deploy the static content to a cloud-based storage service that can deliver them directly to the clients via Content Delivery Networks (CDNs).
API Gateway – The API Gateway is responsible for request routing, composition, and protocol translation. It provides each of the application’s clients with a custom API. For most microservicesbased applications, implementation of an API Gateway is very important for a single-entry point into a system. Service discovery – All the microservices are assigned to the DNS entries which will be used by API Gateway to identify the services dynamically based on the request from client and redirect it to the specific services.
Advantages of using an API gateway include:
- It decouples clients from services. Services can be versioned or refactored without needing to update all the clients.
- Services can use messaging protocols that are not web friendly, such as AMQP.
- The API Gateway can perform other cross-cutting functions such as authentication, logging, SSL termination, and load balancing.
- Out-of-the-box policies, like for throttling, caching, transformation, or validation.
SendGrid – strips large scale sending of corporate emails of their complexity and the deliverability of a business’s application-generated email is improved.
Azure Storage – Highly available, massively scalable, durable, and secure storage for a variety of data objects in the cloud. Azure Storage data objects are accessible from anywhere in the world over HTTP or HTTPS via a REST API.
Azure Logic Apps / Scheduler – Is a cloud-based platform for creating and running automated workflows that integrate your apps, data, services, and systems. With this platform, you can quickly develop highly scalable integration solutions for your enterprise and business-to-business (B2B) scenarios.
Azure Active Directory – AKS uses an Azure Active Directory (Azure AD) identity to create and manage other Azure resources such as Azure load balancers. Azure AD is also recommended for user authentication in client applications.
Azure Pipelines – Azure Pipeline is a cloud service that we can use to build and test our code project automatically. The Azure pipeline has a lot of capabilities such as continuous integration and continuous delivery to test and builds our code and ship to any target regularly and consistently.