Red Hat® Ansible® Automation Platform makes it possible to automate one of the most troublesome and time-consuming processes in your IT department: migration.
Migration is the process of upgrading your IT infrastructure by moving from the use of one form of hardware or software to another. This could involve moving from physical infrastructure to virtual, virtual to cloud, clouds to containers, or any combination of these. It could also mean moving from one operating system to another or moving between software programs.
For the purposes of this article, we’ll take a look at application migration and how using Red Hat Ansible Automation Platform to automate that migration can cut the time, money, and headache that migration usually comes with.
Migration: The manual approach
Typically, manual migration of any application or service is a process that’s complicated, prone to errors, is difficult to consistently repeat, and usually involves making a list to be gotten through, such as:
- Deploy servers into an environment
- Configure operating systems by following your deployment checklists and guides
- Spot-modify configurations as needed until everything works
- Repeat this process for every environment, application, deployment, etc.
Replicating means doing these steps over and over again and is very manual, which can mean errors are much more likely. Different systems administrators will have different methods and tools causing more disparity between applications as they are migrated.
In the long run (which becomes a very long run), this approach to migration just doesn’t work efficiently. Each deployment is different, has to be treated individually, and is "build-once, run-once," meaning it’s not repeatable.
And each manual repetition is just similar enough to those you’ve already done that confusion and errors are likely. Which means going back and finding the problem, fixing it, and finding all the other places it was made and fixing those as well.
Because the migration process is so nuanced and manually involved, upgrading and taking advantage of the "next big thing" in technology (like containers or edge computing) becomes hugely difficult and a dreaded undertaking.
In fact, when talking to operations teams you will probably find that unless something is a major problem, it is not getting looked at. All requests are reactive rather than proactive, causing more and more backlog for their teams.
Define, deploy, discover
The good news is that you can greatly simplify the migration process, get work done faster, and free up your staff to focus on bigger issues by implementing automated migration.
Even better, automation with Red Hat Ansible Automation Platform takes you through the process of automating your migrations with a recommended 3-step process: Define, deploy, and discover.
This approach is predicated on automating the smallest things first, becoming comfortable with the process (i.e. seeing what works and what needs fixing), gaining confidence and knowledge of the nuances of the system or process, and then applying what you’ve learned again and again without starting from scratch each time or making unnecessary changes.
- Define: Determine each component to be automated separately, accounting for order/process along the way, and then pull them together in an Ansible Playbook (more on playbooks in the next section).
- Deploy: Use your component definitions/automations to do a deployment and test it out.
- Discover: Each time you apply your automations, test the app or software as it has been deployed, and discover what gaps there are. Then you can go back and redefine that particular aspect, and then start the 3-step cycle over again. The cycle becomes faster and faster each time as you learn to identify what will and won’t work and how to fix each problem that arises.
What’s a relief to know is that you don’t have to get everything 100% correct from the outset. The more you tweak, fix, and refine as you go, the more smoothly your process will run and the more nuanced and thorough it will be.
Automating is not an all-or-nothing paradigm. Small incremental steps to automation that everyone on a team can benefit from are much better than one or two automation engineers hoarding all the necessary knowledge. Automation needs to be a common language that everyone contributes to, and takes advantage of, within an organization.
This approach is a continuum that allows you to learn as you go until your entire migration is completed and automated. You’ll have so much less to do the next time migration is necessary. You can move to new environments in much less time, taking advantage of newer technology as it becomes available. Incremental updates and improvements are shared by all system administrators, rather than an individual.
Once you define each component and step in the migration process, you can string them together in a repeatable playbook and start applying it to the new environment.
Ansible Playbooks record and execute configuration, deployment, and orchestration functions. They offer a repeatable, reusable, simple configuration management and multi-machine deployment system that lets you effectively record the migration process and repeat it as necessary.
In this way, automating with Red Hat Ansible Automation Platform allows for rapid iteration and rapid repetition and as a result, the gaps and problems that might exist are exposed and addressed much, much more quickly.
Repeating the process
When you’ve defined everything (infrastructure, application, firewall configuration, etc.) using the same process, it becomes easier to pull out the piece you need and swap out with a new one (for example, pulling out the infrastructure piece that deploys an Amazon virtual machine and swapping it with a Rackspace virtual machine).
Regardless of your development model, you have the ability to easy and rapidly deploy, which is critical to your ability to easily migrate. The end result is that you end up with a much more fluid process to pick up the pieces of your system and move them wherever you want.
Keep in mind
Here are a few things to remember:
- Make sure you capture every component and process.
- Avoid manually touching your systems as much as possible, automating what you can instead.
- Don’t give up or get overwhelmed. Get started by automating the little things—the one or two things you do most frequently and consistently— and that will start impacting the amount of time you have.
- Migration is about repeatability. The more you can repeat, the easier it is to pick up a process and move it somewhere else.
- Consider all the dependencies. There could be multiple dependencies keeping your system local, like a web app that’s dependent on a hard-to-move database that will need to be moved.
Red Hat Ansible Automation Platform includes all the tools needed to implement enterprise-wide automation, with the training, certification, and support you need to get started and keep running. We have multiple training courses and certifications, plus the Red Hat Learning Subscription (which you can try at no cost for 7 days). Get familiar with how Red Hat Ansible Automation works with this video or visit the product page to learn more.