Richard Bucker

First pass - web application

Posted at — Oct 20, 2014

A multi-node HA web application based on a minimal 3-node CoreOS installation.Install CoreOS out of the boxExpanding on my last post this is what I’ve been thinking about in order to get my stack operational. The incoming event starts with the client browser so there is not much to do there. The transaction also flows through public DNS and into the primary firewall/router with some built-in HA capability. There might be n routes to n nodes in the multi-node installation.Configure the router(s) to each of the nodesNext I need to implement an HA proxy based on hipache using etcd. There is a feature in the server that will try to detect dead servers and if detected will suspend that service until the TTL has expired.Deploy the  proxy server and pull the backend configuration from etcd.Implement the backend server. This can be any simple backend Docker micro-service.Deploy the backend service using Fleet to distribute the service to each of the nodes. The pre/post config in the fleet unit/service file will update etcd so that the proxy server can be updated.Since the proxy service is similar to a service bus it is possible to create additional services in a semi-recursive pattern so that DBs are now exposed as REST APIs instead of or in addition to implementing Docker links.Sidekicks and ambassadors can be generalized and implemented with the Citadel toolkit.Now let’s get started.UPDATE: It’s interesting to note that the Citadel toolkit implements image links. This is not a bad thing except that it means that the links are limited to the single node. Frankly, there is a negative side effect of linking cross nodes like follow the dots. If you have to exit the current node you’re better off doing a little BUSS/SOA.