Skip to main content

Intro

DRI - Designated Response Individuals

SRE - Site Reliability Engineers

Devops (Development Operations) is a set of practices.

It is a software engineering culture and practice that aims at unifying software development (Dev) and software operations (Ops). The main characteristic of the DevOps movement is to strongly advocate automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management. DevOps aims at shorter development cycles, increased deployment frequency, and more dependable releases, in close alignment with business objectives.

DevOps vs SRE vs Platform Engineering | Clear Big Misconceptions - YouTube

What is CI/CD and what are its benefits?

Continuous integration and continuous deployment is a practice wherein you integrate and test your software on every code change. Later on, that code is deployed to production. The main benefit is that it reduces manual work and the chances of human error during deployments.

What are different deployment strategies?

Depending on your product and how's your technical implementation, you can choose to do a rolling strategy, recreate strategy, blue-green, A/B testing, canary deployment, or shadow strategy.

A definition proposed by Bass, Weber, and Zhu, is DevOps is a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality.

  1. Plan / Code - code development and review, source code management tools, code merging
  2. Create / Build - continuous integration tools, build status
  3. Verify / Test - continuous testing tools that provide feedback on business risks
  4. Package - artifact repository, application pre-deployment staging
  5. Release - change management, release approvals, release automation
  6. Configure - infrastructure configuration and management, Infrastructure as Code tools
  7. Monitor - applications performance monitoring, end-user experience

The term "deployment" refers to the act of deploying a change to application components or infrastructure, and the term "release" refers to the act of enabling or exposing a feature to end-users (with a corresponding business impact)

image

CI/CD on kubernetes

image

Monitoring

Monitoring means knowing what's going on inside your system, how much traffic it's getting, how it's performing, how many errors there are. This is not the end goal though, merely a means. Our goal is to be able to detect, debug and resolve any problems that occur, and monitoring is an integral part of that process.

Scheduling vs Orchestration

  • Scheduling is deciding when and whether a task should run
  • Orchestration is deciding where and how a task should run

Remediation vs Repair

Remediation is a more thorough and long-term solution than repair. Repair is for minor damage that doesn't have an underlying cause. Remediation is for major or recurring damage caused by an underlying issue.

References

https://www.toptal.com/devops/bridging-gaps-devops-communication