Platform as a Service
Author: Evi Rachmilewitz, ClickSoftware Contributor
PaaS is one of the building blocks that comprise the term “cloud computing.” PaaS provides the infrastructure and the services needed to run applications over the internet. The idea is to “tap” to whatever service you need without worrying about the complexity behind the scenes. In addition, just like other utilities, PaaS is built on a pay-by-usage model or what is known is metered billing.
Who uses PaaS?
ISVs and corporate IT divisions use PaaS and benefit from it because this model allows them to focus on innovation rather than spend precious time on maintaining and configuring systems. Thus PaaS decouples innovation from deployment and the benefit is that R&D engineers can optimize their code while working in their local, atomic environments and then have the code deployed and tested, fairly easily, on various cloud computing systems.
Unlike traditional models, in the PaaS model R&D engineers can move their systems from an MS-SQL server to a MySQL server fairly easily, they can test their applications against a single application server or against multiple servers without having to go through daunting installation processes, they can apply automatic rules that determine when to scale their applications, they can test their work against several flavors of web servers and they can get reports on the environment that currently runs their code.
It is important to reiterate that the advantage of this approach is significant. Software engineers and QA engineers will tell you how time consuming it is to configure in-house systems for integration tests. With PaaS this requirement no longer exists, hence more time is available for pure R&D work.
Who are the major PaaS provides?
Google Apps Engine
The Google apps engine lets you run your applications on Google’s infrastructure. App engine applications are built and deployed easily and are easy to scale as traffic and data storage needs grow. With app engine developers can write their application’s code, test it on their local machine and upload quite easily to Google.
The Google apps engine supports several programming languages. It has a java runtime environment hence it supports standard java technologies including j2se, j2ee, and Ruby. In addition, it has a Python runtime environment.
Apps engine is considered a low cost solution that provides 500 MB of default storage and enough bandwidth to support up to 5 million page views per month.
Apps engine also offers a “zero to sixty” capability which enables to scale up applications automatically without worrying about manual administration of machines.
Force.com is a PaaS environment provided by Salesforce.com (NYSE: CRM). Force.com is strongly integrated to salesforce’s CRM SaaS application. It provides a secured, backed-up and scalable environment that allows software engineers to build apps that include built-in social and mobile functionality, business processes, reporting and search.
According to Gartner, force.com serves over 1,000 customer accounts, in addition to tens of thousands that use this platform in conjunction with Salesforce.com.
With force.com software developers can build apps using various technologies. This includes .net, java, apex and visualforce.
A downside of force.com is that it is highly integrated to Salesforce.com. Software developers do not necessarily want to clutter their apps with CRM functionality; for them force.com might not be a first option.
Windows Azure is a cloud services operating system that serves as the service management environment for the Windows Azure Platform. Windows Azure provides on-demand computing and storage to host and manage web applications over Microsoft’s data centers.
Windows Azure supports both Microsoft and non-Microsoft languages and environments. Most users of Windows Azure develop with Microsoft’s visual studio tools. Windows Azure also supports common protocols / standards like SOAP, REST, XML and PHP.
Common use cases of Windows Azure:
- Build applications to the web with minimal on premises resources.
- Perform services off premises. A good example is batch processing and large volume computations.
- Add web services capabilities to existing package applications.
Cloud Foundry is an open source PaaS environment from Vmware. Cloud Foundry is built to support multiple development frameworks and automates deployment of applications and their infrastructure across multiple cloud infrastructures. Cloud Foundry comes in three models:
- Cloudfoundry.com – This model provides developers with a multi-tenant PaaS environment to deploy and scale applications. It supports a number of programming languages (Java, Ruby) and frameworks (spring) and provides additional standalone services such as databases (mongo DB, MySql) and messaging services.
- Micro Cloud Foundry (MCF) – This model provides a downloadable instance of Cloud Foundry contained within a virtual machine on the developer’s desktop. The advantage of this model is that it first allows you to test your application in your own environment and then once it is stable deploy it onto foundry based private or public clouds.
- Cloudfoundry.org – This model is an open source model under the Apache 2 license. It allows developers to inspect and modify cloud foundry source code based on their needs while minimizing the risks of lock-in.
It is important to mention that I didn’t cover all PaaS vendors. The PaaS market offers additional players. This includes AppFog, Apprenda, Cloudify, Stackato, NetSuite and more.
What should you look for when seeking a PaaS provider?
- Flexibility – You must make sure that your PaaS provider does not offer a lock-in environment. By that I mean that your PaaS provider will allow you to deploy your code on any cloud environment with minimal integration issues.
- Technology – You must make sure that your PaaS provider supports your technology in terms of programming languages and additional services such as databases.
- Cost – You need to decide whether you will be using the services of an open source PaaS environment or a license based environment.
- IaaS – You need to know where the physical data center(s) of your PaaS provider exists. It is important to verify that your PaaS provider offers a multi-tenant environment, 99% up time, 24 X 7 support, backup services and revision history of files.
- Security – You need to make sure that your PaaS vendor provides high security standards in every level. This includes the physical level, the sign-in and log-in levels, the API level, the data level and the network level (for more information see my previous posts on cloud computing and security). In addition, if your application requires it, you need to make sure that your PaaS vendor has the right certifications. This includes SAS 70 type II and HIPAA for healthcare applications.