Aside develops a Chromium-based AI browser. To run large-scale C++ compilation on a server shared by multiple developers, the Aside team built a remote build cluster around a high-performance dedicated server from Alpaon. The team keeps its Mac and Windows development workflow while making full use of the server's resources to process many compile jobs in parallel.
Background
In browser development, building and checking the result matters as much as changing the feature itself. Pulling in the latest Chromium code or changing common headers and build settings greatly increases the amount of code that has to be recompiled. Relying only on the performance of each developer's own computer turns this work into waiting time during development.
What the Aside team needed was compile capacity the whole team could share. Developers had to be able to use it from the environments they were used to, and CPU, memory, and storage had to work in balance even during long builds. Whether the physical server and hosting could be handed off to someone else was also an important condition for adoption.
A dedicated server at the center of the remote build cluster
The server Alpaon provided is a 128-core, 256-thread system built on two AMD EPYC 7742 processors. It has 256GB of memory and 960GB of enterprise NVMe, with the operating system disk separated from the build storage. The Aside team built its build pipeline on Alpaon's server and hosting, and tuned the settings using real Chromium work.
Developers start a build from their own Mac or Windows computer. Siso, the build execution tool, distributes C/C++ and other compile jobs, and workers in Aside's build pipeline, built on Buildbarn, run them on the server and return the results, such as object files. Linking to produce the final executable and generating macOS debug symbols are done on the developer's computer.
The build cache sits on the enterprise NVMe storage Alpaon provided. Dedicated build storage serves as the foundation for running the cache, so that the input files and results many compile jobs need can be read and reused quickly. Inputs identified by file content reuse stored copies, and jobs whose source, compile options, toolchain, and so on match can use existing results. Because the network is involved not only in the initial source and SDK downloads but also in sending inputs and results for remote compilation, cache and transfer compression are applied together.
Full builds cut to under 30 minutes
In the Aside team's real development environment, a full build without cache took an average of 1 hour 40 minutes on a developer's own computer. After the remote build environment was set up around Alpaon's dedicated server, the same full build without cache finished in 30 minutes at most. When the cache is used, builds finish in around 10 minutes.
| Build environment | Cache | Time |
|---|---|---|
| Full build on developer's computer | Not used | 1 hr 40 min on average |
| Full build using remote server | Not used | Under 30 min at most |
| Build using remote server | Used | Around 10 min |
Times measured in the Aside team's real development environment.
The change developers feel is the wait before they can check the code they changed. With the server processing many compile jobs in parallel and the cache supplying reusable results, developers can see results faster even after pulling in large changes.
Build capacity the team can share
The Aside team set up an environment in which multiple build machines, centered on Alpaon's dedicated server, process jobs together. Each build machine joins the cluster when it is online, and when its connection drops it is detected and removed from job distribution. The team also maintains an installer package that aligns each developer's compiler and SDK versions, so everyone can use the same remote build foundation from their own development environment.
Alpaon handles the physical server and hosting operations, and the Aside team manages the build tools, toolchain, and cache policy. The Aside team is spared the burden of housing and maintaining the server itself, while continuing to refine the settings for its Chromium work. Alpaon's dedicated server sits at the center of the build infrastructure the team shares, supporting browser development.