DigitalOcean gave a nod to the FreeBSD community today by providing support for the popular operating system. FreeBSD is the first non-Linux distribution that DigitalOcean has supported.
In a blog post they cite how the FreeBSD core team works together on the kernel and the user space utilities. They like how that combined team can ensure consistent development across the project. The management system and the love for clear technical writing helps, too. But a big part of the support stems from the DigitalOcean users who have made FreeBSD one of the top requests on the DigitalOcean user board.
DigitalOcean acknowledges that it has taken them a while to support FreeBSD. The company’s growth and subsequent reorganizations contributed to the company taking some time to offer support for FreeBSD. A turning point came with the support for CoreOS, the auto-updating operating system and hosting service for containers. The adoption forced DigitalOcean’s engineers to build a metadata service — “allowing a droplet to have access to information about itself at the time that it’s being created.” With the metadata service, the droplet itself queries for configurables such as the hostnames, SSH keys. It then configures itself instead of relying on a third party, such as a configuration management tool.
Without the metadata service, DigitalOcean would face the issues that come when the backend code needs to know the contents of an image.
“We would have needed the metadata” to offer FreeBSD, said Neal Shrader, a senior software engineer in an interview today.
Here’s how DigitalOcean describes the process in its blog post:
In order to query metadata, we need to have an initial network configuration in order to build our configuration, since DigitalOcean’s droplets use static networking. During boot time, we bring up the droplet on a v4 link-local address in order to do the initial query to the service. From there, we pick up the real network config, hostname, and ssh keys. The cloud-init project then writes a configuration that’s associated with the droplet’s ID. Linking this configuration to the droplet ID is the mechanism that allows it to know whether the image is being created from a snapshot or new create, or is just a rebooted instance of an already configured droplet.
FreeBSD has some deep roots. FreeBSD emerged in the early 1990s, following the work of Bill and Lynne Jolitz who created 386BSD. Their story is a remarkable one. Rachel Chalmers, now a principal with Ignition Partners, wrote a profile of the couple for Salon in 2000. Their work set the path for FreeBSD and its widespread use. A recounting of the events that passed at the time provide some perspectives about why Linux and not 386BSD emerged as the most popular Unix-based, open-source movement. Worth the read.
Netflix and Juniper Networks use FreeBSD. WhatsApp Co-Founder Jan Koum is a passionate advocate for FreeBSD. In November he gave the FreeBSD Foundation $1 million. Koum gives credit to FreeBSD for getting him out of poverty.
DigitalOcean has made its mark by appealing to developers. FreeBSD fits into its playbook. But an interesting side story is about the ecosystem and how it affects the trajectory of a company’s technology development. It took some time for DigitalOcean to support CoreOS. With the metadata service, the complex aspects of third-party configuration have been abstracted. That allowed DigitalOcean to support FreeBSD and consequently broaden its ecosystem and be more appealing to developers. With that combination, DigitalOcean is simply doing what technology companies should strive to do. Build platforms, develop ecosystems and constantly find new ways to help the process of building and developing apps across a distributed infrastructure.
DigitalOcean is a sponsor of The New Stack.