DevOps¶
- Tools
- Overview
- Flows and philosophies
- Frameworks
- Resources
- Articles
- Tutorials
- Workspaces
- Monorepos
- Frameworks \& libraries
- Shell utilities
- IDEs
- Resources
Resources¶
lists¶
Roadmaps¶
Tools¶
- pre-commit A framework for managing and maintaining multi-language pre-commit hooks.
- cheat cheatsheets lookup
- peco Interactive grep
- jq json parser
- jsonnet json template engine
- snipKit
- pet
Release management¶
Generators & Template Engines¶
- jsonnet json templating engine (support for many formats available)
- ytt yaml templating engine
- plopjs
- Hygen
- Yeoman
Linters¶
- Emmet: Emmet is a web-developer’s toolkit for boosting HTML & CSS code writing.
Documentation¶
- Verb: Verb is a documentation build system for GitHub projects powered by node.js. Verb has full support for gulp and assemble plugins and can be used to create documentation generators, themes, documentation websites and much more!
Testing¶
- dependabot: Automated dependency updates
Chaos Engineering¶
- chaos toolkit: The Chaos Engineering toolkit for Developers
- AWS Fault Injection Simulator: inject failures in AWS resources
- Azure Chaos Studio: inject failures in Azure resources
- Chaos Monkey: one of the most famous tools to orchestrate Chaos on diverse Cloud providers
- Litmus Chaos - A Framework for Kubernetes
- Chaos Mesh: for Cloud Kubernetes platforms
Testing¶
Test Driven Development (TDD)¶
Unit Testing¶
Implementation Testing¶
E2E Testing¶
Behavior Driven Development (BDD)¶
Static Analysis¶
Dependency analysis¶
- dependabot: Automated dependency updates
Other¶
Chaos engineering¶
Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent conditions in production.
CICD¶
Platforms¶
Azure DevOps¶
AWS DevOps¶
Github¶
Gitlab¶
- GLab Gitlab CLI inspired by gh
- release-clicreate release objects in GitLab
Workspaces¶
Monorepos¶
Build systems and other monorepository tools
- Nx
- jhipster
- polylith
- bazel
- pants
- Node
- TurboRepo
- RushJS Scalable monorepo manager for the web
- Lerna
- syncpack Manage multiple package.json files, such as in Lerna Monorepos and Yarn/Pnpm Workspaces
- Python
Monorepo Examples¶
- example-bazel-monorepo
- clojure-polylith-realworld-example-app
- colossus: An example microservice architecture for Kubernetes using Bazel, Go, Java, Docker, Kubernetes, Minikube, Gazelle, gRPC, Prometheus, Grafana, and more
- megabyte-labs Various awesome monorepos
IDEs¶
Vs Code¶
Plugins¶
Jetbrain¶
Remote editors¶
Teams and KPIs¶
Software development analytics¶
- :star: GrimoireLab - Suite of tools tutorial
- :star: hercules Fast, insightful and highly customizable Git history analysis.
- Apache Kibble Apache Kibble is a suite of tools for collecting, aggregating and visualizing activity in software projects.
- srcML
- sourcecred A tool for communities to measure and reward value creation.
- git-stats Local git statistics including GitHub-like contributions calendars.
- git-quick-stats a simple and efficient way to access various statistics in a git repository.
- git-hammer Git Hammer is a statistics tool for projects in git repositories.
Metrics¶
- Lead Time Lead time measures how long it takes for a change to occur.
Measuring the average time it takes for a concept to go from an idea to implementation is an effective metric for evaluating workflow and productivity. Reduced lead times indicate that your DevOps team is adaptive, productive, and capable of addressing feedback promptly. - Deployment Frequency Deployment frequency denotes how often new features or capabilities are launched. Frequency can be measured on a daily or weekly basis. Many organizations prefer to track deployments daily, especially as they improve efficiency.
- Deployment Time How long does it take to roll out deployments once they’ve been approved?
- Change Volume Deployment frequency means little if the majority of deployments are of little consequence.
- Failed Deployment Rate Sometimes referred to as the mean time to failure, this metric determines how often deployments prompt outages or other issues.
- Change Failure Rate The change failure rate refers to the extent to which releases lead to unexpected outages or other unplanned failures.
- Time to Detection A low change failure rate doesn’t always indicate that all is well with your application.
-
Mean Time to Recovery (MTRR) - Once failed deployments or changes are detected, how long does it take actually to address the problem and get back on track?
-
Defect Escape Rate Every software deployment runs the risk of sparking new defects. These might not be discovered until acceptance testing is completed. Worse yet, they could be found by the end user.
- Defect Volume This metric relates to the escape rate highlighted above, but instead focuses on the actual volume of defects. While some defects are to be expected, sudden increases should spark concern. A high volume of defects for a particular application may indicate issues with development or test data management.
- Availability Availability highlights the extent of downtime for a given application.
- Unplanned Work How much time is dedicated to unexpected efforts? The unplanned work rate (UWR) tracks this in relation to time spent on planned work. Ideally, the unplanned work rate (UWR) will not exceed 25 percent.
- Cycle Time Cycle time metrics provide a broad overview of application deployment.
Time to Value Sprint Accuracy Flow Efficiency
Articles & Tutorials¶
- 15 DevOps Metrics & Key Performance Indicators (KPIs) To Track
- devops-metrics-and-kpis
- 🌟 learn devops: Short tutorials about most DevOps Essentials
Infrastucture as code¶
**Moved to Awesome-IaC
Tutorials¶
Concepts¶
Workflows¶
Agile¶
GitOps¶
DevOps¶
Software Architecture¶
Infrastructures¶
Cloud Functions (FaaS)¶
- Serverless (js/python)
- OpenFaas
Infrastructure as code (IaC)¶
- Terraform
- Terragrunt
- Terraspace
- AWS SAM
- CloudFormation
Developer Experience¶
- Source of truth
- Toolchain
Code Quality¶
Internal developer platforms (IDPs)¶
- backstage.io open platform for building developer portals
- portainer centralized service delivery platform for containerized apps