DevOps is the culture of collaboration between Development and Operations.
Some essential Devops concepts include:
- Build Automation (BA) : It is nothing but the automation of the process to deploy to production. Some well known tools for BA are:
- Continuous Integration (CI) : Frequently merging of code change into the code base (multiple times a day) is termed as continuous Integration. eg. of tools:
- Continuous Delivery : Continuous Delivery is the practice of maintaining a code code base in deployable state all the time.
- Continuous Deployment : The practice of frequently deploying small code change to the production is referred to as continuous deployment.
- Configuration Management : Consistent and stable changing or maintainance of the state of various pieces of infrastructure can be summarized as configuration management. Some of the frequently discussed tools are:
- Infrastructure as Code : Managing and provisioning the infrastructure through code and automation.
- Monitoring : Collection and presentation of the data about stability and performance of various services and infrastructure itself.
- Microservices : Architecture of breaking an application into collection of small, loosely coupled services.
- Orchestration: automation that supports the processes and workflows. Tools:
- Virtualization : Managing the resources by creating virtual, rather than physical machines.
- Container: Lightweight and isolated packages containing bare minimum resources for the software.
This image contrasts Virtual Machines and Containers:
(note: logo images are from google/wikipedia)