Platform as a service
Platform as a service (PaaS) is a category of cloud computing services that provides a platform allowing customers to develop, run and manage Web applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app. PaaS can be delivered in two ways: as a public cloud service from a provider, where the consumer controls software deployment and configuration settings, and the provider provides the networks, servers, storage and other services to host the consumer's application; or as software installed in private data centers or public infrastructure as a service and managed by internal IT departments. The two primary programming languages for PaaS are Java and .NET, according to Gartner.
Development and uses
The idea of PaaS was pioneered on the Web by Amazon Web Services (AWS) and Salesforce.com. In April 2008, Google launched App Engine, with a free trial version limited to 10,000 developers. This was said to have "turned the Internet cloud computing space into a fully-fledged industry virtually overnight."
The original intent of PaaS was to simplify the code-writing process for developers, with the infrastructure and operations handled by the PaaS provider. Originally, all PaaSes were in the public cloud. Because many companies did not want to have everything in the public cloud, private and hybrid PaaS options (managed by internal IT departments) were created.
PaaS provides an environment for developers and companies to create, host and deploy applications, saving developers from the complexities of the infrastructure side (setting up, configuring and managing elements such as servers and databases). PaaS can improve the speed of developing an app, and allow the consumer to focus on the application itself. With PaaS, the consumer manages applications and data, while the provider (in public PaaS) or IT department (in private PaaS) manages runtime, middleware, operating system, virtualization, servers, storage and networking. Development tools provided by the vendor are customized according to the needs of the user. The user can choose to maintain the software, or have the vendor maintain it.
PaaS offerings may also include facilities for application design, application development, testing and deployment, as well as services such as team collaboration, web service integration, and marshalling, database integration, security, scalability, storage, persistence, state management, application versioning, application instrumentation, and developer community facilitation. Besides the service engineering aspects, PaaS offerings include mechanisms for service management, such as monitoring, workflow management, discovery and reservation.
Advantages and disadvantages
The advantages to PaaS are primarily that it allows for higher-level programming with dramatically reduced complexity; the overall development of the application can be more effective, as it has built-in infrastructure; and maintenance and enhancement of the application is easier. It can also be useful in situations where multiple developers are working on a single project involving parties who are not located nearby.
The primary disadvantage would be the possibility of being locked in to a certain platform. However, most PaaSes are relatively lock-in free. Other possible disadvantages, according to Forbes, include the relative youth of the cloud service model, the lack of support for .NET by many providers, and that the value and definition of PaaS has been at times misunderstood by those working in IT.
Public, private and hybrid
There are several types of PaaS, including public, private and hybrid. PaaS was originally intended as an application solution in the public cloud, before expanding to include private and hybrid options.
Public PaaS is derived from software as a service (SaaS), and is situated in cloud computing between SaaS and infrastructure as a service (IaaS). SaaS is software that is hosted in the cloud, so that it doesn't take up hard drive or server space. IaaS provides virtual storage from a provider with adjustable scalability. With IaaS, the user still has to manage the server, whereas with PaaS the server management is done by the provider.
A private PaaS can typically be downloaded and installed either on a company's on-premises infrastructure, or in a public cloud. Once the software is installed on one or more machines, the private PaaS arranges the application and database components into a single hosting platform. Private PaaS vendors include Apprenda, which started out on the Microsoft .NET platform before rolling out a Java PaaS; Red Hat's OpenShift and Pivotal Cloud Foundry. Apprenda and Microsoft are considered to be two of the only PaaSes that provide superior .NET support.
Initiated in 2012, mobile PaaS (mPaaS) provides development capabilities for mobile app designers and developers. The Yankee Group identified mPaas as one of its themes for 2014, naming a number of providers including Kinvey, CloudMine, AnyPresence, FeedHenry, FatFractal and Point.io.
Open PaaS does not include hosting, but rather it provides open source software allowing a PaaS provider to run applications in an open source environment. For example, AppScale allows a user to deploy some applications written for Google App Engine to their own servers, providing datastore access from a standard SQL or NoSQL database. Some open platforms let the developer use any programming language, database, operating system or server to deploy their applications.
PaaS for Rapid Development
In 2014, Forrester Research defined Enterprise Public Cloud Platforms for Rapid Developers as an emerging trend, naming a number of provides including OutSystems, Mendix, Salesforce.com, and Acquia.
PaaS is found on the following types of systems:
- Add-on development facilities
- These facilities customization of existing SaaS applications, often requiring PaaS developers and their users to purchase subscriptions to the add-on SaaS application.
- Stand alone environments
- Stand-alone PaaS environments do not include technical, licensing or financial dependencies on specific SaaS applications or web services, and are intended to provide a generalized development environment.
- Application delivery-only environments
- Delivery-only PaaS offerings generally focus on hosting services, such as security and on-demand scalability. The service does not include development, debugging and test capabilities, though they may be supplied offline (via an Eclipse plugin, for example).
There are various types of PaaS providers. All offer application hosting and a deployment environment, along with various integrated services. Services offer varying levels of scalability and maintenance. Developers can write an application and upload it to a PaaS that supports their software language of choice, and the application runs on that PaaS.
Public PaaS providers and private PaaS vendors include:
- AWS Elastic Beanstalk
- Cloud Foundry
- Engine Yard
- Google App Engine
- IBM Bluemix
- Microsoft Azure Web Sites, Azure Cloud Services, Azure Mobile Services
- Brandon Butler, “PaaS Primer: What is platform as a service and why does it matter?” Network World, February 11, 2013.
- “Understanding the Cloud Computing Stack: SaaS, PaaS, IaaS,” Rackspace, October 22, 2013.
- William Y. Chang, Hosame Abu-Amara, Jessica Feng Sanford, Transforming Enterprise Cloud Services, London: Springer, 2010, pp. 55-56.
- Judith Hurwitz, Marcia Kaufman, Fern Halper and Dan Kirsh, “What Is Platform as a Service (PaaS) in Cloud Computing?” Hybrid Cloud For Dummies, Hoboken, NJ: John Wiley & Sons, 2012.
- "The NIST Definition of Cloud Computing". National Institute of Science and Technology. Retrieved 24 July 2011.
- Mark Driver, Java and .NET: You Can’t Pick a Favorite Child, Gartner, p. 2.
- Jack Schofield, “Google angles for business users with ‘platform as a service’,” The Guardian, April 16, 2008.
- Dion Hinchcliffe, “Comparing Amazon’s and Google’s Platform-as-a-Service (PaaS) Offerings,” ZDNet, April 11, 2008.
- Mike Kavis, “Top 8 Reasons Why Enterprises Are Passing On PaaS,” Forbes, September 15, 2014.
- Sean Ludwig, “An ugly duckling no more: Why Platform-as-a-Service is poised for huge growth,” VentureBeat, October 8, 2012.
- Andrea Peiro, “Keep Your Head in the Cloud,” Inc., January 2009.
- M. Boniface, “Platform-as-a-Service Architecture for Real-Time Quality of Service Management in Clouds,” ieee.org, May 2010.
- Chen, Tse-Shih, et al. "Platform-as-a-Service Architecture for Parallel Video Analysis in Clouds." Advances in Intelligent Systems and Applications-Volume 2. Springer Berlin Heidelberg, 2013. 619-626.
- Andrew C. Oliver, “Which freaking PaaS should I use?” InfoWorld, October 8, 2012.
- Jason Brooks, “Apprenda 3.0 Brings Private PaaS to .NET Developers,” eWeek, January 6, 2012.
- Ben Kepes, “Apprenda Extends Its PaaS And Aims A Kick In The Direction of Red Hat,” Forbes, October 6, 2014.
- Anthony Wing Kosner, “Developers in Demand: Platform As A Service Is Key to Growth of Mobile Cloud Computing,” Forbes, June 8, 2012.
- Yankee 2014 Predictions Mobility hits a tipping point, Yankee Group, 2014.
- Christina Warren, “How to Pick a Server for Your App,” Mashable, November 16, 2011.
- “Interview With Brian Sullivan – Open Platform As A Service,” openplatformasaservice.com, 2010.
- “The Top 20 Platform as a Service (PaaS) Vendors,” clouds360.com. Accessed January 23, 2015.
- "Forrester Wave: Enterprise Public Cloud Platforms," Q4 2014.
- “Platform as a Service (PaaS),” Quality Testing, December 22, 2010.
- Nancy Gohring, “Platform as a service heats up,” Computerworld, July 8, 2013.