# What is DevOps?

### What is DevOps?

* Methodology asking users for feedback with CI/CD

#### Sections

* Planning - how to build the app
* Coding - building the features
* Building - get the version done (for different OS, etc)
* Testing - Test these versions (Automation or Manual Testing)
* Release - releasing the app (usually blue - green deployment is done here)
* Deploy - via CI/CD to release on the internet
* Operate - scaling, adding more resources for the load, etc
* Monitoring - See if any issues arise, see if everything works fine
* After all the feedback, back to the planning stage & DO IT AGAIN

### What is DevOps Engineering?

* Practical use of DevOps within software engineering teams. Being able to build, test, release and monitor applications

### DevOps Engineering Pillars:

* Pull Request automation
* Deployment automation
* Application performance automation

#### Pull Request automation

* Developers share code changes using git tools like Github, Gitlab, Bitbucket
* A set of code changes in git tools is called a pull request or a merge request
* Inf pull requests are approved, the code changes can go into the main codebase

#### Deployment automation

* Deploy a feature to a certain set of users as a final test before rolling it out (canary deployment)
* Starting new versions of services without causing downtime (blue-green deployment)
* Rolling back to the prior version in case something goes wrong
