Audacia's approach to efficient and sustainable software development

Audacia's approach to efficient and sustainable software development

Richard Brown

23 May 2023 - 6 min read

Cloud ComputingSustainability
Audacia's approach to efficient and sustainable software development

In 2020, it was estimated that Information and Communication Technology (ICT) — comprising of data centres, cloud computing and software applications — accounted for 4-6% of global electricity consumption, contributing to greenhouse gas emissions.

With the demand for technology increasing, it is anticipated that this figure will rise. In response, numerous technology companies are implementing sustainable practices to address this issue.

Green software is also being developed to enhance carbon efficiency in the tech and software industry. Green software is a type of sustainable software engineering that focuses on reducing energy consumption and minimising carbon emissions throughout the software development lifecycle.

By optimising code, improving algorithms and implementing energy-efficient programming techniques, organisations aim to mitigate the negative impact that technology can have upon the environment. This proactive approach towards green software development aligns with the broader goals of environmental sustainability and demonstrates the industry's commitment to addressing the challenges posed by rising technology demand.

As a software development company, Audacia is committed to aligning our practices with  environmental sustainability goals. Here we explore how Audacia is actively working to reduce our energy consumption and carbon footprint, while also promoting a more sustainable approach to software development.

The three areas we will cover are:

  1. Cloud optimisation
  2. Infrastructure as Code
  3. FinOps

Cloud optimisation

One area where we are focusing our sustainability efforts is cloud optimisation. We implement continuous autoscaling where appropriate to dynamically adjust the number of computing resources used by our applications based on demand. This approach promotes energy efficiency by preventing overprovisioning of resources, which can lead to unnecessary energy usage and increased costs.

We constantly monitor cloud usage to identify areas where optimisation can be made. This involves regular reviews of our cloud infrastructure to assess the energy efficiency of the current setup and identify opportunities for improvement. In addition to regular reviews, we also leverage the autoscaling capabilities of Microsoft Azure .

Autoscaling allows us to automatically adjust the number of resources allocated to our infrastructure based on demand. This means that during times of high traffic or increased workload, additional resources can be provisioned automatically, and as demand decreases, resources can be scaled back down to reduce costs and energy consumption.

Audacia also leverages cloud storage containers to store files appropriately based on client’s accessibility requirement. We use hot, cool and archive tiers to ensure that we are using the appropriate storage tier. Using the right storage tier for the data enables us to maximise efficiency and reduce unnecessary energy consumption.

For instance, storing infrequently accessed data in cheaper and lower-performance storage tiers can help reduce the energy consumption of the entire storage infrastructure, as it prevents expensive resources from being consumed for storing data that is rarely accessed. On the other hand, frequently accessed data should be stored in higher-performance storage tiers to ensure faster access times, which results in better performance and user experience.

Infrastructure as Code

Infrastructure as Code (IaC) is a method of managing infrastructure that enables the automatic provisioning, configuration and management of resources through code. It allows software developers to define their infrastructure in code, which can be versioned, tested, and deployed in a controlled and repeatable manner.

We use Infrastructure as Code as a software development company to reduce the time spent managing and provisioning infrastructure. Audacia uses Terraform, a declarative IaC tool developed by HashiCorp, in all our projects.

Using terraform allows us to create infrastructure in the cloud that can be scaled up or down as needed. This not only reduces the time and effort spent on managing and provisioning infrastructure but also allows for more precise resource management.

With the ability to provision and deprovision infrastructure resources on demand, we can minimise the number of idle resources, reducing unnecessary energy usage and contributing to environmental sustainability. This provides greater convenience and flexibility for developers, allowing them to quickly create and manage the infrastructure resources they need without having to rely on manual processes.

Additionally, Audacia's investment in IaC has allowed us to create and destroy test environments on demand, which helps to minimise energy usage and costs. Constantly running test environments can have a significant environmental impact, consuming energy and producing carbon emissions unnecessarily.

We leverage Microsoft Azure , which provides functionality for easily creating, deploying and managing virtual machines and containers for test environments. Using Azure, we can create and destroy test environments quickly and efficiently.

FinOps

FinOps is a set of practices and processes that helps organisations to understand and manage the costs of their cloud environment.

At Audacia, we have implemented a FinOps approach as a software development company to gain granular visibility into the costs associated with our cloud usage. This allows us to make smarter decisions about how we allocate resources. In addition, we are also able to identify areas where we may be overspending or underusing resources and take steps to address these issues.

One key aspect of our FinOps approach is the use of cost allocation tags, which are applied to resources in our cloud environment. These tags help to provide a clear breakdown of the costs associated with each resource. . By using cost allocation tags in our cloud environment, we can make smarter decisions, driving carbon efficiency and cost optimisation.

Conclusion

Audacia is committed to reducing our environmental impact and provide fewer carbon emissions while also providing efficient and cost-effective solutions for our clients. While we have made progress in the areas discussed here, we recognise that these are only small steps towards achieving our sustainability goals.

We continue to partner with leading renewable energy organisations in wind and electric vehicle industries to provide solutions that allow them to continue providing sustainable services.

We will also continue exploring new and innovative ways to reduce our energy consumption and carbon footprint in the future and we remain dedicated to making a positive impact on the environment.

Audacia is a leading software development company based in the UK, headquartered in Leeds. View more technical insights from our teams of consultants, business analysts, developers and testers on our technology insights blog.

Ebook Available

How to maximise the performance of your existing systems

Free download

Richard Brown is the Technical Director at Audacia, where he is responsible for steering the technical direction of the company and maintaining standards across development and testing.