DevOps is a methodology that refers to anything that Influences the interaction between development and operations. Development needs as many changes as possible to grow and to meet the needs of the changing time while for Operations change is the enemy. Operations require stability and thus strongly resist change, this is a requirement for Development.
Part 1: DevOps Frame
DevOps is a strategy intended to bring perfection in software delivery lifecycle by aligning development and Operations teams around the business goals. As per Microsoft’s standard level definitionsDevOps Level 100 is an introductory and overview material. It covers topic concepts, functions, features, and benefits. DevOps Level 200 is intermediate material. It assumes 100-level knowledge and provides specific details about the topic.DevOps Level 300 is advanced material, it assumes 200-level knowledge, in-depth understanding of features in a real-world environment and strong coding skills. It provides a detailed technical overview of a subset of product/technology features, covering; architecture, performance, migration, deployment, and development.
Part 2: DevOps Practices
There are many fundamental DevOps practices. A few of them are listed below:
Infrastructure as Code (IaC) is the practice in which the techniques, processes, and tool sets used in software development are leveraged to manage the deployment and configuration of systems, applications, and middleware. Most of the testing and deployment defects occur when developer’s environments differ from testing and production environments. Putting these environments under version control yields immediate benefits in consistency, time savings, error rates, and auditability.
Under Continuous Integration (CI)practice, the working copies of all the developers code are combined with a shared mainline.
Automated Testing – is the practice where various tests such as load, functional, integration, and unit tests happen automatically either after you check in code (i.e. attached to CI) or some other means to fire off one or more tests automatically against a specific build or app.
Release management is a practice intended to oversee the development, testing, deployment and support of software releases.
Configuration Management is the practice for establishing and maintaining consistency of a product’s performance with its requirements, design and operational information throughout its life.
DevOps is all about better delivery practices, automation, removing bottlenecks and is Agile at Organisation level. DevOps is not a tool, it cannot be built or achieved in a day or a month. It is a path – a roadmap that needs to be followed.