DevOps/Infrastructure

1. Docker 🐳

Docker is a platform for developing, shipping, and running applications in containers.

Key Concepts:

  • Containers: Lightweight, standalone executable packages

  • Images: Read-only templates used to create containers

  • Dockerfile: Script to build Docker images

  • Docker Hub: Cloud-based registry for Docker images

Architecture:

Example Dockerfile:

FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

2. Kubernetes ☸️

Kubernetes is an open-source container orchestration platform for automating deployment, scaling, and management of containerized applications.

Key Concepts:

  • Pods: Smallest deployable units in Kubernetes

  • Nodes: Worker machines in a Kubernetes cluster

  • Clusters: Set of nodes that run containerized applications

  • Services: Abstract way to expose applications running on pods

Architecture:

Example Kubernetes Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

3. CI/CD 🔄

Continuous Integration and Continuous Deployment (CI/CD) is a method to frequently deliver apps to customers by introducing automation into the stages of app development.

Key Concepts:

  • Continuous Integration: Merging code changes frequently

  • Continuous Delivery: Automatically preparing code for release

  • Continuous Deployment: Automatically releasing to production

  • Pipelines: Automated processes for building, testing, and deploying

CI/CD Pipeline:

Example GitLab CI/CD Configuration:

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - npm install
    - npm run build

test:
  stage: test
  script:
    - npm run test

deploy:
  stage: deploy
  script:
    - npm run deploy
  only:
    - master

4. Docker Swarm 🐝

Docker Swarm is a native clustering and orchestration solution for Docker.

Key Concepts:

  • Nodes: Docker hosts participating in the swarm

  • Services: Definition of tasks to execute on nodes

  • Tasks: Docker containers executing commands

  • Load Balancing: Distributing service containers across nodes

Architecture:

Example Docker Swarm Service:

docker service create --name my-web-server \\
                      --replicas 3 \\
                      --publish 80:80 \\
                      nginx

The core of modern DevOps and Infrastructure management, enabling efficient development, deployment, and scaling of applications. 🚀

Last updated

Was this helpful?