Docker vs Kubernetes

Dec.30.2017 | 3m Read | ^DevOps

Confused by DevOps, IT, or maybe toolsets like Docker and Kubernetes? I mean what the freak is a 'Kubernetes', right?

Come with me on an adventure to get containerized and virtualized.

DevOps (Development Operations)

  • ☑⁡⁡ Originally DevOps fell under the umbrella of more generalized IT services.

▼ Toolchains:

  • ☑⁡⁡ Coding: code development and management.
  • ☑⁡⁡ Building: CI (Continuous Integration tooling).
  • ☑⁡⁡ Testing: continuous feedback.
  • ☑⁡⁡ Packaging: staging apps for deployment.
  • ☑⁡⁡ Releasing: version control and release automation.
  • ☑⁡⁡ Configuring: infrastructure and tooling.
  • ☑⁡⁡ Monitoring: performance monitor and user feedback.

▼ Methodologies (management styles):

  • ☑⁡⁡ Waterflow (linear development)
  • ☑⁡⁡ Agile and Scrum (non-linear development).
  • ☑⁡⁡ For more details see: Agile vs Scrum vs Lean.

▼ Containers vs Virtual Machines (VMs):

  • ☑⁡⁡ Image: cloned software (like a container with all software configured).
  • ☑⁡⁡ Sandboxing: isolated data access.
  • ☑⁡⁡ Container: a virtual environment for software testing.
  • ☑⁡⁡ Docker Container: an optimized VM (virtual machine) that reduces container bloat at the cost of roughly 97% performance speed.
  • ☑⁡⁡ Full Virtual Machine: better sandboxing and tools at the cost of more resources per image.

▼ Container portability:

  • ☑⁡⁡ Because they are stripped down, containers have a small file size and can be used with various plug-ins depending on the individual's needs.

Docker vs Kubernetes:

▼ Redirecting ports:

  • ☑⁡⁡ docker run -p 49160:8080 -d <yourdockerusername> or <yourdockerimage_name>
    • 49160:8080 specifically redirects port 8080 from the container to the host's 49160 port.

▼ Kubernetes vs Docker Swarm:

  • ☑⁡⁡ Both are known as Container Orchestration Platforms.
    • ◆⁡⁡ Deploy across multiple containers.
  • ☑⁡⁡ Kubernetes provides a UI and advanced features for Docker.

▼ Kubernetes cluster replicas:

  • ☑⁡⁡ Scale and change the number with kubectl scale (fastest).

Cloud (storage), Heroku, & AWS

▼ Horizontal vs Vertical (scaling):

  • ☑⁡⁡ Scaling Horizontally: increase server load, often by distribution (more servers and partitioned server nodes or dynos).
  • ☑⁡⁡ Scaling Vertically: increase disk space within the server or dyno.

▼ Free vs Paid:

  • ☑⁡⁡ Different dyno types.
  • ☑⁡⁡ The quality and quantity of resources the dynos use (paid = more and better):
    • ◆ CPU and computing.
    • ◆ RAM.
    • ◆ Mixed dyno setups.
  • ☑⁡⁡ Pro features:
    • ◆ Horizontal scalability: more servers processing your data.
    • ◆ App metrics.
    • ◆ Pre-boots.
    • ◆ Auto-scaling.
    • ◆ Always-awake: free dynos sleep for 30 min due to inactivity.

       : NEWS