SRE and DevOps Flashcards
What is SRE?
Site Reliability Engineering
A practice that interfaces DevOps that aims to minimise effect of software changes on end users.
It does this by automating as much of the IT infrastructure as possible to provide more reliable and stable software for end users should software updates or crashes occur.
Define what is meant by Site Reliability
The stability and reliability of software in production. Infrastructure should be in place to safeguard end users against updates, crashes etc.
Why is SRE important?
- Improves reliability when scaling large systems
- Improves collaboration between development and operations teams.
- Improves customer experience since effect on end-users is being minimised
Improved operations planning, since SRE is focussed around safeguarding against failure. It forces planning.
How does SRE improve collaboration between development and operations?
The goal is to provide an IT infrastructure that minimises effect of production changes on the end users.
Development write updates, fix errors etc. Operations deploy the software to production in a stable way.
Collaboration is constantly required to achieve continued stability and continuous improvement.
What is DevOps?
- The practice and cultural philosophy of automating and integrating processes between software development and IT operations teams.
- Integrating development and operations into a single, continuous process.
Define the traditional responsibility of development and operations positions?
Development deals wit the production of code
Operations deals with deploying and maintaining the software for end users
What were the issues with traditional development to operations waterfall transition?
- Siloed teams inhibited collaboration - Increase communication overhead from hand-off.
- Hand-offs are expensive
How does a DevOps team operate?
- Automate as much as possible
- Contains developers and operation specialists.
- Encompasses entire SDLC including developing, testing, deploying and maintenance.
What are the 5 DevOps principles? Explain each…
Culture: Collaboration and knowledge sharing are vital for effective DevOps.
Automate: Automating as much as possible reduces toil tasks and human error and speeds up releases.
Lean: Automation and removal of waste (toil tasks) for tight feedback and quick releases ensures a lean way of working with efficient software releases.
Measure: Track metrics to enable automation and create user-centric software. Metrics enable self-evaluation.
Share: Sharing knowledge across teams and organisations ensures shared learning and prevents repeat mistakes.
What are the pros of DevOps?
- Frequent and high quality software release
- SDLC is streamlined
- Good communication and collaboration
- Greater satisfaction of employees
- Automation and lean processes give a more agile way of working
What are the cons of DevOps?
- Requires cultural change to implement, which can cause friction.
- Can be difficult to integrate teams that are traditionally siloed.
- Development teams may struggle with operation tasks and vice versa.