Skip to content

Instantly share code, notes, and snippets.

@adamcybersec
Created September 7, 2022 02:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adamcybersec/fbbefa3f527b8ae51e47c3e9fe8e763a to your computer and use it in GitHub Desktop.
Save adamcybersec/fbbefa3f527b8ae51e47c3e9fe8e763a to your computer and use it in GitHub Desktop.
  • Simple and flexible horizontal and vertical scaling
  • Consistent tooling for all deployments, customisations, addons in Kube YAML
  • Allows for the complexity and customisation of old VM based networks, with the flexibility and scalability of containers
  • Containerisation + microservices architecture - isolating and running each microservice as a versionable container and managing it's resources, scaling and availability
    • Optimised for autoscaling - cost optimisation via rapid and automated scaling when needed
    • Flexible multi-container pods to enforce compliance or security requirements eg logging, service mesh, traffic scanning etc
    • Network Policy as code - apply ingress and egress network rules between Pods and Nodes
    • Everything as Code > auditable, scannable, versionable
  • Everything deployed, configured and maintained as code
    • Supports rapid deployment of code (read: features & hotfixes), limiting blast radius
    • Reduced human error in making changes based on declarative config in git
    • Consistent and repeatable deployments
    • Scheduled 'cron' jobs to spawn containers to carry out repetitive tasks
  • Versioning of infrastructure (in code and in the container registry)
  • Smart deployments with built in zero-downtime Green/Blue deployments, self-healing and automatic rollback
    • Service discoverability (great for containers starting and stopping in a microservices world)
  • Cloud agnostic able to be deployed on Prem (Rancher, OpenShift, Custom) + Azure, AWS, GCP etc
    • Multi cloud / Hybrid cloud friendly
    • Integrated deeply with cloud providers for persistent storage ie. Blob, Disks, Buckets
  • Very strong open source communities backed by Google and the Cloud Native Compute Foundation
  • Empowers DevOps - Developers are able to declaratively configure their own containers with GitOps
    • CI/CD and Automation friendly, zero touch management and deployments using GitOps
  • DevSecOps friendly - everything is in code, easily scan code repos, containers and nodes for full coverage
  • Large pool of human resources in the market with existing or aspiring Kubernetes skillset
  • Case Studies:
    • Pokemon Go
    • AirBNB
    • Tinder
    • Spotify
    • Pinterest
    • Shopify

Some references: https://www.sumologic.com/blog/why-use-kubernetes/ https://www.forbes.com/sites/forbesbusinessdevelopmentcouncil/2020/10/28/what-the-c-suite-needs-to-know-about-using-kubernetes/?sh=1f699711c14e

Downsides & Misconceptions

  • Just like VM based networks, K8s has the complexity of managing networks and infrastructure, (less than VMs) but still complex BUT very flexible
  • K8s will not fix bad code, bad app architecture, bad DevOps practices
  • K8s is only ONE of a handful of container orchestration tools - also worth considering PaaS like Azure Container Apps which is "serverless" containers
  • K8s still requires a team to manage, IaC/DevOps people instead of old school sysadmins BUT sysadmins/cloudOps could be trained up definitely
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment