Over the past decade or so, cloud computing models have been evolving at crazy speeds. It is almost impossible to keep track of every single advancement in the cloud ecosystem. But fear not—with this article, I hope to make your life a bit easier. If you are looking to understand a bit better what Platform as a Service (PaaS) is, I am here to help!
In this post, I will try to explain what PaaS actually is, its advantages and disadvantages, what makes it different from other cloud computing models, how much it will cost you to utilize it, and more.
Let’s jump in!
What is PaaS?
In a nutshell, PaaS is a cloud computing model that provides developers with a platform to develop, deploy, and run applications. Its main goal is rapid development and that’s the reason why it aims to eliminate the costs and complexity that come with configuring, deploying, and managing the required infrastructure.
A quick look into the history of PaaS
Except for Zimki, between the years 2005 and 2008, PaaS was still a new concept in software engineering. It was then upstart companies started popularizing cloud computing and building their reputation on a platform model.
PaaS had one clear goal: to make it possible for developers to run a complete application—from deploying updates, to database hosting—on a single platform. And that unique characteristic is what made it popular and helped it thrive from 2016 onwards, with the onset of the container era and the explosion of cloud native unicorn startups.
What are the advantages of PaaS?
PaaS has many advantages but to sum it up:
- it offers the right level of abstraction for developers
- It is a pay-as-you-go service
- It is built on shared good practices
One of the reasons I am such a huge fan of PaaS is the fact that it offers big advantages compared to other computing services, like: Database as a Service (DBaaS), object-based storage, and many others. We are not going to dive into the comparison between PaaS and other cloud computing models (i.e. IaaS and SaaS) in this article, but make sure you stay tuned because we’ll be covering this topic in a future blog post!
Most of the added value that PaaS brings is around allowing developers to stay focused on what they do best: coding! Managing infrastructure or building complex solutions is not how you want to utilize your developers’ expertise. Not to mention that finding developers with this particular skill set is significantly difficult and expensive.
What are the disadvantages of PaaS?
Honestly, there’s not much I can mention here other than:
- one size does not fit all
- vendor lock-in
- financial viability
There are plenty of narratives picturing PaaS as a technology that has reached its peak of effectiveness while others, rightfully so, point to a few disadvantages that come with this model, including the inflexibility that comes with vendor lock-in, and the risk of financial viability.
This last one, in particular, is extremely important. If you invest in the wrong vendor which, unfortunately, runs out of business, this can force you into a mandatory migration, costing you money and many, many hours of work.
The line isn’t always that clear
It is always easier to ask for the clear advantages and disadvantages of a given technology but the line between those two isn’t always clear. One characteristic of PaaS that is considered an advantage in one scenario, might be a disadvantage in another.
PaaS can have what we call a black box effect. Users and stakeholders can observe its behavior, the magic it creates, but they cannot really understand or have a closer look at the internal mechanics, because this is not how this model works. PaaS simply creates the magic and this is not compatible with a frozen architecture.
Another point we can mention here is the pricing. PaaS pricing (see more below) is often considered an advantage for small companies, as they have all they need in a single toolbox, but a disadvantage for larger companies. This happens because most large companies can easily lose visibility of engineering costs and try comparing the cost of Platform as a Service to Infrastructure as a Service (IaaS).
And yes, PaaS infrastructure definitely costs more than the equivalent of IaaS. However, PaaS consolidates all Ops and R&D costs in the same invoice with one price tag. We’ll go into more details on this later on.
What are the characteristics of PaaS?
All PaaS technologies are following the shared responsibility model, which is the only common characteristic between PaaS and other models—i.e. IaaS and Software as a Service (SaaS). PaaS users are responsible for their applications’ code and data, as well as any custom runtimes, while the vendor delivers as a service the following:
- platform runtime
- Operating System
In order to understand those characteristics that make PaaS unique, we need to understand that there is not only one PaaS implementation per platform but rather a common scheme between them. Basically, this means that a PaaS platform is responsible for:
- providing an infrastructure—servers, network, storage
- bootstrapping and deploying servers—install and configure OS, install the desired runtime, as well as install security patches and keep them up to date.
- providing middleware services—database, messaging service, cache storage, etc. The types of middleware provided always depend on the choice of PaaS and its implementation.
PaaS is here to automate Ops and focus on Dev because this is where the value is. Every service should aim to go further than simply deploying an app or a database and this is why PaaS was created to be more than just an abstraction of infrastructure or a cloud broker.
What PaaS really brings to the table is the added value of user experience, which is crucial for this cloud computing model. PaaS takes into consideration the Software Development Life Cycle (SDLC) and the developer experience, more than anything else.
- Is it easy to deploy with PaaS? What is the impact on the CI/CD pipeline? Does it integrate with Git repositories or with an existing pipeline?
- What is the customization level of PaaS? How to find the sweet spot between a way-too-complex platform with endless configuration options and a way-too-simple one that offers little to no configuration options?
- Can apps be operated once they are deployed? How about monitoring and alerting?
- Can the middleware be operated and monitored? What about database backups? How seamless is the integration between the developer’s code and middleware?
- How resilient and scalable is PaaS? Can apps scale with PaaS and what happens if a data center fails?
All these questions are the core of what PaaS aims to achieve as a cloud computing model and in the case of Artifakt, specifically, these questions drive our entire product roadmap.
How much does a PaaS cost?
This is a rather difficult question to answer with a straightforward response since the price of PaaS offerings depends on several variables. To mention a few:
- multi-dimension usage
- pitfalls—bandwidth, backups, regions
- special licensing may apply
Many PaaS systems, both hosted and self-hosted, offer unlimited and hourly access. However, the cost is one of the deciding factors. Typically, basic PaaS offerings cost from a few dollars to multiple thousands per month, depending on what you need. The idea behind the pricing model is to fit into your existing infrastructure at a low cost and scale the platform’s sizing and cost according to your real usage.
PaaS can be extremely cost-effective in comparison to traditional data centers or cloud hosting providers when deployed correctly. In a way, PaaS acts like a host with a lot of extra goodies coming with the package! Because of its relatively low cost, it has been considered an alternative for hosting high-cost traditional applications as well as web applications.
Whether I convinced you that PaaS is the right option for you or not, I do hope that you enjoyed this article! PaaS is probably not the right model for every single scenario out there but it sure brings a lot of benefits.
From its unique emphasis on SDLC and developer experience to its affordability, PaaS has a lot to offer as a cloud computing model.
And remember, no matter which model you decide to adopt, make sure to always audit vendors thoroughly and give priority to the needs of your development team—they are the heart and soul of your product!