When you provide database-as-a-service across distributed servers in the cloud, being able to use etcd for cluster configuration management is extremely powerful. We figured that if we're excited about this, then our customers will be too. So, without further ado... we're adding hosted etcd as a beta offering at Compose!
You can learn more details about etcd features and usage in our recent article etcd Introduced, but here are some basics to start you off with our beta.
Many of you may already be familiar with the etc directory found on Unix and Linux servers that holds the host system configuration files. etcd from the CoreOS team extends upon that concept by providing configuration management for distributed hosts in the form of a key/value data store. Managing distributed servers is no easy undertaking, as servers sometimes have a mind of their own. To rein them in and keep them working in lock-step, etcd uses the RAFT consensus algorithm among the servers so that the configuration for the cluster is always consistent.
etcd uses the REST API with HTTP methods so it's straightforward to set up and make updates to your configuration data. You can even specify a time-to-live (TTL) for each key so that persistence can be managed and you only keep the configurations that make sense for the time they're needed.
The Atomic CAS (compare-and-swap) and CAD (compare-and-delete) commands available via the etcd command line let you ensure keys and values won't be overwritten or deleted unless they meet specific conditions. One example for this is the
prevValue command which checks whether a specified value exists before replacing it with a new one.
How we're using it
At Compose, we're using etcd on PostgreSQL deployments as a component of our Governor application to ensure high availabilty. etcd is run on each node of the PostgreSQL cluster to identify which PostgreSQL server will be the lead at any given moment. The other servers continually watch etcd to know which server to follow or to know they've become the leader. You can read more details on this in High Availability for PostgreSQL, Batteries Not Included.
What you get
You probably already have some great ideas for how to implement etcd in your stack. Your etcd deployment on Compose will consist of 3 clustered RAFT servers and 2 haproxy portals for high availability and reliability. Compose also provides automatic backups, 24/7 support, and a slew of security features including Private VLAN, IP whitelisting and SSL. Besides that you'll have access to our administrative console to manage your deployment. Deployments start at $28.50/mo.
Try it out
Want to try etcd? Just click "Create Deployment" from your Compose Deployments page and select our beta offering of etcd to add it to your hosted services. Or go straight there from this link if you're as excited about it as we are! If you don't already have a Compose account, you can sign-up and give etcd (or any of our hosted databases) a whirl.
And if you use etcd in a unique way, we’d love to have you write about it through our Write Stuff progam.
Image by Alexandre Duret-Lutz (CC-BY-SA)