Platform as a service (PaaS) is a cloud-based web development platform that shifts computing infrastructure and development tools from the customer data center to the PaaS cloud provider. Some PaaS environments run on a business’s private cloud, but most PaaS offerings run from a cloud computing vendor who provides the infrastructure and the full development toolset.
What is Platform as a Service?
Unlike IaaS, PaaS does not replace a full computing infrastructure. It provides prebuilt computing infrastructure and development tools that support a rapid development environment. This includes operating systems, database management systems, server-side scripting environments, server software, support, storage, network access, design and development tools, and application hosting. The PaaS vendor delivers PaaS services from their cloud data center, usually on a pay-per-use subscription basis. End users choose the features that they need.
The PaaS stack operates on two primary levels: the computing infrastructure and the development environment. Level 1 is the infrastructure: the PaaS vendor delivers the computing environment, including operating systems, network, servers, and storage. The cloud vendor also provides data protection, scalability, load balancing, failover, security, and upgrades.
Level 2 is the development environment: the provider builds and manages the development and hosting platform including libraries, services, frameworks, testing, and programming languages.
Benefits of PaaS
- Cut development time: PaaS offerings usually provide pre-coded application components for faster programming such as application search and workflow, security, and directory services. Some offerings do not provide pre-coded components, but support user-uploaded libraries and frameworks that save time in the development process.
- Cost savings: End-users save money by offloading hardware, software, and programming purchases to the service provider. And since development is faster, businesses can avoid the extra expense of new programmers and IT admins. Hosting is also considerably more cost-effective thanks to cloud scalability and geographic distribution.
- Faster cross-platform and mobile development: Some PaaS providers build their environments around mobile application development, and/or cross-platform portability. This makes mobile and cross-platform apps quicker and easier to develop and upgrade.
- Flexible and affordable services: End-users can choose the features they want on a pay-as-you-go basis including advanced programming and analytics tools. Although more features mean higher bills, that amount is usually far less than buying in-house tools that that they may never use.
- Geographically distributed teams: Remote teams can work together using the same development environment, and development can run 24x7 if development teams are in multiple time zones.
- Efficient development lifecycle: PaaS environments provide full lifecycle services including application programming, testing, deploying, managing, hosting, and updating. Individual offerings will differ in how extensive each lifecycle offering is. For example, one PaaS offering concentrates on highly advanced development and analytics tools, while another offers simpler development tools but has a greater hosting reach.
- Increase developer innovation: High costs of computing infrastructure and programming tools can stymie development innovation and experimentation. development teams. Cost-effective PaaS encourages innovative development teams.
- Scalability: Extremely scalable cloud infrastructure enables PaaS developers to rapidly provision computing infrastructure, and to offer high performance cloud applications to massive end-user communities.
Source: Technet The Platform as a Service model manages most of the development platform for a client.
When – and When Not – to Use PaaS
PaaS is very useful in the right circumstances since it allows developers to decouple the development lifecycle from IT requirements. IT also benefits because they do not have to provision dynamic computing environments for development teams or massive web farms for pp hosting. Meanwhile the cloud delivers massive scalability, flexible usage models, and enterprise-level security.
PaaS also benefits teams who are developing mobile or cloud applications, employ remote team members, are trying to hit deadlines without hiring extra staff.
It is not as useful when developers want platform-independent code, or when they risk PaaS vendor lock-in, or when performance requires a highly-customized computing environment. And although your service provider should provide a high level of security, not every business is comfortable and developing web applications in multitenant environments.
For beginning-to-end guidance on choosing cloud types and vendors, read our comprehensive guide to cloud computing.
What to Look for in PaaS Vendors
When you are looking for a PaaS provider, first ask them all the questions that you need to ask any cloud computing provider around performance, scalability, service level agreements, security, and reliability. Ask PaaS vendors additional questions around development environment customization, automation, flexibility, and support.
- Customization. Customizing the PaaS stack can make or break the development team’s success. Some level of customization is implicit in the PaaS offering because the users can choose the components that work for them. However, teams should know what elements the cloud provider will customize and how they handle change requests. Retain some customization control over configuration and management for app testing in different environments.
- Automation. Automated provisioning is one of the cloud’s primary benefits. Understand your provider’s automation levels and how they benefit you, and include automation levels in your service level agreements.
- Flexibility. If the team is developing third-party applications for a SaaS product, then flexibility may not be a big issue. It’s also not an issue if a team is deliberately using the provider’s proprietary language to develop and host applications on the provider cloud. However, flexibility becomes a big concern when a team wants to be platform independent, or avoid vendor lock-in.
- Support. Customer service and support are fundamental to successful PaaS agreements. Many development teams prefer a self-service portal, but also need to do due diligence around support services. Some questions to ask include the support engineers’ level of expertise, how long it takes to escalate an incident, and extra costs.
PaaS offerings are not monolithic. Some are simplified application environments that concentrate on massive hosting and distribution, while others provide advanced development environments.
PaaS offerings also differ in their hosting requirements. Some platforms serve a specific SaaS environment such as Salesforce's Force.com. Other offerings are inextricably linked to their cloud operating environment such as AWS, while still others are open offerings deployed on public, hybrid, and private clouds. Note that the public cloud vendors – AWS, Google, and Azure –support cloud-based development but may focus primarily on massive application deployment and hosting.
- Cloud Foundry is a widely used open source PaaS platform. Cloud Foundry supports most programming languages and deploys them as container images across multiple infrastructures. IBM based Bluemix on Cloud Foundry open-source and runs it on SoftLayer infrastructure.
- Engine Yard is another commercial grade, open source PaaS technology. One of their competitive differentiators is flexibility, so every instance is 100% dedicated and customizable.
- IBM Bluemix supports multiple programming languages and services, and integrates DevOps for rapid cloud application development. Bluemix natively supports major programming languages and buildpacks can extend support to additional languages.
- Microsoft Azure supports application development for Android, iOS, and Windows. As with the two other public clouds, Azure’s massive resources support large application hosting.
- AWS Elastic Beanstalk is a simplified service for deploying and hosting web applications and services developed with popular programming languages. Elastic Beanstalk allows developers to upload their code, and AWS provides a fully hosted and dynamic cloud environment.
- Google App Engine supports end-user language runtimes, frameworks, and third party library uploads. Developers can develop and host their applications from the Google Cloud.
- Salesforce Force.com is an application development environment for Salesforce SaaS CRM. Developers use Force.com to extend the CRM’s functionality with intelligent workflows, custom applications, predictive sales, and more.
- Oracle Cloud IaaS allows developers to build on and deploy enterprise applications and to extend Oracle Cloud SaaS with third-party apps. Oracle supports public, private, and hybrid clouds, and lets developers shift workloads between the different environments including on-premise.