Microservices

microservice

Definition

  • Separate business logic functions.
  • Instead of one big problem, several smaller applications.
  • Communicative via well defined APIs - usually HTTP
  • In demand microservice2

Advantages and Disavantages

  • Advantages
    • Language independent
    • Fast iterations
    • Small teams
    • Fault Isolation
    • Pair well with containers
    • Scalable
      • Big plus
  • Disavantages
    • Complex networking
    • Overhead
      • Databases
      • Servers

Docker

is an open platform for developers and sysadmins to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud. docker

Definition

  • Containers are a way to package software in a format that can run isolated on a shared operating system.
  • Unlike VMs, containers do not bundle a full operating system - only libraries and setting required to make the software work are needed.
  • This makes for efficientm, lightweight, self-contained systems and guarantees that software will always run the same, regardless of where it’s deployed.

Docker vs VM

  • VM = App + Bins/Libs + guest OS
  • Container = App + Bins/Libs + Docker

Dockerfile

  • Describes the build process for an image
  • Can be run to automatically create an image
  • Contains all the commands necessary to build the image and run your application.

Kubernetes

kubernetes

Components

  • Node
    • Kubelet
    • Communicates with master
    • Run Pods
  • Pod
    • Runs 1+ containers
    • Exists on a node
  • Service
    • Handles requests Usually a load balancer
  • Deployment
    • Defines desired state - kubernetes handles the rest