Platform as a Service (PaaS) is an abstracted and integrated cloud-based computing environment that supports the development, running, and management of applications. Application components may exist in a cloud environment or may integrate with applications managed in private clouds or in data centers.
A primary value of a PaaS environment is that developers don’t have to be concerned with some of the lower-level details of the environment. You can look at a software stack as a pyramid:
- Infrastructure as a Service (IaaS) is at the foundational level and includes capabilities such as operating systems, networks, virtual machines, and storage.
- In the middle is the PaaS environment, which includes services for developing and deploying applications.
- Software as a Service (SaaS) is at the top of the pyramid representing the actual applications offered to end users.
PaaS vendors create a managed environment that brings together a combination of components that would have been managed separately in a traditional development environment. Services integrated in PaaS include middleware, operating systems, and development and deployment services to support software development and delivery organizations.
The goal of the PaaS provider is to create an abstracted environment that supports an efficient, cost-effective, and repeatable process for the creation and deployment of high-quality applications. These applications are designed to be implemented in public or private cloud environments.
PaaS enables an organization to do the following
- Leverage key middleware services without having to deal with the complexities of managing individual hardware and software elements.
- Access a complete stack of development and deployment tools via a web browser, a middleware environment where APIs can be used to plug into selected development and deployment tools. A developer might also leverage a full desktop development environment.
- Overcome the challenges of managing lots of individual development and deployment tools by providing a suite of integrated and standardized tools — operating systems, security products, and the like — that meet company requirements.
Platform as a Service (PaaS) can be viewed as having two fundamental parts: the platform and the service. The PaaS vendor doesn’t just deliver the software making up the platform; it also continuously services the software. As new updates and new configurations become available, the PaaS vendor can immediately push them to its customers.
One of the decisions you need to make when beginning to use a PaaS is whether you want to maintain the software or if you want the vendor to be the administrator.
- If you choose to maintain the software yourself, you must set up, configure, maintain, and administer the PaaS yourself (either on a public or private cloud).
- Alternatively, you can have the vendor to provide these services. The result is reduced friction between the development and deployment teams. There will, of course, be situations in which it’s critical for the internal team to control and manage a complex software environment.