DevOps

Docker и контейнеризация

4 вопросов

Dockerfile — инструкции сборки одного образа. docker-compose.yml — оркестрация нескольких контейнеров (сети, тома, переменные).

Сборка в одном этапе (build), запуск в другом (runtime). Уменьшает размер образа, исключая компиляторы/build-зависимости.

FROM python:3.11 as builder
RUN pip install -r requirements.txt
FROM python:3.11-slim
COPY --from=builder /app/dist /app

stop — SIGTERM (10 сек на graceful shutdown). kill — SIGKILL (немедленно).

Исключает файлы из контекста сборки (.git, node_modules, *.pyc). Ускоряет docker build.

Kubernetes

4 вопросов

Deployment — stateless приложения (поды взаимозаменяемы). StatefulSet — stateful (PostgreSQL, Redis) с порядком создания/удаления.

Автоматически масштабирует Deployment по CPU/Memory или кастомным метрикам Prometheus.

kubectl autoscale deployment app --cpu-percent=70 --min=2 --max=10

ClusterIP — внутри кластера. NodePort — через порт ноды. LoadBalancer — внешний LB от облака.

Контейнер, который запускается ДО основного. Ждет готовности DB, миграций, секретов.

CI/CD

3 вопросов

GitHub Actions — events-driven (push, PR, release). GitLab CI — pipeline-based (.gitlab-ci.yml с stages).

Инфраструктура/приложения как Git-репозитории. ArgoCD/Flux синхронизируют состояние кластера с Git.

Blue-Green — 100% трафик на новую версию. Canary — постепенный rollout (5% → 20% → 100%).

Облачные провайдеры

2 вопросов

Managed Kubernetes: AWS EKS, Google GKE, Azure AKS. Не нужно управлять control plane.

Lambda — pay-per-request, cold starts. Fargate — контейнеры без EC2, длинные задачи.

Продвинутые темы

3 вопросов

Extended Berkeley Packet Filter — kernel-level observability без изменения ядра. Cilium, Falco, Pixie.

Chaos Monkey, Gremlin — случайные сбои. Steady State hypothesis, blast radius.

Wasm-runtimes (SpinKube) — легкие альтернативы контейнерам. Быстрее cold start.

Навигация