DevOps teams also use good balance between practical approach and tools to integrate and automate processes in organization.
Commonly used tools to support daily operations:
Bash, Python, Go
Scripting and programming are common processes to develop, extend, integrate solutions, automate processes with aim to improve teams productivity.
Docker, rkt, LXC, runC, containerd
Container is a lightweight virtual environment for running applications. Containerization involves building an image, a standalone executable software package that contains an application and all its dependencies.
Preferable approach to build a container image is using Dockerfile. A Dockerfile is a text file with instructions on how to build an image. For consistent and reliable infrastructure images are treated as immutable, it means we build a new image in case an update is required.
Container runtime is a managed environment used for deploying images (the applications) in containers.
source: quppler.com and cloud.google.com
GitHub, GitLab, Bitbucket
Source code management supports teams to collaborate on developing solutions using tools and practices to effectively manage and track code changes in a shared codebase.
Teams use version control tools and define own practical code workflow, a model that aims to make branching and release management more consistent and seamless.
Continuous Integration and Continuous Deployment
Jenkins CI, CircleCI, GitLab, Travis CI
Continuous integration (CI) and continuous delivery (CD) operates on set of principles and practices that enables teams to automate the process of building, testing, delivering solutions.
CI/CD tools increase visibility into the state of the entire pipeline, and provide fast feedback enabling teams to correct errors in real time.