Dev Ops
Dev Ops
Atul Phad
Introduction
DevOps is a software development and delivery approach that aims to bridge the
gap between development (Dev) and operations (Ops) teams. It fosters a culture
of collaboration and communication, enabling faster delivery of high-quality
software while maintaining operational stability and efficiency.
Contd..
In traditional software development models, the development and operations
teams often worked in silos, resulting in delays and miscommunications. DevOps
seeks to break down these barriers, allowing for a more streamlined process from
ideation to production.
Core Principles
Collaboration
Automation
Continuous Learning
Collaboration
DevOps encourages open communication and collaboration between
development and operations teams, fostering a culture of shared responsibility
and accountability.
CI / CD
CI/CD is the practice of automatically building, testing, and deploying software
changes to production. This approach ensures a continuous flow of high-quality
software releases.
Feedback and monitoring
DevOps emphasizes the importance of monitoring and gathering feedback from
both technical and business stakeholders to improve processes and continuously
iterate on products
Automation
Automation is a cornerstone of DevOps. It streamlines processes, reduces human
error, and allows for faster delivery and improved consistency.
Continuous learning and improvement
A commitment to continuous learning and improvement is essential in a DevOps
culture. Teams should regularly evaluate their processes and tools to identify
areas for growth and optimization.
Why
● Faster Delivery and Time-to-Market
● Improved Quality and Reliability
● Enhanced Collaboration and Communication
● Cost Savings
● Increased Customer Satisfaction
Tools
● Version Control Systems – Git, Mercurial, and Subversion
● CI/CD Tools – Jenkins, Travis CI, CircleCI, and GitLab CI/CD
● Configuration Management – Ansible, Chef, and Puppet
● Containerization – Docker, Kubernetes, and OpenShift
● Monitoring and Analytics – Prometheus, Grafana, ELK Stack (Elasticsearch,
Logstash, Kibana), and Datadog
● Cloud Platforms – Amazon Web Services (AWS), Microsoft Azure, and
Google Cloud Platform
Continuous Integration
Jenkins builds and tests our software projects which continuously making it
easier for developers to integrate changes to the project, and making it easier for
users to obtain a fresh build.
In 2011, Oracle who owned Sun Microsystems had a dispute with Hudson open
source community, so they forked Hudson and renamed it as Jenkins.
Continuous deployment
Continuous deployment goes one step further than continuous delivery. With this
practice, every change that passes all stages of your production pipeline is
released to your customers. There's no human intervention, and only a failed test
will prevent a new change to be deployed to production.