Public cloud providers—AWS, Microsoft Azure and Google Cloud Platform—offer an impressive array of services designed to help businesses host and manage applications of all shapes and sizes in a scalable virtualized environment. These offerings are frequently categorized as either infrastructure as a service (IaaS) or platform as a service (PaaS) according to which parts of an app's structure are managed by the vendor, and which parts are handled by the subscriber.
While both of these cloud service models deliver the full benefits of cloud computing via a flexible, scalable subscription method, one is much more feature-oriented, whereas the other is bare-bones and focused on utility.
Infrastructure as a service (IaaS)
What is IaaS?
Infrastructure as a service makes the underlying structures of a computing environment, namely the physical components such as servers, available via the internet on a pay-as-you-use model. These virtualized environments are virtually identical to on-premises server farms, but allow businesses to take advantage of all the main benefits of cloud computing: elasticity, security, availability, performance, cost-effectiveness, etc.
IaaS: What do you get?
In IaaS, the cloud provider is responsible for the basics: servers, networking, security, storage. Working in IaaS isn't really different than working on-prem, at least functionally—the only real difference is that someone else is in charge of maintaining and securing the physical components of your environment. Infrastructure as a service provides you with a virtualized environment that does exactly what on-premises servers would, but with all the advantages of the public cloud (availability, performance, cost-effectiveness, etc.)
Benefits of IaaS
- Cost-effectiveness. Rather than spending a hefty sum up-front on physical infrastructure, IaaS can be treated as an operational expenditure that can be scaled over time as business needs and contexts change. You can sign up for Azure, AWS, or Google Cloud Platform for free—most, if not all, public cloud providers offer a pay-as-you go pricing model, meaning you'll never pay for more than you need. In theory, that is (more on that later).
- Quick deployment and easy scaling. Most IaaS services are based around raw compute capabilities, making it easy to get straightforward workloads set up without too much configuration. As your need for things like processing power, bandwidth or storage fluctuates, your IaaS cloud environment can be scaled to ensure continuous delivery at the lowest possible cost.
Potential drawbacks of IaaS
- Optimization challenges. Businesses wishing to take full advantage of the cloud's elasticity and cost-saving potential need to understand and embrace the shift in IT infrastructure costs from capital expense to operational expense.
A variety of tools are available to help IT managers and dev teams scale their cloud resource use without impacting performance and availability. The major public cloud vendors offer built-in recommendations, but if you really want to get the most bang for your cloud buck, consider a third-party cost optimization tool such as ShareGate Overcast.
- Complexity. Microsoft's Azure architecture design principles include the following tip: "When possible, use platform as a service (PaaS) rather than infrastructure as a service (IaaS)". Keep this best practice in mind when deciding how to host your applications. In many cases, it's easier, faster, less error-prone and more cost-effective to go the PaaS route. IaaS provides near-limitless possibilities, but that means you need a lot of skill to leverage its full potential.
That being said, there are some cases in which IaaS represents a viable option on its own.
Common uses for IaaS
- High-power computing. Thanks to IaaS, performing tasks requiring a large amount of computing power, such as modelling, forecasting, and data analysis, is more accessible than ever. Such complex operations used to require prohibitively expensive physical infrastructure, but now that infrastructure is available for rent under a pay-as-you-go/metered model, it's possible to get the power you need at an affordable cost.
- Testing. IaaS comes with everything you need to quickly whip up a bare-bones test environment, which can just as easily be scaled down or deleted as soon as it's no longer needed.
- Storage. One of the major benefits of doing business with a cloud service provider is that you no longer need to worry about running out of space to store your data—with IaaS, you can always have as much as you need. Plus, public cloud providers store your content in datacenters that are a lot more secure than your on-prem server room, in addition to offering flexible location options for sensitive data storage.
- Lift-and-shift migrations. If you're migrating an application from an on-prem environment as-is, without making any significant changes to the code, hosting it in IaaS is the quickest, easiest way to get it up and running in the cloud. Keep in mind that it's always a good idea to consider rewriting certain applications with a cloud-first approach.
Platform as a service (PaaS)
What is PaaS?
The fastest-growing cloud delivery model, PaaS aims to streamline the development process by providing all the capabilities needed to build, deploy, test and update an application within a single, integrated environment—making it an excellent solution for anyone looking to get an application to market ASAP.
PaaS: what do you get?
PaaS delivers all the benefits and functionality of IaaS, and then some. It provides a bundle of managed services designed to save time on coding and manual work and speed up the development process from start to finish.
And there are a lot of options when it comes to PaaS—Microsoft Azure alone has no fewer than 295,680 possible platform configurations, according to Richard Seroter, who did the math in this highly recommended post.
According to Gartner's findings on the key trends impacting PaaS in 2019, there are currently more than 550 PaaS offerings in 21 categories. This particular market is expected to double in size between 2018 and 2022, positioning PaaS to become the most popular cloud service model in the near future.
A quick look at Google Trends seems to confirm Gartner's prediction, at least in terms of relative interest:
Why is PaaS so popular? And why now?
For one, PaaS is pretty much the goldilocks of cloud service models, at least from a development standpoint.
- SaaS is totally turnkey, but doesn't offer much room to build on or customize
- IaaS allows for near-infinite possibilities, but lacks concrete functionality as a stand-alone offering
- FaaS, sometimes known as serverless computing, might be the future of cloud development, but it represents a whole new approach to development that isn't ideal for as many scenarios as more established models such as IaaS and PaaS
- PaaS is the sweet spot: it provides not only the infrastructure upon which to build an application, but also a set of ready-to-use components and utilities designed expressly for that type of app development.
It makes sense that PaaS is just now moving toward peak popularity.
At first, businesses moving to the cloud just wanted to make sure everything worked with minimal change to the status quo. To achieve this, they'd typically either lift-and-shift existing workloads in IaaS, or turn to fully managed SaaS solutions. Now that they've matured in their cloud adoption journey, many are looking to develop their own cloud-optimized solutions, with efficiency being increasingly prioritized.
Main advantages of PaaS
In addition to the security, elasticity and availability of all types of cloud services, PaaS offers the following advantages to development teams.
- More results with less code. PaaS offerings typically come with a built-in library of precoded components, such as workflow, search functionality, and directory services— eliminating a ton of manual coding.
- Faster turnaround. Beyond the aforementioned built-in components, PaaS offers a slew of time-saving benefits. The ability to develop simultaneously for multiple platforms, for instance, is one common example. Not to mention the fact that it removes the need to set up the development environment, meaning teams can start working on the meat of the issue right away.
- Easier collaboration. When your development environment is hosted in the cloud, it's a lot easier for teams to work together despite physical restrictions such as remote work or distributed offices.
- More efficient processes. PaaS offerings support the full web application lifecycle within a single integrated environment, meaning that building, testing, deploying, and updating take place in a unified location.
Common uses for PaaS
The draw of PaaS offerings is that they provide a purpose-built framework designed to streamline a laundry list of development, management and analysis tasks. These time-saving managed services can be used to support the entire lifecycle of nearly any type of cloud computing project. This can include things like:
- Refactoring existing applications to make them cloud-optimized
- Developing IoT applications
- Managing on-demand databases
- Developing and managing APIs
When to use PaaS over IaaS
As mentioned earlier, PaaS often represents the most efficient and cost-effective model for hosting different cloud applications, as it provides a lot of built-in functionality that doesn't exist in IaaS.
Here are a few areas where opting for a managed service might make sense:
|For...||If you're using...||Try one of these instead:|
|Big data processing||Hadoops||HDInsights (Azure)|
Azure Cache for Redis
|Queuing||RabbitMQ||Azure Queue Storage|
Simple Queue Storage (AWS)
|Azure Kubernetes Service|
|Web hosting||IIS||Azure Web Services|
Elastic Beanstalk (AWS)
Have you managed to save time, save money, or improve app performance by refactoring an existing workload and hosting it in PaaS? Share your pro tips in the comments!
Want to learn more about the cloud and its potential for businesses of all sizes? Download your copy of our new book, Modern Business Powered by Microsoft Azure, written by Azure MVP Jussi Roine and published in collaboration with the team here at ShareGate.