Building a Cloud Infrastructure: Automated Migration


Building a cloud infrastructure is a complex process. If you are new to this topic, we recommend that you start by reading our introductory article on Cloud Migration first. Understanding the role of application discovery in cloud migration and generating cloud baselines is also important before attempting to build your infrastructure in the cloud. It is even more important to design a migration plan prior to the actual migration activity.

In this article, we will focus on the stage that bridges the design and the deployment of application components in your target cloud infrastructure—the Develop Stage. It is in this stage that we create a deployment plan, customize automation templates, and test their usability prior to provisioning the resources needed in the actual migration.

Working with DevOps Tools

Rolling out the infrastructure and application components can be challenging, but with the right tools, it can be performed with more ease. In IT-Conductor, we leverage DevOps tools such as Ansible and Terraform to automatically provision cloud resources, perform software installations, and migrate data from source to target based on your strategy for each system that you plan to move to the cloud.

In the Develop stage, we create the automation playbooks employing the principles behind Infrastructure as Code (IaC). We go through one scenario at a time and try to automate it unattended if possible. Then once all the units work, we develop the end-to-end orchestration using the built-in process designer in IT-Conductor.

Preparing the Infrastructure for Automated Migration

The initial setup entails the provisioning of virtual machines (VMs) along with the disk attachment and OS preparations. You can utilize Terraform to provision VMs in your chosen cloud provider (i.e. Microsoft Azure, Amazon Web Services, Google Cloud). The image below is a sample Provision VM activity calling a Terraform script from our repository.

 Terraform Activity
Figure 1: Sample Activity Instances for Terraform

It should be noted that different organizations may have different requirements. So, what we usually do at this stage is leverage an already existing automation template from our library and customize them depending on the requirements of our customer's environment.

Ansible Activity
 Figure 2: Sample Activity Instances for Ansible

Figure 2 above is another sample activity calling a script developed to automate the software installation and the configuration of resources required by the application (i.e. SAP HANA, Oracle).

Developing the Migration Workflow

A few organizations are already using Ansible and Terraform in performing the migration of resources from on-prem to the cloud. They are typically executed as singular units. These organizations often encounter challenges in executing it end-to-end. From setting up a jump box, pulling the Terraform/Ansible scripts to the jump box from the repository, executing the Terraform jobs in the terminal for provisioning, to executing the traditional interactive migration in the command-line or GUI, not to mention, the manual effort needed to monitor the completion of jobs before running the next one, it usually still takes organizations hours to execute jobs even with some automation in place.

IT-Conductor has taken these pain points into consideration and leveraged the built-in Process Designer in the platform to develop an end-to-end workflow where all the required steps defined in your migration plan are integrated to automatically trigger as you start running the process definition.

 Figure 3 - Process Definition for Oracle DB Migration to Azure Cloud
Figure 3: Sample Process Definition

This way, you no longer need a jump box, Ansible Tower, or Azure DevOps Pipeline, to store the pre-configured Terraform and/or Ansible scripts. You also don't need to monitor the completion of each step in your workflow, unless you want to, or if it's really needed—say, you got notified that a certain activity failed.

If you want to learn more about how Terraform and Ansible jobs are weaved together using the concept of Process Definition, you can read Unifying the Git/Terraform/Ansible Workflow through IT-Conductor Agentless Platform.

You can also check out the following articles to learn more about how the automated migration transpired for these migration scenarios:

The Takeaway

In summary, the Develop stage covers the creation of codes for the provisioning of the required resources, installing the application, configuring them to match the requirements of your source environment, and the actual migration activity itself where the data is transferred from the source to your target environment in the cloud. Depending on the level of automation you’re willing to execute, IT-Conductor can be used to make your migration significantly simpler and effortless.

We’re now on our fourth installment for the 5D's of IT-Conductor's Cloud Migration Strategy! In the last part of this series, we will focus more on the execution of the process definition developed in this stage. Stay tuned!

In case you missed our previous posts, you may give the following a quick read: