KAOPS Core Concepts
GitOps is a better way
GitOps is core to KAOPS. GitOps is a new and better way of controlling IT and applications. GitOps is the process of declaring desired state in git source control, and all downstream systems monitor (pull) this git and adjust to achieve that desired state. Update git source, and all downstream systems update. It has many benefits over historic 'push' based models, such as scripts, CLIs, APIs, etc.:
- Auditability: You can track who did what when
- Version Control: You can undo anything that you can do
- Repeatablity: Get it right once, and you can repeat it, without error, every time.
- Efficiency: Control multiple systems with the effort of one. ie. You don't have to program multiple systems.
- Scalability: Operate many clusters and application deployments with the same level of effort as one...
See the diagram below that contrasts historical 'push' based systems with a GitOps 'pull' model.
KAOPS in your software stack
See diagram below.
KAOPS is cloud and kubernetes agnostic, and can fit into almost any software stack.
- Layer 1: You can choose whatever infrastructure you like, public or private
- Layer 2: You can choose what Kubernetes you like, and even deploy to VM environments
- Layer 3: KAOPS control plane operates inside of Kubernetes.
- You need at least one Kubernetes cluster to run KAOPS.
- KAOPS includes a set of tools that you can optionally deploy (turn each one on/off)
- Extend KAOPS to include your own tools. You declare those tools in Git, just like Apps.
- Layer 4: Your apps and tools
- Declare them in Git, and point KAOPS to them
KAOPS Reference Architecture
See Diagram below
KAOPS has 4 mains systems:
(1) The Backend Database This is where your user data is stored. Accessed via UI (kaops.net) or API (api.kaops.net/graphql).
(2) The Frontend UI kaops.net, A browser-based User Interface that is the 'single pane of glass' for the DevOps team.
(3) KAOPS Agents, running in your Kubernetes Clusters Kubernetes operator/deployment that communicates with the backend.
(4) Your Git Containing your desired state for infrastructure, applications, configuration, tools, networking, security, etc.