TL;DR DevOps
DevOps is a set of practices, tools, and a cultural philosophy that automate and integrate the processes between software development and IT teams.
DevOps is a methodology that promotes collaboration and automation between development (Dev) and IT operations (Ops) teams. It aims to streamline software development and delivery, automate repetitive tasks, and enhance code quality through continuous integration, continuous delivery, and cultural shifts, ultimately resulting in faster, more reliable software releases.
DevOps lifecycle
- Plan
- Code
- Build
- Test
- Release
- Deploy
- Operate
- Monitor
IDEs / Editors
Source control
Command line
Programming languages
- Python
- Go
- .NET / ASP.NET
- JavaScript
CI/CD
Continuous Integration and Continuous Delivery (CI/CD) is the method to frequently deliver apps to customers by introducing automation into the stages of app development.
CI
- Automate the Build
- Introduce Automation test (units tests, integration, ...)
- Linting
- Security / Scanning
Based on the workflow (like GitHub Flow > Git Flow) add Pull/Merge Request to be reviewed and approved by other collaborators.
CD
- Environments: Dev -> Staging -> Prod
- User feedback (Blue/Green, Canary, ...)
Containers
Containers orchestation
Infrastructure as Code
Infrastructure as Code (IaC) is the managing and provisioning of infrastructure through code instead of through manual processes.
Tools:
Configuration as Code
Sometimes also called Software Configuration Management.
Networking
Cloud Computing
- Azure
- AWS
- GCP
Documentation
Security
- Checkov
- CodeQL
- HashiCorp Vault
Monitoring
- Graphana
- Prometheus
- ELK Stack
