Moving Deeper Into the Cloud
In this final post, let’s take a look at how you can fully embrace and take advantage of cloud computing. Once your app is up on AWS, you have laid the foundation that will allow you to take advantage of modern cloud technology. I tend to look at cloud in two ways, the first being an application that runs in the cloud, the second being an app that is designed for the cloud. There are a number of things you can do to enhance both types.
The first true cloud offering that many people see is elasticity. This seems to be the use case that resonates with everybody. We always size out environments for the worst case scenario regarding capacity. That often results in excess capacity and excess cost. Elasticity can change that. Making an application elastic is a relatively straightforward process, but there are some key considerations. The first is that the app must be able to scale horizontally. The second is that you cannot have dynamic data stored on app servers. These servers are going to come and go, so it should be easy to see why that would be a problem.
There are a number of tools that Amazon provides to assist with making your app scale out. First, there is the auto scaling toolkit that allows you to execute actions based on environmental conditions such as CPU or RAM usage. The second is the (ELB) Elastic Load Balancer that communicates with the auto scaling toolkit as required nodes drop in and out of the enjoinment. A key component of this is CloudWatch, providing extensive insight into the Amazon platform. You can use it to monitor or notify you of changes in your environment, much like the same tools you use today.
As you continue to look around the AWS console, you will notice additional items such as Amazon’s email service, SES. This is a cloud based email service, removing the burden of hosting mail servers. A similar service, RDS, is offered for databases. When using RDS, you connect to the database as needed, and everything behind the scenes is taken care of for you. To take the concept of RDS a bit father, there are services such as Beanstalk that remove the need to maintain application servers.
To summarize the process of moving your first app to the cloud, you want to first evaluate your target app. Look at the data it uses and its overall architecture to make sure it is a good fit. Once you have a target app, build out an environment in the cloud that is as identical as possible to your existing environment. It should almost be like a DR site. After you have the systems built, your apps installed, and your data loaded, it is time to come up with a migration strategy. Use the existing tools and techniques to perform the migration. When you have things running in the cloud, you then can start to look at elasticity or other cloud specific features.
As you become more comfortable with cloud, there will be plenty of room for growth and new additions to your environment. Take a look at moving your databases to RDS or your applications to Beanstalk.
You want to get people on board with your cloud migration so that you can move forward with new and innovative cloud solutions. The smoother the first migration goes, the better your chances of that will be. To learn about our cloud infrastructure services, please visit our website.