add knowledge

This commit is contained in:
Jev Kuznetsov
2026-04-23 12:06:00 +02:00
parent 82985f1976
commit 846eca59d2
10 changed files with 577 additions and 6 deletions
+55 -6
View File
@@ -1,12 +1,61 @@
# devops-guide
# DevOps Guide
>DevOps is a set of practices that integrates software development and operations to deliver changes faster, more reliably, and with continuous feedback.
> DevOps is the practice of reducing friction between writing code and running it reliably in production — giving you **reproducibility**, **fast feedback**, and **confidence at scale**.
![](img/workbenches.webp)
---------
---
## Getting started
## Problem → Tool Category
- install cli tooling: https://git.roxautomation.com/sjev/cli-tools
- python cli template: https://git.roxautomation.com/sjev/python-cli-template
| Problem | Tool Category |
|---|---|
| Code gets lost, no change history | [Version Control](docs/version-control.md) |
| "Works on my machine" | [Containerization](docs/containerization.md) |
| Dependency conflicts between projects | [Package Management](docs/package-management.md) |
| Style drift, bugs slip through review | [Linting & Formatting](docs/linting-formatting.md) |
| Type errors discovered at runtime | [Type Checking](docs/type-checking.md) |
| Regressions go undetected | [Testing](docs/testing.md) |
| Manual, repetitive dev commands | [Task Automation](docs/task-automation.md) |
| Nobody knows how to run the project | [Documentation](docs/documentation.md) |
| Slow, manual deployments | [CI/CD](docs/ci-cd.md) |
---
## Tool Matrix by Language
### Language-Agnostic
| Category | Tool(s) |
|---|---|
| Version control | Git + GitHub / GitLab / Gitea |
| Containerization | Docker |
| CI/CD platform | GitHub Actions, GitLab CI, Gitea Actions, Jenkins |
### Language-Specific
| Category | Python | JavaScript | Go | C++ |
|---|---|---|---|---|
| **Package management** | uv, pip, poetry | npm, pnpm, yarn | go mod | conan, vcpkg, cmake |
| **Linting / formatting** | ruff, pylint, flake8 | eslint, prettier, biome | golangci-lint, gofmt | clang-tidy, clang-format |
| **Type checking** | mypy, pyright | tsc, flow | built-in | built-in + clang-tidy |
| **Testing** | pytest, hypothesis | vitest, jest, mocha | testing (stdlib), testify | googletest, catch2 |
| **Task automation** | invoke, make, tox | npm scripts, turbo, nx | make, mage, task | cmake, make, ninja |
| **Docs** | mkdocs-material, sphinx | VitePress, Docusaurus | pkgsite, godoc | doxygen, sphinx |
---
## Minimal "Good Enough" Stack
If you strip it to essentials:
| Tool | Purpose |
|---|---|
| `git` + GitHub | History + collaboration |
| `uv` | Env + dependencies |
| `ruff` + `mypy` | Correctness |
| `pytest` | Confidence |
| `invoke` | Dev UX |
| Docker | Reproducibility |
Add a tool only when you feel the pain it fixes.