Buildkite

Last updated
Buildkite
Buildkite Pty. Ltd.
FormerlyBuildbox
IndustryCI/CD
FoundedSeptember 3, 2013;10 years ago (2013-09-03) in Melbourne, Australia
FounderKeith Pitt

Buildkite is a continuous integration (CI) and continuous delivery (CD) platform used in DevOps and company was founded in September 2013. Companies using Buildkite include Wayfair, Shopify, Slack, Twilo, Canva, Pinterest, Envato, MYOB and Lyft. [1] [2] [3]

Contents

Company history

Buildkite Pty Ltd was founded in September 2013 as Buildbox, with the product out of beta in November. [4] [5] Tim Lucas came on board as a co-founder. [6] The original name of the company, Buildbox, had to be changed due to another company registering the trademark first, reportedly by only two weeks. [7]

In 2021, Buildkite ran its own CI/CD conference, Unblock, for the first time. [8] [9]

In 2022, Tim Lucas stepped down as co-CEO. [10] They also announced a new tool, Test Analytics. [11] [12] [13]

In 2023, the company makes their first acquisition, PackageCloud, from a private equity firm. [14] PackageCloud allows companies to store and distribute software to clients. [15]

Financing

In 2020, Buildkite raised $28M AUD, led by OpenView, with General Catalyst. The company was valued at 200M (AUD) in that deal. [3] [2] In November 2022, the company raised a Series B round of $21M ($32M AUD), with investors including One Ventures, Dominic Pym (angel) and AirTree. [16] [17] [18] [19] [3] [9] Total funding investment at the time of writing is $39MUSD.

Products

Pipelines

Buildkite Pipelines, Buildkite's primary product, was built with a hybrid model where build agents are self-hosted, yet supported by a managed, cloud-powered interface. In the hybrid model, the customer provides their own infrastructure for running agents, including their secrets, while Pipelines has a web application to handle user authentication, build orchestration, store logs and metrics. [20] [21] [22] [17] [2] [23] [24] [25]

Features of Buildkite Pipelines include parallelized builds, [26] [21] self-hosted agent infrastructure, build visualization, and integrations with services like GitHub, [27] Bitbucket, GitLab, and Slack. [28] [23] [29] Pipelines permits up to 10,000 agents per account for customers. [17]

The platform allows the creation of pipelines, which are the definitions (in YAML format) for entire automated build processes. A pipeline consists of individual steps, where each step defines an executable job that runs on one or more agents. Agents are the computers, virtual machines, or containerised infrastructure that provide the capabilities to execute these jobs.

An example of a pipeline YAML file, consisting of three steps [30] :

steps:-label:":hammer:Tests"key:"tests"command:scripts/tests.shenv:BUILDKITE_DOCKER_COMPOSE_CONTAINER:app-label:":package:Package"depends_on:"tests"command:scripts/build-binaries.shartifact_paths:"pkg/*"env:BUILDKITE_DOCKER_COMPOSE_CONTAINER:app-label:":debian:Publish"depends_on:"tests"command:scripts/build-debian-packages.shartifact_paths:"deb/**/*"branches:"main"agents:queue:"deploy"

Test Analytics

Buildkite Test Analytics provides development teams with data about their test suites through metrics and trend analysis, and integrates with Buildkite Pipelines. Using the input data, Test Analytics identifies flaky tests, visualizes historical test performance, and correlates test runs with builds and deployments.

Test Analytics requires a test collector with a test suite that runs as a part of the pipelines definition. There is a Test Collector Buildkite plugin for JSON and Junit files, and some frameworks have specific test collectors, e.g. specific Javascript frameworks. [12] [31]

The test collector gathers data about the test suite’s execution to report back to Test Analytics for visualization and interpretation through the web application. Data includes the performance and duration of tests, as well as the reliability (or flakiness) of tests. [12] [32] [11]

Packages

