Containerization
What are containers?
Containers share the host operating system kernel but run in isolated user spaces, which makes them lightweight, portable, and consistent across environments.
Why Containerize?
Scenario
- Multi tier application stack
- Running on VM's
- Regular Deployment
- Continuous Changes
Problem
- High CapEx & OpEx
- Resource wastage
- Human errors in deployment
- Not portable, environments are not in sync: DEV, QA, STAGING, and PROD
- Not compatible with microservice architecture
Solution
- Switch to containers
- Consumes low resource
- Suits well for microservice design
- Deployment via images
- Same container images across environments
- Reusable & Repeatable
How? - Workflow
- Build/customize multiple docker images with Dockerfiles
- Test with "Docker Compose"
- Push docker image to a image registry