What is DevOps
- Is a culture of collabaration with Developers and Operations people.
- Is NOT tools but tools are essentail to success in DevOps
- Is NOT a standard
- Is NOT a product
- Is NOT a job title.
Read : Waterfall vs Agile method of software development.
DevOps Culture
Traditional Model : Dev and Ops are seperated. DevOps Culture : Dev and Ops works together and share the same goals.
Goals
- Fast time-to-market (TTM)
- Minimize production Failures
Devops vs Traditional Silos
Traditional Flow
Devlopers -> QA team -> Operations
- No Trust between teams
- Different Priorities
- Different Goals
- Developers focus on features but Operations focus on uptime.
- Lengthy process
- Lacks of automation
DevOps Way
- Dev writes code
- Commit will trigger build and integration tests
- QA can be automate
- Automated monitoring
- Auto-rollback previous version
Build Automation
Automate the process of preparing code for deployment.
Why ?
- fast
- consistent
- repeatable
- portable
- reliable
Continuous Integration
-
frequent code changes
- Using a CI Server
- Multiple times a day
- feedback on merge and build
Why ?
- Easy to detect issue with smaller changes
- small releases instead of big releases
- continuous testing
Continuous Delivery and Continuous Deployment
- code is always ready for deployment
-
frequently deploying small code changes
- Automated deployment
- if issue, automatic roll back
Why ?
- faster time-to-market
- fewer problems caused by deployment process
- lower risk
- Reliable rollbacks
Infrastructure As Code
- manage and provision infrastructure via code
- provisioning and managing will be done via automation
Why ?
- consistency
- re-usability
- scalability
- self-documenting
- simplify complex infrastructure
Configuration Management
- automated infrastructure management
- maintainable way
Why ?
- Save time
- Insight
- maintainability
- less configuration drifts
Orchestration
- orchestrate build and automate
Why ?
- Scalability
- Stability
- Save Time
- Self-service
Monitoring
- Collect data like usage of CPU< memory, disk i/o etc
Why ?
- Fast Recovery
- Better root cause analysis
- Visibility across teams
- Automated response - self healing