# 03 — DevOps-основа

← [Главная](../README.md)

## Цель

Освоить **фундамент DevOps**: Linux shell, контейнеры, Kubernetes на уровне «уверенный пользователь», CI/CD pipeline и Infrastructure as Code — база для встраивания security.

## Предварительно

- [02 — Минимум разработки](../02-minimum-razrabotki/README.md)

## Время

**40–60 часов** (раздел целиком с lab)

---

## Оглавление раздела

| Страница | Тема |
|----------|------|
| [Linux и shell](linux-i-shell.md) | CLI, файлы, процессы, SSH |
| [Docker и образы](docker-i-obrazy.md) | Container, Dockerfile, registry |
| [Kubernetes — введение](kubernetes-vvedenie.md) | Pod, Deployment, Service, Ingress |
| [CI/CD pipeline](ci-cd-pipeline.md) | Stages, YAML, artifacts |
| [Terraform и GitOps](terraform-i-gitops.md) | IaC, state, Argo CD / Flux |

---

## Зачем DevSecOps без DevOps не работает

Security tools **живут в pipeline и кластере**:

- Secret scan — **шаг CI**
- Image scan — **после docker build**
- Policy — **admission controller в K8s**
- Compliance — **Terraform plan** + drift detection

Без понимания DevOps вы настраиваете «чёрный ящик».

---

## Lab-окружение (рекомендация)

| Компонент | Вариант |
|-----------|---------|
| OS | Ubuntu 22.04 VM или WSL2 |
| Containers | Docker Desktop / Podman |
| Kubernetes | minikube или kind |
| CI | GitLab CI (free) или GitHub Actions |
| IaC | Terraform + local state (для начала) |

**Правило:** отдельный cloud account / project, billing alerts, **no prod keys**.

---

## Прогрессия навыков

```
Week 1-2:  Linux (ежедневно 30 мин команд)
Week 3-4:  Docker (build, run, compose)
Week 5-6:  K8s (deploy учебного app)
Week 7-8:  CI/CD (lint → test → build → scan)
Week 9-10: Terraform (VPC mock + S3 bucket lab)
```

---

## Связь с безопасностью (preview)

| DevOps тема | Security hook |
|-------------|---------------|
| Linux | Hardening, permissions, auditd |
| Docker | Non-root, minimal base, scan |
| K8s | RBAC, NetworkPolicy, PSA |
| CI/CD | SAST gate, signed images |
| Terraform | No public SG, encryption |

Детали — [04 — Фундамент безопасности](../04-fundament-bezopasnosti/README.md) и разделы 05–06.

---

## Самопроверка

1. Можете ли вы зайти по SSH и найти файл по `grep`?
2. Объясните разницу image vs container?
3. Что делает `kubectl get pods -A`?
4. Назовите 3 stage типичного pipeline.

---

## Дальше

→ [Linux и shell](linux-i-shell.md)
