The PaaS choices
First up, I guess we’ll need to define Platform as a Service. I would describe PaaS environments as cloud computing services platforms that allow developers to launch and manage their web applications without having to confront the complexity of infrastructure creation and maintenance.
Or, in different words: PaaS platforms help you focus on code, not management, so you can build apps without worrying about IT tasks or waiting days to get servers ready for writing code.
To illustrate how this works in the real world, I’ll list and describe what I consider to be the top five PaaS providers currently on the market, along with their unique strengths.
Google App Engine
Google App Engine is a Platform as a Service (PaaS) offering that lets you build and run applications on Google’s infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs change. With App Engine, there are no servers for you to maintain. You simply upload your application and it’s ready to go.
- Create and run a sample app in the cloud immediately.
- Starter code is offered in Python, Java, PHP, and Go, highlighting popular frameworks like Flask, Django, and Bottle.
- Applications run in a secure, sandboxed environment, allowing App Engine to distribute requests across multiple servers and scale to meet traffic demands.
- Your application runs within its own secure, reliable environment that is independent of the hardware, operating system, or physical location of the server.
Further reading: 5 Reasons Why Google Compute Engine Will be the next Cloud Choice
Heroku provides abstract computing environments called dynos. These environments come in two flavors: web dynos (which respond to HTTP requests) and worker dynos (built to respond to task requests).
Heroku works best with applications built using the Twelve Factor App methodology. Third party applications are also available as services within the Heroku platform.
- Once you push your application source code, Heroku prepares it for execution by retrieving the necessary dependencies specific to the frameworks and languages you use in your app.
- By default, Heroku supports Ruby, Node.js, Python, Java, and PHP, but it is possible to work with another language by using a custom buildpack.
- Heroku lets you manage environment-specific configurations (such as credentials for backing services) separately from your source code for greater safety and portability.
- You can quickly spin up a one-off instance of your app environment to run ad-hoc commands.
Further reading: What is Heroku?
AppFog is a multi-language, multi-framework PaaS that’s a good option for creating multiple private clouds. It supports Java, Ruby, PHP, Python, Node, Scala, and Erlang and offers MySQL, PostgreSQL, Redis, and RabbitMQ along with third-party add-ons. AppFog is based on the open source Cloud Foundry platform and supports Git, SVN, and Mercurial for code management.
- Varnish Cache and op-code caching run applications with less server load and accelerated performance.
- No more configuring servers, firewalls, Apache, security, or installing frameworks.
- Compatible with code management systems like git, svn, and mercurial.
- Runs across many regions, data centers, and infrastructures.
- Access only the servers you need and pay for only what you use.
- Web app technologies include PHP, Node, Ruby, Python, and Java.
- Add any popular service to your application, including MySQL, PostgreSQL, Redis, and RabbitMQ.
Windows Azure Cloud Services
Azure is sort of Infrastructure as a Service (IaaS) and sort of PaaS, so an argument could be made that it doesn’t really belong on this list. However Azure is the only major cloud platform ranked by Gartner as an industry leader for both IaaS and PaaS. This powerful combination of managed and unmanaged services lets you build, deploy, and manage applications any way you like for unmatched productivity.
Azure supports any operating system, language, tool, and framework— from Windows to Linux, SQL Server to Oracle, C# to Java. It puts the best of Windows and Linux ecosystems at your fingertips, so you can build great applications and services that work with every device.
- Provision Windows and Linux Virtual Machines and applications in minutes. Use the same virtual machines and management tools in Azure that you use on-premises.
- Build and deploy a wide variety of modern applications for Android, iOS, and Windows that take full advantage of the cloud—including web, mobile, media, and line-of-business solutions. Automatically scale up and down to meet any need.
- Azure provides managed SQL and NoSQL data services and built-in support for gaining insights from your data. Leverage the full power of SQL Server in the cloud and use HDInsight to build Hadoop clusters to analyze data.
- Manage user accounts, synchronize with existing on-premises directories, and get single sign-on across Azure, Office 365, and hundreds of popular software-as-a-service applications including Salesforce, DocuSign, Google Apps, Box, Dropbox, and more.
Further reading: Microsoft Azure App Service, Cloud Services, or VMs?
Red Hat OpenShift
Red Hat OpenShift is based on open source applications and offers a wide variety of languages, databases, and components. The PaaS is highly customizable and offered in three forms:
- OpenShift Online (a cloud-based hosting service).
- OpenShift Enterprise (a private PaaS that runs in your data center).
- OpenShift Origin (the open source application hosting platform).
OpenShift automates system administration tasks such as virtual server provisioning, configuration, and scaling and supports git repositories for code management.
- Reduces the time required to build and deploy your applications by letting you focus on your code and innovation rather than infrastructure provisioning and administration.
- Gives you a wide choice of programming languages, frameworks, and runtimes including Java EE6 with JBoss EAP.
- Leverages an open source platform and standards-based components to ensure application portability and eliminate lock-in.
- Integrated development tools and intuitive interface enable you to get started quickly. No new programming models, no app changes, and no cloud lock-in.
An on-premise, private Platform as a Service (PaaS) solution that allows you to deliver apps faster and meet your enterprise’s growing application demands. With Red Hat’s award-winning private Platform as a Service, OpenShift Enterprise, you can improve developer productivity, increase operational efficiency, and expand your hardware utilization.
- Web Console, Command-line, or IDE.
- Java(EE6), Ruby, PHP, Python, and Perl.
- Public, Private, or Hybrid Cloud.
- Automatic application scaling when needed.
- Build your own PaaS
- Includes support for a wide variety of language runtimes and data layers including Java EE6, Ruby, PHP, Python, Perl, MongoDB, MySQL, and PostgreSQL.
Other Cloud Platforms of note
I just don’t feel right to write an article about Cloud Computing without any mention of AWS. Like Azure, it can probably be classified as both IaaS and PaaS. But since Amazon’s family of services extends so far beyond PaaS, I chose to leave it out of this list.
Other services that I can recommend for you would include Engine Yard and Caspio.
Engine Yard runs its platform on AWS, so its PaaS-value rests more with orchestration and management than with providing software components.
Caspio is a little different from the other PaaS providers in that it does not offer a fully functional software development environment, but rather focuses on bringing desktop database-like functionality to the cloud. Caspio is designed for creating basic databases, providing data entry forms and report generation.