Skip to content

Latest commit

 

History

History
163 lines (107 loc) · 5.93 KB

File metadata and controls

163 lines (107 loc) · 5.93 KB

DevOps

What is DevOps

General definition

DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support.

Extended definition

DevOps is CRISP approach with CALMS as its principles and values

CRISP:

  • C – Collaborative way of working between Dev and Ops (One Team – One Goal)
  • R – Repeatable process using principles and practices to provide better results to deliver the QUALITY and STABLE product/application
  • I – Iterative and Incremental approach for continuous improvement
  • S – Saleable across multiple teams of the product
  • P – People, Principle, Practices and process oriented disciplinary collaborative approach

CALMS:

  • C – Culture (promotes collaborative and open culture between Dev and Ops)
  • A – Automation (automate wherever applicable)
  • L- Learning (continuous learning & experimentation)
  • M – Measure (Measure with shared metrics across the Dev and ops for better management)
  • S – Sharing (Shared delivery process across Dev and Ops to build , deploy, maintain and monitor product with mentality of One Team – One Goal)

Additional notes

DevOps is also characterized by operations staff making use many of the same techniques as developers for their systems work.

My personal definition/view/notes

  • DevOps is using agile development practices and agile culture in application to managing IT infrastructure.
  • The goal is also the same - faster delivery, faster feedback cycle.
  • DevOps is about Continuous Improvement idea.
  • And important part of that idea is 'no blame' culture.
  • There're several definition of DevOps around the net.
  • Personally I like CALMS definition of continuous improvement cycle:
    • Culture (no blame, collaboration, openness)
    • Automation (Infrastructure as a Code and automation in general)
    • Learning (continuous learning)
    • Measurement (agile monitoring)
    • Sharing ( again - collaboration, teams can do more than 1 person)
  • I would like to note that DevOps usually doesn't work partially.
  • For example: if you would remove Measurement (It seems strange - but I saw companies that did exactly that) - you would break that self-improvement cycle.
  • If culture will be removed - people will be afraid to move fast (as people that do nothing - don't do mistakes)

Blameless culture

Observability/Monitoring

Prometheus

Blackbox monitoring

Centralized logging

CI/CD

MLOps

CD/Build tools

Mac OS X

Configure mac os x command line prompt

e2fs on mac os x

upgrading bash on mac os x

brew tips and tricks

HotKeys

Automation

Infrastructure as a code (IaaC)

Terraform

Terraform modules

Terraform run by developers

Capturing infrastructure

SaltStack (Salt)

Docker

Images

Chatops

Hubot

Slack

integrations and libraries for different languages

Hugo

Git/Github