Sustainable cloud – a new way that matter

Luke Dorosz
7 min readFeb 11, 2022

I would like to invite to read about my thoughts about sustainability in the cloud computing. This article is written and translated from my original post on Deloitte Blog.

The term „Sustainable” has appeared in various areas of our lives. It is generally an approach that focuses on aspects such as the environment, capital and the economy.

Sustainable Cloud

How much do you pay for power consumption in the data center? Are you using your infrastructure optimally? How much does the work related to its maintenance cost you? What does your IT do on a daily basis and to what extent does their work develop your business?

You probably don’t know the answers to some of these questions and it never occurred to you to think about them.

At the beginning, when the first people tried to estimate how much the use of the cloud would cost, they did not take into account some of the costs, because what for? After all, the cloud provider pays for it (or at least some of the things).

However, the cloud provider, counts all these elements very accurately, such as power consumption, floor-space, maintenance, etc. And why does he do it? To include these costs in your billings for using cloud services at the end of each month.

You pay for what you use

It was the first big surprise, when suddenly you have to pay every month for everything that is running in the cloud, regardless of whether you use it or not.

So where is sustainable use here?

It only appears when you start paying more attention to how many resources you really need and how many of them are currently running. For example, if your developers don’t work 24/7 (I’m assuming they don’t ) why not disable these resources when they’re not in use.

You need something, take it and use it, you don’t need anymore, give it back, it’s that simple and obvious.

The conclusion „turn off the lights at the end of the day where you are not present”. Use as much as you need at the moment. This will be good for the environment and your finances.

Cloud platforms provide features that help to manage resources more wisely – auto-scaling, cost monitoring, automation, etc.

In addition, when you are migrating to or bulding a something new in the cloud cloud, there are several places where it is worth stopping and thinking a little deeper.

Sustainable cloud architecture

When you have the „pleasure” of designing the architecture of a new solution, this is the best time to think again about the sustainable use of the cloud.

The cloud services you select and the way of using them also affects the aspect of how much power / resources you need and how much you will pay for it in the end.

Sometimes there may be several of these possibilities and options of doing something, anyone who has checked how many ways can containers be launched in the cloud knows it.

The key point, however, is to finally achieve such a shape of architecture that, with a sufficient level of resources and costs, would allow you to achieve expected outcomes.

For example, just look at how many ways (data storage classes) we can maintain data on Amazon S3. For sure, throwing 100TB of data that we rarely use to the standard class is not the best solution (from financial standpoint).

I think at the time of designing, we have the most options and decisions to make that can have impact on:

  1. The amount and type of resources we will need.
  2. How much will we pay for all of this.
  3. What impact will this have on the environment (more resources, more power, heat, CO2, etc.)

Keep in mind that, all this requires a good knowledge of services and the cloud platform as well as the possibilities it offers. Thanks to this, you can desing an architecture and choose such a configuration of services that will allow you to achieve the desired effect and taking care of economic (and of course environment).

Sustainable cloud operation

Another aspect worth taking into account is the daily operation in the cloud. The tasks that need to be done when keeping the application alive and when creating new resources.

The architecture of the application and the cloud services used in the solution have a big impact on this work. Depending on the type of service (IaaS, PaaS, etc.), you will have different things and tasks to deal with on a daily basis.

For example, the decision to build a database cluster based on virtual machines will not be the best option when looking at how much work it takes to maintain it. When choosing a database in a service model (eg Amazon RDS), a large part of the configuration and maintenance work is on the side of the cloud provider.

The second important fact is that when we use services above IaaS, we transfer the responsibility for managing the utilization of infrastructure resources to the could vendor. For example, when running containerized applications on AWS Fargate, we don’t have to worry too much about infrastructure performance and utilization.

This is another advantage from a sustainability point of view, as the cloud provider is managing shared resources and services to get the most out of the physical infrastructure.

So why waste time, energy and money doing something that the cloud vendor will definitely do better. Instead, you can take care of other things that have a direct impact on business.

Another aspect is the configuration of the infrastructure. With the development of the cloud, the aspect of automation and overall configuration management in the Infrastructure as Code approach has become very important.

Proper implementation of management processes and automation mechanisms for repetitive tasks is a huge time and money saving (not to mention the security aspects). Additionally, you can develop optimal configuration patterns that can meet sustainability standards for using the cloud.

You should also remember about periodic review of resources and their utilization level. In my experience, there is always something that can be optimized. If you are entering the world of the cloud, this is definitely something that needs to be put into your resource management process.

Sustainable applications

So, we are reaching on of the key points – an application that we are going to design, code and „sit” on our cloud infrastructure. To make it work together, an application should be aware of the environment in which will be running and cloud mechanism it will be using.

Here, a handy „Cloud Native Application” principals should be used when you are going to build and create your application.

For example, when our architecture will use auto-scaling, the application need to be ready for this. Lack of this may force us to change the architecture and remove auto-scaling capabilities, which may also result in a lack of flexibility as well as increased costs.

The second thing is, the quality of application code. How many times have you seen „pilgrimages” walking to the infrastructure team and asking „add some CPU and RAM because the application is slow …”. Of course, we can also use this performance improvement method in the cloud. However, this approach will reflect our cloud bill at the end of the month.

All of this has an additional impact on the excessive use of infrastructure, power and everything that we should care about when considering sustainability.

Of course, there are many more things that are worth taking care of. Data architecture – how we will access data, what data format, etc.

How we will build applications – microservices run in containers, or maybe we will choose the „function as a service” approach. There are tons of places we can look for a better and more sustainable use of cloud resources.

Cloud providers offer various types of services to help optimize code or detect potential errors that result in increased demand for resources. AWS, for example, offers a service Amazon CodeGuru to analyze and search for non-optimal and resource-consuming (and costs-consuming) pieces of code.

Why should we care?

Concluding this thread, I would like to point out what, in my opinion, is related to the cloud from the very beginning. Optimal and wise use of the cloud to achieve specific goals.

As we look at cloud providers and their approach, from the very beginning they care about the sustainable use of resources and technology in combination with nature and our knowledge.

Every large cloud vendor invests heavily in renewable energy and so far a large part of their physical infrastructure is powered in this way.

Due to the fact that, they design and build their own components of the infrastructure (servers and other devices), they have a lot of freedom to look for the most optimal use of resources (energy, cooling, space, etc.). With their business scale, improving something by a few percentage points results in huge numbers at the end.

So, if they are trying so hard, it is worthwhile for us to do our best to also use resources in a sustainable way. Cloud vendors try to help us in this by offering their knowledge, experience and tools.

Recently, AWS extended its Well-Architected Framework (a set of good practices for working with the cloud) with another additional pillar related to Sustainability.

Source: https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/the-shared-responsibility-model.html

The idea is to show how our different decisions and approach to using cloud infrastructure can have an impact not only on this ecological aspect, but also on costs.

The slogan „Shared Responsibity Model”, known from security definitions, in this case also shows how responsibility for sustainable is shared between us and the cloud provider.

So, if you are working right now on the architecture, configuration, or code of a new application, stop for a moment and look around. Think not only about the costs that your solution will generate or about the business profits. Think about environmental footprint your solution will have and the World you will leave for future generations.

Cheers!

This article was published in Polish at Deloitte Blog

--

--

Luke Dorosz

New tech geek, traveler, 🏃‍♂️ and 🏌️‍♂️Independent Cloud Consultant&Architect. Leader of AWSUG PL. AWS Community Hero