add knowledge
This commit is contained in:
@@ -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**.
|
||||
|
||||

|
||||
|
||||
---------
|
||||
---
|
||||
|
||||
## 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.
|
||||
|
||||
Reference in New Issue
Block a user