Day 1 - Introduction to Devops
_What is DevOps ?
It is a cultural practice in an organization by development team and operations team to use each other’s tools, to smooth out the process of software delivery.
DevOps is a work culture primarily centered around collaboration, communication, and integration among the development teams. It was introduced to address the disconnect primarily between the development, operations, and quality assurance teams.
_DevOps Principles - The CAMS Model
CAMS stands for Culture, Automation, Measurement, and Sharing.
1. Culture
People > Process > Tools
Culture is defined by the interaction of people and groups and is driven by behavior of the people. They should talk to each other. Culture will improve if there is mutual understanding of others and their goals, interests and responsibilities.
2. Automation
Automation saves time, effort. It reduces the human intervention. It also focuses on people and processes and not just tools like Culture.
3. Measurement
Measure to improve.
Measurement is all about monitoring and keeping a track of all the progress of various activities involved in the DevOps process.
4. Sharing
Sharing is important in DevOps. It helps in continuous improvement of the process. Sharing the tools, knowledge and discoveries among others helps in fulfilling the end goal in a more efficient way.
_DevOps - The 3 ways
1. Systems Thinking
Understand and increase flow.
2. Amplify Feedback
Shorten and amplify feedback loops.
3. Experiment and Learn
Continual experimentation, taking risks and learning from failure.
_DevOps Lifecycle
Overview how the DevOps lifecycle
Plan: In this stage, teams identify the business requirement and collect end-user feedback. They create a project roadmap to maximize the business value and deliver the desired product during this stage.
Code: The code development takes place at this stage. The development teams use some tools and plugins like Git to streamline the development process, which helps them avoid security flaws and lousy coding practices.
Build: In this stage, once developers finish their task, they commit the code to the shared code repository using build tools like Maven and Gradle.
Test: Once the build is ready, it is deployed to the test environment first to perform several types of testing like user acceptance test, security test, integration testing, performance testing, etc., using tools like JUnit, Selenium, etc., to ensure software quality.
Release: The build is ready to deploy on the production environment at this phase. Once the build passes all tests, the operations team schedules the releases or deploys multiple releases to production, depending on the organizational needs.
Deploy: In this stage, Infrastructure-as-Code helps build the production environment and then releases the build with the help of different tools.
Operate: The release is live now to use by customers. The operations team at this stage takes care of server configuring and provisioning using tools like Chef.
Monitor: In this stage, the DevOps pipeline is monitored based on data collected from customer behavior, application performance, etc. Monitoring the entire environment helps teams find the bottlenecks impacting the development and operations teams’ productivity.
_DevOps Jargons
1. Provisioning
Making sure the server is ready with operating system, software and networking is provisioning.
2. Deployment
Adding or upgrading the software on the server. Publishing.
3. Orchestration
Co-ordinated operations on multiple systems.
4. Configuration Management
Managing server configuration via files such as RAM, space, dependency, software, etc.
5. Imperative Method
Using commands to produce desired result.
6. Declarative Method
Here desired state is defined and tools will have to achieve it.
7. Idempotent
Repeat the execution and same result is given. No duplication of the result.
8. Blue Green Deployment
Identical deployment can be done on more than one server and it can be used as switch.
9. Continuous Integration
Building and unit testing stages of the software release process.
10. Continuous Delivery
Deploying on production live environment at every new check in.
11. Continuous Deployment
After unit testing deploy changes to production in small batches.
With confidence, I assure you that this article holds value, offering a path to new insights and enriching knowledge.
_Thank you for reading..!
"Embark on the Journey of Knowledge: Happy Learning Lights Up Your Path."
_Abhi Sagare.