Conch API

Logo

Datacenter build and management service

View the Project on GitHub joyent/conch-api

Development Process

Introduction

The Conch API is developed using Github.

Requests and bugs are tracked using Github Issues.

The master branch is protected and cannot be modified directly:

Choosing Work

Choosing work is analagous to Kanban style development. We grab work out of the Github issues and get it done. Sometimes high priority work comes in and we shift focus to that. But in general, we work the backlog.

The build world is an odd duck in that we are also the customers of our own work. The Conch Shell and Conch Web UI are the main consumers of the API and also owned by Build. Those projects each obviously have their own customers and needs but the features and optimizations for the API can largely be determined in-house.

Release Process

Currently, deploys are scheduled for Monday afternoons (US/Eastern) and are visible in the BuildOps Google Calendar.

In general, we prefer a two week deploy cadence. v2.45.0 goes into staging on Monday and we begin accepting PRs for v2.46. Two weeks later, v2.45 goes to production, v2.46 is deployed to staging, and we being to accept PRs for v2.47.

Summary

When written out like this, the development and release processes seem complicated. In practice, however, it is pretty lightweight and has minimal requirements for the developer. The release process requires more work out of the release manager but, again, in practice the process is pretty lightweight, particularly on a two week release cadence.