Ruby & Javascript • 20 (?) of Linux/UNIX • DevOp’er + Chef, front to back • Zero Java Experience (thanks Chariot!) • No year book anywhere holds my picture. True story.
Parallels sponsored and introduced Linux Container support for the kernel. • Linux Containers, or LXC, provide the kernel with operating system level virtualization. • This allows the Linux Kernel to support multiple isolated user space instances, instead of just one. • LXC, along with many other technologies and interfaces, allowed Docker (the company) to build software (Docker Engine) to enhance the experience of using and deploying containerization.
• docker command; executes commands on daemon • images built with Dockerfiles (plain text) • containers run from images • container ports bridge to host; other net options • containers can have tags & labels
• docker push/pull upload to an image registry • docker search search the registry • docker history list state changes of an image • docker port list NATed public-facing ports
for service discovery, configuration, and orchestration. In the ever- growing datacenter, Consul enables rapid deployment, configuration, and maintenance of service-oriented architectures.
algorithm for cluster elections • Query through DNS, REST, or RPC • Key/value store allows arbitrary data (think Chef Server) • Health checks allow behavior across cluster • Web UI!
Agent • catalog - Nodes and services • health - Health checks • session - Sessions • acl - Access Control Lists • event - User Events • status - Consul system status
ANY ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29981 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;web-frontend.service.consul. IN ANY ;; ANSWER SECTION: web-frontend.service.consul. 0 IN A 10.0.3.83 web-frontend.service.consul. 0 IN A 10.0.1.109
by servers to handle incoming requests from other agents. TCP only. • Serf LAN (Default 8301). This is used to handle gossip in the LAN. Required by all agents. TCP and UDP. • Serf WAN (Default 8302). This is used by servers to gossip over the WAN to other servers. TCP and UDP. • CLI RPC (Default 8400). This is used by all agents to handle RPC from the CLI. TCP only. • HTTP API (Default 8500). This is used by clients to talk to the HTTP API. TCP only. • DNS Interface (Default 8600). Used to resolve DNS queries. TCP and UDP.
die events from Docker. The service definitions are created with information from the container, including user- defined metadata in the container environment. Registrator