DevOps is a combination of two words i-e Development and Operations.
Development Team consists of people who write code and create applications while the Operations Team consists of people who Build, Deploy and make sure that code is passing from different test cases before passing it to the end user.
DevOps is a mindset, Set of Rules and Procedures or Methodology through which the application/code written by your Developer is passed through Build, Test, Deploy, Monitor, Scabale and Manaintance by the Operations Team before going to Production.
Through these sets of Rules and practices, both Operations Team and Development Team collaborate.
Process In DevOps
Following are the steps involved in DevOps:
Idea and Plan on which the team of developers is going gather information and then Plan how much resource is required to complete the job.
Code, in this step the team of developers will start writing the code from the initial stage to the final stage of the application. Developers push their code to the GitHub repository so it can be easy for everyone to access.
Build, Test and Release, in this part, the code is build and it is then pass through different test phases and then Release to Production
Deployment, In this stage the application will be deployed on the client end along with all the dependencies.
Operate and Monitor, in this stage we do maintenance and monitoring of the application with help of Prometheus and Grafana.
DevOps Tools
Following are the tools we use in DevOps:
Linux is Open Source and 91% of the applications are running on Linux as it allows multitasking and multi-user with a very powerful shell. It doesn't need any Antivirus as it is highly secure.
Git & GitHub is a Version Control System and a platform for collaboration
Docker is used for Virtualization and it is very lightweight and it also allows reusability.
Docker Swarm With Docker you only do Virtualization but to run it on the Production Level you use Docker Swarm
Jenkins, You build CI/CD Pipelines with Jenkins. CI/CD Stands for Continous Integration and Continuous Deployment. The following are the steps involved in Jenkins:
Build
Test
Deploy
Kubernetes It is a container orchestration Tool that allows Auto scaling and auto healing for containers
Cloud Service Providers We have different Cloud Service Providers but for this course, we will go with AWS
Infrastructure As Code There are 2 parts:
Provisioning which consists of Terraform and Cloud Formation
Configuration Management which consists of Ansible and Chef
Grafana With help of this you monitor the performance of the application
What is Automation?
It is a practice of using a specialized software tools and methodlogies to automate repetitive and manual tasks throughout the Software Development Lifecycle.
What is Scaling?
It is automation driven environment where developers or companies can adopt the devops culture and choose the right technologies to scale the business growth whenever required.
What is Infrastructure?
It is a concept which revolves around the idea of managing the infrastructure with help of code (IaC), It can be done by writing a piece of code to setup whole infrastructure examples are Teraforrm, Cloud Formation.
Why DevOps is important?
It is important as it is a approach by both Software Team and Operations Team which enables faster development of apps and easier maintenance of existing deployments