DevOps put nicely

DevOps is a holistic approach to work, spanning the entire software delivery lifecycle, from product conception to delivery. It also encompasses all business functions involved in the software delivery process, from development through to finance, HR, leadership, security, and operations. This has led to the title evolving, with terms such as BizOps, CloudOps, DevSecOps, FinOps, ITOps, NetworkOps, NoOps, and others, growing increasingly common.

 

The fundamentals of DevOps are people, processes, and products. The flow down starts with requirements, design and code, integrate, test, and operate and maintain. Incorporated contiguously is the agile software development methodology. We can also refer to this methodology as extreme programming (XP), which introduces the practice of continuous integration. Continuous delivery aims to release bug fixes, new features by developing software that is deployable throughout its lifecycle.

 

Transparency underpins the success of the other characteristics of a DevOps people culture. Collaboration, continuous improvement, and responsibility. Product maintenance frameworks, or frameworks to identify process improvements can be made are: Kanban, the Scaled Agile Framework (SAFe), and the PSDA cycle.

 

Continuous integration (CI) is the practice of merging code changes into a central repository. Through frequent code commits, automated builds and tests are run, allowing bugs to be identified and rectified earlier. Continuous delivery is the capability to deploy to any environment in the development pipeline as needed. It provides the means to release change that pass initial testing to subsequent staging and production environments. CD is used when changes are released to a client-accessible production environment automatically, without explicit manual approval. The benefits of CD is that it increases the efficiencies gained from continuous delivery by automating the release of changes that pass checks onwards to production and client-facing environments without manual intervention. We often group CD/CI together as a term in the developing context.

 

1. Continuous Integration ---> build, test, merge

2. Continuous delivery ---> automatic release, test environment functional test, test environment performance test, stage environment acceptance test

3. Continuous deployment ---> automatically deploy to production

 

Version control tools fall into two categories: centralized and distributed. Centralized version control tools work with a single, central repository. Developers work with their own local copy and pull any changes made by other people, from a central repository. The distributed version control tool means every developer has a copy of the entire source repository on their machine, allowing visibility to full project, branch, metadata, and historical information. An example of a distributed version control and source code tool is Git.

 

A good rule of thumb is to maintain a separate configuration repository. Configuration repositories are used to store environmental settings, assets, configurations, and other dependencies.

 

Multiple environments will be in use in the workplace: parallel staging environments, testing environments, and production environments. Rolling out builds to these environments enables modifications to be verified and testing to be automated across multiple dimensions, including user interface testing, integration testing, and load testing. After testing, deployment can begin. A canary deployment releases an application or service incrementally to a small group of users. Another deployment scheme is called a green/blue scheme, where blue deployment could be on different hardware, different virtual machines, or a single operating environment partitioned into separate zones with separate IP addresses.

 

Comments

Popular posts from this blog

ArtificiaI General Intelligence Safety Fundamentals Notes

A year, introspectively summarized

Vicissitude