I was recently asked how a specialized application could be moved to the cloud. The vendor went to a group of folks who claimed to put applications in the cloud and basically never heard back from them. Why? Most cloud providers want tenants to do most if not all of the work of moving their applications into the cloud. When providers do offer consulting to help you move your applications, it is either very expensive or not very good. Why is this the case? The simple answer is that the cloud provider does not know your application and therefore first has to learn it. So, how can you move your applications to the cloud? 
There are some very good consulting companies out there that move applications to the cloud all the time. This article is not about them. It is about how to use cloud services to benefit your application and its development, and it is about what to look for as you are moving to the cloud. But first, you need to answer several questions:

  • Why do you want to move the application to the cloud?
  • What is the business driver behind the move?
  • Who are the clientele of the application, and how does moving to the cloud benefit them?

In effect, you need a plan for moving to the cloud as well as a fair amount of application knowledge, such as:

  • How many tiers are in place?
  • How is data accessed?
  • What type of data is accessed?
  • Are any existing APIs in use?
  • Do those APIs exist within the platform that makes up any cloud today?

In essence, you need to do quite a bit of research about your application. In the case I was questioned about, the application was made up of Excel, Word, a website framework (templates), and an FTP server to transfer data around. Some of the items were automated; some were not. Is this application a candidate for the cloud? Perhaps within the realm of IaaS, but not on any existing PaaS without quite a bit of work, effort, and cost.
To determine whether an application is a good candidate, there is one last question to ask:

  • What is the future direction of the application?

Now, this is a tricky question, as the future direction of the application I am talking about is fairly modern, involving mobile devices’ ability to make an application easier to use and an overall more viable solution.
When you look at everything together, there is an inflection point at which moving to a better platform makes sense. However, this is not client/server but a web application that is driven by the data, not the user, in many ways. In order to move this application, a few things need to be developed, and it may just be easy to do so:

  • Create a RESTful API to query the data by the mobile device
  • Create a mobile application
  • Expand the capabilities of the back end to process data for multiple tenants at once

After answering all these questions and having a basic plan, we can architect a cloud solution based on requirements and our understanding of where the business is going instead of just looking at cloud as a solution without a problem.
Cloud is not the solution for all applications, due to politics, security, etc. But cloud can be used to augment many applications to improve their availability and usability. This can only happen if the application is migrated to the cloud following a well thought out plan with a series of goals that mesh with your business goals. Plan carefully, based on your business requirements. For example, if all you need is to host VMs in the cloud so you can migrate your data center, this is far easier than creating a brand new application delivery model.
What are your business goals for using the cloud? What are your plans?