At the time of writing, Packages is in beta/early access. It's marketed as an artifact and package management solution that "supports all major package formats", splits storage from orchestration for security, includes support of the Buildkite command line interface (CLI), among other features. [33] [34] [35]

No public release date has been shared.

Components

Buildkite’s products consist of the following software components.

The Buildkite Web Application

The Buildkite web application is the software component and platform that provides the user interface to integrate Pipelines, Test Analytics and Packages. The web application provides the following features:

  • Pipeline orchestration
  • Build/queue metrics
  • Agent utilization
  • Test suites
  • Artifact/package management (beta)

Buildkite Agent

The agent is a small software component that runs natively on different operating system environments and provides the agent capabilities to run a pipeline’s jobs from Buildkite Pipelines. An agent also refers to the computer, virtual machine or containerised infrastructure running the Buildkite agent software component that provides the capabilities to run jobs from a pipeline.

Buildkite Test Collectors

The test collectors are other small software components that integrate with a pipeline’s jobs running test suites. A test collector analyzes the performance and reliability of tests run by a test suite and reports the data analytics back to Test Analytics, assuming the customer has that product enabled.

Related Research Articles

chroot is an operation on Unix and Unix-like operating systems that changes the apparent root directory for the current running process and its children. A program that is run in such a modified environment cannot name files outside the designated directory tree. The term "chroot" may refer to the chroot(2) system call or the chroot(8) wrapper program. The modified environment is called a chroot jail.

<span class="mw-page-title-main">Continuous integration</span> Software development practice of building and testing frequently

Continuous integration (CI) is the practice of integrating source code changes frequently and ensuring that the integrated codebase is in a workable state.

Build automation is the practice of building software systems in an relatively unattended fashion. The build is configured to run with minimized or no software developer interaction and without using a developer's personal computer. Build automation encompasses the act of configuring the build system as well the resulting system itself.

ActiveState Software Inc is a Canadian software company headquartered in Vancouver, British Columbia. It develops, sells, and supports cross-platform development tools and secure software supply chain solutions for dynamic languages such as Perl, PHP, Python, Ruby and Tcl, as well as enterprise services.

A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source or version control, or repository managers. Package managers allow automatically installing and updating repositories, sometimes called "packages".

<span class="mw-page-title-main">Puppet (software)</span> Open source configuration management software

Puppet is a software configuration management tool which includes its own declarative language to describe system configuration. It is developed by Puppet Inc, which was founded by Luke Kanies in 2005. It's primary product, Puppet Enterprise, is a proprietary and closed-source version of its open-source Puppet software. They use Puppet's declarative language to manage stages of the IT infrastructure lifecycle, including the provisioning, patching, configuration, and management of operating system and application components in data centers and cloud infrastructures.

DevOps is a methodology in the software development and IT industry. Used as a set of practices and tools, DevOps integrates and automates the work of software development (Dev) and IT operations (Ops) as a means for improving and shortening the systems development life cycle. DevOps is complementary to agile software development; several DevOps aspects came from the agile way of working.

<span class="mw-page-title-main">Jenkins (software)</span> Open source automation server

Jenkins is an open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration, and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat. It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase, and RTC, and can execute Apache Ant, Apache Maven, and sbt based projects as well as arbitrary shell scripts and Windows batch commands.

Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate. Continuous testing was originally proposed as a way of reducing waiting time for feedback to developers by introducing development environment-triggered tests as well as more traditional developer/tester-triggered tests.

Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and following a pipeline through a "production-like environment", without doing so manually. It aims at building, testing, and releasing software with greater speed and frequency. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for continuous delivery.

<span class="mw-page-title-main">BuildMaster</span>

BuildMaster is an application release automation tool, designed by the software development team Inedo. It combines build management and ARA capabilities to manage and automate processes primarily related to continuous integration, database change scripts, and production deployments, overall releasing applications reliably. The tool is browser-based and able to be used "out-of-the-box". Its feature set and scope puts it in line with the DevOps movement, and is marketed as "more than a release automatigs together the people, processes, and practices that allow teams to deliver software rapidly, reliably, and responsibly.” It's a tool that embodies incremental DevOps adoption.

