Skip to content

Latest commit

 

History

History
43 lines (31 loc) · 2.03 KB

devops_notes.md

File metadata and controls

43 lines (31 loc) · 2.03 KB

DevOps Overview

DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to shorten the systems development life cycle and provide continuous delivery of high-quality software.

Definition

DevOps is:

  • A culture of collaboration between teams that historically functioned in relative siloes.
  • A philosophy of unifying Development and Operations for improved workflow.
  • A practice emphasizing the automation and monitoring of all steps of software construction, from integration, testing, and releasing, to deployment and infrastructure management.

Core Principles

  1. Collaborative Culture: Teams work together, share responsibilities, and combine their workflows to reduce inefficiencies.
  2. Automation: Repetitive tasks are automated, speeding up the development process and reducing the risk of human error.
  3. Continuous Integration & Continuous Delivery (CI/CD): Frequent integration of code changes into a shared repository, followed by automated testing and deployment.
  4. Monitoring & Feedback: Constant monitoring of applications and infrastructure performance, with real-time feedback into the development process.

Common Practices

  • Source Code Management (SCM)
  • Configuration Management
  • Continuous Integration and Deployment
  • Automated Testing and Monitoring
  • Containerization and Microservices

Popular DevOps Tools

  • Source Control: Git, SVN
  • Continuous Integration: Jenkins, Travis CI
  • Deployment Automation: Ansible, Terraform
  • Containerization: Docker, Kubernetes
  • Monitoring: Nagios, Prometheus
  • Collaboration and Communication: Slack, Microsoft Teams

Benefits of DevOps

  • Faster, more reliable software releases.
  • Improved collaboration and communication.
  • Increased efficiency and reduced development lifecycle.
  • Faster recovery from downtime.

By adopting a DevOps culture, along with associated practices and tools, organizations can break down siloes, improve collaboration, and deliver high-quality software more efficiently and effectively.