The Cloud Native Computing Foundation (CNCF), which oversees the development of Kubernetes, announced today that the open source etcd distributed key value store has now been accepted as a complementary incubation project. The announcement was made at the KubeCon + CloudNativeCon North America 2018 conference today.
etcd was developed by CoreOS to provide a reliable way to store data across a cluster of machines. CoreOS was subsequently acquired by Red Hat. At its base level, etcd is written in Go and relies on the Raft consensus algorithm to manage a highly available replicated log to manage everything from recovering from hardware failures to portioning networks.
Josh Berkus, Kubernetes community manager at Red Hat, says that by making etcd available as a CNCF project, Red Hat is effectively assuring anyone who builds platforms or applications that rely on etcd won’t have to worry about what direction Red Hat might take etcd in the future. Red Hat makes extensive use of etcd within the Red Hat OpenShift application development and deployment platform, which is based on Kubernetes.
Both Kubernetes and the Prometheus monitoring software that CNCF oversees rely on etcd as its primary data store. The Cloud Foundry Foundation (CFF), meanwhile, relies on etcd to manage clusters within its platform-as-a-service (PaaS) environment. And every major cloud service provider makes extensive use of etcd data stores.
The CNCF also will provide a more structured governance process around all future etcd updates, adds Berkus. Today, there are now nine etcd maintainers representing eight companies that oversee the efforts of 469 contributors. Thus far, there have been 4,310 forks of the core project.
In general, Berkus says etcd, Kubernetes and many of the other technologies that are now part of the CNCF portfolio collectively have advanced the building of distributed computing applications. Projects involving the building and deploying of distributed applications that once took six months to develop now can be accomplished within a single weekend by a talented developer.
Berkus notes that etcd has played a key role in making these advances possible. Common use cases of etcd now include storing application configurations such as database connection details or feature flags as key value pairs. These values can be monitored in a way that allows the application to reconfigure itself when changed. Advanced developers also take advantage of the consistency guarantees to implement database leader elections or do distributed locking across a cluster of workers.
As members of the CNCF continue to contribute their expertise, the level of expertise required to build and deploy these applications on Kubernetes platforms will continue to steadily decline, says Berkus.
Most internal IT organizations may never have any reason to directly interact with ectd data stores, but they are already pervasive. The goal now is to make the stacks of software that depend in ectd much more accessible to the average IT organization. Once that occurs, the number of microservices-based applications deployed in production environments will begin to accelerate at rates that would have been once thought to be unimaginable.