DevOps
DevOps is a set of software development practices that combine software development (Dev) and information-technology operations (Ops) to shorten the systems-development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives.
Includes the cultural and professional movement that stresses communication, collaboration, integration and automation in order to improve the flow of work between software developers and IT operations professionals.
What is DevOps?
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to shorten the software development life cycle while delivering high-quality software releases. The goal of DevOps is to provide a culture of collaboration and communication between development and operations teams to improve the speed and reliability of software delivery.DevOps emphasizes automation and monitoring at all stages of the software development life cycle, from planning and coding to testing and deployment. It involves the use of tools and techniques to automate the software development process, including continuous integration (CI), continuous delivery (CD), and continuous deployment (CD).
DevOps also focuses on creating a culture of collaboration and communication between development and operations teams. This involves breaking down traditional silos between these teams and promoting a shared responsibility for the success of the software release.
DevOps definition
DevOps is the union of people, process, and products to enable continuous delivery of value to our end users— Donovan Brown
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market. — Amazon Web Services (AWS)
DevOps represents a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture), and seeks to improve collaboration between operations and development teams. DevOps implementations utilize technology— especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective. — Gartner
New Relic - What is DevOps?
Measure what matters and do DevOps right with New Relic …What is DevOps?
DevOps is a software development methodology that combines software development and IT operations to improve the efficiency and speed of software delivery. It emphasizes collaboration, automation, and continuous improvement.
What are the key principles of DevOps?
The key principles of DevOps include collaboration and communication between development and operations teams, automation of the software delivery pipeline, continuous integration and delivery, and a focus on monitoring and feedback.
What are some benefits of DevOps?
DevOps can help to improve the speed and quality of software delivery, reduce costs, increase collaboration between teams, and improve the reliability and scalability of software systems.
What is Continuous Integration (CI)?
Continuous Integration is a practice in DevOps where developers regularly merge their code changes into a shared repository and run automated tests to ensure that the code is working correctly.
What is Continuous Delivery (CD)?
Continuous Delivery is a practice in DevOps where code changes are automatically built, tested, and deployed to production environments. It ensures that code changes can be released quickly and with minimal risk.
What is Infrastructure as Code (IaC)?
Infrastructure as Code is a practice in DevOps where infrastructure configurations are defined in code and managed in a version control system. It allows for the automated creation and management of infrastructure and helps to improve consistency and reliability.
What is a DevOps toolchain?
A DevOps toolchain is a set of tools and technologies that are used to support DevOps practices. It includes tools for continuous integration, continuous delivery, infrastructure automation, monitoring, and feedback.
What is a DevOps culture?
A DevOps culture is one that emphasizes collaboration, communication, and shared responsibility between development and operations teams. It encourages a focus on delivering value to customers quickly and continuously improving processes.
90 Days Of DevOps
This repository is used to document my (Michael Cade's) journey on getting a better foundational knowledge of DevOps. I will be starting this journey on the 1st January 2022 but the idea is that we take 90 days which just so happens to be January 1st to March 31st.The reason for documenting these days is so that others can take something from it and also hopefully enhance the resources.
The goal is to take 90 days, 1 hour a day, to tackle over 13 areas of DevOps to a foundational knowledge.
This will not cover all things DevOps but it will cover the areas that I feel will benefit my learning and understanding overall.
GitHub Collections
These tools help you manage servers and deploy happier and more often with more confidence.
- Snippet from Wikipedia: DevOps
DevOps is a methodology in the software development and IT industry. Used as a set of practices and tools, DevOps integrates and automates the work of software development (Dev) and IT operations (Ops) as a means for improving and shortening the systems development life cycle. DevOps is complementary to agile software development; several DevOps aspects came from the agile approach.
Automation is an important part of DevOps. Software programmers and architects should use "fitness functions" to keep their software in check.
According to Neal Ford, DevOps, particularly through continuous delivery, employs the "Bring the pain forward" principle, tackling tough tasks early, fostering automation and swift issue detection.
Source: YouTube
Agile to DevOps
- See also Agile
ALM vs DevOps?
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to shorten the development lifecycle while improving software quality and reliability. It emphasizes collaboration, communication, automation, and measurement of the entire application lifecycle, from development and testing to deployment and operation.DevOps is closely related to ALM (Application Lifecycle Management) because it focuses on streamlining the application lifecycle by bridging the gap between development and operations teams. DevOps provides a framework for automating the deployment and operation of software applications, while ALM provides a framework for managing the entire lifecycle of the application, including development, testing, deployment, and maintenance.
In other words, DevOps is a methodology that emphasizes collaboration and automation across the entire application lifecycle, and ALM provides a framework for managing the application lifecycle from inception to retirement. Both DevOps and ALM are focused on optimizing the application lifecycle, and together they provide a comprehensive approach to software development and deployment.
Tools & Stages
Various Tools depending of the DevOps steps:
DevOps Common | DevOps Stages | Azure DevOps |
---|---|---|
Plan | DevOps Plan | Azure Boards |
Code | DevOps Create | Azure Repos |
Build | ||
Test | DevOps Verify | Azure Test Plans |
DevOps Packaging | Azure Artifacts | |
Release | DevOps Release | Azure Pipelines (also builds) |
Deploy | DevOps Configure | Azure |
Operate | DevOps Monitor | Azure Monitor |
– Figure out this Matrix.
- Coding – code development and review, source code management tools, code merging
- Building – continuous integration tools, build status
- Testing – continuous testing tools that provide quick and timely feedback on business risks
- Packaging – artifact repository, application pre-deployment staging
- Releasing – change management, release approvals, release automation
- Configuring – infrastructure configuration and management, infrastructure as code tools
- Monitoring – applications performance monitoring, end-user experience
Toolschain
DevOps Adoption
The 2015 State of DevOps Report discovered that the top seven measures with the strongest correlation to organizational culture are:
- Organizational investment in DevOps
- Team leaders' experience and effectiveness
- Continuous delivery.
- The ability of different disciplines (development, operations, and infosec) to achieve win-win outcomes
- Organizational performance
- Deployment pain
- Lean management practices.
Adoption of DevOps success factors include:
- Use of agile and other development processes and methods
- Demand for an increased rate of production releases – from application and business unit stakeholders
- Wide availability of virtualized and cloud infrastructure – from internal and external providers
- Increased usage of data center automation and configuration management tools;
- Increased focus on test automation and continuous integration methods
- A critical mass of publicly available best practices.
SAFe DevOps
- CALMR - Culture, Automation, Lean flow, Measurement, Recovery
DevOps + 1
Related articles:
External links:
- https://circleci.com/blog/devops-did-not-exist/ - History of DevOps
-
- When it comes to building a successful DevOps practice, organizational culture and user-centricity are key, the 2023 State of DevOps Report finds.
-
- Explore Parallels Desktop DevOps Service for efficient management and orchestration of multiple Parallels Desktop hosts and VMs. Ideal for CI/CD pipelines. Free for up to 10 users.
## ToDo ##
- Continuous Integration/Continuous Delivery (CI/CD)
- Infrastructure as Code (IaC)
- Configuration Management
- Automated Testing
- Continuous Monitoring and Feedback
- Deployment Pipelines
- Version Control and Source Code Management (SCM)
- DevOps Culture and Collaboration
- Agile Development and Scrum Methodology
- Cloud Computing and Multi-Cloud Strategy
- Containerization and Orchestration (Docker, Kubernetes)
- Microservices Architecture
- Serverless Computing
- DevOps Tools (Jenkins, GitLab, Ansible, Chef, Puppet, etc.)
- Security and Compliance in DevOps
- Site Reliability Engineering (SRE)
- Observability and Monitoring Tools
- DevOps Metrics and Performance Optimization
- DevOps Automation and Scripting (Bash, Python, etc.)