-
-
Save sam-github/d5b405c2c04119c9621f to your computer and use it in GitHub Desktop.
distributed p2p config tools
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. sync chat: slack, irc, etc. | |
2. async: email | |
3. video: hangouts... | |
asana... | |
perch? | |
mozilla: do they have resources on sucessful patterns of remote work? | |
darkcoding.nec: graham king, . kisiel | |
backbone, less | |
- chubby | |
google,fault tolerance,whitepaper? | |
- zookeeper | |
yahoo's version of chubby | |
shouldn't run on vms... very heavy | |
- doozerd | |
heroku's version of zookeeper | |
requires client to support pblock protocol, so heavy implementation requirements on all clients. | |
uses Paxos algorithm... but too many edge cases, hard to debug | |
heroku appears to have dropped it | |
- etcd | |
coreos wrote it, to deal with fault tolerance | |
uses Raft algorithm, which is apparently easily comprehensible, in contrast to Paxos | |
golang implementation, as lib, and as go-raft server | |
... implement Raft for js? maybe useful to us. apparently completely HTTP based, so | |
easy to integrate into any language | |
- confd, watches etcd, then writes conf files for (example) postgres, and the restart | |
the app, so clients don't need to directly support the config protocol | |
- consul | |
vagrant folks did Serf, a gossip based protocol. consul built on top, to implement svc discovery | |
- smart stack | |
- nerve, 2k | |
- synapse, ha-proxy | |
- discover discovery | |
how to bootstrap discovery? to discover, you need to first know SOMETHING | |
coreos did discovery.etcd.io... which uses etcd, to find the first point of contact | |
for an etcd network | |
- docker? | |
# patterns | |
propogate config with ENV vars... every system can read env, some folks do by using ENV to | |
pass to docker containers... because any kind of app in a container (go, node, etc.) can | |
read env | |
"Ambassador Pattern": but, means you have to restart app on config change... | |
this can be annoying, so implement a pattern when you config the docker-app to | |
talk to an "ambassador" (a tcp proxy), and the ambassadors are restarted by | |
confd/etcd. so, you don't restart the docker app, instead you restart the | |
proxies. | |
#### | |
etcd vs redis | |
etc is a bit more targeted in terms of features and API to config propogation... | |
redis is a bit pub/sub dependent as a source of this.... | |
so the purpose built ones are more powerful, in that they do quorum over a set of nodes, and are SYMETRICAL, | |
they don't have a master | |
# other | |
riak |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment