Problem Statement:
The Company is belonging to Fintech industry Where they are running multiple application on Azure Virtual Machines which had its own set of problems which included manual configuration, Lack of collaboration between dev and ops team, longer deployment cycles and many more. So, they were looking for hosting those applications using DevOps practice in-order to have better scalability as well as it is a cost-effective approach by using CI/CD pipeline by implementing different Azure Services including Azure DevOps.
Solution:
We have provided solution in which we have basically used Azure repos repository to store the code-base developed by the Developers as Azure Repos is a version control system that supports both Git. It provides a secure and scalable environment for source code management, allowing teams to collaborate on code, track changes, and manage branches and based on Latest commit status we have also added a Dockerfile which generally allows us to dockerize the application of our client in and deploy it into interactive docker containers whenever a new commit is made. We have also automated the process of deploying the application on to Azure Virtual Machine by using various Azure services such as Azure Pipeline. Azure Pipelines supports building and deploying applications across various platforms, including Azure, on-premises, and third-party cloud providers. It allows you to define build configurations, execute builds, and produce artifacts for deployment. Azure Pipelines also offers continuous integration and continuous delivery (CI/CD) platform that automates the build, test, and deployment processes. It supports building and deploying applications to various platforms, including Azure, on-premises, and third-party cloud providers. It also integrates with popular development tools and frameworks. We have also used Azure Artifacts which helps as a package management system that allows teams to create, host, and share npm, node and Maven packages. It provides a centralized repository for managing and versioning reusable software components which is the main aspect of implementing the DevOps ci/cd practices which reduces the time of deployment and enhances the scalability, availability and reliability of applications deployed.
After Deployment Next Problems:
As per client Requirement they wanted to migrate from one AKS Cluster to another AKS Cluster with proper working condition and Azure load balancer and Azure Traffic Manager should be pointing to same.
Next Solution:
We have faced lots of challenges to migrate from one cluster to another cluster. But finally, we found the solution that “Clone of Task Definition from one Cluster and then we can reuse same with another cluster Services” But the problem is both Task Definition should have same port no. In-order to solve this issue, we have created one more Azure Virtual Machine under the same Cluster then we lunched Task Definition with same port no which was working fine.
Next job was updating CI/CD Pipeline in Azure Pipeline to deploy the applications into migrated Cluster, “We have updated Cluster details on existing Pipeline with proper input then all setup was working fine with end-to-end connectivity. Finally, we have updated endpoints into to the Azure Load balancer and traffic manager then final endpoints were working fine and application were up and running.