GitLab Inc. is an open-core company that operates GitLab, a DevOps software package that can develop, secure, and operate software. The open-source software project was created by Ukrainian developer Dmytriy Zaporozhets and Dutch developer Sytse Sijbrandij. In 2018, GitLab Inc. was considered to be the first partly-Ukrainian unicorn.

<span class="mw-page-title-main">ProGet</span> Package management system

ProGet is a package management system, designed by the Inedo software company. It allows users to host and manage personal or enterprise-wide packages, applications, and components. It was originally designed as a private NuGet manager and symbol and source server. Beginning in 2015, ProGet has expanded support, added enterprise grade features, and is targeted to fit into a DevOps methodology. Enterprises utilize ProGet to “package applications and components” with the aim of ensuring software is built only once, and deployed consistently across environments.

Runscope is a SaaS-based company that sells software for API performance testing, monitoring and debugging. Runscope is based in San Francisco, California.

<span class="mw-page-title-main">Oracle Cloud</span> Cloud computing service

Oracle Cloud is a cloud computing service offered by Oracle Corporation providing servers, storage, network, applications and services through a global network of Oracle Corporation managed data centers. The company allows these services to be provisioned on demand over the Internet.

In software engineering, CI/CD or CICD is the combined practices of continuous integration (CI) and continuous delivery (CD) or, less often, continuous deployment. They are sometimes referred to collectively as continuous development or continuous software development.

<span class="mw-page-title-main">CircleCI</span> American software company

CircleCI is a continuous integration (CI) and continuous delivery (CD) platform that can be used to implement DevOps practices. The company was founded in September 2011 and has raised $315 million in venture capital funding as of 2021, at a valuation of $1.7 billion. CircleCI is one of the world's most popular CI/CD platforms. Facebook, Coinbase, Sony, Kickstarter, GoPro, and Spotify used CircleCI in 2019.

Mobile DevOps is a set of practices that applies the principles of DevOps specifically to the development of mobile applications. Traditional DevOps focuses on streamlining the software development process in general, but mobile development has its own unique challenges that require a tailored approach. Mobile DevOps is not simply as a branch of DevOps specific to mobile app development, instead an extension and reinterpretation of the DevOps philosophy due to very specific requirements of the mobile world.

