Are you stressing out about migrating to the cloud? Guess what? You are not alone.
Traditional software vendors are seeing their market share taken by SaaS offerings. Software vendors need to get into the cloud as soon as possible in order to compete. And enterprises are anxious to get into the cloud to reduce the costs of running their own data centers and IT infrastructure.
So take a deep breath, get in the Lotus Pose, and don’t worry. You’ll reach your state of zen as we present the three main methods of migrating software applications to the cloud.
- Straight Lift and Shift
- Re-Write the Application for the Cloud
- Analyze, Optimize, Migrate, Manage (AOMM) Method – Optimized Shift
Method 1: Straight Lift and Shift
This method is popular because of its relative ease. An application is lifted “as is” from the data center and placed in the cloud with the same topology, OS, or other infrastructure. It is basically recreating the exact data center environment in which it was running, only in the virtualized cloud environment.
This method requires that the selected cloud has the various OS and Virtual Machine (VM) configuration that matches up with the deployment topology that was used in the data center. One of the ways applications are shifted in this way is to encapsulate them in a container that insulates them from the differences between the old data center environment and the cloud environment.
The flexibility and elasticity of resources that make up cloud’s characteristics, are not fully taken advantage of, if at all, with this method. Because of this, the cost savings that are anticipated from moving to the cloud may not be captured.
Method 2: Re-Write the Application for the Cloud
Probably the most difficult and expensive method of migrating to the cloud is one that is widely touted as the best method. It may be the best if the only criteria considered is the extent to which the resulting application takes advantage of the cloud characteristics of elasticity and scalability.
Applications can be written to take advantage of cloud capabilities, such as elasticity, by utilizing the various cloud services to perform some of the common tasks that applications perform. Many clouds offer platform as a service (PaaS) layers in addition to the basic infrastructure as a service (IaaS) layers that are designed to help software developers construct applications that leverage the available cloud services and more fully utilize the dynamic characteristics of cloud. Finding or developing the necessary architect and developer skill sets to write applications that are designed from the ground up to be cloud applications is challenging. Finding ones that can re-write an existing application, which may have millions of person hours of development and testing embedded in them, can be doubly so.
Re-writing existing applications to be so called “native” cloud applications can be too expensive and too time-consuming to be practical. We’ve seen this type of effort by large software vendors attempting to create a cloud-based SaaS version of their application balloon from a $500K 6-month budget to a 2-year $2 million dollar sinkhole with no success. And for the SaaS market, every month you are not in the market with an offering, your competitors are eating away at your market share.
As cloud technology matures, the PaaS tools and techniques improve. Using the PaaS tools, especially ones aligned with particular cloud vendors, are also being increasingly used as a form of lock-in, providing an ecosystem that has its advantages, but at a cost. That cost is portability. That portability may be important in the future if you wish to move to another cloud, either for a better cost structure or because of security, privacy, or jurisdictional issues.
Method 3: Analyze, Optimize, Migrate, Manage (AOMM Method)
The third method combines the best characteristics of the other two methods by providing the swiftness of shift with the ability to exploit the high value benefits of cloud.
To do that, the application must be analyzed and its workload components discovered. Traditionally CIOs have looked at their workloads at a data center level, categorizing applications like Accounting, ERP, CRM and others as discrete workloads. Brought down to the level of individual applications, the workload concept consists of components of the application, such as database, message queuing, caching, authentication, and processing.
- Analyze: By analyzing an individual application to discover how it is architected and how its components form these micro-workloads, it becomes possible to optimize the cloud deployment topology for the application’s specific requirements. This enables a cloud deployment plan to be created that takes the application’s micro-workloads and deploys them to the cloud so that the application can take advantage of the cloud characteristics of elasticity, scalability, and flexibility.
- Optimize: When an application is decomposed into micro-workloads, each of those micro-workloads can be configured to utilize the cloud in a more efficient manner. The core processing part of an application can be deployed into VMs that are optimally configured for that task and load-balanced in an elastic way that allocates more resources when needed and scales them back to save money when they are not required. The database can use a VM configured appropriately, or can opt to use the DBaaS (database as a service) that is part of the cloud offering, gaining additional flexibility and even ancillary services like backup or cloud database regional mirroring for redundancy and high availability.This ability to analyze an application and decompose it into its micro-workloads enables the migration step to be planned and executed in a manner that can take advantage of the cloud much more effectively than a straight shift. With an optimized migration to the cloud according to the requirements of each of the micro-workloads, the cost effectiveness and efficiency is greatly enhanced. In practice, the level of cost-efficiency can be very close to the theoretical efficiency of building an application specifically for the cloud – without the massive investment in time and effort that re-writing an application entails.
- Migrate: Doing the analysis, optimization, and then the actual migration can be a significant amount of effort. Allocating architects and developers to revisit an application that may have been developed by different teams over a long period of time can be too expensive to be practical. This is especially true if there is a portfolio of applications that need to be moved to the cloud.
- Manage: Cloud migration isn’t complete when the application is migrated. The task of operating and managing that application on the cloud is an ongoing requirement of any cloud migration. The ability to manage the routine operations and life cycle of that application is something that must be carefully considered. This is true for all applications, and it has special considerations beyond the ordinary for applications that are going to be offered as SaaS. For SaaS applications, the management capabilities must go beyond the normal operations and management, and provide the ability to provide self-service onboarding, manage tenants, monitor and meter usage, and interface with billing systems to satisfy the commercial needs of SaaS. And management and operations may be needed for one or for a whole portfolio of applications.
Automation of AOMM Method
Automation is a key concept in cloud operations and one that has been instrumental in enabling cloud providers to keep driving down the cost of cloud. Similarly, automation is key to migrating applications to the cloud cost-efficiently. By automating the process of application analysis and providing a platform for architects to plan cloud deployments according to the need – whether the need is to operate the application for one organization or to make it a SaaS offering on the cloud – the migration task becomes much less stressful.
Feeling Calmer Now?
Being able to automate the execution of cloud plans and actually migrating the application onto the chosen cloud, according to the selected cloud deployment topology for the workloads, greatly reduces the stress on the architects and stakeholders.
“AOMM” may not be the traditional breathing mantra for the Yoga practitioner; however it may bring just the sigh of relief that is needed to face a cloud migration with calm and confidence.
Contact Arrow for More Information