What is DevOps?
Everyone wants to build fast and reliable softwares, while minimizing the risk of failure and we achieve this by introducing automation, monitoring and collaboration between developers and operations team, hence the term DevOps
which is a combination of Development
and Operations
.
| source: AWS
DevOps Practices
- Continuous Integration
- you commit your code to the shared repository multiple times a day. Automated tests are run to ensure the code is working as expected (written by developers).
- Tools: Jenkins, Travis CI, CircleCI, GitLab CI
- Continuous Delivery
- the code is automatically built, tested and deployed to production, or at least to a staging environment if not production.
- Tools: Jenkins, Travis CI, CircleCI, GitLab CI
- Continuous Deployment
- the code is automatically built, tested and deployed to production.
- Tools: Jenkins, Travis CI, CircleCI, GitLab CI
- Infrastructure as Code
- you define your infrastructure in code, which can be version controlled and tested.
- Tools: Terraform, CloudFormation, Ansible, Chef, Puppet
- Monitoring and Logging
- you monitor your application and infrastructure to ensure everything is working as expected. You also log everything that happens so you can debug issues.
- Tools: Prometheus, Grafana, ELK Stack, Datadog
- Communication and Collaboration
- you have good communication between developers and operations team. You also have good collaboration between different teams in the organization.
- Tools: Slack, Microsoft Teams, Jira, Confluence, Linear etc