Weigh the benefits of PaaS providers against lock-in risks
The right PaaS environment enables developers to focus on what they care about most: building a successful application. But it also brings new risks -- particularly around lock-in.
Application development is a complex task that requires enterprises to make a number of difficult decisions. What technology stack should you use? How will you handle monitoring? Do you need an API?
While these decisions, among many others, dictate how you build an application, you'll still need an underlying architecture or platform on which your applications can run. To meet that particular need, many enterprises turn to platform as a service (PaaS), a cloud computing model that aims to reduce the overhead required to develop, deploy and scale applications.
But dev teams should take note: PaaS comes with both pros and cons.
Features from PaaS providers
While the main goal of PaaS is to minimize infrastructure overhead in application development, many PaaS providers -- including public cloud giants, like AWS and Azure, and many other smaller or specialized PaaS players -- also offer features to ease the burden of building and managing applications. Although functionality varies greatly from vendor to vendor, they all aim to achieve the same general goal: provide a highly usable platform that enables developers to quickly and efficiently manage the application development lifecycle.
To that end, some key capabilities to look for in PaaS offerings include:
Application infrastructure
Many PaaS providers offer features ranging from application hosting to storage and data services, all of which drastically reduce the management effort traditionally required to launch and run a successful application. This infrastructure foundation is especially useful when developers have wide-reaching applications that require a large number of components, such as load balancers, firewalls, asynchronous messaging services and data analysis tools.
Development platform
A robust development platform is another feature available from PaaS providers. By abstracting away some of the more common development tasks, PaaS lets dev teams build more stable applications using built-in software components. These abstractions -- such as machine learning support, big data services and network functionality -- establish a framework that developers can build upon to create powerful applications with relatively minimal effort.
Technology support
Many PaaS providers offer built-in support for a wide range of technologies, such as programming languages. This support, while different from provider to provider, generally includes the most popular technologies in use today, such as Go and Node.js or PostgreSQL and MongoDB, enabling a more straightforward and seamless experience that doesn't hinder the development process.
Deployment workflows
Application deployment can be a difficult process to successfully set up and execute. Because of their specific configuration requirements, many PaaS providers offer single-command deployment workflows that are much simpler than those traditionally found in other hosting methods.
Application management tools
Application management is another time-consuming task for development teams. To offset that effort, PaaS typically includes application management capabilities that range from manual back-end resource scaling to team member access management.
Common uses for PaaS
To determine whether PaaS could benefit your enterprise, you need to first understand the kinds of features PaaS providers offer and how teams generally put them to use.
Decrease application time to market
With application development, there are a lot of necessary steps to take along the path from initial concept to final delivery. While many of these steps are unique to the business logic of the specific application, many are common, repetitive tasks that every application developer must perform. PaaS, by design, reduces application time to market by automating -- and, in some cases, completely eliminating -- housekeeping and maintenance tasks, such as setting up CI/CD pipelines, configuring domain name system settings and provisioning application storage.
Move to an Opex cost model
In traditional, on-premises application development, capital expenditures made up a significant part of the budget, requiring teams to purchase, manage and, ultimately, depreciate the hardware and equipment to host the application. On the flip side, cloud hosting shifts these expenses from capital expenditures to recurring operating expenses.
While there are pros and cons to this change, one of the benefits is that admins can drastically reduce the cost of certain operating expenses -- ranging from actual staff to additional infrastructure -- and implement a cost structure that scales with application demand.
Reduce infrastructure management
As mentioned above, PaaS helps reduce the burden of managing scalable infrastructure, as it abstracts away the complexities associated with load balancing, scaling and even provisioning new dependent services. PaaS providers, rather than the developers, handle these tasks.
Provide access to emerging tools and cloud services
Also mentioned above, access to cutting-edge development tools is a crucial selling point for PaaS, especially for smaller teams and independent developers. For larger organizations, the true value here is the reduced governance associated with introducing new technologies. For example, where establishing a continuous integration pipeline might traditionally require launching and provisioning new servers, updating network routes, opening firewalls and defining access controls, PaaS effectively cuts out the middleman by natively handling these tasks.
What's more, with support for newer programming languages and technologies, like containers and serverless functions, PaaS can introduce more avenues for growth -- especially within industries that are slower to evolve technically, such as banking or manufacturing -- without the need to drastically change the way you do business.
By nature, the use of any cloud hosting provider offers ease of access to its other cloud services. For example, rather than simply have authorized access to a cloud provider's object storage platform or database service under one authentication method, a PaaS offering could drastically simplify the integration of these additional services through the use of code-level manifests.
Drawbacks of PaaS
Despite its advantages, PaaS isn't perfect for every application. There are a handful of challenges, ranging from security to availability, that development teams must consider when evaluating PaaS over other application hosting methods.
Some common PaaS drawbacks or challenges include:
Security and compliance risks
PaaS software is commonly available in a public, multi-tenant environment. This means that multiple end users share the same underlying resources. For many applications, this is acceptable, but for applications that contain a lot of sensitive data or have strict compliance requirements, the risk of multi-tenancy could be greater. In this case, an enterprise might need to be more diligent in terms of PaaS selection and configuration.
Runaway costs
While PaaS does offer some opportunity to cut costs, large-scale applications can become very expensive to run if you do not manage them properly. Generally, the cost of running an application in a PaaS environment is directly related to its scale, so always keep in mind the resources your app needs to run and grow.
Vendor lock-in and dependence
PaaS providers have unique configuration requirements, meaning that moving from one provider to another can be difficult. Put simply, vendor lock-in with PaaS is almost unavoidable.
Another related, and considerable, disadvantage of PaaS is vendor dependence. Because providers often design PaaS platforms to be all-inclusive, developers can find themselves limited by the features of their chosen platform. This means that everything from database technology to supported languages can dictate how they design and build applications. Teams might have to rule out a preferred vendor if it doesn't support their required features.
Service availability
Less control over availability is a well-known risk of any cloud service, but PaaS environments can be even more susceptible to this risk due to the vendor lock-in challenges mentioned above. For example, when you host an application in a more traditional virtualized environment, it's relatively straightforward to establish a failover mechanism through load balancing across different providers. With PaaS, however, teams are limited to a vendor's specific -- and often proprietary -- tool set, which makes this process difficult.
Guiding questions
To determine if PaaS is right for their needs, buyers must ask themselves some important questions:
Does my organization need the functionalities that PaaS offers?
From the underlying infrastructure to deployment procedures, the PaaS provider often determines, and plays a role, in how application management occurs on its platform. While this is a valuable trade-off for some organizations, it's a limitation for others, getting in the way of already established procedures and standards. Additionally, while PaaS is an excellent way to reduce the effort and expertise required for infrastructure management, organizations that already have this experience and architecture in place might prefer to rely on those existing resources, rather than introduce a new paradigm that requires both time and money to get right.
Would PaaS be a cost-effective investment?
One of the biggest drawbacks of PaaS is its seemingly unpredictable pricing structure. While traditional hosting platforms tend to have very linear, predictable pricing models, PaaS providers often determine price based on usage. Because these providers offer built-in, automatic scaling functionality, the cost of running an application on PaaS can change from month to month. This pricing model is a great way to reduce costs in the long run, but it can be unpredictable and costly in the wake of large, sustained traffic spikes. Organizations with more predictable traffic and infrastructure needs might not find PaaS features to be as cost-effective as their existing operating expenses.
When deciding whether PaaS would be beneficial for your organization, it is important to look beyond the features and consider the costs associated with using -- and not using -- them. To guide your decision, identify the benefits of PaaS, and compare them to the current strengths and weaknesses of your organization.