devops Flashcards
(13 cards)
Typical software release process (initial launch)
plan
code
test
build
deploy
operate and monitor
Improvements:
- Addition of features
– Bug fix
– Performance improvement
dev <-> ops
development-code repo
operations: severs
Challenges in the release process
- Communication and collaboration between developers
and operations- Developers don’t consider the deployment environment
- Operations don’t know how the system works
- Conflict of interest
- Developers want to finish implementing fas
- Operations want to maintain stability
- Manual work
- Manual testing
- Manual release creation
- Manual deployment environment configuration
- Slow down the release process
- Require too much effort
- Error prone
- Difficult knowledge sharing
DevOps
- DevOps is a combination of cultural philosophies, practices, and tools
- It is about anything that makes the process of releasing software fast and with high quality
- Devs and Ops should work together more often
- Different companies implement DevOps in different ways
- DevOps became a separate role: DevOps Engineer
- There are many tools to help automating the processes
Benefits of DevOps
- Faster deployment
- Reduced risk
- Faster repair
- More productive teams
Aspects of DevOps automation
- Continuous integration
- Continuous delivery
- Continuous deployment
- Infrastructure as code
Continuous integration
Each time a developer performs a change to the project’s core repository main branch, an executable version of the system is built and tested
- Faster to find and fix bugs
- Your changes are shared with the whole team
- Might create a “quality culture” in the development team
Continuous delivery:
A simulation of the product’s operating environment is created and the executable software version is tested
Continuous deployment
A new release of the system is made available to users every time a change is made to the project’s core repository main branch
- Faster customer feedback
- Faster problem solving
- Reduced costs
Business reasons against deploying every change
- Incomplete features, but the competitors shouldn’t know about it
- Customers may get irritated by many changes
- Synchronisation of releases with known business cycles
Infrastructure as code
- Infrastructure model written in a machine-processable
language - Characteristics:
- Visibility
- Reproducibility
- Reliability
- Recovery
Aspects of DevOps automation
- Continuous integration
- Continuous delivery
- Continuous deployment
- Infrastructure as code