Platform-as-a-Service (PaaS) offers a setting for creating, deploying, and using applications. PaaS offerings frequently include application software infrastructure (middleware) capabilities such as application platforms, business analytics platforms, integration platforms, event-streaming services, and mobile back-end services.
An additional set of monitoring, management, deployment, and related capabilities are frequently included in a PaaS offering. Although PaaS offerings frequently include features that appeal to operators, they primarily aim at application developers.
The application infrastructure provided by companies like application servers, database management systems, integration brokers, business process management systems, rules engines, and complex event processing systems is rendered as a cloud service by PaaS, according to one way of putting it. By reducing the amount of code that must be written and increasing the functional capabilities of the applications, such application infrastructure helps the application developer create business applications. In a PaaS system, only the application code is handled by the cloud service customer; installation, configuration, and maintenance of the application infrastructure are all handled by the cloud service provider.
Platform-as-a-Service offerings frequently extend middleware platform capabilities by providing application developers with a diverse and growing set of services and APIs that provide specific functionality in a managed, continuously available fashion. This approach aims to hide the fact that middleware exists, allowing developers to be productive immediately.
Furthermore, PaaS offerings provide their capabilities so that applications can take advantage of the native characteristics of cloud systems, frequently without the application developer having to add special code to the application itself. This enables development of “born in the cloud” applications without requiring specialized skills.
PaaS offerings differ from SaaS offerings because SaaS provides a fixed set of application capabilities. At the same time, PaaS allows for the creation and use of application code with whatever set of capabilities the business requires. The need for specialized code is widespread, and it is telling that many SaaS offerings include APIs designed specifically for tailoring, customization, and extension using PaaS-based applications.
Similarly, PaaS offerings can be contrasted with IaaS offerings: IaaS provides basic infrastructure but leaves the installation, configuration, and operation of required software stacks to the cloud service customer. A PaaS offering delivers application middleware stacks ready to use and managed by the provider. IaaS offerings provide extensive control over resources, which may be required for some applications, but at the expense of significant effort for the cloud service customer. PaaS offerings frequently organize the underlying resources, relieving the cloud service customer of responsibility and effort while potentially limiting options.
Some PaaS offerings combine elements of IaaS and SaaS cloud services, providing some control over basic resource allocation on the one hand and complete off-the-shelf software capabilities on the other. This may cause some confusion, but the ability of the cloud service customer to create and run applications and services that meet specific business needs is the hallmark of a PaaS system.
Best traits of Platform-as-a-Service (PaaS)
1. Support for custom applications
PaaS offerings typically support “born on the cloud” or “cloud native” applications that fully utilize the scalable, elastic, and distribution capabilities of cloud infrastructure. This is often accomplished without the application developer having to write any special code to take advantage of these capabilities.
2. Provision of runtime environments
Each runtime environment typically supports one or a small set of programming languages and frameworks, such as Node.js, Ruby, and PHP runtimes. In contrast to previous non-cloud middleware platforms, many PaaS offerings support a variety of runtime environments rather than just one or two. This allows developers to select the most appropriate technology for the task, becoming more common as “polyglot” environments gain acceptance in the industry.
3. Rapid deployment mechanisms
Many PaaS offerings typically offer developers and operators a “push and run” mechanism for deploying and running applications. This allows for dynamic resource allocation when an API passes the application code to the PaaS. By default, configuration requirements are kept to a minimum. However, the configuration can be controlled if necessary, such as controlling an application’s number of parallel running instances to handle the anticipated workload or to meet resiliency goals.
4. Support for a range of middleware capabilities
Applications have a wide range of requirements, reflected in the availability of diverse application infrastructures (“middleware”) that support a wide range of capabilities. One is database management, which includes SQL and NoSQL database technologies. Integration services, business process management, business analytics, rules engines, event processing, and mobile back-end services are also available.
5. Provision of services
Support for application developers typically includes more than just middleware; many capabilities are provided as separate services, typically invoked via an API. The service provider installs and manages the services, removing the customer’s responsibility. For example, in the case of a database service, the service provider is responsible for ensuring availability and reliability, having replicas and backups of the database data, securing the data, and so on. Provider services are an important concept in reducing the effort and complexity of developing software systems; rather than installing and managing a potentially complex set of software, get the capability off-the-shelf from a provider who is an expert in installing, configuring, and managing the required software.
6. Preconfigured capabilities
Many PaaS systems are distinguished by preconfigured capabilities by the provider, with a minimum configuration available to developers and customer operations staff. This reduces complexity, increases productivity, and reduces the possibility of unexpected problems by making capabilities easier to manage and debug.
7. API management capabilities
APIs are increasingly being used to expose some capabilities in business applications (“the API economy”). In some cases, this is required due to the nature of the application’s user interface – mobile apps typically require an API so that, while operating independently of the business application, they can access data and transactions as needed. In other cases, a component of the business solution allows third-party parties (partners, customers, and suppliers) to integrate their business applications with the enterprise. This integration is accomplished through the use of an API. Providing an API necessitates a level of control to ensure that only authorized users can access the API and that each user can only access the capabilities for which they have permission. API Management is required when providing an API.
8. Security capabilities
One of the most important aspects of any business solution is security. PaaS offerings, unsurprisingly, include built-in security capabilities, reducing the burden on developers and operators to provide and manage these capabilities. Firewall, endpoint management, secure protocol handling, access and authorization, encryption of data in motion and at rest, integrity checking, and other capabilities are available. PaaS systems can provide these capabilities with little or no impact on application code, making the programmer’s job easier.
9. Tools to assist developers
Many PaaS systems aim to unify and streamline system development and operations – in other words, to support DevOps by breaking down the divisions between development and operations that have traditionally existed in-house systems. PaaS systems facilitate the application lifecycle by supplying development tools such as code editors, code repositories, build tools, deployment tools, test tools, and services and security tools. A set of application monitoring and analytics services, including capabilities such as logging, log analysis, and app usage analytics and dashboards, is also common.
10. Operations capabilities
PaaS systems assist operators by providing operations capabilities for both the applications and the PaaS system itself through dashboards and, more commonly, through APIs that allow customers to plug in their operations toolkits. The capacity to increase or decrease the number of running instances of an application, for example, is common (to deal with varying application load) and is handled in some cases by automated services that vary the number of instances based on a set of rules established by the customer operations staff.