
Etcd – The Road to 1.0 - bmizerany
http://coreos.com/blog/etcd-The-Road-to-1.0/
======
argc
Is there any benefit to using coreOS when you don't need a million machines?
How much work is it to start with, for example, if you have no idea what your
scaling needs will be in the future?

~~~
HeyImAlex
No work at all; basic coreos is just docker managed by systemd. Can you make
your application docker-izable? Were you planning on using process management?
If you answered yes to both of these questions... :)

Further, coreos tries to make you write applications in a 12-factor-y way, so
when the time _does_ come for you to use a million machines, you won't need to
make huge adjustments to your deployments (just plug the container and init
script into fleet and let it roll).

------
bashcoder
I know that there are lots of heavyweight folks who swear by Zookeeper as both
a reliable and powerful tool, and for good reason. Unfortunately the docs can
be fairly inscrutable, even for experts, and it typically requires the
maintenance of a separate cluster of Zookeeper nodes.

So I like that etcd is a fundamental component of CoreOS, with these features:

    
    
      1. Written from scratch in Go
      2. Implements the Raft protocol for node coordination
      3. Has a useful command line app
      4. Runs on every node in a cluster
      5. Enables auto-discovery
      6. Allows CoreOS nodes to share state

~~~
darklajid
No offense, I just don't get it: Why is 1) a feature for you? Everything else
on the list kinda makes sense (I understand that this describes something I'd
call a feature), but 'written from scratch' or 'in Go'?

Can you explain what excites you about that?

~~~
bashcoder
I listed what I like. "Excites" is your word.

I guess what I meant by "from scratch" is that they aren't burdened by legacy
code, and aren't limited to using the Paxos algorithm.

If you look at Deis, for example, it basically outsources a lot of node
management to Chef Server, which in my view creates a great deal of technical
debt on day one.

~~~
darklajid
You read negative connotations into 'excites'. That wasn't intended.

I was just curious, since 'from scratch' can just as well mean 'untested'
although I certainly agree that it sometimes is the Right Thing. The reference
to Go was another thing that threw me off, since I rarely (admittedly ..
sometimes) judge software projects by the language it is written in.

Thank you for the answer and some more references.

------
Bjoern
Whats the communities opinion on Serf? How does it measure up against Etcd?

~~~
nemothekid
While similar, Serf and Etcd solve a different problem. Etcd is strong
consistent (all nodes will see the same data, however a partition may cause
the system to not accept writes) while Serf is eventually consistent (all
nodes are not guaranteed to see the same data, however the system will always
accept writes)

So somethings like a distributed lock is impossible to implement with Serf.

~~~
Bjoern
Very interesting, wasn't aware that ETCD is strongly consistent. This makes
alot of sense in terms of Brewster's theorem. Thanks for clarifying!

------
dredmorbius
What is etcd?

Don't write about something without defining what it is for those not familiar
with it (or you, or your service(s)).

~~~
ecnahc515
Config data accessible via HTTP instead of files.

Although its not limited to config data necessarily.

I suggest reading [http://sysadvent.blogspot.com/2013/12/day-20-distributed-
con...](http://sysadvent.blogspot.com/2013/12/day-20-distributed-
configuration-data.html)

