What is PaaS?
In the case of Software as a Service(software), a provider gets you a whole application hosted in the cloud, including your data. And in the case of Infrastructure as a Service(IaaS), you get a couple of servers, along with virtualization, and on top of it you install an operating system, the middleware, and you build an application. A Platform as a Service(PaaS) model is somewhere in between these two(SaaS) and IaaS), where you simply build the application.
In Platform as a Service, you get an entire development platform from the vendor, ready to build an application. Simply write the code and upload it. The vendor will handle the servers, virtualization, operating system, middleware as well as the management of the database. Sometimes a PaaS provider will be using infrastructure from an IaaS provider. You will also get a suite of development tools, including a code editor, compiler, debugger, a database management system and just about everything you need to build an application. The specific tools provided in the PaaS framework may be different for different vendors.
While a Platform as a Service model takes away a lot of control from you compared to an IaaS model, it offers a lot of benefits. As mentioned before, you don’t have to worry about maintaining a platform to run your code on, you just worry about the code. The entire backend is handled by the provider. A PaaS model will allow developers to work while being around the globe, as the developing environment is accessible over the internet through a browser. And depending on the provider, you may also get a pay-as-you-go model where you pay for what you use.
Public, Private and Hybrid PaaS
PaaS is available through public, private, or hybrid cloud models.
PaaS was initially offered as public PaaS. It began with Google’s app engine and relies on infrastructure such as servers and networking from the vendor. And it’s often the same provider, as in the infrastructure for a vendor’s PaaS comes from the same vendor’s IaaS services. In case of Microsoft’s Azure PaaS runs on Azure IaaS. And this is the best option for small businesses and a public PaaS gets you all the benefits of the PaaS model, that is, not having to worry about the infrastructure.
But such a model comes up with its own problems of security and data problems. This is where Private PaaS becomes useful. Here, the entire PaaS software is run on the company’s own servers. The private cloud will be handled by the company’s own IT department. This allows a company to meet the privacy and security requirements and at the same time, not worry about the application stack. Basically, in a private PaaS, you remove the IaaS from PaaS. The advantage here is that the sensitive data is stored in the company’s own data centre itself. And this is also particularly good for internal applications. Apprenda and Openshift from Redhat are good examples of private PaaS.
A hybrid PaaS is a good compromise between a public PaaS and a private PaaS, and it is exactly what it sounds like. Here, a combination of public and private servers are used for PaaS.
This is useful when you have pretty steady requirements with occasional peaks. So the public cloud takes over the additional requirements. This is useful for optimising the costs. You invest in the hardware that is enough for most of the time, and you don’t have to rely on costly public servers because there are occasional rises in the required computing power.
Difference between serverless and Platform as a Service
Serverless architecture and PaaS are very similar. From a developer’s perspective, there are no servers both for PaaS and Serverless architecture. But in both of them, servers ARE involved, except they are being managed by the vendor. The difference is mainly on the launch time, scaling, the level of control, and pricing.
Serverless applications are triggered by a specific event and launch instantly while in PaaS, it takes some time for the applications to be up and running. When it comes to scaling, in PaaS you have to configure the system to scale up, and it requires the developer to do some forecasting. In the case of serverless, neither the vendor nor the developer needs to do anything, the application will scale up automatically with user demand.
Compared to PaaS, developers get less control over the development environment in case of serverless, and in general, vendors don’t provide tools for testing applications.
When it comes to pricing, developers pay for exactly what they use in serverless architecture, while you may have to pay a flat fee per month or so for PaaS. While it is possible to customize the amount of computing power that is needed in PaaS, you’ll still have to do that in advance. In case of serverless architecture, vendors may bill you for the time, even going so far as to divide it into fractions of a second, or they may charge you for the number of requests.
Serverless architecture is great when you have specific events that trigger functions, and when there are constant fluctuations in the demand. Running applications that have constant usage may become very expensive very soon. For a fully-fledged development environment with a steady usage go for PaaS.
Top PaaS providers
As with IaaS, top PaaS offerings are from Microsoft, Google, Amazon and IBM as well as Oracle, Salesforce,
- Microsoft Azure
- Amazon AWS Elastic Beanstalk
- Google App Engine
- IBM Bluemix(IBM cloud platform)
- Heroku(Salesforce)
- Oracle Cloud platform
Almost all of these platforms offer support for all the common languages like javascript, Java, .Net, Python, etc. And Google’s app engine, as well as the PaaS offerings from Microsoft and IBM, are integrated with the cloud platforms from the respective vendors.
Advantages of Platform as a Service
- Just get started quickly
- Low investment
- Easy collaboration
The best part about the PaaS model is the speed of delivery. With a complete development environment all good to go, a PaaS model lets you get started ASAP without having to worry about building and testing a platform and background infrastructure. This is great when you’re working in a competitive environment and wants to bring your application quickly to the market.
Since the vendor handles just about everything, you can start building the moment you have an idea. Now the benefits to this is both in terms of time and money. You don’t have to spend a lot of time and money setting up servers, building a platform and backend, to throw it all away in case the idea doesn’t pan out. You can reduce the risk by a huge margin. Once the demand increases, it is once again easy to scale up.
Since the platform is available through a browser with an internet connection, developers can collaborate from all over the world without any difficulty.
Disadvantages of Platform as a Service
- Vendor dependency
- Security
- Less flexibility
The major drawback of a PaaS model is the dependency on a vendor. Migrating from one vendor to another is not easy, as it requires rebuilding the application almost from scratch, as different providers support different languages and operating systems. If the vendor decides to change the pricing, you’ll be in a difficult position.
In the case of Public PaaS, there are inherent risks with storing your data on the vendor’s servers. And you’ll need to verify that they are compliant with security standards. If the vendor relies on an IaaS provider for the hardware, it will be difficult to verify the security compliances of all the involved parties. Of course, this can be solved to an extent by using a private PaaS model.
Compared to an IaaS model, a Platform as a Service model is a lot less flexible. The vendor decides everything from the servers to the middleware. Of course, you can always choose a vendor that provides the specifications according to your needs, but it’s hard to change later.