The DevOps 2.0 Toolkit: Automating the Continuous Deployment Pipeline with Containerized Microservices
Format: PDF / Kindle (mobi) / ePub
This book is about different techniques that help us architect software in a better and more efficient way with microservices packed as immutable containers, tested and deployed continuously to servers that are automatically provisioned with configuration management tools. It's about fast, reliable and continuous deployments with zero-downtime and ability to roll-back. It's about scaling to any number of servers, design of self-healing systems capable of recuperation from both hardware and software failures and about centralized logging and monitoring of the cluster.In other words, this book envelops the whole microservices development and deployment lifecycle using some of the latest and greatest practices and tools. We'll use Docker, Kubernetes, Ansible, Ubuntu, Docker Swarm and Docker Compose, Consul, etcd, Registrator, confd, and so on. We'll go through many practices and even more tools. Finally, while there will be a lot of theory, this is a hands-on book. You won't be able to complete it by reading it in a metro on a way to work. You'll have to read this book while in front of the computer and get your hands dirty.
with the mainline until all related features are finished. However, we already discussed the importance of constant merging with the mainline and such delays are against the logic behind CI/CD. While there are other ways to solve this problem, I find feature toggles to be indispensable to all those who choose to apply continuous deployment. We won’t go into feature toggles details. For those interested obtaining more info, please visit the Feature Toggles (Feature Switches or Feature Flags) vs
work with a couple of others and get more familiar with the format. In the meantime, please visit the Dockerfile reference⁵¹ for more information. Equipped with this knowledge, let us build the container. The command is as follows. ⁵⁰http://golang.org/pkg/path/filepath/#Match ⁵¹https://docs.docker.com/reference/builder/ Implementation of the Deployment Pipeline: Initial Stages 1 71 docker build -t 10.100.198.200:5000/books-ms . Let us use the time it takes for this command run (the first
main culprits. While Java is great for many use cases, it is massive for this type of work. Zookeeper’s usage of Java, together with a considerable number of dependencies, makes Zookeeper much more resource ⁷⁶http://zookeeper.apache.org/ Service Discovery: The Key to Distributed Services 107 hungry that its competition. On top of those problems, Zookeeper is complex. Maintaining it requires considerably more knowledge than we should expect from an application of this type. That is the part
similar to the following. 1 2 3 4 5 6 7 8 9 10 11 12 [2015-10-16 08:55:40] /usr/local/sbin/haproxy -f /etc/haproxy/haproxy.cfg -D -p \ /var/run/haproxy.pid [2015-10-16 08:55:40] Current HAProxy config /etc/haproxy/haproxy.cfg: ================================================================================\ ==================== cat: /etc/haproxy/haproxy.cfg: No such file or directory ================================================================================\ ==================== [ALERT]
follows (please don’t run them). ¹³⁸https://github.com/vfarcic/ms-lifecycle/blob/master/ansible/roles/service/tasks/pre-deployment.yml Automating Implementation of the Deployment Pipeline 1 2 3 4 5 6 7 8 9 10 11 12 13 14 187 mkdir -p /data/books-ms cd /data/books-ms wget https://raw.githubusercontent.com/vfarcic\ /books-ms/master/docker-compose.yml wget https://raw.githubusercontent.com/vfarcic\ /books-ms/master/nginx-includes.conf \ -O /data/nginx/includes/books-ms.conf wget