Basic Info
WHY ?
Current Infra
Docker Swarm as the orchestration engine
Pros:
Solves lots of issues, like container lifetime and ease of deployment(up to a point)
Simple to setup
Less complicated (comparatively)
Cons:
Ops at scale is hard ( like swarm reset, network issues)
At scale it doesn't have the knobs to control the infra nuances unto our liking
Autoscaling or other cloud-native goodies are absent
No way to get realtime telemetry or metrics about the state of infra (especially service communication)
No platforms like knative or istio, which is an instant value add-on for both/infra and addon
Container Fundamentals
VM vs Container
Key concepts of container
Containers are applications which is restricted by kernel feature called namespaces
pid - Process Namespace
net - Network
mnt - FileSystem
usr - UserID
utc - hostname
ipc - semaphores, channels
Cgroups will limit the resource usage
ResouceUsage
Memory
CPU
Block I/O
Network
Device Node access control
/dev/*
Docker is an engine which makes such containers. There are alternatives like containerd, rkt etc