Platform as a Service (PaaS) is the middle layer of the cloud computing stack, sandwiched between Software as a Service (SaaS) at the top and Infrastructure as a Service (IaaS) on the bottom. Put simply, the three services determine whether you consume (SaaS), build (PaaS) or host software (IaaS).
What is PaaS Used for?
PaaS is used for application development, testing and deployment over the internet, whilst the majority of hosting infrastructure is managed for you. While the layers of the cloud computing stack have blurred due to providers trying to differentiate their offering, PaaS usually contains the following features for you to develop upon:
- Operating system
- Database management system
- Server software
- Runtime environments
- Tools for application design and development
- Security and Integration
Plus, the following features included in IaaS:
- Server HW
- Network access
Examples of well known PaaS providers include Heroku, Google App Engine, and Red Hat’s OpenShift.
What are the Pros and Cons?
Firstly, PaaS gives you full control of the software. This, among other benefits, such as the added control over application development, enables you to develop and provide SaaS to businesses wanting a finished solution. On the opposite side of the stack, by providing a developing enivronment unlike IaaS, PaaS makes application development possible for infrastructure ‘non-experts’. For example, PaaS can automate your testing and development services for you, whilst frequently updating your operating system.
As a collaborative platform, PaaS also makes sense if you are working with a number of external parties in different locations. As long as they all have internet access, several users in different locations can work together to build the same application.
On the negative side, PaaS isn’t suitable for applications that need to be highly portable in terms of where they are hosted. As PaaS uses proprietary data, certain providers raise concerns over vendor lock-ins – when a proprietary language hinders moving to another provider.
Whilst PaaS enables you to develop customised applications, it doesn’t allow you to customise the underlying hardware and software. This therefore prevents you from fully optimising your application’s performance.
Finally, although scalability is generally regarded as a positive of cloud computing, PaaS is limited if your business is constantly scaling up (or down), as some providers don’t make it easy to increase power or space quickly.
Public, Private or Hybrid PaaS – which is best?
The PaaS public cloud emulates what the cloud is all about – rapid deployment and use of infrastructure on demand. However, as expected, the public cloud isn’t ideal if your working on something that needs to remain private. If this is the case, PaaS on a private cloud might be a better fit.
Private cloud is a viable option, as it delivers better security and can make managing costs easier. Private cloud PaaS also gives you central control over deployment operations and allows you to develop cloud applications that couldn’t exist on the public cloud, either for technical or legal reasons. But what about if you want the scalability of public systems, with the security of a private cloud? Luckily there is a third option.
The hybrid solution is relatively new to PaaS and was introduced to offer the best of both worlds. Hybrid PaaS allows you to develop your own support infrastructure, whilst harnessing the rapid scalability of the public cloud during peak times. In other words, both the public and private cloud is at your disposal, allowing you to allocate one to use based on a project’s needs and security criteria. In reality, all three have their benefits, but which one you choose depends on what you prioritise.
IaaS vs. PaaS – What’s the difference?
As stated in our blog post analysing the similarities between IaaS and Bare Metal Cloud, it really depends on how you define IaaS and how literal you are with the word “infrastructure”. Looking exclusively at the cloud computing stack alone, having the bottom layer labelled as “infrastructure” makes sense, as, unlike SaaS and PaaS, you gain access to servers and choose which OSs to run. However, now that bare metal cloud is a reality, then IaaS and PaaS become rather similar.
Depending on your viewpoint, bare metal cloud can be seen as the true “infrastructure” of cloud computing, as it gives complete control over the system’s architecture. Once open to the opportunities that come with a bare metal cloud, virtual versions of IaaS merge with PaaS. For example, neither gives you single-tenant control like bare metal cloud. Instead, IaaS and PaaS both run on VMs created on the top of hypervisors. The similarities continue as both PaaS and IaaS providers still manage virtualisation, servers, hard drives, storage, and networking. The key differences between the two is that PaaS provides development tools, runtime environments, and ready-made databases for you to run applications on, as well as data security, backup and recovery.
What really matters is that you get the right server hosting to fit your needs. As the middle layer, PaaS is often a compromise. If you want to develop, test and deploy customised applications, then choosing PaaS is recommended. However, if you want to more control to manage applications on your own OSs, then an IaaS solution (virtual or bare metal) will be more suitable.
If developing a SaaS product on PaaS, IaaS or bare metal, check out our SaaS guide to know what it takes to make a profit.