Transcript
Bergman: In this session, there will be tips and tricks and advice for how to architect software for a greener future. I have been talking about this space for quite a few years now. A few years back when I started, or maybe even last year, if I had this talk, I would like to have started with a slide like this. This is from NASA showing the global temperatures over the years, or maybe a slide like this showing the amount of carbon dioxide concentration that we have in our atmosphere. Maybe something fancier like this, like the ocean warming that we have going on. Or maybe even the methane concentration in our atmosphere to convince you all something about cows or something.
The thing is, I am done talking about the problem. There are other people who talk about climate change very eloquently. They do it really well. Go and listen to those people if you’re interested to hear more about climate change. I want to talk about solutions. That is what this talk is going to be all about. I assume you’re on board with the whole climate change situation so we’re not going to talk about that anymore.
Who am I? Why am I talking about this? My name is Sara Bergman. I’m a Senior Software Engineer at Microsoft where I work with Microsoft 365 products. I’m an individual contributor at the Green Software Foundation where I’ve been around since we were founded. I’m in the community working group for a bit. I’ve been in the standards working group for a bit, doing some things here and there. I’m also one of the authors of the new O’Reilly book called, “Building Green Software”, which is available now if you’re interested to read more.
Content
What will we cover? We will talk about the motivation of this talk. Why should we talk about operational efficiency? Why should we talk about architecture? Why is that interesting in the context of green software. Then, of course, I will not only tell you why, but also what you can do. Then I will tell you what the cloud providers tell you to do. We will sum it all up quite nicely with some conclusions.
Why Operational Efficiency?
Operational efficiency architecture, how does that connect to green software, in the umbrella that is software work? Where does this tie in? Is this really a worthwhile area to discuss? To answer that question, we need to firstly consider another question, which is, what makes software green? I am going to talk about carbon efficiency. That’s an overarching term. That is what I will focus on. When it comes to sustainability, there are other aspects to consider as well, such as water use, or waste, or land use. Those are very fascinating, interesting topics that we will not cover. We will talk about carbon. Also, another interesting topic that we’re not going to talk about is how you build software for green purposes. There are a lot of things you can do with software as a tool.
Very interesting also topic for another conversation. Why architecture? Why this? Carbon efficiency, that’s this overarching term that consists of three key things that you can do. Likely the first that comes to mind as well is energy efficiency, so consume the least amount of electricity possible. Next, we have hardware efficiency. Use the least amount of embodied carbon possible. Lastly, we have carbon awareness. Do more when the electricity is clean and do less when the electricity is dirty. Those are key concepts. Those are things we’re going to lean on in this presentation.
Why this? How do they tie into architecture? Why should you care about this? Why can’t someone else care about this? Why me? Code efficiency, shouldn’t we do that? That sounds like we could reap a lot of benefits. I’m sure we’re all aware if we just wrote everything in highly efficient languages, everything will be solved for us. Yes, absolutely write efficient code. However, if your plan is to rewrite your entire software application, it will take a lot of time. Also, you might not have the skills in your organization to do that. You might have a whole bunch of Java or C# developers, and if you rewrite into Rust, for example, you might not have the skill sets in your organization to maintain those applications. That’s something to consider. It’s also time consuming, even if you do have the skill.
Code efficiency is something that the platforms and the languages should make easy for us. They should do the work, because that’s their area of expertise, and we should just write code. Yes, of course, write efficient code, but it’s not a silver bullet. What about data center efficiency, then? Surely, if we just made our data center hyper efficient, we wouldn’t have to worry. We could just leave this problem to someone else. Yes, sure, we have been seeing a lot of focus on this, not just the past few years, but over a very long time, because it’s closely tied to cost. Also, lately, in the last four years, all major cloud providers are all also zeroing in on this and focusing increasingly on being sustainable in their operations.
We know that hyperscale data centers are more efficient than the traditional data centers. However, there is a caveat to this, and that is that the cloud providers are responsible for sustainability over the cloud. They put you the cloud users as responsible for sustainability in the cloud. It’s like if you had the most green efficient car ever. That’s great. If you then drive it in a reckless manner, you will still have emissions. It will not be carbon zero. It’s the same with the cloud. You’re not off the hook yet.
Then, what about greener grids? What if we just had clean, renewable, or low carbon energy, surely all of this will be sold. Yes, we absolutely want that. We wanted that before I was born. We don’t have it. We are getting it at a rate that it’s faster than ever before. We’re seeing more renewables and low carbon sources coming onto the grid. It’s going a little slow. It’s not going to come in time for us to solve all our issues. Also, when we have more renewables on the grids, we’re going to have in many parts of the world, a varying or a variability of how much electricity is available.
Because in the grids, demand always has to be matched by supply. Where if you have more supply than you have demand, you have to dump it. This means that in a post-energy transition world, your software is going to have to operate in those environments. Future proofing your software is actually a good idea. Lastly, what about greener hardware? If we just made the hardware super green or super-efficient then I don’t have to care. No. Unfortunately, it doesn’t solve the energy problem, you would still use energy. Also, hardware is very complex today. The requirements that we have on hardware are very high.
We wouldn’t accept a green but half as slow, or four times as slow CPU, for example. It just wouldn’t fly. With all that being said, those are things that we should do, and the hardware providers are working on it. However, operational efficiency is a worthwhile effort. Why? Firstly, it’s completely within your control. You don’t have to wait for anyone to build a solar power plant next to your data center. You don’t have to wait for programming language libraries to become ultra-sustainable and efficient. You don’t have to wait for anyone to build a server out of wood. You can start doing this today. In this area, little effort can yield big wins. You might not have to do a whole lot to reap a whole lot of benefits. The good thing here that I will try and show in this talk, is that often you also end up with a cheaper service, a more performant and a more resilient service. I hope you’re roped in.
Carbon Awareness
Next, we need to talk about some terminology we need to understand the rest of this talk. I mentioned carbon efficiency. Carbon efficiency is this umbrella term. It is, use the least amount of carbon possible. Carbon aware on the other hand is a slightly sci-fi sounding thing, which means that we should use electricity when and where it is greener. This is cool because it helps decarbonize the grid like right now, because you’re using the green stuff that’s on the grid, but also over time, because you’re putting more money into the pockets of people who produce renewable and low carbon energy. How does this work? If we just all move our workloads to Norway, for example, where I live, where we have hydro, that would just overload all the data centers that we have in Norway. That is very true.
Carbon awareness should not be considered a silver bullet. It doesn’t work if that’s the only thing we do. However, it is a very efficient, short-term tool that can reap a lot of benefits in short but also long term, if it’s used correctly, and not DDoS Norway. This data is something you can get. There are plenty of APIs that will tell you how green your grid is right now. There are also plenty of APIs that will tell you how green will your grid be in the next 24 hours, so you can schedule your workloads. The signal also includes things like cost, for example. It will be incredibly useful. Those APIs are great. I think they will over time become even better. You don’t have to worry about, how would I know, and do I have to learn all these things about my grid? No, you don’t. Just use an API and you get it for free. That was carbon awareness.
Carbon Efficiency
When it comes to architecting and carbon efficiency, it really boils down to this. This is what we’re going to zero in on for this talk, is machine utilization. Maximize the use of your physical resources. That is really what it all comes down to. There is nothing more fancy in that. We want to cram out as much as we possibly can from our hardware. Why is that? Firstly, if you have one server and you use utilize it efficiently, you might not have to buy an additional server. If you have one server, and you use it inefficiently, you see, we have this one server, and it’s always busy, and I need more things to be run, you have to buy another one. Secondly, there is something called energy proportionality, which means the switch-on cost of a server is really high. Having a server switched on doing absolutely nothing costs you a significant baseline. Then, the more you add on to it, the energy use increases, but not that much. It doesn’t start from a zero baseline is what I’m trying to say, it starts from a pretty high baseline.
What Can You Do?
What can you do then about machine utilization? This talk will talk about some key concepts, both on how we can be more carbon aware, but also how we can be more carbon efficient, and how we can have a higher machine utilization. I will go through some patterns for you that explains how you can be greener in your operations. First, we’re going to start off with three different carbon-aware actions, those are using the grid options. Firstly, it’s time shift, moving to a greener time. You can use burstable or flexible instances to do it. Because it’s basically a fancy scheduling problem. It’s like looking at a forecast, seeing, when will my grid be the greenest? Or perhaps when will it be the dirtiest and how can I avoid that time slot? There are plenty of ways to achieve this on the REC creation side.
Of course, this should really only be on the workload that’s not on demand. For example, if you’re trying to sell a ticket, while someone is walking through the ticket gate, you can’t say, you have to wait for seven hours because then you will have some solar panels on the grid. That doesn’t fly. Maybe an app update install. That can wait a little while, for example. The next carbon-aware action you can take is location shifting, so moving your workload to a greener place. This also isn’t suitable always, but it is suitable when the network cost is low, and of course when privacy allow for it. You might not be able to move your workload over the Pacific Ocean if you’re here based in Europe.
Likewise, if you have a workload that requires a lot of data that it operates very intimately with, you don’t want to ship that again over the Pacific Ocean because the network cost of that will be significant and it’s not great for the planet, and it’s not great for your cost either. There are plenty of workloads where moving to a different location is a very good option. Different location doesn’t necessarily have to be a different country, a different continent, it can very well be within your country or within your region. If you’re on the cloud, ask your cloud provider, what’s the greenest region that will be suitable for my needs? What do you recommend?
The last carbon-aware action that we have is demand shaping. This is the most sci-fi, to me, at least when I heard about it. This is changing behavior of your software. You can change in two ways. The end goal is to do more when the energy powering your software is green, and do less when it’s dirty. You can do this in two ways. You can either just do it and don’t tell your user about it, you just decide for them that this is good for you, I’m going to decide that this is what we do. For example, installing updates in the background at a time that’s suitable to you. Or you can give the choice over to your users and say, I have this eco mode or this low carbon mode, if you want to, you can use it.
For example, I think a lot of us, at least me, I have a washing machine. I don’t really know how a washing machine works. I just put clothes in and turn it on, and then the clothes come back clean and wet. It has an eco mode. I’m sure the people who built the washing machine, they were great at taking whatever choices that needed to be taken for this to be as green as possible. I’m sure it’s like, colder, maybe uses less water or something. I don’t really want to learn about that. Many of our users are the same way, they use software, they don’t really like software. If you tell them, this will be greener, they will like to say, “It sounds good. I want to do my bit for sustainability. I don’t really want to learn exactly what’s happening”. This might sound sci-fi, but it’s actually widely used in the industry by now.
Google is using it for some media processing. Xbox is using it for game installs. Windows is using it for Windows 11 update installs. iPhone is using it for what they call clean charging, for example. It’s a great tool that can be utilized. It is also cheaper if you’re the one paying your energy bill. Because when there is less demand on electricity, it’s typically cheaper. Those were the three different carbon-aware actions I wanted to talk about.
Next up, we have carbon efficiency strategies. These are the things that are going to maximize your machine utilization. I wanted to mention three key ones: right-sizing, autoscaling, and mixing workloads. Right-sizing, you have a physical server that’s the border. You have this virtual machine, which in this instance, it takes up the whole physical server, and you have the green blotch, which is the resource use. When right-sizing, what you do is essentially this, you fit your, in this case, virtual machine, it could be any resource, to match the actual usage. It requires some thinking. It requires you to do some analysis from the start and think about, how much do I need and how much do I not need? Don’t just optimistically buy a really large one, to just never think about it again.
This way, you can, as you see, fit more things on the same physical server. It is a more efficient use of physical resources. It saves energy due to the energy proportionality that I mentioned earlier. It also saves embodied carbon over time. Because when you do this, you’re sending a signal to capacity planning. Capacity planning happens, either if you have your own data center, or if you’re on the cloud. That’s basically someone looking at, what utilization do we have now? How do I expect that to grow over time? What do I need to buy in terms of hardware to meet that demand in the next 1, 2, 5, 10 years. If you’re constantly overprovisioning, you’re using way more resources than you actually need, the signal you’re sending is, I need tons, buy more servers. Maybe you don’t. If everyone right-sized, the signals will be correctly and the capacity planning could be done in a more sustainable manner.
Of course, this is very easy to say and very easy to draw four rectangles and say do this, it’s a little trickier to achieve. It requires you to do some thinking. It also requires you to orchestrate this in some type of way. One way to do this is autoscaling. Let’s talk about autoscaling. We have the same chart here but we have added demand. Autoscaling is the simple concept that when you have more demand, you use more resources and you have a bigger box, virtual machine, for example. The key here is very easy to do the first thing. We like to do this, “I think demand is going to go up, provision more, have more space. Yes, I feel safe. I feel secure now”. Going the other way is a little scarier.
It’s actually just as important as compared to sustainability. Otherwise, we end up in the first scenario where we are incorrectly sized for our resource use. Of course, this is a good tool to use if you have a variability in demand. If you don’t have a steady flow of requests, you maybe have peak hours and you have off-peak hours, for example, then autoscaling is a great way. It is, of course, greener, because it maximizes resource utilization. You need some type of way to achieve this. Cloud providers typically have support for it. Otherwise, you can use a cluster scheduler or infrastructure as code, for example. It doesn’t come quite for free.
The next thing that I wanted to talk about is mixing workloads. Here we have two workloads living on the same side. Then we also have some differentiating factor, in this case, it’s time. What you want to do to achieve maximum utilization is you want to mix your workloads. You want to have workloads that interlock in some shape, or form, preferably over time. Maybe you have some customers in Southeast Asia and you have some in Northern Europe, they’re likely not going to be active at the same time. You can pair those together in a way that they will ebb and flow and use the machine more when the other one is using it less, and less when the other is more, and so forth.
This of course require you to tag the workloads with some attributes so you can achieve this scheduling. It doesn’t work automagically. It’s quite cool if you can achieve it in a good way. It doesn’t have to be within 24 hours, it can be a longer time period as well. Maybe you have some ticket sales operation, which is sales for concerts that’s more like a bursty pattern. You have some others more like a steady drone, like update installs, for example, that has a different cadence.
Those interlock in this way where you utilize the machine more efficiently. Another topic, which is very closely related to this is multi-tenancy. That is when you have different type of customers that have completely different needs. Then you can also mix and match them in a way that uses your machines efficiently. This sounds maybe a bit harder, it’s because it is a bit hard. That’s why hyperscalers have been doing this for a long time. They’re really good at this, because it’s cheaper for them, because they can use their machines more efficiently. That way, they don’t have to use so many. Again, energy proportionality comes into play.
We’ve seen now a few cases of what we can do, and how sustainability increases with those key things. What I really wanted to highlight here is those actions don’t work in isolation. Sustainability isn’t and shouldn’t be one thing to consider. It’s not this solo mission ivory tower on its own. It interlocks with our other key metrics, for example, cost. Cost is something that many of us have to think about carefully. When machine utilization goes up, cost goes down. This is a great way to think about it as well. You can think about cost saving. You can even think about cost saving first, if you want to, and then think about, maybe this sustainability benefit, and go there as well.
Resiliency is another thing. Many green operations and green choices that you make also increases the resilience of your software. Autoscaling is one great example. If you have autoscaling, you are more resilient to variability in demand. Carbon awareness, those actions, they’re also a great way to future-proof your software for the post-energy transition world where you might have to think about these things. I believe that we will come to a future where things like carbon caps, carbon budgets will be something that we have to consider in our everyday life. If your software already now has the mechanisms for how to handle that, you will be all set for that future.
Will Moving to the Cloud Help?
I mentioned the cloud a few times. Will moving to the cloud help? Will it just magically solve all of my problems if I move to the cloud? I wish. Not really. Possibly it will help, but you can’t lift and shift. You have to consider some key things. I wanted to mention LightSwitchOps, which is this amazing word. Holly Cummins had a whole talk about it at last year’s QCon. It’s basically about this concept that switching resources off should be as easy as switching the light switch off. When we all, for example, leave the kitchen, we switch the light off, feeling confident that when we come back into the kitchen, we can switch the light on and it will be light. This will happen for us. We have this trust in the electricity system and the light switch.
We should have the same trust when it comes to shutting idle resources off, so be that a server, be that a network connection or whatever it is you need. Because removing idle resources is key, is cheaper. It’s also greener, because you don’t have all these resources sitting idle, doing nothing, consuming resources. Again, sending that signal to capacity planning that this is all being used when, in fact, it’s not being used, it’s just doing nothing. That’s the first thing. Secondly, serverless. Serverless is being pushed by cloud providers quite heavily. This is a way for you to help them to help you be greener. By being serverless you give away the problem of how to organize workloads on a machine to them. You don’t have to think about that.
They can think about a way to mix and match workloads so that machine utilization is as high as you can go safely. You also want to use what the cloud providers have. That could be managed databases, or that could be preoptimized instance, for example. You want to use them in the way that the cloud provider intended you to use them. Why is that? They spend a lot of time and effort into building something that is efficient, likely also cheaper. If you use that in the intended way, you can reap the benefits of all the work that they did without having to think about it. If you’re going to build the same thing on your own, to achieve the same level of efficiency, you’re very likely going to have to spend the same amount of Dev hours and work and money to get to that level. You can absolutely do that, but it might not be a worthwhile effort. Consider what’s available and reap those benefits.
What Do Cloud Providers Say?
Don’t just take my word for it. What do the cloud providers say about this? I’m going to go through the three big ones, their well-architected frameworks, so we can learn together what they think you should do, to architect greener software. We’re going to start off with Google Cloud. They have this Google Cloud Architect Framework. It’s their version of a well-architected framework. It has five different pillars: operational excellence, security, privacy and compliance, reliability, cost optimization, performance optimizations. Then this overarching system design. That is where we find their sustainability tips and tricks. They have six different things that you can do here to build greener on Google Cloud. The first is to understand your carbon footprint.
What they want you to do here is to use their emission tooling. I personally think that their tooling is pretty good. It could be better, but it’s pretty good. Now they even have options for both location based and market based scope 2 emissions. What does that mean? You can either choose to see the electrons you’re actually using, or to see the electrons that they are paying for. I would argue to always use location based because that is the least confusing version. That is the one that’s going to get you closer to the actual emissions that you have. Understanding your footprint, that’s the first one. The next one is, choose the most sustainable cloud regions. Sounds very much like something we talked about earlier. This is basically location shifting. They include a list of recommendations for you, that’s available now.
It’s good to note about this, that this is not live data, this is historical data. Here they do include the market-based reductions. Yes, it’s not perfect, but it’s pretty good. The next they have, choose the most suitable cloud service. We’re going to dive a little deeper into that. Next, they have, minimize idle resources, which we just talked about. That is about using the machines and the resources that you have wisely. They cannot be smart about how they organize the workloads if you hamstring them in this way, by having idle resources around. They also encourage you to reduce emissions for batch workloads, which is basically a fancy way for saying, please time shift to a time when it’s greener. That was their overarching things.
We want to deep dive into the suitable cloud services. What does that mean? I wanted to look deeper into this slide, just to show you, some of the things I talked about are being recommended by them as well. Here we see things like serverless. We have Cloud Run. It’s a serverless offering, running containerized applications, which also has autoscaling. We have things like Cloud Functions, which is again a serverless function as a service offering, or the Google Kubernetes Engine, which is a managed environment, or BigQuery, which is a serverless cloud data warehouse. It’s not magic. It’s not like specific magic reason why they recommend this. It’s again because of machine utilization. That was Google Cloud.
What does AWS say? They also have a well-architected framework. It helps you understand the pros and cons of the decisions you make when architecting and operating on AWS. They have six different pillars, which are operational excellence, security, reliability, performance efficiency, cost optimizations, and sustainability. I think it’s great to see at least one of the cloud providers lifting sustainability as a pillar on its own when it comes to architecting well. They are the only ones but I’m hoping the others will lift it a little higher as well. What do they say? They also have six key things that they want to mention.
Firstly, again, something we are quite familiar to, at this point, their location shifting. Select the region that’s greener. They also want you to align to demand. Here we find other familiar things like removing assets or scaling on demand. Software and architecture, we’re going to dive a little deeper into, but it’s pretty AWS specific tips on how you use their tooling. They have data management, which I think is good. What they tell you here is, don’t be Smaug from Lord of the Rings. Lord of the Rings is basically the dragon that has all the gold, it’s just in a big mountain. Don’t do that with data. Even though data nowadays is incredibly useful for a lot of topics, but you only want the good data, you don’t want the crappy data. Think about what data you actually need, and for what and how long. Those are the key things within data management.
Hardware and services, this is things like right-sizing, using managed services when you can. They also have process and culture, which I thought was interesting to put on here, in an architectural diagram. I expected it to be more like hardcore things. Not that culture can’t be hardcore, but it is a little fluffier. I think that sustainability is still pretty early on, even we’re now seeing it in all three well-architected frameworks. I think it’s not deeply integrated into every organization yet. What they give you here are some tips and tricks for you to consider. How do I integrate sustainability into my process? How do I fit it into my culture, so that it comes integrated into it? Personally, I would want this to in the future go away. The North Star for me is for it to be so integrated into other things, it should just be obviously the most sustainable thing.
It shouldn’t have to be like a second thought that we’re like, now we made this performant resilient server, now we also have to make it sustainable. No, it will come into all of those things, it will weave into it, so it’s more seamless than it is now. Still, we’re not there yet. Cool that they added this. I just wanted to show an example here of a tip they have that’s a little more technical. What they say here is, use the instance types with the least amount of impact. What we see here is a selection of things, there are some custom hardware that they have.
AWS Graviton, for example, is a family of processors that give you better performance for a wide variety of workloads. They also have more workload specific tips, like if you have a spiky workload, please use a burstable instance. What you want is to really take advantage of this purpose-built hardware, because, again, they spend quite a lot of effort into making this hardware. If you have a use case that’s suitable for it, then great, you can get a lot of extra benefits from that as well. They also recommend spot instances when you can, which you can then use for, for example, time shifting.
Last but not least, we have Azure. They have a well-architected framework for how to design and build workloads on Azure. They also have five pillars: reliability, cost optimization, operational excellence, performance efficiency, and security. These are all the blobs that are supporting architecture, I think. They just find a way to make the pillars seem like more. They also have seven different things. They went a little extra. First, they have application design. This is how you code more efficiently. I’m not going to cover that, but just know that it’s there, if you’re interested in it.
They also have application platform. Here, this is where we find the goodies, like how to be more carbon aware, right-sizing, removing idle resources. I’ll show a bit more of that. They also include testing, which I didn’t see being specifically called out in the other ones. These are some strategies that you can use in your CI/CD pipelines, and your automation to have more sustainable software testing. They also have operational procedures, which is essentially the same. We saw in the last one like process and culture, they just call it operational procedures too. Make it sound more techy. It’s the same word for how you measure carbon, it’s in there. Culture changes you want to consider, it’s all in there.
Then they also have network and connectivity, which I thought was interesting. Some network considerations that you can have to reduce the amount of data you send over the network, and to and from your applications. Lastly, they also have the Smaug clause with storage, don’t hoard data, only use what you need, only store what you need, only keep what you need. Lastly, security. Some relevant recommendations for how you design with security and sustainability in mind as well.
If we look at the application platform consideration, you can feel like we’re just repeating ourselves now. This is the same things we’ve seen before. Please use the managed services. Leverage the highly optimized platforms that exist. Consider containerizing your applications. We have some specific hardware that you can use that is more efficient, please consider using it. Also, they have something they call Spot VMs, which take advantage of this unused capacity in the Azure data centers. Yes, push for using efficient hardware. Push for using serverless. Things we’ve seen before, which is cool.
If we summarize, the cloud providers, they agree with each other, which is good. That means they’re not making stuff up. That is actually grounded in some real physics, some real truth here. What they want you to do is to measure your footprint. You can definitely improve without knowing your footprint, but it’s easier if you know your footprint. If you know where you started, and you did some action, and then you measured again, you at least know, did it get better, did it get worse? You can use their tooling. Cost is another great proxy. Energy use is a good proxy. It doesn’t have to be their tooling.
You can use something else. You can use the Greenhouse Gas Protocol, or you can use the Green Software Foundation’s SCI, if you want to. I leave it up to you. If you measure it, you’re going to be in a good place. Next up, they want you to use carbon-aware actions. They want you to time shift. They want you to read and shift. They want you to demand shape when you can. They want you to turn idle resources off. I think they can think more about LightSwitchOps, so that we would feel safe turning those idle resources off. Yes, something to do. Next, don’t be Smaug, avoid hoarding data for no use. Then, lastly, use managed resources, use the most efficient hardware that they have available for your use case.
Key Learnings
We’re going to summarize some key learnings now. The first is carbon-aware actions. They can help you be greener, but they’re not a silver bullet on their own. They should not be the end of your sustainability story, but they’re a great beginning. Next is that machine utilization is key for carbon efficiency. If you have an architectural choice, and you don’t know what is the greener option, think about, will this increase or will this decrease machine utilization? You will have a great starting point for this conversation. We also looked at the cloud.
Moving to the cloud can help, yes, but it will not be automatically better without some help from you. Then, lastly, if you only take away one thing, please let it be this one. It’s that software can benefit from carbon efficiency. Software is better when it is carbon efficient, especially if you build it into it from the onset. Building green is cheaper. It is more performant. It’s more secure. It’s more resilient. There is no reason not to do it. Likely if you do it the other way, if you build cheaper services, if you build more resilient services, they will also likely be greener. Sustainability ties into the other things that we do. It’s not a magical thing that stands on its own two legs.
Questions and Answers
Participant 1: What got you into researching more into the greener side of software development in architecture development?
Bergman: Yes, what got me into this space? I think for me, I like to consider myself young. Now I passed 30, so I don’t know if I can do that anymore. I used to say there was never a world where I didn’t know about climate change. I grew up being taught it in kindergarten. Just seeing that unroll from my eyes was highly demotivating. Being part of the solution is highly motivating. I don’t have the skills to do biology. I didn’t have the skills to do any of like the traditional sustainability work.
I’m a pretty good software engineer, though. I wanted to marry my two passions and go into that. Because there is a projection saying that the ICT sector, in 2040, will have as big of a footprint as like half the transportation sector. That’s like all the ships, all the planes, all the cars, all the lorries around the world, we will be half of that. It’s not insignificant. We definitely have something to contribute to in this area. That’s why I buy into it.
Participant 2: Could you either confirm or debunk something I heard to the effect that an idle computer uses a significant fraction of the energy of the fully utilized computer. If that is true, do the cloud providers try to be diligent about actually switching off the computer as opposed to having a bunch of idle computers?
Bergman: Yes, that is true. That is the concept called energy proportionality. Having really any electrical device but specifically server turned on doing nothing consumes a baseline of energy, which is quite high. Then the energy decrease is not linearly with utilization, is like, yes, slightly different curve. It does increase. That baseline is significant. That is why we want to have high machine utilization. Whether or not cloud providers actually turn machines off, I don’t know. They are highly invested into having utilized machines. Of course, you don’t want to utilize a machine to 100%, because then you have other problems. You want to be in that safe zone of having it sufficiently utilized to be efficient without going super-hot, for example.
Participant 3: Is there in the industry a regulation for the cloud providers that they have to enforce? Looking at making sure the next technology that they have is much more greener, and it becomes much more seamless for the consumers?
Bergman: There’s a ton of regulation that differs between different countries. There’s no overarching for the entire world. There are definitely different regulations that they have to conform to. Some, for example, with energy usage, a lot of it is for waste. I think e-waste is like the fastest growing waste stream in the world, and a lot of it is unsafely recycled. There is a lot coming up there, like here in Europe. European Union has this Right to Repair Act, which is soon to pass, which will also increase the demand.
They are constantly listening to those regulations changing. I think it’s great to see a push from both directions. Historically, though, cloud providers have been pushing. It’s not been the regulations pushing them. It’s been the cloud providers being ahead of the game, proactively thinking about this. Proactively thinking, what can happen? Because they know they have huge resources. Data centers are massive consumers of things like energy and water. They know that, of course. They have been ahead of the game for a long time. Now maybe regulations is catching up. We’ll see where it goes.
Participant 4: My question is regarding some applications of software, like should we put some regulations on it. I can give you a quick example. For example, blockchain. If we look, just very quick math that I just did, the hash rate today is 630 million hashes per second. If we say that each hash needs 1300 operations, that’s over a trillion operations per second. That’s just from blockchain mining BTC. If we sum up all of the largest, heaviest operations in the world, like training LLMs, blockchains, or whatever, it takes a lot of computation. Don’t you think we should have more regulations on heavier software applications?
Bergman: Energy usage from Bitcoin mining between 2018 to 2022 went up like 2000% to 3000%, it’s like massive energy usage. Yes, I wish we could ban it, especially because it’s highly inefficient in terms of the amount of theoretical transactions you can have per second. Whenever I go on Twitter to say that, the crypto bros come for me, so I don’t anymore, because I’m scared. There are always ways around it. You will have to find something that spans the whole globe. I don’t know how it could be done efficiently. I wish it could be done, though. It’s also a question of ethics, and who decides what is fair use and what is not fair use. It’s a tricky situation. I do wish everyone has an ethical point of view and thought about these things before building software. I think that’s the best I can do.
Participant 5: I agree on obviously 99%. The 1% where I’m a little bit skeptical is that you basically say that we should ask the cloud providers to help us get more efficient. Isn’t that a conflict of interest for them because their revenue stems from how much we use their services and how much we use or how much we store our data in their warehouses. My naive statement would be, of course, use the cloud. It’s probably more efficient. When it comes to checking how efficient you are, don’t ask the cloud providers.
Bergman: Very fair to be skeptical, especially when someone who’s working for a cloud provider is holding a talk. Yes, be skeptical. I do think that cloud providers, they pay a lot of money for the data centers, though. You should not underestimate how much money they pay if they had an under-efficient data center. It’s very much in their business interest to be efficient. I wouldn’t say it’s necessarily conflict of interest. It could be in some edge cases, so always put your thinking cap on a little. In most cases, they are highly motivated to be efficient because it’s cheaper for them. That’s the simple truth.
See more presentations with transcripts