Microservices Architecture on Azure Fabric Services:
Azure Service Fabric is a distributed systems platform that packages and deploys microservices-based applications Easy, fast and on-demand scalable and reliable. It helps to avoid complex infrastructure and address challenges in the development and management of cloud native applications.
Microsoft Azure Service Fabric provides the necessary mechanisms for building microservices-based applications. Under the hood it facilitates the capabilities of the bottom.
- Provides the necessary APIs to build microservices applications
- Manages state for services in microservices applications
- Provides hosting mechanism for microservices based applications
- Handles scaling to independent services in microservices applications
- Microservices guarantees high availability by spinning up a new service instance for the application when one of the instances goes down,
- Provides mechanism for monitoring node and service instance health,
- Helps in managing the life cycle of microservices application Using a feature-rich and intuitive dashboard.
- Provides everything needed to build, manage and deploy microservices based applications.
The major benefits of using Microsoft Azure Service Fabric are:
- fast deployment time – Creating a VM instance can be time consuming. In Service Fabric, VMs are deployed only once to form a cluster that hosts the Service Fabric application platform. Since that time, application packages can be deployed to the cluster very quickly.
- high density hosting – In cloud services, a worker role VM hosts a workload. In Service Fabric, applications are separate from the VMs that run them, which means you can deploy a large number of applications to a large number of VMs, reducing the overall cost for large deployments.
- The Service Fabric platform can run anywhere that has Windows Server or Linux machines, whether it’s Azure or on-premises. The platform provides an abstraction layer over the underlying infrastructure so that your application can run on different environments.
- distributed application management Service Fabric is a platform that not only hosts distributed applications, but also helps to manage their lifecycle independently of the hosting VM or machine lifecycle.
- Deploy and develop services at the lowest cost and highest speed,
- Low cost due to rapid service response to meet changing business requirements.
- Exploit the broad skills of developers in the mainstream market, for example it is not necessary to use specialist developers because services can be built through widely used developer languages.
This figure shows the architecture of Azure Service Fabric for microservices deployment,
Architecture consists of the following components:
Service Fabric Cluster – A network-connected set of virtual machines (VMs) in which your microservices are deployed and managed.
Azure Load Balancer – a. after making Azure Fabric Service The cluster is a ready to use cluster load balancer. Azure Load Balancer is created and configured with our public IP address and all traffic is redirected to Azure Load Balancer and it is responsible for redirecting to specific API Gateway based on load.
Azure Active Directory – The Azure Fabric Service uses the 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.
virtual network – By default, the Azure Fabric service creates a virtual network to which agent nodes are connected. Which lets you control things like subnet configuration, on-premises connectivity, and IP addressing.
virtual machine scale set – Virtual Machine Scale Set allows you to create and manage clusters of homogeneous, load balanced and autoscaling VMs. It also provides fault and upgrade domains.
nodes – Nodes are VMs that belong to the Service Fabric cluster.
Azure API Management – In this architecture, API Management acts as an API Gateway that accepts requests from clients and routes them to your services.
Azure Key Vault – Use a key vault to store any application secrets used by microservices, such as connection strings.
data store , microservices architecture Storage data should not be shared between one service to another. Microservices must be independent of each other’s services so that any service can be developed, built, and deployed independently at any time. Data should not be stored in local cluster as it will be lost when we always deploy, data should be stored in some external services Azure SQL or Cosmos DB.
Azure Logic Apps – 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 Storage – Highly available, widely scalable, durable and secure storage for a wide variety of data objects in the cloud. Azure Storage Data Objects can be accessed from anywhere in the world over HTTP or HTTPS via a REST API.
Azure Container Registry – Container Registry to store private Docker images, which are deployed in a cluster. Azure Fabric Services can authenticate to the container registry using their Azure AD identity.
azure monitor – Azure Monitor collects and stores metrics and logs, application telemetry, and platform metrics for Azure services. Use this data to monitor applications, set up alerts, dashboards, and root cause analysis of failures. Azure Monitor integrates with the Azure Fabric service to collect metrics from controllers, nodes, and containers.
sendgrid – Sending mass corporate emails improves their complexity and the deliverability of business application-generated emails.
azure defender Microsoft Defender for Containers is a cloud-native solution used to secure your containers so that you can improve, monitor and maintain the security of your clusters, containers, and their applications.
Azure Pipelines Azure Pipelines is a cloud service that we can use to build and test our code projects automatically. The Azure pipeline has a lot of capabilities such as continuous integration and continuous delivery to regularly and consistently test and build our code and ship it to any target.