DevOps Glossary

PaaS

What is PaaS?

Platform-as-a-service (PaaS) is a model of cloud service delivery where a third-party cloud service provider delivers some hardware and software tools, often those needed for application hosting or development, to customers over the internet. The key benefit of the PaaS model is that it enables users to access hardware and software that can be used to develop and run applications without having to purchase, install and maintain the infrastructure.

The first ever PaaS product, known as Zimki, was developed in 2005 by a London-based company called Fontago. Zimki was essentially a code execution platform that allowed users to build and deploy applications and web services. Fontago offered a usage-based cost structure to its customers that was calculated based on total amount of storage used, network traffic and number of javascript operations. Zimki was shut down in 2007 by its parent company, Canon Europe. Later, in 2008, the Google App Engine was released for both Windows and Linux. Developers could use the platform to write applications and web services in languages such as Python, Java, Go, PHP and Node.js.

Today, Google is one of the leading PaaS vendors in the world. Engineers that run applications on Google App Engine benefit from a service-level agreement (SLA) that guarantees them 99.95% service availability, as the App Engine is designed to accommodate multiple data center outages without any unplanned downtime.

How Does Platform-as-a-Service (PaaS) Work?

When organizations adopt a SaaS solution, they are choosing to outsource their entire technology stack and the associated maintenance costs to a third-party provider. PaaS, in contrast, does not typically replace an organization's entire IT infrastructure, rather, it helps organizations access key services with minimal start-up costs and reduced time to deployment.

PaaS products are generally geared towards software development, providing users with resources such as computing power and data storage capacity on demand, along with functions like version management, text editing, testing services and more. A PaaS product can also facilitate collaboration between geographically distant team members, allowing them to access the same development environment from separate locations.

PaaS providers typically price their services using a pay-per-use model. Depending on the vendor, usage can be calculated in different ways. One vendor might charge a fixed rate per user based on a limited number of custom app objects, so a single user with 10 objects might cost $x per month while the same user with 2000 objects costs $xxx per month. Another vendor might charge based on the number and speed of servers and the overall bandwidth used. The usage of computing instances, the volume of data storage required on the platform and the amount of outbound traffic are all typical factors when determining the price of a PaaS subscription.

PaaS vs. SaaS: What's the Difference?

PaaS, SaaS and IaaS represent the three most common models for service delivery in cloud computing and the three most readily available alternatives to full on-premise IT infrastructure deployment. Each cloud computing model differs in terms of what aspects of the technology stack are outsourced to a third-party vendor and which functions are managed in-house.

Common SaaS products include Google Apps, Dropbox, Salesforce, GoToMeeting and Concur. These are all software products that can be accessed through the internet based on a monthly subscription fee. When organizations contract for SaaS services, the software vendor manages every part of the technology stack required to host and deliver the application. This includes the application itself, data, runtime, middleware, the operating system, virtualization, servers, storage and networking functions.

Leading PaaS solutions include products such as Windows Azure, Google App Engine and Heroku. Companies that license or subscribe to PaaS products are outsourcing the all of the hardware components and some of the software components of the technology stack. While the application and data storage/management functions are maintained in-house, all other functions are provided by a third-party vendor. PaaS products and solutions are most popular among application developers, as they can focus on the development of the application while the rest of the stack is managed.

The final category of cloud computing services is known as infrastructure-as-a-service (IaaS). In this model, the customer is essentially leasing only the hardware and maintaining the entire software stack in-house, including the operating systems, middleware, runtime, data and applications.

Containers-as-a-service (CaaS) is a special type of IaaS where instead of leasing physical hardware, the customer leases a system for creating and managing containers and container clusters.

What are the Most Common PaaS Use Cases?

Application Development

PaaS products offer the computing infrastructure, storage capacity and features that software development teams need to drive down their product development costs and reduce coding overhead. Many PaaS products include built-in software components that can be integrated into new applications, such as a search function, security features, pre-defined workflows and directory services. PaaS services are often designed to meet the needs of the web application development life cycle, which includes building, testing, application deployment, management and updates.

Geographically Distributed Teams

PaaS is a cloud-based service, meaning that customers access the service via the internet. This means that even software teams that are geographically distributed can enjoy equal access to the development environment regardless of their locations. Team members can easily access the system while traveling and collaboration is streamlined between employees that may not have the luxury or convenience of working in the same office.

Private Cloud Strategy

A private cloud environment consists of IT infrastructure that is used exclusively by one business. The infrastructure could be developed and implemented in-house, or it could be operated by a third-party, but the key point is that all of the services are deployed on a private network that can be customized and secured to meet specified requirements.

Enterprise IT organizations are incorporating private PaaS into their overall cloud strategies as a means of enabling cloud deployment for new and existing applications, developing microservices and moving towards a hybrid cloud architecture. IT organizations that implement private PaaS solutions typically maintains those systems through their IT operations team while a separate DevOps team leverages the system to enable smoother and faster application development and testing.