PaaS vs IaaS: lower carbon emissions for your applications
Cloud computing is not as vaporous as its name suggests, and neither is the internet that cloud computing enables. The internet is powered by millions of servers based in either large data centers or located at the edge. And the energy required to power these large energy-intensive computers is the cause of approximately 1% of carbon emissions worldwide and this is growing fast.
In many other industries, such as the food system, Feeding America has found as much as 40% of food produced is wasted and ends up in the trash. Cloud computing is no different with resources continuously going to waste for a fairly simple reason. Teams want their application to be able to handle traffic peaks and therefore tend to over provision, while their servers consume pretty much the same amount of energy whether they are utilized or not, leading to waste. In particular, many studies—including a study by Cloud Carbon Footprint—have shown that most of the energy consumption of a server comes from the central processing unit (CPU) responsible for running applications.
This is the primary reason why leveraging a modern Platform-as-a-Service (PaaS) is significantly more effective than using Infrastructures-as-a-Service (IaaS) and virtual servers. Efficiently distributing resources between apps and offering baked-in tools to optimize consumption such as profilers, relevant caching layers, and especially autoscaling. A modern PaaS can optimize underlying resources in many ways and reduce waste by only using what’s needed.
The reasons why a modern PaaS is better
Let’s zoom in on some numbers as to why a modern PaaS performs better in relation to resource consumption. Taking the example of Upsun— the latest offer from Platform.sh—which is targeting development teams who mainly build Softwares-as-a-Service (SaaS) applications with micro-service technical architectures.
We have collected a lot of data on the Platform.sh product over the years. Conducting research to investigate how many CPU resources are saved by using our product compared to similar applications using bare metal deployments. This research has been carried out by our sustainability team and audited by an external source, Greenly. From the results, we found that instead of setting up an application on virtual instances (AWS EC2 style), having a container grid of servers reduces the CPU usage app by a factor of 12 on average. Take a look at the scheme below where you can see this represented and check out further details into the density research conducted in this case study. The resulting emission reduction depends on the electricity grid and application.
Note: The scheme above is a simplified scheme of what we call the Platform.sh grid region. Grid regions provide highly efficient levels of distribution that contribute to more server efficiency.
How can we get to 12 times CPU usage optimization?
Well, there’s no silver bullet—rather many elements work together to help optimize CPU usage. First, workload distribution plays a massive role: our grid servers are essential here. Grid architecture can leverage the underlying servers much better due to a higher and more diverse volume of requests. Unlike dedicated resources, these grid regions can continuously run and rebalance workloads with high levels of utilization. The scale effect enables more effective resource-allocation optimization in production environments and even more so in development environments as the grid self manages its resources by putting development containers to sleep when idle for an extended time.
Another big factor in optimizing resource consumption is our orchestration. One choice we have made is to offer very small containers by default within our container grid. With that approach, we can enable low traffic or trivial apps to run on nimble server resources. We can also help teams build very cheap development environments for more complex apps, while traditionally the same team would probably be running their development environments on similar infrastructure as their production environment. This is an approach which adds up very quickly, so from a resource consumption standpoint PaaS are a much leaner way to go.
Additionally, once the underlying infrastructure is optimized, the application’s code can often be optimized as well, and your PaaS should be there to help. Without the proper tooling, a development team can only guess at which parts of their codebase might benefit from a performance improving refactor. This is why it’s incredibly helpful if progressive profiling and application performance monitoring (APM) are included as baked-in features of a PaaS product. These two tools work together - APM is a high level view that helps teams identify which sections of their app need help, and fine-grained profiling zooms in to identify exactly which lines of code to focus on. Below is an overview of the observability capabilities available on Upsun, which can help you with this process.
What’s unique about Upsun on the sustainability front?
Upsun is a new offer for the Platform.sh PaaS. It is essentially the same product—including all the principles mentioned above—but it comes with a completely revamped pricing model designed to meet the needs of decoupled and composable architecture projects. It also comes with a few new advanced features that will soon be deployed on the Platform.sh PaaS too.
This pricing model can be summarized in two words: usage-based. While this aims at providing much more flexibility to development teams, it also provides some highly interesting benefits in terms of our goal to reduce the carbon footprint of applications.
12x better CPU usage compared to AWS EC2. With Upsun we are offering our most efficient cloud orchestration. Greenly calculated that the gains were 14x higher density for development and 10x higher for production workloads.
It provides better alignment between cost optimization and carbon footprint. We noticed that our previous plan approach was somewhat less efficient in this regard: we were bundling features together and some of them were not used while being paid for. Our new usage-based approach removes that friction and aligns price and resources more effectively.
Carbon intensity transparency. Not all data centers are the same, and we have realized early on at Platform.sh that the energy source plays a massive role in the carbon footprint of a datacenter. Therefore the electric mix of the country or the region where the datacenter is located is super important.
The best is yet to come. In the near future, we will be computing about the most important environmentally-impactful component of Upsun—stay tuned for more information coming soon.
If your digital carbon emissions are important to you and you’d like to discuss Upsun’s ability to reduce resource consumption, please get in touch with our team!