Skip to main content

Bazel Remote Cache Debugging

[object Object]
Brandon Duffany, Engineer @ BuildBuddy

Using a remote cache is a great way to speed up your Bazel builds! But by default, Bazel uploads almost everything to the remote cache.

If your network is slow and your build artifacts are very large (like a docker image) this can lead to poor performance.

To address this, and make it easier to fix, we built the new cache requests card.

In this post we'll explore what insights this card can give you into your builds, as well as some fun details about how the card works under the hood.

Distributed Scheduling for Faster Builds

[object Object]
Tyler Williams, Co-founder @ BuildBuddy

Let's start with "what's BuildBuddy" for the kids in back. In short, we provide a UI, distributed cache, and remote execution platform for your Bazel builds. That means we securely compile your code, cache the artifacts, and help you visualize the results. We make it possible to build projects like Tensorflow from your laptop in under 5 minutes instead of 90 minutes.

Obviously to do all this, we have to handle some thorny engineering challenges, one of which is scheduling remote executions. For that, we have a scheduler. The scheduler just matches actions (basically jobs) received by our API to remote workers that actually do the work. If you think of a full build of something like Tensorflow as a 10 course meal, a single action is like a recipe for a tiny part of that meal. To make it easier to visualize, here's a real action from building BuildBuddy:

Bazel's Remote Caching and Remote Execution Explained

[object Object]
Brentley Jones, Developer Evangelist @ BuildBuddy

Bazel's famous remote caching and remote execution capabilities can be a game changer, but if you're not familiar with how they work, they can be a bit of a mystery.

Well, don't worry. I'm here with to go over the fundamentals of remote caching and remote execution, with a nuts and bolts (or rather actions and spawns 😄) overview of Bazel's remote capabilities.

How Bazel 5.0 Makes Your Builds Faster

[object Object]
Brentley Jones, Developer Evangelist @ BuildBuddy

In our last post, we summarized the changes that were in the Bazel 5.0 release. There were a lot of changes though, so it can be hard to determine which ones are impactful to you and why.

Don't worry, we've got your back. In this post we highlight the changes that help BuildBuddy users build even faster!

What's New in Bazel 5.0

[object Object]
Brentley Jones, Developer Evangelist @ BuildBuddy

Bazel 5.0 includes nearly 3,000 changes since 4.2.2. It's the first major release since 4.0 was release in January of last year, and it's Bazel's second LTS release. Since there were so many changes, many of them quite impactful, I felt I needed to review them all and provide a nice summary for y'all. So that's what I did 😄.

Welcoming Brentley Jones

[object Object]
Siggi Simonarson, Co-founder @ BuildBuddy

At BuildBuddy, our mission is to bring the world's best developer tools to every company. A big part of that mission involves connecting engineers across different companies, sharing knowledge, and keeping an open dialog on best practices.

That's why we're so excited to share that Brentley Jones has joined BuildBuddy as a Staff Developer Evangelist. His deep experience with Bazel at scale will directly benefit BuildBuddy users and customers.

Brentley is a maintainer of Bazel's rules_apple and rules_swift which contain Bazel's support for iOS, macOS, Swift, and more. He's also a regular contributor to the Bazel Slack, and the Bazel GitHub repo.

Brentley joins us from Lyft, where he was a Staff Software Engineer on their Client Tooling team. Prior to Lyft, Brentley was an engineer at Target, where he led their migration to Bazel.

We look forward to working alongside Brentley to build the future of developer tools.

Welcome to BuildBuddy, Brentley!

Welcoming Lulu Zhang

[object Object]
Siggi Simonarson, Co-founder @ BuildBuddy

To fulfill our mission of bringing the world's best developer tools to every company, we're continually expanding our team to keep up with demand we're seeing from customers. That's why we're excited to share today that Lulu Zhang is joining BuildBuddy's engineering team.

Lulu joins us from Thumbtack. Prior to Thumbtack, Lulu spent 5 years at Google where she worked on Google Play, Project Fi, and Area 120.

We look forward to working alongside Lulu to build the future of developer tools.

Welcome to BuildBuddy, Lulu!

BuildBuddy v2.7.0 Release Notes

[object Object]
Siggi Simonarson, Co-founder @ BuildBuddy

To celebrate Bazelcon 2021 (and our Bazelcon talk), we've got a lot in store for you in this release! We're excited to share that v2.7.0 of BuildBuddy is live on both Cloud Hosted BuildBuddy and open-source via Github, Docker, and our Helm Charts!

We've also updated the list of open source repositories that use BuildBuddy. If you have an open source repo that's using BuildBuddy, and would like to be included on the list - please fill out the quick form at the bottom of that page!

Thanks to everyone using open source, cloud-hosted, and enterprise BuildBuddy. We've made lots of improvements in this release based on your feedback.

Meet BuildBuddy Workflows

[object Object]
Brandon Duffany, Engineer @ BuildBuddy

In today's BuildBuddy v2.3 release, which is now live on BuildBuddy Cloud, we're launching BuildBuddy Workflows. BuildBuddy Workflows is a Continuous Integration (CI) solution for Bazel repositories hosted on GitHub (with support for other providers coming soon).

Like other CI solutions, Workflows give you the confidence that your code builds successfully and passes all tests before you merge pull requests or deploy a new release.

But because BuildBuddy Workflows were built for Bazel repos and tightly integrated with BuildBuddy RBE and Remote Caching, they are really fast.

Introducing BuildBuddy v2

[object Object]
Siggi Simonarson, Co-founder @ BuildBuddy

Our mission at BuildBuddy is to make developers more productive. When we released the first version of BuildBuddy a little over a year ago, we were blown away by the demand for tools and techniques for speeding up common developer workflows like building, testing, and debugging code. We've been working hard ever since - using our own tools to build the next generation of developer tooling for all.

Today we're excited to announce v2 of BuildBuddy! We've completely revamped our caching and remote build execution infrastructure to give our users and customers the one thing they care about above all else: speed.