Skip to content

Home

The Many Caches of Bazel

As its "{fast, correct} — choose two" tagline promises, a major feature of Bazel is performance. Caching is a key technique Bazel uses to improve build speed. Bazel deploys several kinds and layers of caches. There are so many caches that it’s hard to keep them straight. Additionally, frequently used terms like “action cache” can be ambiguous. This blog post will lay out the major Bazel caching mechanisms.

What’s common between GCP Next and the Sphere?

My impressions and insights based on attending the GCP Next event in Las Vegas on April 9-11, 2024.

GCP Next

Summary

Thanks to our Google Cloud Platform partner, I was able to attend the GCP Next conference in Las Vegas this year. This was my 2nd GCP Next; the first was in 2018 in San Francisco, when I was actually on the inside as part of the Google Cloud team, leading content for the DevOps tooling track!

The schedule and setting made it very clear that Google’s top goal for GCP Next this year was to promote AI, followed by security. There was also a prominent display of data and security platforms, but AI dominated even those vendor displays and presentations.

Bazel Bites: A Tasty Metaphor for Streamlined Builds

When you search the internet for details about Bazel, you’ll likely come across something like this:

Bazel is a build system. It’s used to build and test software, converting source code into artifacts, such as executable programs.

Bazel’s headline, “{Fast, Correct} - Choose two,” emphasizes its focus on scalability and hermeticity. It’s language agnostic, allowing you to use Bazel to build projects written in a variety of different programming languages.

If this seems confusing or overwhelming at first, don’t worry – we’ve cooked up a different approach that could help. We’ve concocted this article using a slightly rare (yes, we went there!) cooking metaphor.

Bazel explained through cooking

Bazel explained through cooking

Supercharge Traditional CI/CD Pipelines and Cut Costs With EngFlow

At EngFlow, we've been dedicated to improving the speed, efficiency, and productivity of development processes for almost half a decade. As the market has evolved and FinOps gains more traction, we've expanded our focus beyond accelerating development to include optimizing costs and fostering sustainability in software engineering.

Let's discover how EngFlow can effectively help you achieve your goals by reducing infrastructure expenses and maximizing resource utilization.

How to: Build Chromium with Reclient

It is official: Goma is no longer supported by Google, and all Chromium and AOSP builds must use Reclient for remote execution and caching.

Reclient is a build system plugin providing remote execution and remote caching capabilities to existing build systems that do not natively support them -- such as Ninja, the build system used to build Chromium. See my last post, Goma is Gone — Put Everything Into Reclient! for an overview of Reclient architecture and some insights into the migration.

In this post we delve into the technical details of how to build Chromium with Reclient on a remote cluster with Linux workers.

Bazel scales more than just builds

Bazel creates a structured layer between the details of building and testing for individual languages and the users, both human and machine, that perform build operations. This abstraction simplifies workflows and is the foundation for powerful build-adjacent systems not possible with other build tools. Scalable Bazel builds underpin a scalable organization and development culture.

EngFlow Company Newsletter - Q4 2023

To our EngFlow family — wishing you a peaceful and happy holiday. We look forward to working together in 2024!

Xkcd

courtesy of xkcd.com

From our early days we have set our company’s priorities in the following order: Happy Team, Happy Customers, More Happy Customers. We’d like to provide you with a few updates in that construct.

A Winter Visit

T'was the day before EngFlow went quiet, when all through the repository,
Not a PR was stirring, not even a new blog story.

The OnCall schedule was overridden for the year's tail
but all hoped that the clusters would stay hale.

The company was all snug in their beds,
While visions of ARR danced in their heads.

And I had settled down to quiet end of OnDuty,
Closing issues with comments a bit snooty.

When from PagerDuty arose such a clatter,
I sprang to Slack to see what was the matter!

I tore open #production,
To see what was the malfunction!

But there was nothing there,
Save an unhealthy pool alarm's blare.

I soothed it with a PR,
And rolled the cluster with a gentle hardy-har.

Then, while spilling her eggnog,
Our CEO said "let's get this out now as a Holiday Blog!"

(With apologies to Clement Clarke Moore)

Bazel 7 is here - and Bazel Invocation Analyzer is ready for it!

On December 11th, 2023, Bazel 7.0 LTS was released, which includes multiple changes to improve build performance. More details below!

Bazel Invocation Analyzer (BIA) is an open-source tool by EngFlow that analyses the JSON trace profiles generated by Bazel and provides suggestions on how to improve the build performance. You can download the source and run the CLI or use the web UI available at https://analyzer.engflow.com.

BIA has been updated to support the internal changes introduced with the launch of Bazel 7.0 LTS, so you can continue to speed up your builds with the help of BIA. It also features new types of suggestions to help you fine-tune your builds irrespective of whether you are using Bazel 7 already or not.