Written by : Jan Wiersma (Datacenter & Cloud Evangelist @ EvoSwitch)
After doing the necessary research, reading blogs and white papers, visiting seminars and talking with suppliers, its decided that cloud should become the dot on the horizon for your organization. But how do you reshape your current IT spaghetti into this utopian cloud world?
Migrating to external cloud computing has a significant impact on an IT organization, their role as a supplier and the way in which applications are developed and used. During the migration an organization becomes less of an internal IT environment and increases the utilization of external cloud computing environments. It is,therefore, necessary to take the presence of composite applications in the architecture into account. In addition, the move from the current enterprise IT environment to the different migration paths (SaaS, PaaS, IaaS) has its own characteristics.
One of the best ways to approach cloud migration is to view the current IT environment from the perspective of applications or services. At the moment not all applications are suitable for migrating to an external cloud environment. Good candidates are applications that are not mission-critical, are hardly integrated at all with other important applications and those which are of no strategic (competitive) value to the organization.
In order to reduce security risks, the application should not contain any sensitive information. This might sound a bit limiting, but as external cloud environments mature, more applications will be able to migrate to these environments.
An application on a cloud platform is quite different from an application in the traditional IT environment. In his recent farewell blog, Roy Ozzie (formerly of Microsoft) writes about the future challenges of the new seamless, scalable computing models. The idea that one can just move existing applications ‘without any fuss’ does not work. For instance, the user interface is changed to touch screen. Or new ways of data management are implemented, such as non-relational data models. And what about horizontal scalability? Even programming styles (e.g. ‘fail ready’ software) ensure that existing code is generally not instantly suitable for true cloud computing environments.
An application portfolio analysis is the most important thing when starting the migration. Be careful though, this can soon get out of hand if its purpose is not clearly described or understood. Whether an application or service is suitable for a cloud computing environment will have to be assessed by rationalization of the portfolio. This encompasses two ways of looking at applications in relation to the characteristics of a cloud application environment:
- The suitable migration option (private or public cloud)
- The suitable migration path (IaaS, PaaS or SaaS)
Additionally, a cost analysis should determine the impact on the TCO and the ROI, which helps build a business case.
When conducting a rationalization of an application, the following guidelines can be used to determine whether an application (or service) is ready for the cloud:
– Elasticity determines whether and how an application can land on a cloud platform. This can be measured according to three characteristic parameters: workload, storage and utilization. The required data can often be retrieved from monitoring tools or log files in the existing environment.
– Any negative impact on governance (SLA, security, legal and regulatory requirements, etc.) immediately triggers a veto, preventing an application or service being moved to the public cloud.
– Technical feasibility: the impact on the architecture of the application, as well as the effect on the quality of service must be considered thoroughly.
– The extent to which the application is future-proof in functional terms.
By applying a ratings model to these areas, it should be possible to identify the suitability of the application or service for migration to a cloud. While a public cloud infrastructure can offer many benefits in terms of scale and cost when compared to a dedicated (private) cloud environment, certain applications will never move to the public cloud. This will chiefly be the case with applications containing an organization’s most prized possession: mission-critical or highly sensitive data.
The business case for cloud application migration is not complete without taking the target platform (private or public cloud) into consideration. The migration and overhead costs vary significantly depending on which option is chosen and hence also influence the total savings achievable. A good cost analysis helps with the choice of whether or not to move an application and the expected TCO/ROI. It should at least include capex, opex and overheads, which can cover the following elements, among other things:
– Network equipment
– Real estate (datacenter)
– Migration costs
It should be reasonably easy to determine the cost advantages for applications and services that are offered on a dedicated infrastructure, making them good potential candidates for migration to a cloud infrastructure. In the case of applications offered on a shared infrastructure, it may be necessary to make a specific workload analysis in order to determine the potential savings.
Before determining an application migration strategy it is essential to be aware of the objectives of the organization, as well as the various possibilities. The challenge lies in balancing organizational priorities together with the costs.
Enterprise organizations have two choices for cloud infrastructures (public and private). These give way to the following migration paths: IaaS, PaaS and SaaS. The choices are driven by matters such as the aforementioned elasticity, business models and information 2.0/ technology 2.0 strategies. At the same time there are several factors that limit possibilities, such as technical feasibility, security, migration costs, etc. Thats why its not uncommon for large organizations to select a hybrid cloud strategy enabling controlled evolution.
An application portfolio rationalization that leads to a single migration strategy for all applications is counterproductive. The migration strategy will have to be determined for each application or service separately and must continue to develop throughout. This can only take place after a good evaluation of the applications in relation to the areas outlined in this article. For instance, the challenges in the field of hardware infrastructure and architecture that are connected with a cloud migration must become part of the overall migration strategy. It is important that the service or application is viewed from the total IT stack in order to discover and identify the correlation.
Each migration path has its own characteristics, which are outlined below:
Migrating an application whereby the underlying server infrastructure is moved to a public or private IaaS environment offers a quick way of enjoying several of the benefits offered by cloud computing. This type of migration is uncomplicated, since it involves merely moving the host without any modification of the application code. Nonetheless, it should also be evident that this type of migration only offers a small part of the benefits of cloud computing. Examples of the services referred to above are Amazon EC2 or Rackspace.
Migrating to a true SaaS architecture and hosting the application in an environment that can serve hundreds of customers (multi-tenant) yields the biggest cost advantages for enterprise organizations. It also aids application rationalization by bringing together applications with identical functionality and offering them as a single SaaS application on a shared infrastructure. Migrating an application to a full SaaS environment can be off-putting, however, since most applications are not suited to this new multi-tenant cloud architecture. The move to an SaaS environment will therefore more likely entail a replacement of the existing application. An example of this is the dedicated enterprise CRM by Salesforce.com. The key here is the utilization of a basic application code that is used for all hundreds of customers, which allows specific add-ons to be overlaid (plug-in, mash-up or widget).
PaaS is available as an intermediate model. Suppliers such as Google App Engine and Microsoft Azure supply a complete cloud IT stack for software development and delivery. This gives the option to build ‘true’ cloud applications and release them in a scalable and elastic environment. However, it also produces a raft of restrictions at every technology layer of the application stack. These limitations mean it is often difficult to migrate existing applications and code to the new cloud environments. This is sometimes due to the application code and the fact that programmers occasionally ‘forget’ to program in orderly fashion (e.g. stateless/statefull). While this does not lead to any problems in current silo IT environments, it does present a challenge in shared PaaS and SaaS environments. For these reasons PaaS is mainly suited to ‘green field activities’.
PLANNING AND IMPLEMENTATION
Application cloud strategies often focus on the technical consequences of migration. But dont forget that the introduction of cloud technologies also has consequences for the organization. For example, it is important to consider the change in the function and role of administration when migrating. The effect on (existing) SLAs, service management, maintenance contracts, charging-on methods and skill sets must also be taken into account.
As soon as one is ready to transition to a cloud environment, it is important to closely examine the current application and services portfolio. Clear landing sites must be defined, such as private and public cloud, as well as routes such as IaaS, PaaS and SaaS. It is necessary for each application to determine if it will be replaced by an application in a cloud environment. By evaluating the application using several cloud basic elements and examining the costs of the application, it is possible to map out a route to the future with a good business case. This takes some effort, but is necessary to ensure the success of the cloud transition.