by Christophe Primault
Published on 16 March 2012
The cloud has become the hosting platform of choice for many startups and new applications because it is not only cost effective, but also easy to scale. With this shift of technology, many enterprises are looking to make the switch for their applications as well.
Today we bring you a guest post from Toby Owen, solution leader for Hybrid Cloud at Rackspace, about some best practices on how enterprises can move their app to the cloud.
Most apps are built for a specific stack of technologies. For example, with traditional hosting your environment has a high propensity to scale up, meaning that you can add more RAM or processing power, to accommodate your application. The cloud presents another option, horizontal scaling, where you can add more nodes to handle the increased load. The trick, however, is to ensure that your application can grow in this manner.
As enterprises look to move their application to the cloud, they should consider these points: evaluating the business need, timing with the development cycle, familiarizing your team with cloud, getting your feet wet and then moving the more complex pieces.
Evaluating the Business Need
Enterprises should really evaluate the reasons why they want to move to the cloud. Doing this will increase alignment across the team and facilitate the process in the next few steps.
There are several reasons that many enterprises look to move to the cloud:
Once you have identified the reasons that you are moving to the cloud, you can begin to set a strategy for the transition. Our Rackspace Enterprise Advisory Services team can facilitate a cloud readiness assessment to help answer some of these questions and help you with further defining the strategy.
Timing with the Development Cycle
As you think about migrating to the cloud, you should consider that it is built fundamentally different. There are some assumptions that go along with the application architecture that are based on the hardware that it is going to be built on. Consequently, one of the best times to make the transition to the cloud is during a major shift in your development cycle.
Maybe the enterprise is looking to make a major rewrite to the code or design a significant version. Those are good times to tackle larger underlying architecture projects. That's the time to think about database and storage architecture.
Familiarizing the Team with the Cloud
You should not underestimate getting the complete team familiar with the cloud, not just the developers. An application by itself is just one layer of the stack. Moving to cloud, more of those layers come into play. You are changing both the hardware with the hosting technology.To prepare for this, your company will be shifting to a more DevOps mentality.
There is this movement of developers doing more operational work, and IT and operations guys are moving into the developer space. This can be difficult to overcome and I asked a customer how they were able to get over this challenge. He told me that he physically moved his dev and IT teams to sit next to each other in the office so that they have to work on these things together.
Enterprises should be aware of this shift and understand the human aspect as you shift to the cloud. Align both your developers and operations staff and give them a smaller project to utilize cloud technologies. This will not only familiarize them with the cloud, but also with how best to work with each other.
Getting Your Feet Wet
There will be some parts of your app that will be able to make an easier transition to the cloud. Web servers are a good first step into the cloud. You can load balance them, and you can scale them horizontally. If you already have a large web application you are probably already using load balancers and multiple web servers so there is very little you need to do other than load the code on a web server and set up the load balancer.
In addition to moving your web tier to the cloud, you should consider serving up your static content with Rackspace Cloud Files and enabling it over a Content Delivery Network (CDN). You will not only be able to serve your images and media up faster to the end user, but also avoid over-taxing your server by having these files located on the CDN.
Moving the More Complex Pieces
After your team has become familiar with the cloud technologies and working with each other, the business can then look to move some of the more complex pieces of their app to the cloud. Databases tend to be harder to move to the cloud because there is so much built on top of them that it could be difficult to replace the database architecture.
Regardless, there are advantages with moving the database to the cloud. Enterprises can take advantage of the horizontal scaling that a NoSQL type database can provide. However, this can be a task that many enterprises are not quite comfortable with taking on. If you are talking about going from MySQL to Cassandra (an example of a NoSQL database) that usually requires a ground up rebuild. The way that the app interacts with the database might make it better to rewrite the app.
Image courtesy of Flickr user demandaj