Rust based tools for more sustainable DevOps l Adservio

Rust is an extremely efficient language with promising uses in DevOps. Should you use more Rust tools in your DevOps strategy? Learn more here.

Digital Quality
-
12 min
Digital Quality
/
Rust based tools for more sustainable DevOps l Adservio

Sustainable DevOps with Rust

Rust also works faster than nearly all other programming languages. It’s about six times faster than JavaScript and 71 times faster than Python.

After reading this research, we realized that Rust has the capacity to significantly improve DevOps. If you aren’t applying Rust to your DevOps strategy, consider using some of the following tools and concepts.

Infrastructure automation and management

Contemporary DevOps relies heavily on cloud environments that can adapt to each user’s needs. Ideally, we don’t want to spend much time thinking about developing products for different operating systems. With cloud-based applications working inside containers, practically anyone can use a product regardless of whether they have devices running Windows, macOS, iOS, Android, or even Unix-like operating systems.

Chef Habitat

Rust excels at meeting the needs of diverse users, especially when you adopt a tool like Chef Habitat.

We like Chef Habitat as a Rust-based infrastructure automation and management tool because it defines everything your application needs to function. It doesn’t rely on any specific infrastructure environment.

Chef Habitat lets you bundle all of your dependencies, codebases, and lifecycle events in a package separate from the user’s operating system.

Do you already have legacy apps that use system-specific dependencies? You can repackage them in Chef Habitat containers. That approach doesn’t always work perfectly, but it does a sisable amount of the work for you. Instead of starting from scratch, you can move your applications to an infrastructure-independent bundle. Then, you can test the app to find components that don’t cooperate with other operating systems.

By adding Chef Habitat to your DevOps strategy, you can repurpose legacy products and start building new products that adapt automatically to different infrastructures.

Provisioning

DevOps professionals need provisioning to help create and prepare essential resources that support their applications. For example, we often need load balancers, databases, and virtual machines for our apps. Provisioning automates much of the work required to set up those resources.

Numerous companies have developed Rust-based tools that automate provisioning. At this step in the DevOps process, though, you will likely need a tool built specifically for the application’s cloud environment.

Faraday Cage for Docker images

Faraday used Rust to develop its Cage project. Cage is most useful when you want to reuse existing Docker images. You can load existing images into your local environment and start adding new components from local source trees. Control from the command line gives you a lightweight, powerful way to provision the resources you need before committing your updated code.

You can also use Cage to combine elements from existing Docker applications. Instead of starting from scratch, you can combine the components you need, provision the required resources, and move to the configuration stage of DevOps.

Krator for Kubernetes

If you deploy apps from Kubernetes, try provisioning resources with Krator. Krator can monitor your Kubernetes resources to improve allocation as necessary. Although highly experimental, Krator has the potential to reduce complexity and control loops within your DevOps process.

Configuration management

During DevOps configuration, you need to formally allocate hardware resources to your app, establish endpoints that connect essential services to your app and set security standards for passwords and encryption.

Often, this phase of DevOps finalises and refines the resources you establish during provisioning. You can expect Faraday Cage and Krator to help with some aspects of configuration management. They might not do everything you need, though.

Rust developers have built more than two dozen open-access tools for configuration management. We haven’t tried them all, but we have gotten positive results from:

Browse GitHub for the latest configuration management tools built with Rust. You’ll likely find that at least one of them matches your needs.

Resource optimization

Sustainable DevOps relies on optimising resources to save time, reuse code, and consume as little energy as possible. Note that this form of green IT does more than lower your energy consumption and, therefore, your electricity bill. It also:

  • Helps you get products to market faster.
  • Relies on fewer developers.
  • Contributes to more efficient processes.

It could also improve your brand reputation, making your company a more attractive option for partners and contracts.

We’ve found plenty of ways to optimise resources within DevOps. For example, you can choose a cloud services partner that uses renewable energy. You can also write more efficient code that needs less storage space and doesn’t force the user’s CPU to consume more electricity than necessary.

Within the Rust world, two tools stand out as options we think you should consider.

Sccache

Sccache is a cache compiler tool that can automatically package local toolchains. It supports Rust and C/C++.

If you’ve used Ccache, you should find Sccache very easy to use. They essentially do the same work, but Sccache can handle code written in Rust as well as C/C++.

Once you’ve cached object files with Sccache, you can store them and incorporate them into future builds. The cached components don’t take up as much server space as uncached lines of code, so they save you time and space.

Cachepot

We’ve gotten good results from Cachepot in the past. If you currently use it, consider switching to Sccache. The former team at Cachepot has joined Sccache to build more robust Rust and C-language caching tools.

Visit Cachepot’s GitHub page to submit a porting request.

Should you use Rust for more sustainable DevOps?

Rust doesn’t get listed as one of the 10 most popular languages among today’s developers. It does have a syntax similar to C and C++, though, so many programmers will find it easy to learn.

So, should you start using Rust more often to create a sustainable DevOps strategy? The answer depends on a lot of factors. We’re eager to talk to you about the benefits and challenges of implementing Rust tools in DevOps. Send us a message today so we can help you determine whether any Rust tools belong in your tech stack.

Published on
February 12, 2024

Industry insights you won’t delete. Delivered to your inbox weekly.

Other posts