Five Ways to Migrate Applications to the Cloud
Migration strategies organizations should consider when moving to the cloud.
Arthur Cole spoke with Rich Wolski, chief technology officer, Eucalyptus Systems.
Enterprises are quickly learning that moving from cloud storage to platform- and infrastructure-as-a-service increases complexity by several orders of magnitude. But both architectures are necessary to apply the cloud's flexibility and efficiency to application deployment models. However, efforts like this always look more daunting from the outside. As Eucalyptus Systems' Rich Wolski points out, IaaS and PaaS prove highly effective when they work together.
Cole: Discussion of cloud computing is quickly moving from backup and storage to more advanced IaaS and PaaS architectures. What are the key benefits to moving these kinds of environments to the cloud?
Wolski: Cloud computing is a shift from direct infrastructure support of applications to a model in which applications run on computing abstractions implemented as distributed services. As a result, applications deliver functionality in a way that does not directly depend on the underlying infrastructure, making it possible to manage application resources - code and data - and infrastructure - machines, networks, storage, identity - independently. This decoupling yields greater business agility, more economical IT management and lower software development and maintenance costs.
Wolski: PaaS works at the level of computer language and run time system and IaaS provides the operating system and hardware-level abstractions necessary to support those PaaS functions. In the same way that an operating system like Linux supports many language environments, such as Java, Python, Ruby, C, C++, a general IaaS platform must be able to support a number of specific PaaS platforms. Thus, the role of the IaaS service level is to ensure that the possibly competing needs of different PaaS environments can be met.
Paas and IaaS can and should cooperate to implement three cloud functionalities jointly: security, resource allocation and quality of service. It is essential that the security model span PaaS and IaaS platforms, both to ensure its integrity and to prevent its misuse as a result of complexity. It is also beneficial for the PaaS and IaaS services to communicate resource allocation needs and decisions. For example, scale out and scale up both must be available to applications in a cloud. If the PaaS and IaaS services do not cooperate with respect to resource allocation, the desired scaling properties may not be achievable. Finally, cloud computing allows applications to treat resources, either IaaS resources or PaaS resources, in terms of the service quality they can deliver and not their physical characteristics. The QoS properties and guarantees provided by the cloud must be jointly managed by the PaaS and IaaS services.
Cole: As far as features and operations go, what are some of the things to strive for when deploying IaaS and PaaS environments?
Wolski: For IaaS, the Quality of Service (QoS) architecture is key. Performance, reliability and cost must all be projected through the IaaS services to the applications that use them. Designing the deployment of IaaS services and the QoS policies, ultimately, is the defining factor for a successful IaaS cloud.
For PaaS, the focus must be on application use cases and software environments. Often, the goals for implementing application-level functionality, such as Big Data services, as a PaaS are to lower the complexity and maintenance costs. Business requirements, reflected through the application mix, should drive PaaS deployment of application-level services.