Organizations are busy working on creating cloud migration paths for their current applications and data stores, assuming that these systems can easily be ported. What is often overlooked is that most applications weren’t created with the cloud in mind, so expecting them to scale to cloud environments isn’t realistic. Unless you have the team to rewrite these applications for running in virtualized or cloud environments, the movement to a cloud model will need to be done in several steps up a steep learning curve.
First, taking inventory of the applications and all dependent systems including other applications, data stores and 3rd party tools. These need to be mapped, as if there are dependent systems and they are not reconnected, it could affect productivity and availability of other systems. Most often, the first applications and systems that should be transitioned are legacy ones that are still used for back-end functions, but require maintenance and dedicated servers that just aren’t cost effective. Other independent applications such as CRM and email tools are good candidates because they can be remapped fairly easily within the corporate network.
The second phase should be the automation and repackaging of applications that do not require recoding. This could be as simple as updating applications that run automated tasks such as database analysis.
The third stage of rewriting code to run in cloud environments brings a lot of complication. Redesigning code to use updated desktop frameworks to eliminate obsolete or unsupported code, or using an application virtualization solution is an option, but organizations that use this method need to understand that compromises are required because these virtualization solutions are often still in infancy stages and can’t necessarily scale or provide distributed random accessibility, and sometimes come with high price tags or specialized skill requirements.
It’s important to note that it is often the costs associated with application virtualization that hinders cloud projects. It is from these cost issues that a new approach has emerged called Application Modernization.
Many service providers are now offering professional services around application modernization. This involves outsourcing the task of updating legacy applications to support web interfaces and cloud infrastructures. There are also software modernization solutions that allow for the integration of older applications into new virtualization or cloud optimized ones.
Regardless of which option you choose to use, there are benefits and challenges with each. Cloud and mass adoption of virtualization is a newer trend, so it will take some time for these technologies to be commonplace and streamlined. The best thing we can do at this point is increase knowledge about these issues and work with vendors and other end-users to create as much content on best practices as possible.