In my previous article, The Basics of Cloud Computing, I briefly summarized the different types of Cloud Services:
- Software as a Service (SaaS)
- Platform as a Service (PaaS)
- Infrastructure as a Service (IaaS)
- Function as a Service (FaaS) 1
Platform as a Service
Platform as a Service is a cloud deployment model that provides an infrastructure to deploy applications at the software level.
Delivery Model Comparisons
Software as a Service (SaaS) involves the ability of an end-user to access software and application services, which are deployed in the cloud. User data is stored in the cloud and an internet connection is required for the software to have full functionality.
Infrastructure as a Service (IaaS) is an off-premises solution for the provisioning and configuration of fully customizable computing resources. With IaaS an engineer can control the entire digital side of the technology stack; however, the physical hardware is managed by the service provider
Platform as a Service (PaaS) is essentially the middle level of the cloud deployment stack. It can be thought of as existing somewhere in between SaaS and IaaS.
PaaS includes cloud-based tools for deploying applications easily, without having to manage and configure the specifics of the underlying infrastructure. Most PaaS providers are capable of running multiple versions of an application simultaneously, making it easy to develop, test, and launch software in separate deployment environments.
In the PaaS delivery model, a developer has access to the application and data layers- but does not control the configuration of servers, storage, networking, runtime, or middleware. Once an application is created with code it is transferred to a platform, which provides the necessary resources for the application to run at scale.
Examples of PaaS 2
Elastic Beanstalk (AWS)
- Elastic Beanstalk allows developers to deploy and manage applications while reducing the management complexity. This service automatically handles the details of configuring resources. After an application environment is launched it can be further configured and modified using IaaS tools through the AWS Console or CLI, which is the biggest advantage of using AWS as opposed to most other PaaS providers in this list.. 3
Heroku
- Heroku is a general PaaS that allows developers to build and deploy applications using a variety of programming languages. Heroku also offers add-ons and build packs to further extend how their service can be used for developing and operating applications. It also has first-party integrations for Salesforce.
Google App Engine
- Google App Engine (GAE) allows for the deployment of web applications using Google data centers. Applications are deployed inside of containers and are provisioned scalable resources automatically based on demand.
Netlify
- Netlify is a service for hosting web applications and static sites. It provides a serverless backend and includes continuous deployment features.
Pantheon
- Pantheon is an app-specific service for Drupal and WordPress websites. It is built on top of the Google Cloud Platform (GCP). Applications that are deployed with Pantheon are available to end-users as SaaS.
Developing with PaaS
Most companies use cloud computing as part of their business model, and many hire developers to build applications with PaaS. Many mobile and single-page web applications are deployed using PaaS. Unlike traditional hosting methods for a website, PaaS requires fewer steps for developing and launching an application; application servers, storage and databases are managed by the provider and only require plugins and simple configurations to create a functioning production environment.
The PaaS delivery model includes a lot of other conveniences, such as:
HTTP Caching
- Storing application resources in the user client or through a remote caching service. Caching prevents unnecessary network requests, eliminates latency, and reduces the cost of transferring data from the host to a client.
Reliability
- The service provider is responsible for maintaining the integrity of the deployment infrastructure.The provider manages infrastructure failures by hosting or relaunching application servers across multiple availability zones. Automatic backups prevent complete data loss.
Load Balancing & Horizontal Scaling
- Users can be routed to horizontally scaled application servers in such a way as to reduce latency and provide the most optimal distribution of HTTP requests.
All the aforementioned conveniences can typically be customized in an Infrastructure as a Service (IaaS) delivery model. The advantage of PaaS is that the service provider is responsible for configuring resources on your behalf and optimally to reduce cost, provide reliability, and improve performance.
Typically service providers will offer tiered packages based on the number of resources and amount of cloud elasticity needed for an application. 4
Conclusion
The PaaS deployment model is one of the primary categories of cloud computing and is mainly aimed at developers who want a secure, reliable, scalable, and low-maintenance way to deploy an application. In terms of its offerings, it falls somewhere between SaaS and IaaS. PaaS deployments include resources that are managed and configured by the provider while allowing the application to be launched and accessible to the end-user as SaaS.
PaaS is the most popular deployment model because it offers some of the flexibility of IaaS while being significantly faster and simpler to develop. Also, the pricing model is fairly straightforward, influenced by factors such as:
- The initial cost of resources
- Maintenance and quality of service
- The number of times resources are used
- The time resources are provisioned.
The advantage of PaaS is that it reduces the time between development and deployment by removing or automating the underlying infrastructure on behalf of the developer. PaaS is typically used for single-page web applications/sites, but modern PaaS can deliver mobile/desktop applications as well.
To learn more about PaaS deployment check any of the sources cited below. And don't forget to check back regularly for new content.
Cited Sources
- Comptia: What is PaaS
- What is PaaS? A Beginners Guide 5
- Traditional vs PaaS Hosting 6
- IBM: Platform as a Service 13
Footnotes
Function as a Service (FaaS) wasn't mentioned in the prior article, but will be explore in a separate article later.
↩It should be noted that many PaaS providers only support certain programming languages. It's important to know what service you intend use before developing an application.
↩The biggest drawback of using PaaS is being locked into the service. Once an application is developed for a specific platform it may not be very easy to migrate to a different service or customize the infrustructure as the computing needs become more complex or scaled. Google Cloud Platform and Microsoft Azure also have comparable services that provide the same advantages as Elastic Beanstalk
↩Elasticity is a general term to describe the ability of a service to scale horizontally or vertically. Horizontal scaling is the provisioning multiple instances of a resource to distribute requests/load. Vertical scaling means increasing the compute power of a particular resource.
↩