
Cloud & DevOps: от локального приложения до надёжного сервиса Урок 6 из 24
CloudLab: сервис, среда и критерии готовности
Запускаем сквозной сервис, исследуем его endpoints и превращаем расплывчатое «работает» в проверяемый контракт.
Текст переведён с помощью ИИ.
Этот урок начинается с нуля. Незнакомое слово здесь не считается вашим пробелом: мы сначала создадим образ, затем дадим точное значение и только потом применим его.
Где мы находимся
Полётное повторение. В прошлом уроке была опора имя → DNS → IP → TCP:порт → TLS → HTTP → ответ. Не подглядывая, назовите её четыре звена и только затем сравните с записью.
Результат урока
Запускаем сквозной сервис, исследуем его endpoints и превращаем расплывчатое «работает» в проверяемый контракт. Не переходите дальше, пока не можете объяснить, что проверяет каждая команда и какой отказ она обнаруживает.
Сначала знакомый образ
Кафе может быть открыто, но кухня ещё не готова принимать заказ: повар пришёл, а печь прогревается. Вывеска «открыто» похожа на проверку жизни процесса, готовая кухня — на readiness, а выданное блюдо — на реальный пользовательский результат. Одной зелёной лампы недостаточно.
Аналогия помогает начать рассуждение, но не заменяет устройство технологии. Ниже мы уточним каждое слово.
Опорный сигнал урока
человек → адрес → сервис → ответ; жив ≠ готов ≠ полезен
Прочитайте цепочку слева направо. Она отвечает не на вопрос «какую команду запомнить», а на вопрос «почему следующий шаг следует из предыдущего».
Новые слова простыми словами
- Сервис — Программа, которая выполняет полезную работу и доступна через понятный вход.
- Endpoint — Конкретный адрес внутри сервиса, например
/healthz. - Health — Признак того, что процесс существует и способен ответить.
- Readiness — Признак готовности принимать настоящий пользовательский трафик.
Разбираем без спешки
CloudLab хранит заметки и специально открывает разные сигналы: /healthz говорит, что процесс жив, /readyz — что он готов принимать трафик, /metrics — сколько запросов увидел. Один HTTP 200 на главной странице ещё не доказывает сохранность данных, готовность зависимости или корректное завершение.
Сейчас не нужно запоминать формулировку дословно. Найдите в ней причинную связь и привяжите её к опорному сигналу выше.
Сначала предскажите результат
До запуска ответьте на бумаге: что должно измениться, что должно остаться прежним и какой вывод команды подтвердит ваш прогноз? Даже неверный прогноз полезен, если после опыта вы можете объяснить расхождение.
Опыт маленькими шагами
Выполните команды из корня course/cloud-devops-lab. Команды рассчитаны на учебную среду. Перед командой, меняющей сервер или данные, прочитайте её целиком и проверьте текущий каталог. Запускайте блок по одной смысловой группе. После каждой остановитесь и сопоставьте результат со своим прогнозом.
go test ./...
CLOUDLAB_ADDR=:8080 go run ./cmd/cloudlab &
pid=$!
trap 'kill "$pid" 2>/dev/null || true' EXIT
sleep 1
curl -fsS http://127.0.0.1:8080/healthz
curl -fsS http://127.0.0.1:8080/metrics
Что именно делает этот опыт
Сначала тесты проверяют известные правила. Затем сервис запускается в фоне, а его номер сохраняется в pid. trap обещает остановить процесс даже при раннем выходе. curl играет роль посетителя и спрашивает два разных адреса.
Что должно получиться
- Тесты проходят.
- Health endpoint отвечает без HTML.
- Счётчик запросов увеличивается после повторного curl.
Соберите целое по опорной схеме
Проведите пальцем или карандашом по четырём блокам и расскажите весь урок одним связным объяснением.
Воспроизведите без подсказки
- Закройте схему и нарисуйте четыре блока по памяти.
- Объясните каждый переход словами «потому что».
- Дайте определение одному новому термину, не повторяя текст дословно.
- Назовите один сигнал, который доказывает результат.
Найдите и исправьте ошибку
Ошибка: «Если /healthz вернул 200, данные точно сохраняются и весь сервис полезен». Исправление: health доказывает только узкое условие, указанное в его контракте.
Задание
Теперь соберите тот же смысл самостоятельно. Можно смотреть на опорную схему; цель — не экзамен на память, а воспроизводимый результат.
Обязательное. Напишите POSIX sh-проверку, которая с curl -fsS проверяет /healthz и /readyz, а затем печатает cloudlab ready. Отправьте только команды или скрипт POSIX sh без реальных ключей и токенов.
Критерии готовности
- Вы понимаете каждую запускаемую строку.
- Повторный запуск даёт ожидаемый результат или безопасно объяснённое отличие.
- В выводе нет настоящих ключей, токенов и паролей.
- Вы можете показать факт, который подтверждает успех.
Если проверка не прошла, зафиксируйте ожидаемое и фактическое, вернитесь к одному разорванному звену опоры и повторите. Ошибка не отнимает у вас право продолжать обучение.
По желанию. Запишите один возможный отказ и сигнал, по которому вы его заметите.
Открытая перспектива
Следующий урок добавит новую опору: Контейнер: процесс с границами, а не маленькая VM.
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.