Day 1: Introduction To Devops
What Is DevOps
DevOps Is a combination of Software Developers(Dev) and Operations(Ops). DevOps is a methodology or process of improving the application delivery by ensuring there is proper Automation, Code quality, Continous Monitoring and Continous Testing. DevOps allow a single team to manage the entire application development lifecycle.
What are Automation, Scaling and Infrastructure?
Infrastructure Automation is the process of reducing human interaction with IT systems by creating scripts or functions that are repeatable and can be used either by other software or on command.
Why DevOps is important?
It helps in the continuous delivery of software
Better collaboration between teams.
For Easy deployment.
Better efficiency and scalability.
Errors are fixed at the initial stage.
It has more security.
Less manual intervention.
Deploy faster-50%
What are the common technologies used in DevOps?
1) Version Control Systems: Git(Gitlab,GitHub,Bitbucket)
2) Configuration Management Tools: Ansible, Chef, Puppet
3)Continuous Integration Tools: Jenkins
4) Containerization Tools: Docker, Kubernetes
5)Cloud Platforms: AWS, Azure, GCP
6) Monitoring Tools: Nagios
7)Build Tool: Maven
Terms / Jargon in DevOps
Provisioning — The server is ready with OS, software and networking.
Deployment — Process of taking software code that has been developed, tested, and prepared for release, and making it available for use by end-users in a production environment.
Orchestration — Orchestration refers to the process of coordinating and managing multiple components or services within a complex system or application.
Configuration management — Managing server configuration via files such as ram, space, dependency software etc.
Imperative (procedural) — commands to produce the desired state
Declarative (procedural) — the desired state is defined and tools will achieve it
***Idempotent ***— repeat execution and same result.
Blue Green Deployment — Identical deployment, used as a switch.
Continuous Integration — Build and unit test at every check-in.
Continuous Delivery —It is a software development practice where the team continuously builds, tests, and prepares the code for deployment in a production environment. However, the actual deployment to production is still a manual process that requires a human decision
Continuous Deployment— It takes the continuous delivery approach a step further by automating the entire process of deploying code changes to production. Here, the code is automatically deployed to production once it passes all the necessary tests and quality checks, without any human intervention.