This article is part of an Essential Guide, our editor-selected collection of our best articles, videos and other content on this topic. Explore more in this guide:
2. - Making PaaS a success: Read more in this section
- All about PaaS
- Focus on cloud goals and developer needs to choose the right PaaS
- Start with the programming language when selecting PaaS
Explore other sections in this guide:
In a cloud market poised for growth, it’s no wonder why you can’t go far without practically tripping over a PaaS provider, each with subtle differences from the next. Platform as a Service allows cloud architects to bring their own code and use preferred stacks without having to provision virtual machines and manage OSes, reducing infrastructure management issues.
And settling on the right PaaS model is important to ensure you build a flexible, elastic and portable enterprise cloud. So, which type of PaaS provider should you pay attention to -- a programming language-specific platform, a language-agnostic platform or a hybrid PaaS that coordinates development and deployment across multiple clouds?
Is language-specific PaaS a thing of the past?
Language-specific Platform as a Service (PaaS) providers are less common than they were in the early days of cloud. Providers supported Java, Ruby and Python, for example, but not all frameworks at once. If you work primarily with one language, then a language-specific PaaS can be the cloud development tool for you. The advantage of language-specific PaaS is it offers specialized support and value to the customer beyond the hosted development environment.
The advantage of language-agnostic PaaS is the flexibility to work with multiple languages and frameworks on a case-by-case basis.
Python and Java developers both have language-specific PaaS options. PiCloud.com, a Python-based PaaS offering, provides a library that is easily imported into Python programs, enabling developers to distribute their computations across the cloud. PiCloud does not replace a development environment or give customers a cloud-based alternative to the IDE (integrated development environment). It gives managers code that enables them to run the compute-intensive portions of their applications in the cloud. This is ideal for analysts and scientists who work with large amounts of data, are comfortable in the development environment and need access to compute resources.
Language-agnostic PaaS: More languages, more flexibility
The trend to work with a mix of cloud platforms is gaining momentum. Eucalyptus CEO Marten Mickos recently went so far as to declare the “LAMP stack is dead and the cloud killed it.” While that may not be exactly the case, each layer of the stack is becoming more multifaceted than before. And PaaS providers are following suit; the majority of the market falls into the language-agnostic camp -- even those that started with a single-framework-support model.
PaaS providers such as Cloud Foundry, DotCloud and Red Hat were designed for developers working with multiple programming languages. For example, if you host your application at DotCloud, you can use Postgres, MySQL and MongoDB in your data services layer. The marginal effort required to work with multiple databases is much lower because you do not have to install, manage and maintain multiple databases.
The advantage of language-agnostic PaaS is the flexibility to work with multiple languages and frameworks on a case-by-case basis. You may not find the same level of language-based customizations (e.g. libraries for distributing your code across cloud servers), but you will find support for general-purpose development tools like Git for managing code.
When to look to a hybrid PaaS option
Another type of PaaS could be distinguished by the way it abstracts Infrastructure as a Service (IaaS) models and on-premises resources. CloudBees’ AnyCloud is a PaaS offering that enables users to manage application workloads on a trusted hosting provider or on-premises, within the data center. Consumers can deploy instances in Amazon EC2 as well as in an OpenStack private cloud and manage them as part of a single PaaS with AnyCloud.
When you have a complex mix of off-premises and on-premises applications and data, you may want to seek out a hybrid PaaS provider.
There are a number of advantages to the hybrid model. For example, imagine if you may have a sizeable Oracle database that is not practical to replicate in the cloud, you would need to maintain it on-premises. A hybrid PaaS gives you the flexibility to access on-premises data from applications that run in a PaaS environment.
A potential disadvantage of some hybrid PaaS models is the need to configure and maintain the abstraction layer. Certain hybrid PaaS models require some in-house management effort and know-how.
The PaaS market is maturing and differentiating. Enterprises should choose a PaaS model that fits with development languages and frameworks. If you work with a single language and can benefit from specialized support, a language-specific PaaS model may be right for you. However, as companies move to more complex cloud deployments, the need to work with multiple languages and a mix of stack components increases. In such cases, a multi-language and multi-framework PaaS offering makes sense. When you have a complex mix of off-premises and on-premises applications and data, you may want to seek out a hybrid PaaS provider.
Dan Sullivan, M.Sc., is an author, systems architect and consultant with over 20 years of IT experience with engagements in advanced analytics, systems architecture, database design, enterprise security and business intelligence. He has worked in a broad range of industries, including financial services, manufacturing, pharmaceuticals, software development, government, retail and education, among others. Dan has written extensively about topics ranging from data warehousing, cloud computing and advanced analytics to security management, collaboration, and text mining.