The DevOps 2.2 Toolkit

Book description

Learn from an expert on how use self-adapting and self-healing systems within Docker.

About This Book

  • Viktor Farcic shows you all aspects in the creation of self-adapting and self-healing systems in both a practical and hands-on approach.
  • Learn how to choose a successful solution for metrics storage and query, including InfluxDB, Nagios and Sensu, Prometheus and Graphite.
  • Discover how to integrate Docker Flow Monitor with Docker Flow Proxy.
  • How to apply Docker self-healing and self-adaptive to both services and infrastructure.

Who This Book Is For

This book is for professionals experienced with Docker looking to create both self-adapting and self-healing systems using the software.

What You Will Learn

  • Let Viktor Farcic show you all aspects in the creation of self-adapting and self-healing systems in both a practical and hands-on approach.
  • Learn how to choose a successful solution for metrics storage and query, including InfluxDB, Nagios and Sensu, Prometheus and Graphite.
  • Understand how to integrate Docker Flow Monitor with Docker Flow Proxy.
  • The creation of cluster-wide alerts by creating alerts based on metrics.
  • How to apply self-healing and self-adaptive to both services and infrastructure.

In Detail

Building on The DevOps 2.0 Toolkit and The DevOps 2.1 Toolkit: Docker Swarm, Viktor Farcic brings his latest exploration of the Docker technology as he records his journey to explore two new programs, self-adaptive and self-healing systems within Docker.

The DevOps 2.2 Toolkit: Self-Sufficient Docker Clusters is the latest book in Viktor Farcic's series that helps you build a full DevOps Toolkit. This book in the series looks at Docker, the tool designed to make it easier in the creation and running of applications using containers. In this latest entry, Viktor combines theory with a hands-on approach to guide you through the process of creating self-adaptive and self-healing systems.

Within this book, Viktor will cover a wide-range of emerging topics, including what exactly self-adaptive and self-healing systems are, how to choose a solution for metrics storage and query, the creation of cluster-wide alerts and what a successful self-sufficient system blueprint looks like.

Work with Viktor and dive into the creation of self-adaptive and self-healing systems within Docker.

Style and approach

Readers join Viktor Farcic as he continues his exploration of Docker and begins to explore new opportunities with the platform.

Table of contents

  1. Title Page
  2. Copyright
    1. The DevOps 2.2 Toolkit
  3. Dedication
  4. Contributor
    1. About the author
    2. Packt is searching for authors like you
  5. Packt Upsell
    1. Why subscribe?
    2. PacktPub.com
  6. Preface
    1. Overview
      1. Download the example code files
      2. Download the color images
      3. Conventions used
    2. Get in touch
  7. Introduction to Self-Adapting and Self-Healing Systems
    1. What is a self-adaptive system?
    2. What is a self-healing system?
    3. What now?
  8. Choosing a Solution for Metrics Storage and Query
    1. Non-dimensional versus dimensional metrics
      1. Graphite
      2. InfluxDB
      3. Nagios and Sensu
      4. Prometheus
      5. Which tool should we choose?
    2. What now?
  9. Deploying and Configuring Prometheus
    1. Deploying Prometheus stack
    2. Designing a more dynamic monitoring solution
    3. Deploying Docker Flow Monitor
    4. Integrating Docker Flow Monitor with Docker Flow Proxy
    5. What now?
  10. Scraping Metrics
    1. Creating the cluster and deploying services
    2. Deploying exporters
    3. Exploring exporter metrics
    4. Querying metrics
    5. Updating service constraints
    6. Using memory reservations and limits in Prometheus
    7. What now?
  11. Defining Cluster-Wide Alerts
    1. Creating the cluster and deploying services
    2. Creating alerts based on metrics
    3. Defining multiple alerts for a service
    4. Postponing alerts firing
    5. Defining additional alert information through labels and annotations
    6. Using shortcuts to define alerts
    7. What now?
  12. Alerting Humans
    1. Creating the cluster and deploying services
    2. Setting up Alertmanager
    3. Using templates in Alertmanager configuration
    4. What now?
  13. Alerting the System
    1. The four quadrants of a dynamic and self-sufficient system
  14. Self-Healing Applied to Services
    1. Creating the cluster and deploying services
    2. Using Docker Swarm for self-healing services
    3. Is it enough to have self-healing applied to services?
    4. What now?
  15. Self-Adaptation Applied to Services
    1. Choosing the tool for scaling
    2. Creating the cluster and deploying services
    3. Preparing the system for alerts
    4. Creating a scaling pipeline
    5. Preventing the scaling disaster
    6. Notifying humans that scaling failed
    7. Integrating Alertmanager with Jenkins
    8. What now
  16. Painting the Big Picture – The Self-Sufficient System Thus Far
    1. Developer's role in the system
    2. Continuous deployment role in the system
    3. Service configuration role in the system
    4. Proxy role in the system
    5. Metrics role in the system
    6. Alerting role in the system
    7. Scheduler role in the system
    8. Cluster role in the system
    9. What now?
  17. Instrumenting Services
    1. Defining requirements behind service specific metrics
    2. Differentiating services based on their types
    3. Choosing instrumentation type
    4. Creating the cluster and deploying services
    5. Instrumenting services using counter
    6. Instrumenting services using gauges
    7. Instrumenting services using histograms and summaries
    8. What now?
  18. Self-Adaptation Applied to Instrumented Services
    1. Setting up the objectives
    2. Creating the cluster and deploying services
    3. Scraping metrics from instrumented services
    4. Querying metrics from instrumented services
    5. Firing alerts based on instrumented metrics
    6. Scaling services automatically
    7. Sending error notifications to slack
    8. What now?
  19. Setting Up a Production Cluster
    1. Creating a Docker for AWS cluster
    2. Deploying services
    3. Securing services
    4. Persisting state
    5. Alternatives to CloudStor volume driver
    6. Setting up centralized logging
    7. Extending the capacity of the cluster
    8. What now?
  20. Self-Healing Applied to Infrastructure
    1. Automating cluster setup
    2. Exploring fault tolerance
    3. What now?
  21. Self-Adaptation Applied to Infrastructure
    1. Creating a cluster
    2. Scaling nodes manually
    3. Creating scaling job
    4. Scaling cluster nodes automatically
    5. Rescheduling services after scaling nodes
    6. Scaling nodes when replica state is pending
    7. What now?
  22. Blueprint of a Self-Sufficient System
    1. Service tasks
      1. Self-healing flow
      2. Deployment flow
      3. Reconfiguration flow
      4. Request flow
      5. Self-adaptation flow
    2. Infrastructure tasks
      1. Self-healing flow
      2. Request flow
      3. Self-adaptation flow
    3. Logic matters, tools might vary
    4. What now?
  23. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think

Product information

  • Title: The DevOps 2.2 Toolkit
  • Author(s): Viktor Farcic
  • Release date: March 2018
  • Publisher(s): Packt Publishing
  • ISBN: 9781788991278