References

  1. "Buildkite Announces Successful $32 Million Series B Funding Round | Startup News". 2022-11-17. Retrieved 2024-01-22.
  2. 1 2 3 Shu, Catherine (2020-08-18). "Melbourne-based CI/CD platform Buildkite gets $28 million AUD Series A led by OpenView". TechCrunch. Retrieved 2024-01-22.
  3. 1 2 3 Waters, Cara (2020-08-18). "Software startup Buildkite scores $28 million investment". The Sydney Morning Herald. Retrieved 2024-01-22.
  4. "Good news everyone! Buildbox is now officially out of Beta". Buildkite. Retrieved 2024-01-22.
  5. Chan, Rosalie. "Profitable Australian DevOps startup Buildkite explains how its new $28 million in funding will let it spread the word about being 'the best-kept secret in the developer tool space'". Business Insider. Retrieved 2024-01-22.
  6. "'Quiet achiever' Buildkite raises $31m to expand operations". The West Australian. 2022-11-16. Retrieved 2024-01-22.
  7. "Startup Story: Buildkite". 2015-01-21. Retrieved 2024-01-22.
  8. "Announcing UnblockConf – Buildkite's first CI/CD conference". Buildkite. Retrieved 2024-01-22.
  9. 1 2 Engineering, Wix (2021-10-24). "6 Challenges We Faced While Building a Super CI Pipeline: Part I". Wix Engineering. Retrieved 2024-01-22.
  10. "Bidding farewell to co-founder and co-CEO Tim Lucas". Buildkite. Retrieved 2024-01-22.
  11. 1 2 "Test Analytics: Identify, track & fix problematic tests". Buildkite. Retrieved 2024-01-22.
  12. 1 2 3 "Integrate tests with Buildkite Test Analytics". DEV Community. 2022-06-26. Retrieved 2024-01-22.
  13. Vizard, Mike (2022-06-30). "Buildkite Adds Analytics Tools to Identify Flaky App Tests". DevOps.com. Retrieved 2024-02-09.
  14. Bhartiya, Swapnil (2023-12-07). "Buildkite's CI/CD Platform Aims To Improve Developer Productivity And Happiness | Keith Pitt". TFiR | A video is worth a million words. Retrieved 2024-01-22.
  15. "Instacart IPO: The winners and losers". Fortune. Retrieved 2024-01-22.
  16. "We raised a $21m Series B! Now what do we do next?". Buildkite. Retrieved 2024-01-22.
  17. 1 2 3 Keary, Tim (2022-11-15). "How automation helps secure the CI/CD pipeline, Buildkite raises $21M". VentureBeat. Retrieved 2024-01-22.
  18. "Q&A with Keith Pitt — the Aussie CEO shaking up software development". SME Business Daily Media. Retrieved 2024-01-22.
  19. Palmer-Derrien, Stephanie (2020-08-19). "Software startup Buildkite rises from stealth mode with $28 million funding round". SmartCompany. Retrieved 2024-02-09.
  20. Gerwitz, Ashley (2020-04-15). "Buildkite". Stark & Wayne. Retrieved 2024-03-27.
  21. 1 2 Louden, Austin (Sep 1, 2017). "Continuous integration for iOS with Nix and Buildkite". Pinterest Engineering Blog. Retrieved 2024-03-27.
  22. "Buildkite | Euphemia". Buildkite | Euphemia. Retrieved 2024-02-09.
  23. 1 2 K, Likith (Mar 22, 2022). "Know How to Get Started with Buildkite". DEVOPS DONE RIGHT. Retrieved 2024-03-27.
  24. Vestergaard, Rasmus; Lykke, Andreas (Oct 6, 2022). "uBuild: Fast and Safe Building of Thousands of Container Images". Uber. Retrieved Mar 28, 2024.
  25. Ltd, Sentia Australia Pty. "Buildkite Brilliance: CI/CD on Android with Sentia's Expertise". Sentia. Retrieved 2024-03-27.
  26. DeWolf, Remy (August 16, 2023). "How Rippling used Spot instances to save and scale CI/CD". Rippling. Retrieved 2024-03-27.
  27. Hart, Eli (2021-07-12). "Better Android Testing at Airbnb, Part 7". The Airbnb Tech Blog. Retrieved 2024-03-27.
  28. Bharathi, Vishnu (Nov 23, 2021). "What we learnt by migrating from CircleCI to Buildkite". hasura.io. Retrieved 2024-03-27.
  29. Team, The Zenhub (2020-08-20). "ZenHub's move to Kubernetes". Zenhub | Agile Project Management Blog. Retrieved 2024-03-27.
  30. "Defining your pipeline steps". Buildkite. Retrieved 2024-03-27.
  31. buildkite/test-collector-javascript, Buildkite, 2024-03-05, retrieved 2024-03-27
  32. Elisha, Anyalebechi (Jan 22, 2024). "20 Best Exploratory Testing Tools Reviewed For 2024". The QA Lead. Retrieved Mar 28, 2024.
  33. "Buildkite September 2023 Release | A new Buildkite product". Buildkite. Retrieved 2024-03-27.
  34. "Buildkite Packages | Simple package management for all your artifacts". Buildkite. Retrieved 2024-03-27.
  35. "Buildkite Packages". Buildkite. Retrieved 2024-03-27.