The U.S. Office of Naval Research is testing a cloud-based platform that captures GPS data from cell phones in real-time and creates animations that can show movement of equipment and personnel. It’s the kind of application that would be prohibitively expensive to build without a cloud platform, but it’s a reality thanks to Microsoft's Azure cloud and a set of powerful platform-as-a-service (PaaS) development tools.
PaaS enables developers to build applications that are specifically meant to run in the cloud. All major cloud infrastructure providers have their own PaaS suites, and so do many software-as-a-service vendors. A PaaS suite is usually tightly bound to a particular cloud platform, delivering a productivity boost for building, testing and deploying applications. PaaS can also provide middleware services for integrating multiple cloud applications and even bridging public and private clouds. Network World has an excellent description of PaaS here.
Selecting a PaaS isn’t just a shiny new toy for developers, however. Because PaaS can significantly impact application performance, availability and flexibility, anyone involved in administering or customizing a cloud deployment should have a hand in the decision to deploy PaaS. Here are three critical issues to consider.
Open or proprietary? PaaS is typically designed to work best on each provider’s own cloud platform. The benefit of this is that customers can expect to wring the most value out of the service. The risk is that the customizations or applications developed in one vendor’s cloud environment won’t necessarily migrate easily to another.
Many customers will be fine with being tied to a single supplier, but if you want to keep your options open, ask your cloud provider which open standards, development languages and APIs it supports. There are also open-source options. The most popular is Cloud Foundry, which was developed by Pivotal Software and supported or remarketed by many other cloud vendors. For example, Microsoft supports Cloud Foundry as an option on its Azure IaaS platform.
Open-source PaaS gives you flexibility by exposing the underlying code and the ability to install the PaaS suite on any infrastructure you choose. However, not all IaaS vendors support these platforms natively, so ask yourself whether you want to do the heavy lifting necessary to install and maintain them.
The trade-off of using an open source PaaS is that you lose some of the benefits of tight platform integration. If functionality trumps portability on your priority list, then opt for the best-of-breed solution for whatever platform you chose. If you want to hedge your bets, then consider an open-source option, being aware that you may sacrifice some features in the process.
Software compatibility. Most enterprises standardize on a limited set of programming languages, architectural frameworks and databases. Make sure that the infrastructure-as-a-service (IaaS) vendor you choose supports these same technologies. If you are strongly committed to a .NET architecture, for example, then you should select a provider with native .NET support. Similarly, database support is critical to performance and scalability.
Native support is important because the point of using cloud infrastructure is to minimize complexity. You don’t want to cancel out those benefits by assuming the burden of installing and administering platforms.
Support availability and cost. Using a cloud provider’s proprietary PaaS is like learning a new programming language. It encompasses a learning curve and the need for ongoing support. If the provider’s solution is to point you to a library of manuals and FAQs, that may not be enough for you.
On the other hand, customized support can be expensive, so know going in what kind of handholding you’ll need, when it’s available and how much it costs. This is a good time to consult other customers to hear about their own experiences.
PaaS can take much of the guesswork out of provisioning and load-balancing applications, which enables your developers to focus on building great cloud-ready applications. PaaS should be part of the ongoing discussion as your company’s cloud-based strategy evolves.