DevOps/GitOps v1.0.0 | CNCF Landscape

Overview

DevOps is about automation across the lifecycle of an application. GitOps extends that with disciplined methods —Git as the single Source of Truth (SoT) —across all layers of all components, from infra to services, with the goal of repeatable, verifiable deployment states.

GitOps is an operational framework that takes DevOps best practices used for application development such as version control, collaboration, compliance and such, and applies them to infrastructure automation. GitOps consists of Infrastructure as Code (IaC), configuration management (CM) by Git, Platform Engineering, and Continuous Integration and Continuous Delivery (CI/CD).

Why

Q:

How many possible configurations are there for 3 hosts, each having 6 services, each having 6 parameters, each having only two possible settings?

This scenario is an artificially simple infrastructure to steelman the argument against DevOps/GitOps/IaC. So, let's see what we may see …

A:

  1. Parameters per service: Each service has 6 parameters, and each parameter has 2 settings. So, the number of configurations for one service is:
    2^6 = 64

  2. Services per host: Each host has 6 services, so the number of configurations for one host is:
    64^6 = (2^6)^6 = 2^36 = 68,719,476,736

  3. Total hosts: There are 3 hosts, so the total number of configurations is:
    (68,719,476,736)^3 = (2^36)^3 = 2^108

  4. Final calculation: (2^36)^3 = 2^108

So, the number of possible configurations is:
324,518,553,658,426,726,783,156,020,576,256
(~ 3.2 x 10^32)

That's many more than a trillion trillion possible configurations.
More than the estimated number of stars in the Universe. Not the galaxy. The entire Universe.

And only one of those is the one you want. All the others are some kind of misconfiguration.

Do you like those odds?

DevOps/GitOps/IaC is an upfront cost that pays dividends each time it is applied. And the more your infa builds out, the larger those per-build dividends grow.

Conversely, absent DevOps/GitOps/IaC, every stage of the build out is levied a tax dwarfing that of the prior stage. The non-linear explosion of misconfigurations is merciless. It grinds down morale along with productivity.

Principles

  1. Declarative
    A system managed by GitOps must have its desired state expressed declaratively.
  2. Versioned and Immutable
    Desired state is stored in a way that enforces immutability, versioning and retains a complete version history.
  3. Pulled Automatically
    Software agents automatically pull the desired state declarations from the source.
  4. Continuously Reconciled
    Software agents continuously observe actual system state and attempt to apply the desired state.

Results

Methods

Tools | CNCF Landscape

Environments

Upon what infrastructure does the app AKA workload AKA service run?

Configuration

Schemes for Unique Identifier

Key points to consider when choosing a unique identifier scheme: