Scattered data Distributed systems make it harder to understand the effect of a single change Lack of K8s knowledge The knowledge & expertise around K8s is often held by only a few (i.e DevOps). Blind spots Changes are unaudited or hidden
Kubernetes is still incredibly complex," said Drew Bradstock, product lead for Google Kubernetes Engine (GKE). "What we've seen in the past year or so is a lot of enterprises are embracing Kubernetes, but then they run headlong into the difficulty." And the common thread is: Complexity
to include important metadata: • Labels and annotations • Environment variables • Secrets • Config maps that point to the proper objects and volumes • Configuring liveness probes • Readiness probes Best Practice #1: Maintain a Good YAML Hygiene
label your logs properly, by including the: • Proper service name (not the pod names!) • Version • Cluster environment information • Business-specific data Best Practice #2: Logging - Specifically for K8s
several ways to separate your K8s environments: Option 1: Create an environment for each stage of the development process (development, QA, staging, production) Best Practice #3: Separate/Segregate Environments
#4: Invest in Proper Monitoring Open Source Monitoring Solutions Step 1: Choose the right monitoring solution for your needs. Commercial Monitoring Solutions
#4: Invest in Proper Monitoring (Cont’d) Step 2: Start monitoring the following metrics: • Resources: CPU / Memory Usage • Container Status: Up / Down / Errors / Probe Data / Restart count • Application Metrics: Application Performance Metrics - APMs Make sure to monitor these metrics in an automated way by setting up proper monitors and alerts