Files
devops-guide/README.md
T
Jev Kuznetsov 846eca59d2 add knowledge
2026-04-23 12:06:00 +02:00

62 lines
2.2 KiB
Markdown

# DevOps Guide
> 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)
---
## Problem → Tool Category
| 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.