sustainable software engineering
11 TopicsA Visual Guide: To Sustainable Software Engineering
Are you new to green computing? Do you want to learn more about sustainable software engineering? This visual guide can help you explore the principles of sustainable software engineering and learn more about the sustainability goals at Microsoft!See:https://aka.ms/visual-greentech16KViews6likes8CommentsThe Greening of IT
There is change brewing in the air, quite literally. For the first time in human history, the Keeling Curve, which measures atmospheric carbon dioxide,reached 420 parts per million(ppm). This unfortunate news, combined with the undeniable increase in severe weather events and ongoing IPCC warnings, has led to a metaphorical change in the air. As a result, many stakeholders, from front-line workers to knowledge workers to the board and customers, are discussing sustainability. One of the critical tenants of lowering your company's carbon impact is operational reductions. This means that every business unit must investigate its contributions to the company's overall operational reduction of carbon, identify climate risks, and the impact of the business on the environment. In the age where 'every company is a software company,' the stakes couldn't be higher for an IT organization working to modernize and digitize the business. Running a technology stack means using energy. As a result, technology could create an outsized carbon impact when renewable energy is unavailable due to its energy intensity nature. When it comes to IT's opportunity to lower carbon reductions, the story includes much more than renewable energy and will involve both IT and business stakeholders. There is a trend emerging around greening IT operations, or Green IT. This trend weaves in and out of Digital Transformation and should be a familiar journey to IT Professionals. However, before jumping in, it's essential to recognize that the journey is never as linear as Point A to Point B. Your company might go along this path in several ways, in parallel. The path looks like the Digital Transformation journey, but along the way, there are opportunities for IT to impact sustainability. Check out the green dots on the diagram below and let’s dive in! Table Stakes: Migrating to the Cloud There are several benefits to moving to the cloud: costs, the scale, the geographic reach, but did you know that sustainability is one of the reasons? The cloud has two main benefits regarding sustainability: carbon reductions and energy efficiency. In 2018, Microsoft published a study calledThe carbon benefits of cloud computing. Per the study, The results show that the Microsoft Cloud is between 22 and 93 percent more energy efficient than traditional enterprise datacenters, depending on the specific comparison being made. When taking into account our renewable energy purchases, the Microsoft Cloud is between 72 and 98 percent more carbon efficient. You might think that Microsoft's renewable energy purchases account for these savings. That is part of it, but there are three more reasons cited in the study: IT operational efficiency, IT equipment efficiency, and Datacenter infrastructure efficiency. The efficiencies of a hyper-scale cloud, like Azure, lower the inefficiencies of on-premises carbon and energy-intensive workloads. I often talk with companies that miss how much Scope 3 goes into datacenter operations, including equipment manufacturing, procurement, and disposition. To learn more about how we think about this, check out our other study,A new approach for Scope 3 emissions transparency. In other words, the starting point for IT's sustainability journey could be the simple act of a cloud migration. Once migrated, a company can view its Azure-related emissions with theCarbon Emissions Impact Dashboard. Taking advantage of cloud infrastructure: Modernization and Refactoring Most of my career was spent in IT, supporting traditional 3-tier applications: a front-end client, an application in the middle, and a back-end database. After migrating these workloads to the cloud, this classic infrastructure-heavy design can hinder scale, growth, manageability, and impact sustainability. The cloud allows IT to take advantage of its efficiency to run efficient platforms. For example, running a whole operating system and infrastructure for a SQL server is more carbon-intensive than running SQL PaaS, or running a container/logic job is more efficient than a dedicated or shared server. Map out your application architectures and consider how to modernize your infrastructure with newly available cloud technologies. This refactoring of applications can have other benefits, too, like allowing for a faster development cycle and application resiliency. For more ideas, check out these more infrastructure-focused reads over on theSustainable Software blog: :leaf_fluttering_in_wind:How Azure.com uses Serverless Functions for Consumption-based utilization and reduced always-on electric footprint :leaf_fluttering_in_wind:Tuning Servers for Energy Savings :leaf_fluttering_in_wind:Adopting Azure serverless architectures to help reduce CO2 emissions – Part 1 :leaf_fluttering_in_wind:Adopting Azure serverless architectures to help reduce CO2 emissions - Part 2 Running a well-governed environment with operational efficiency I remember running a wildly inefficient ERP system on-premises a few years ago. There were several environments for the 3-tier application and supporting functions across Sandbox, Dev, QA, Support, Production, and Disaster Recovery. While much of it was virtualized, workloads were often left online and in various states of development, requiring constant ongoing management. Here, creatingnew governance models based on the Well-Architected Frameworkcan help drive secure and cost-efficient implementations but drive sustainability as well! Once your company has a well-governed IT environment, layering on operational excellence is key, which becomes more manageable withDevOps. The DevOps concepts to Plan, Develop, and Deliver environments bring resiliency to your deployments, but Operations can drive sustainability improvements. Intelligent management of cloud workloads drives efficiency so that you only operate what you need to when you need to. So when you hear people proclaim that DevOps saves them time and money, sustainability is one of the benefits, too! For example, monitoring usage and scripting shutdowns during resource inactivity saves an administrator management time and eliminates that resource's compute energy, lowering the carbon footprint. Developing with sustainability in mind: Sustainable Software Development Besides the infrastructure and operational efficiency, the cloud allows developers to contribute to improving sustainability. Code and applications should run efficiently as possible. Developers should start with the principles ofSustainable Software Engineeringto understand how to design code against common environmental principles. This fundamental understanding will help developers make better design decisions. Once developed, the software can be checked against standards, like theGreen Software Foundation'sSoftware Carbon Intensity(SCI). Per the documentation: The Software Carbon Intensity (SCI) Specification defines a methodology for calculating the rate of carbon emissions for a software system. The purpose is to help users and developers make informed choices about which tools, approaches, architectures, and services they use in the future. This work doesn't only extend to developers but also to practitioners of Data and AI. There is much written on this topic byMicrosoft Research, includingthis new studyon measuring the carbon intensity of AI in cloud instances. Bringing it all together As your company and its business units start tackling sustainability and carbon emissions, they will inevitably come knocking on IT's door, mainly because 'every company is a software company.' Technology is fundamental for the business and needs to be examined for its impact. Whether you are an IT Manager considering a move to the cloud, an IT engineer looking to refactor and optimize application architectures, an Infrastructure engineer building technology governance processes, a developer creating applications, or even a one-person IT shop, YOU can impact sustainability. Bring together your IT team and business unit stakeholders to discuss the journey. Build on the research and resources throughout this article to help inform your approach. Then, carefully consider each area where you can gain efficiency. At best, this helps meet your company's sustainability goals and lowers your impact. At worst, you come away with more efficiency and resilience in your technology stack. Gather your stakeholders and get planning!14KViews3likes1CommentCharting the path towards sustainable AI with Azure Machine Learning resource metrics
Today, we are announcing a new set of resource metrics available in Azure Machine Learning to help customers understand the computational and energetic costs of their AI workloads across the machine learning lifecycle.18KViews2likes1Comment