Инфраструктура и деплой

Урок 7.6 — Инфраструктура и деплой

Что такое инфраструктура

Инфраструктура — это всё, на чём работает приложение: серверы, сети, операционные системы, хранилища файлов. Раньше компании покупали физические серверы. Сегодня большинство использует облако.

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

Облако — это арендуемые серверы и сервисы. Три крупнейших провайдера:

ПровайдерСокращениеИзвестные продукты
Amazon Web ServicesAWSEC2 (серверы), S3 (хранилище), RDS (БД)
Google Cloud PlatformGCPGKE (Kubernetes), BigQuery
Microsoft AzureAzureActive Directory интеграции

Тестировщику не нужно знать облако в деталях, но важно понимать: когда говорят "задеплоили на AWS" — это значит код запущен на удалённых серверах Amazon.

Docker: контейнеры

Docker позволяет упаковать приложение вместе с его зависимостями (библиотеки, версия Node.js, конфиги) в изолированный контейнер.

Зачем это нужно:

  • Приложение работает одинаково на любом сервере — "у меня на компе работало" больше не оправдание
  • Легко поднять несколько независимых сервисов
  • Быстрое развёртывание на новых серверах

Для тестировщика Docker означает: тестовое окружение воспроизводимо и идентично продакшену.

CI/CD: автоматический конвейер

CI/CD Pipeline: Commit → Build → Tests → Deploy

CI (Continuous Integration) — Непрерывная интеграция: Каждый раз, когда разработчик отправляет код, автоматически запускаются проверки: сборка, линтер, автотесты. Если что-то сломалось — пайплайн "краснеет" и код не идёт дальше.

CD (Continuous Deployment/Delivery) — Непрерывная доставка: После успешных проверок код автоматически (или полуавтоматически) деплоится на сервер.

Как тестировщик участвует в CI/CD:

  • Твои автотесты (если ты их пишешь) запускаются в пайплайне — ты "страж ворот"
  • Если тесты упали, деплой не происходит
  • Ты можешь смотреть логи пайплайна, чтобы понять, что и где сломалось

Git: контроль версий

Git — система, которая отслеживает изменения в коде. Каждое изменение — это коммит с автором, временем и описанием.

Что важно знать тестировщику:

ТерминЧто это
Ветка (branch)Параллельная версия кода для разработки отдельной фичи
Коммит (commit)Зафиксированное изменение с описанием
Мёрж (merge)Объединение ветки с основной веткой
PR / MRPull Request / Merge Request — запрос на проверку кода перед мёржем

Тестировщик часто тестирует конкретную ветку (feature branch) до того, как она попала в основную.

Окружения (environments)

Приложение существует в нескольких параллельных копиях:

ОкружениеКто используетДанные
Development (dev)РазработчикиТестовые, постоянно меняются
Testing (QA)ТестировщикиТестовые, управляемые
StagingПредфинальная проверкаМаксимально близкие к боевым
Production (prod)Реальные пользователиБоевые данные

Баг, воспроизводимый на staging, но не на prod (или наоборот), часто связан с разницей в конфигурации или данных окружений.

Что мы запомним

  • Облако (AWS, GCP, Azure) — арендуемые серверы, на которых работает продакшен
  • Docker — контейнеры обеспечивают одинаковую среду на всех серверах
  • CI/CD — автоматический конвейер: тесты → сборка → деплой; тестировщик участвует как "страж"
  • Git — контроль версий; тестировщик тестирует конкретные ветки до мёржа
  • 4 окружения: dev → testing → staging → production; различие окружений объясняет "баг не воспроизводится"

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике