Green coding - Keepit: Tapping into code’s potential for greener backup services
This is a guest post for the Computer Weekly Developer Network written by Keepit CTO, Jakob Østergaard.
Keepit is known for its SaaS-based backup and recovery services technology platform that works to keeps data in its own cloud datacentres, protects cloud data across numerous platforms and aims to give customers the ability to rapidly add data sources.
Østergaard writes in full as follows…
The language of sustainability
Sustainability transcends green energy; it encompasses building systems that are efficient, reliable and adaptable. In the big picture, greener backup services embrace conservation. Choosing C++ an object-orientated programming language enables the development of storage systems that minimise resource usage while maximising performance and reliability — and supporting profitability.
Addressing sustainability through efficient architecture and programming
So how does choosing a programming language play into sustainability? Well, for starters, sustainability encompasses more than utilising green energy sources— yes, that is a key part — but it’s about optimising efficiency at every level of operation to minimise resource consumption while maximising performance and profitability.
From optimising memory usage to implementing efficient stacks, C++ equips developers to build software that embraces sustainable and scalable purpose-built architectures, thereby reducing environmental impact, avoiding legacy inefficiencies and providing dependable solutions for customers.
Designing purpose-built architecture
The cornerstone of sustainable data management lies in purpose-built architecture tailored to efficiently address storage challenges. By inventing a storage foundation specifically for data backup services, companies can sidestep the inefficiencies inherent in legacy systems. One of the key elements at the forefront of this is the concept of deduplication, which eliminates redundant data across both space and time.
Unlike relying on virtual machines provided by third-party platforms, a purpose-built architecture allows for streamlined operations, reduced complexity and lower resource consumption.
Let’s look at using efficient programming languages.
Efficiency extends beyond hardware considerations and resource origin to the choice of programming languages. Opting for languages like C++, known for being hard, can compile to efficient machine code for low resource utilisation, yielding significant energy savings. Compared to more common, resource-intensive languages, such as those often adopted by upstart companies [Ed: I think you mean ‘start-up), bespoke solutions built with C++ can attain unparalleled efficiency — up to 99% power savings over legacy systems with bolt-on cloud retrofits. First released in 1985, C++ is renowned for its versatility and performance. It builds upon the foundation of the C programming language while introducing features for object-oriented programming (OOP) and generic programming. One of the key strengths of C++ is its ability to provide low-level access to system resources while also supporting high-level abstractions through OOP constructs like classes and inheritance. This allows developers to write efficient and scalable code for a wide range of applications.
With its rich standard library and support for third-party libraries, C++ enables developers to tackle complex projects with ease. Its static typing system helps catch errors at compile time, leading to more robust and reliable software. It supports efficient implementation of data structures and algorithms, meaning tight control over memory when needed, so a viable choice over Python, Ruby and so on.
Avoiding legacy inefficiencies
Legacy systems introduce layers of complexity and inefficiencies that inflate costs and energy consumption. By avoiding reliance on virtualisation middleware and platforms retrofitted for the cloud, companies can streamline operations and minimise resource overhead.
Maintaining full ownership and control of the technology stack enables precise insights into operational costs and facilitates the identification and mitigation of inefficiencies. Instead of perpetuating wasteful practices through short-term solutions, such as elastic provisioning and virtualisation, companies committed to sustainability prioritise lean, purpose-built architectures that deliver long-term benefits — for the environment, the company and for customers.
The efficiency imperative
C++ empowers developers to fully harness hardware resources and optimise performance without compromising efficiency. Its lightweight footprint and robust features make it well-suited for developing storage systems capable of handling large data volumes with minimal resource consumption.
Let’s put that into context: the average enterprise stores 10 petabytes of data, which amounts to 23.1 billion files — and the volume is ramping up rapidly. It’s quite clear why there’s an imperative to embrace efficiency: there’s a mountain of data ahead of us and legacy systems with all their inefficiencies simply aren’t suited to handle it cost wise, performance wise, or efficiency wise.
Performance as a priority
Performance is of paramount importance in the design of storage systems, particularly at scale. While some may argue that “memory is cheap,” optimising resource usage is indispensable for long-term sustainability, especially when facing the reality of the volume of data we create, copy and consume.
Achieving remarkable efficiency requires meticulous design of storage architecture and optimisation of code: in other words, it’s hard work. Off-the-shelf solutions offer easier entry and solving problems with the credit card via additional memory and storage may suit some needs and speed up initial time to market, but as we produce and process more and more data, the gaps are going to get bigger and so will the bills to pay for all of those resources you’re guzzling.
Fundamentally, those types of solutions aren’t solutions at all, but rather buying time to avoid addressing core issues with code. So, perhaps the question becomes “how long can you avoid using efficient code before market (or cultural) forces decide for you?” What I mean by this is if you’re inefficient and incur increased costs, you’re probably passing on the costs of your inefficient technologies to users or shareholders. It’s in a company’s best interest to rationalise their code and address their performance and efficiency issues the right (and purpose-built) way with the appropriate technology choices.
It’s easy enough to think of money as merely a substitute for work — same as energy — and therefore whether you conserve money, energy, or work, it’s basically the same thing. Using less of any one of them is not only in the best interest of businesses but also has a positive impact on sustainability.
So, in a sense, “green code” can be considered code that boosts performance and efficiency and can be considered as plain old capitalism driving businesses toward sustainability.
Impact of code on sustainability & cost
The adoption of sustainable practices in architecture design and programming languages yields multiple benefits, including reduced energy consumption, predictable costs and simplified compliance. Incremental backup and deduplication techniques minimise data storage requirements and network load, further enhancing efficiency, sustainability and profitability — demonstrating that environmental stewardship and profitability aren’t mutually exclusive.
C++ stands out due to its versatility and performance capabilities, enabling the creation of storage systems that are both resource-efficient, fast and environmentally sustainable. But, with this versatility also comes a lot of hard work and that’s not a fit for everyone or for all needs.
By prioritising responsible resource consumption and operational efficiency, technology companies can lead by example in environmental stewardship without compromising profitability. Let’s draw inspiration from sustainable initiatives and integrate similar practices into our operations, fostering a more environmentally conscious tech industry for generations to come.