DevOps : A Beginner's Guide (Before You get Started)
What is DevOps ? It's a cultural practice in an organization by development team and operations team to use each other's tool, to smooth out the process of software delivery.
Developers Team :- Team which collects the requirement/ problem statement and write code for it . Operations/Ops Team :- Anything which is onto the cloud or servers is basically handled by the Ops Team . Their responsibility is to keep the servers always up and Running .
If you want to implement DevOps in an organization, you need to learn: -core values .
- core Ideas .
- Methods.
- Practices .
- Tools .
Why should anyone learn DevOps ?
-Deploy faster -less failure -Better recovery time
DevOps CAMS
C - Culture :- Talk to each other in a team . Remember always consider People over Process over Tools .
A - Automation : It is not just about chef or puppet (an automation tools) Thousands of servers are impossible to manage , but remember that do we really need those number of servers . Instagram, still uses Monolithic Servers .
M- Measurement : Measure to improve . It is not just about the infrastructure , business or client measurement . Recovery time, cycle time are obvious but it's important to measure and incentivize it . eg : cloud watch in AWS .
S - Sharing : Share the goal . share responsibility, share ownership and no escape goat. feedback loop is important .
3 Ways to implement DevOps
Flow Thinking : It is a traditional way in which DevOps is being implemented . Here the developer team collects the information from the client write the code and release it to the Operation Team . there is no concept of talking/sharing among them .
Amplify Feedback : Operations Team and Developer team are always in touch , and developer gets the feedback once the code is sent from there end . This is the most used practice in today.
Experimental Learn : Dev Team uses new team to roll out the features and sent it to the ops team . This is a risky way and hardly used .
## Big overview to remember
- People over process over tools
- Continuous delivery
- lean management : no need for separate management for dev , ops and testers .
- Infrastructure as code
DevOps LifeCycle

DEV OPS Plan Release Code Deploy Build Operate Test Moniter
Important Terms in DevOps
Provisioning : Server is ready with OS, software and networking
Deployment : adding or upgrading software on server
Orchestration : coordinated operations on multiple systems
Configuration management : configuration via files such as ram, space, dependency software's etc.
Imperative (procedural) : commands to produce desired state
Declarative (procedural): desired state is defined and tools will achieve it
idempotent : repeat execution and same result
blue green deployment : Identical deployment, used as switch
Continuous Integration : Build and unit test at every check-in
Continuous Delivery: deploy on production live environment at every check-in
Continuous Deployment : After unit testing, deploy changes to production in small batches.