Planning Your Trip to the Cloud
Over the next few weeks, I am going to walk through the process of moving your first app to AWS. The goal here is to lay out a plan that introduces as little risk as possible to ensure a clean migration. We want to obtain buy-in and instill confidence across the organization that will lead to additional cloud projects that leverage newer cloud-specific technologies.
After hearing all the hype about Amazon and AWS, you have finally decided to break the ice and move one of your applications to the cloud. Any time you move to a new technology platform, many parties are going to be intrigued, curious or even apprehensive. Because of the apprehensive nature of many people in technology, you want to make sure that your transition to the cloud goes as smoothly as possible. Luckily, Amazon provides a number of tools and features to make the transition a clean one.
The first thing you need to do is figure out what you want to move to the cloud. Typically, the most successful moves to Amazon are development environments, stand-alone applications and data storage. Once you have selected your candidate app, there are going to be many things that you need to consider. The first is whether or not your application is suitable to move to the cloud.
There are nuances that you need to know. For example, you are going to lose console access to many of your systems. At first, this may seem like a burden. But once you realize that with cloud computing you often decouple your data and applications from your compute power, it is no longer a hurdle. Just like any other technology out there, the cloud may be a great fit or it may not be. If you have a highly scalable ecommerce app, you are probably in luck. If you manage low latency trading applications, the cloud probably is not the best fit.
Once you have decided what to move to Amazon, you need to take a look at your application architecture. Can your application be completely isolated from external dependencies? That is going to be one of the biggest factors in whether or not a move to the cloud is practical. It is likely that your application will require external dependencies, so identify them and understand how moving to a cloud platform will affect things. Items to consider are transaction processing, data loading and required data access. An application that is constantly pulling from an external data source may suffer latency problems. However, an application that provides content to end users and doesn’t require many data sources, such as an analytics platform, will perform well.
In many ways, you need to ask yourself what would happen if you put part of your application into a colocation facility. For initial deployments, this is a very good way to think about how bandwidth limitations and data transfer limits may affect you. Keep in mind that as you expand more into the cloud, you have the opportunity to take advantage of cloud-specific features to assist with overcoming latency and data transfer issues. Each day, more and more technologies are emerging that allow you to overcome some of these original limitations. For example, more and more providers are offering solutions that are logically adjacent to Amazons’ data centers. This allows you to use features, such as Amazon Direct Connect, to attach your data centers to Amazon’s Compute Cloud using a high speed link. Even if Amazon does not give you exactly what you want, there are always workarounds.
The first time I touched a cloud environment, I was completely lost. There was so much misinformation out there, and I was not sure what I was looking for. I quickly realized that Amazon’s cloud platform is composed of the same things you see in a data centers every day. It is the nomenclature that is different. Servers are under EC2. Storage is S3, EBS, or Glacier. Networks are called VPCs (Virtual Private Clouds). You are no longer going to see your systems. But with today’s lights out data center model, that is not always necessary. Once you are up on AWS, you do not have to manage that hardware anyway.
Moving to the cloud can lay the foundation for many great things to come, but you have to get there first. To make sure that you get there smoothly, take a careful look at your app and determine your bandwidth requirements, data sources and application dependencies. Those three items will tell you if the cloud is a good fit. If you have determined that you are ready, the next step is to build out your infrastructure on the cloud.
Next time, we will look at some of the specifics for moving your application to AWS.