With the recent announcement of Microsoft Azure about the discontinuation of Azure Container Services (ACS) by January 2020, users are encouraged to move their distributed infrastructures across to the newer Azure Kubernetes Services (AKS). However, the alternative orchestration options such as Docker Swarm will continue its storage support for its users, Microsoft Azure Cloud Services will no longer run it for them. So the question here is, are you ready for the container invasion? What exactly is Kubernetes and how to approach it for migration?
What will happen to the existing ACS apps?
Microsoft Azure Services have assured the application build on the ACS will not stop running suddenly after the ACS gets outdated. However, the APIs that manages the application will be blocked, so the users will have no control over the applications and will not be able to use Azure tools to add or update new clusters or even scale the existing services. There will be no support from the Microsoft Azure team, even if the user tries to manage the running codes using their own tools as it will put a limit over the capabilities.
Preferably, users will be locked into the older versions of the current orchestration framework and will not be able to rely on the automated security updates, so far. Thus, to help and assist the users to carry out successful migration of their applications, Microsoft Azure cloud services will provide a reliable base for Azure Kubernetes Services (AKS). Since the underlying orchestration concepts and tools are different for the alternatives, each having different container models, significant code change will be nearly impossible while migrating the applications.
Suggested reading – 5 Reasons Why Azure Provides an Edge in Dedicated Web Hosting
Know how to migrate from ACS to AKS
First of all, it is very important to consider the economic perspectives of the migration. Moving from ACs to AKS or towards an open source version of Mesosphere DC/OS should not have a consequential impact on billing. If the user wants to migrate towards the Docker Enterprise for Swarm or the Enterprise release of the DC/OS, license for the same is required along with the infrastructure cost of the Azure Services. So, it is advisable to opt for AKS to have one monthly payment method.
Also, once the user decides to move from Docker Swarm or DC/OS to ACS instance, working with the full product does not require any significant engineering effort, at all.
Suggested reading – Reasons why Azure is the best place for all your Applications and Data
Moving Kubernetes from ACS to AKS
AKS has added a lot of management feature on Microsoft Azure cloud computing services from the past year as it has matured and grown. Hence, it has become one the most promising solution for deploying Kubernetes-managed applications on Azure. Features like virtual Kubelet via Azure Container Instances support AKS to take advantage of ACI’s higher level container management, eventually reducing the workload associated with the existing Kubernetes to a great extent.
Although, issues exist while moving Kubernetes from ACS to AKS that might require some changes to be done to the application architecture, helping users to handle the differences between ACs and AKS. Since AKS is a managed Kubernetes, it needs to be handled well smoothly run the application. With the help of Azure Managed Disks, AKS controls the storage directly by adding capacity as required.
Users need to upgrade the Kubernetes version they are using for their code that can be handled well in a development environment. After deployment, the application gets managed by the control panel of AKS with support for dynamic scaling. Also, the user must check for the AKS APIs support as there are API differences between AKs and ACS for monitoring and debugging.
Suggested reading – The rising popularity of Microsoft Azure Cloud Services: An Insight
Managing Kubernetes Storage and Deploying to AKS
While migrating a stateless application form ACS to AKS, users can deploy the process onto a new cluster and let AKS deploy and start the containers. Once the cluster runs, the code can be tested before switching public IP addresses from the ACS instance to AKS.
Whereas, the complication occurs with stateful applications where the users are alerted for possible extended downtime. Users can set up a failover replica of the application on AKS or let it replicate the critical data. Once the data syncs with the existing ACS application, it can fail over from the ACS application to AKS, before redirecting the traffic to AKS.
Migrating the storage to managed disks is a tedious task and require significant downtime if the data is heavy. The user first stops the ACS code writes, shut it down and take a snapshot of the disks. The snapshots are then used to create new disks that are used as AKS Persistent Volumes. Once deployed, the application is tested before sending the traffic to the AKS.
The method to deploy the code to AKS is almost similar to deploying code to any other Kubernetes cluster. Users start by creating a cluster in AKS, using similar node definition as used in ACS. Then edit the code to support the AKS definitions and locations, and deploy the existing CI/CD pipelines to the new service host. Once the code gets updated, it is tested using the existing test tools and techniques before migrating the users to the new service.
Now the users are all set to take advantage of a fully managed, auto-scaled environment using the support of Virtual Kubelets and get automatic updates. This protects the users from security issues. Microsoft latest addition of the Kubernetes update is certain to take the storage technology to another level. If you are also looking for such updated cloud and storage services for your application to keep up with the pace of transforming business landscape, we at i2k2 Networks are here to help you. Being a 20-year old trusted Microsoft Azure service provider in India, we offer a full range of Deployment Planning Services (DPS) for Microsoft Azure Cloud Computing – giving the best of both the worlds – PaaS and IaaS. Call us at +91-120-466-3031 | +91-971-177-4040 or can write to us at email@example.com.