Core Concepts


  1. What is kubernetes:
  2. Its an opensource orchestration system for containers, that helps the end users to Build, Deploy and Maintain distrubuted systems in a "Reliable"  and  "Scalable"  way
  3. Software to build, deploy and maintain  reliable, scalable distributed systems in ContainersHow does it do it ?
  4. It does this using Application oridnted APIs  
Why do we use containers and APIs like kubernetes ?

For 
  1. Velocity
  2. Scaling
  3. Agility
  4. Abstracting your infrastructure
  5. Efficiency

  • Velocity is measured in terms of # of things you can ship to a customer while maintaining a highly available Service
The core concepts that make this possible are possible

- Immutability
- Declarative Configuration
- Online self healing systems

These concepts will all interrelate and improve the speed with which you can reliably deploy software

Value of Immutability:

Once an artifact is created, it doesnt change via users modifications

Mutable Vs Immutable:
In mutable infrastructure, changes are applied as incremental updates to an existing system
eg: apt-get update

Increments are of many types, including manual changes

- Containers upgrade it in two ways
  1. login to a container
  2. Download software
  3. Kill the old container and start the new one
  4. OR - Build a new container image and push it to the registry - kill the existing container and start the new one

KUBERNETES is all about  IMMUTABLE containers

Only change something by logging into the container if there is no other option in a mission critical "production Application"

This is an "Anti pattern"

The Manual change made must be recorded in declarative configuration


DECLARATIVE Configuration:
Everything in kubernetes is a declarative configuration object that represents the "desired state of the system"

It is kubernetes job to make sure that the Actual state of the System matches the desired State.

Declarative configuration is opposite of Imperative
Mutable is the opposite of Immutable

In Imperative { old way/ incremental way } configuration, the state of the world is defined by the execution of a series of instructions rather than a declaration of the desired state of the world.

Imperative commands define Actions
Declarative configurations define State


Its difficult to specify instructions on how to rollback in imperative configuration.
Rollback in Declarative configuration is as simple as stating the previous declarative state of the system

SELF Healing:
K8s is an online self healing system
It performs reliable repairs more quickly

These systems improve developer velocity, because the time and energy otherwise spent on operations and maintenance can instead be spent on developing and testing new features.










Comments

Popular posts from this blog

useful blog

Kubernetes