Devops Concepts - kimschles/schlesinger-knowledge GitHub Wiki
DevOps Concepts
Continuous Deployment
- When a branch is merged, the feature is automatically deployed to production
Continuous Delivery
- When a branch is merged, the feature is deployed to staging. Something (like a person reviewing the code/staging app) will trigger the deploy to production
Continuous Integration
- Every commit triggers a build process that includes running tests and other automatic checks.
12 Factor App Service Discovery
Patterns
- Circuit Breaker Pattern
- Sidecar Pattern
Helm Charts
yaml/yml
- YMAL ain't markup language
- A data serialization language meant to be easily written and read by humans
Bash
- Born again shell
Docker
- Docker is a platform that allows technologists to develop, deploy and run applications in containers.
- An image is set of executable files that contains everything that is needed to run an application including the code, the dependencies, .env, and configuration files
- A container runs on Linux. It takes only the amount of memory necessary to run the tech in the image, so it takes up less room than a VM.
- Running instance of an image is a container.
- A Dockerfile defines what goes on in the environment inside your container.
Kubernetes (Sarah's Talk)
- Open Source System to deploy, scale and manage containerized systems
- Problems K8 solves:
- apps and services that are available 24/7
- developers want to deploy multiple times per day
- use cloud resources effeciently via container orchestration
- fault-tolerant, self-healing
- scalability
Kubernetes Architecture
- Cluster
- Master nodes
- Have control over everything that is in the cluster
- Worker nodes
- Houses your containers and applications
- Kublet
- Brain of the node
- Pod
- A set of one or more containers that act as a unit and are scheduled onto a VM together.
- A pod can have nginx, and your app as different containers but work together in a pod