While nearly all cloud users begin with Infrastructure as a Service (IaaS), many who run most applications on the...
same OS and middleware later decide that Platform as a Service (PaaS) would better serve their needs. PaaS cloud offers users who have a commitment to a single operating system and middleware lower software licensing and operations costs because the cloud platform absorbs these components.
Users who have made the IaaS-to-PaaS cloud switch report it requires planning in three areas: OS and middleware compatibility, deployment and integration practices, and operations and management. Users also suggest that all cloud prospects look at IaaS-to-PaaS migration very early in their planning, even before they're sure they'll make the switch. Finally, these early users say that often the only alternative to a transition in cloud service type is to embrace a multiprovider cloud, something that can be even more daunting than switching from one cloud platform to another.
Choosing IaaS and PaaS providers
IaaS is generally tolerant of middleware choices; anything you can compose into a machine image will run. Some IaaS cloud providers may limit operating system choices, or at least require slightly different management or deployment options depending on the OS you pick. PaaS, in contrast, will generally dictate the OS and much of the middleware. For users who want to preserve the option of migrating to PaaS, it's critical to choose the PaaS cloud provider first and select the IaaS OS and middleware software based on that selection. Otherwise it may be impossible to migrate from IaaS to PaaS without rewriting or re-licensing software for the PaaS platform you choose.
Most PaaS cloud providers will offer an IaaS mode, which means that their "platforms" will run virtual machines that can host other OSes and middleware. This is true of Microsoft's Windows Azure, for example. It may make sense to select a PaaS provider that can run IaaS, but be aware that you can still run OSes and middleware in the IaaS "containers" of a PaaS provider that won't run in PaaS mode on that same provider. The hosted-IaaS model will save you some headaches changing providers and may reduce deployment and operations differences in your transition, but it has its own frustrations.
Considering cloud management for an IaaS-to-PaaS switch
Cloud-based application deployment and integration is a matter of exercising the cloud's management interfaces. These interfaces vary, even among IaaS providers, which means deployment/integration tools and practices will have to change when transitioning from IaaS to PaaS.
In preliminary cloud planning, look for tools that support both IaaS and PaaS providers, but expect to make some changes in the deployment and integration scripts when you make the transition. Commercial tools may be more accommodating than open source tools because most PaaS platforms use proprietary OS and/or middleware, and many open source products haven't been updated to accommodate these kinds of choices.
The long-term management of cloud applications is almost certain to be different for PaaS versus IaaS, primarily because management of the OS and most of the middleware becomes the responsibility of the cloud provider under PaaS. Enterprises will not have to update these components, but they may still want to perform some regression testing when a major change in PaaS software is scheduled. This means that operations and management will have to be changed to eliminate tasks related to updates and upgrades to the platform software, but also that application lifecycle management tasks may require some external coordination with the cloud provider to facilitate testing and a cutover to a new software version.
PaaS may offer unexpected benefits in both deployment and operations/management tasks, because most companies select a PaaS based on the platform that is already standardized on most of their internal servers. In this case, the same tools will be useful in deployment and management of PaaS applications as were used in the data center, and some PaaS providers will also provide special tools for hybrid cloud integration between data center and PaaS clouds. It's also often possible to create hybrid cloud applications to provide improved performance and availability by offering easy "cloud bursting" from the data center to PaaS. This same capability can be provided in IaaS, but they will almost always require more integration work from the user -- and often a change in software as well.
When migration doesn't work
No matter how much you prepare for an IaaS-to-PaaS migration, there will be times when it just can't be made to work. In most cases, that's because an application being run on IaaS isn't compatible at the software platform level with your PaaS selection -- or even with "IaaS-container" facilities of the new PaaS provider. In this case, you must accept choosing among three options: Find a version of the same application(s) for the PaaS platform, drop the offending application(s) from the cloud or, finally, embrace using multiple public cloud providers.
If packaged software is used, the first option is the best where it's available; check your software supplier for a list of the OSes and middleware it can support and see if your license will cover the new configuration, even at an extra cost. If only a few applications are incompatible with a PaaS migration, it may be reasonable to host them internally. When none of this works, multiple providers is the fall-back option.
One user described using multiple cloud providers as "the gift that keeps on taking" because the problems with deployment, integration and management/operations tend to be ongoing when multiple providers are involved. Most users will consider this their last resort for that reason; so when it's truly necessary to make the choice, look hard at the deployment and management tools available and pick the packages with the broadest support for a variety of cloud providers.
About the author
Tom Nolle is president of CIMI Corp., a strategic consulting firm specializing in telecommunications and data communications since 1982.
How to pick the right PaaS provider to modernize your apps
Learn about new features in the PaaS Model