Platform as a Service (PaaS)
What is PaaS (Platform-as-a-Service)?
PaaS, or Platform-as-a-Service, is a cloud computing model that provides customers a complete cloud platform—hardware, software, and infrastructure—for developing, running, and managing applications without the cost, complexity, and inflexibility that often comes with building and maintaining that platform on-premises.
The PaaS provider hosts everything—servers, networks, storage, operating system software, databases, development tools—at their data center. Typically customers can pay a fixed fee to provide a specified amount of resources for a specified number of users, or they can choose 'pay-as-you-go' pricing to pay only for the resources they use. Either option enables PaaS customers to build, test, deploy run, update and scale applications more quickly and inexpensively they could if they had to build out and manage their own on-premises platform.
What is included in PaaS?
The main offerings included by PaaS vendors are:
Different vendors may include other services as well, but these are the core PaaS services.
Development tools
PaaS vendors offer a variety of tools that are necessary for software development, including a source code editor, a debugger, a compiler, and other essential tools. These tools may be offered together as a framework. The specific tools offered will depend on the vendor, but PaaS offerings should include everything a developer needs to build their application.
Middleware
Platforms offered as a service usually include middleware, so that developers don't have to build it themselves. Middleware is software that sits in between user-facing applications and the machine's operating system; for example, middleware is what allows software to access input from the keyboard and mouse. Middleware is necessary for running an application, but end users don't interact with it.
Operating systems
A PaaS vendor will provide and maintain the operating system that developers work on and the application runs on.
Databases
PaaS providers administer and maintain databases. They will usually provide developers with a database management system as well.
Infrastructure
PaaS is the next layer up from IaaS in the cloud computing service model, and everything included in IaaS is also included in PaaS. A PaaS provider either manages servers, storage, and physical data centers, or purchases them from an IaaS provider.
Benefits of PaaS
The most commonly-cited benefits of PaaS, compared to an on-premises platform, include:
Faster time to market. With PaaS, there’s no need to purchase and install the hardware and software you use to build and maintain your application development platform—and no need for development teams to wait while you do this. You simply tap into the cloud service provider’s PaaS to begin provisioning resources and developing immediately.
Affordable access to a wider variety of resources. PaaS platforms typically offer access to a wider range of choices up and down the application stack— including operating systems, middleware, databases and development tools—than most organizations can practically or affordably maintain themselves.
More freedom to experiment, with less risk. PaaS also lets you try or test new operating systems, languages, and other tools without having to make substantial investments in them, or in the infrastructure required to run them.
Easy, cost-effective scalability. With an on-premises platform, scaling is always expensive, often wasteful and sometimes inadequate: You have to purchase additional compute, storage and networking capacity in anticipation of traffic spikes; much of that capacity sits idle during low-traffic periods, and none of it can be increased in time to accommodate unanticipated surges. With PaaS, you can purchase additional capacity, and start using it immediately, whenever you need it.
Greater flexibility for development teams. PaaS services provide a shared software development environment that allows development and operations teams access to all the tools they need, from any location with an internet connection.
Lower costs overall. Clearly PaaS reduces costs by enabling an organization to avoid capital equipment expense associated with building and scaling an application platform. But PaaS also can also reduce or eliminate software licensing costs. And by handling patches, updates and other administrative tasks, PaaS can reduce your overall application management costs.
领英推荐
Use cases for PaaS
By providing an integrated and ready-to-use platform—and by enabling organizations to offload infrastructure management to the cloud provider and focus on building, deploying and managing applications—PaaS can ease or advance a number of IT initiatives, including:
API development and management: Because of its built-in frameworks, PaaS makes it much simpler for teams to develop, run, manage and secure APIs (application programming interfaces) for sharing data and functionality between applications.
Internet of Things (IoT): Out of the box, PaaS can support a range of programming languages (Java, Python, Swift, etc.), tools and application environments used for IoT application development and real-time processing of data generated by IoT devices.
Agile development and DevOps: PaaS can provide fully-configured environments for automating the software application lifecycle including integration, delivery, security, testing and deployment.
Cloud migration and cloud-native development: With its ready-to-use tools and integration capabilities, PaaS can simplify migration of existing applications to the cloud—particularly via replatforming (moving an application to the cloud with modifications that take better advantage of cloud scalability, load balancing and other capabilities) or refactoring (re-architecting some or all of an application using microservices, containers and other cloud-native technologies).
Hybrid cloud strategy: Hybrid cloud integrates public cloud services, private cloud services and on-premises infrastructure and provides orchestration, management and application portability across all three. The result is a unified and flexible distributed computing environment, where an organization can run and scale its traditional (legacy) or cloud-native workloads on the most appropriate computing model. The right PaaS solution allows developers to build once, then deploy and mange anywhere in a hybrid cloud environment.
Purpose-built PaaS types
Many cloud, software and hardware vendors offer PaaS solutions for building specific types of applications, or applications that interacting with specific types of hardware, software or devices.
AIPaaS (PaaS for Artificial Intelligence) lets development teams build artificial intelligence (AI) applications without the often prohibitive expense of purchasing, managing and maintaining the significant computing power, storage capabilities and networking capacity these applications require. AiPaaS typically includes pre-trained machine learning and deep learning models developers can use as-is or customize, and ready-made APIs for integrating specific AI capabilities, such as speech recognition or speech-to-text conversion, into existing or new applications.
iPaaS (integration platform as a service) is a cloud-hosted solution for integrating applications. iPaaS provides organizations a standardized way to connect data, processes, and services across public cloud, private cloud and on-premises environments without having to purchase, install and manage their own backend integration hardware, middleware and software. (Note that Paas solutions often include some degree of integration capability—API management, for example—but iPaaS is more comprehensive.)
cPaaS (communications platform as a service) is a PaaS that lets developers easily add voice (inbound and outbound calls), video (including teleconferencing) and messaging (text and social media) capabilities to applications, without investing in specialized communications hardware and software.
mPaaS (mobile platform as a service) is a PaaS that simplifies application development for mobile devices. mPaaS typically provides low-code (even simple drag-and-drop) methods for accessing device-specific features including the phone's camera, microphone, motion sensor and geolocation (or GPS) capabilities.
Examples of Platform as a Service
Popular PaaS providers include AWS Elastic Beanstalk, Microsoft Azure App Services, Google App Engine, IBM Cloud and Red Hat OpenShift.
What are the potential drawbacks of using PaaS?
Vendor lock-in
It may become hard to switch PaaS providers, since the application is built using the vendor's tools and specifically for their platform. Each vendor may have different architecture requirements. Different vendors may not support the same languages, libraries, APIs, architecture, or operating system used to build and run the application. To switch vendors, developers may need to either rebuild or heavily alter their application.
Vendor dependency
The effort and resources involved in changing PaaS vendors may make companies more dependent on their current vendor. A small change in the vendor's internal processes or infrastructure could have a huge impact on the performance of an application designed to run efficiently on the old configuration. Additionally, if the vendor changes their pricing model, an application may suddenly become more expensive to operate.
Security and compliance challenges
In a PaaS architecture, the external vendor will store most or all of an application's data, along with hosting its code. In some cases the vendor may actually store the databases via a further third party, an IaaS provider. Though most PaaS vendors are large companies with strong security in place, this makes it difficult to fully assess and test the security measures protecting the application and its data. In addition, for companies that have to comply with strict data security regulations, verifying the compliance of additional external vendors will add more hurdles to going to market.