После того как код написан, его нужно выложить на сервера и запустить. Этот процесс называется деплоем и часто скрыт от программистов за кнопками, командами и конкретными людьми. Организация продакшена, деплой, масштабирование, мониторинг, все это часто остается знанием, которое доступно только администраторам или избранным. Попробуем это исправить.
Хорошо организованный продакшен и деплой работают по принципу одной кнопки. Всё настолько автоматизировано, что одной команды достаточно как для полной настройки инфраструктуры, так и для выполнения деплоя. Такой подход называется инфраструктура как код. И здесь мы научимся его применять.
Работа с продакшеном состоит из трёх больших стадий, которые постоянно повторяются:
Под подготовкой понимают как создание серверов, так и их настройку. Создание серверов рассматривается в курсе посвященном Terraform, а здесь мы говорим про их настройку. В этом нам поможет Ansible – инструмент, который позволяет с помощью yaml-файлов описать то, что нужно установить на сервер.
Процесс разворачивания кода на сервер зависит от многих факторов, сколько у нас машин, на чем написан проект, какая подключена база данных и так далее. Из-за этого описание деплоя будет меняться от проекта к проекту. Однако, принципы, по которым происходит деплой - остаются примерно одними и теми же: сборка проекта, миграции БД, Zero Downtime Deploy и тому подобное.
Здесь мы будем рассматривать деплой с помощью Ansible без докера и с докером. Деплой через Kubernetes рассматривается в своем собственном курсе.
После того как новая версия сайта заработала, наступает следующий этап – контроль работоспособности. Для этого используются системы мониторинга, которые следят за тем как работает приложение, как распределяется нагрузка и какой у нас запас прочности. На мониторинг настраиваются алерты, которые срабатывают при возникновении ошибок или потенциально опасных ситуациях. В качестве мониторинга мы возьмем сервис DataDog, а для отслеживания ошибок внутри приложения Sentry.
Для понимания содержимого курса нужно иметь хотя бы минимальный опыт программирования. В курсе дается не только теоретическая подготовка, но и выполняется реальная настройка машин и выполнение деплоя. Все это делается с помощью Ansible. Еще полезно знать про Github Actions, Docker и Docker Compose. По всем этим технологиям и подходам на Хекслете есть соответствующие курсы.
Для экспериментов в этом курсе мы рекомендуем Digital Ocean (DO). Зарегистрировавшись по ссылке, вы получите 25$ на счёт, которых должно хватить для экспериментов.
Если сервис для вас не доступен, закончился кредит, воспользуйтесь другими сервисами, например Linode или Yandex Cloud, если вы из РФ.
hexlet program download devops-for-programmers production
Зарегистрируйтесь на Digital Ocean. Если сервис для вас не доступен, закончился кредит, воспользуйтесь другими сервисами, например Linode или Yandex Cloud, если вы из РФ.
Создайте сервер на Ubuntu и установите на него интерпретатор языка, с которым обычно работаете
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.
Наши выпускники работают в компаниях:
Зарегистрируйтесь или войдите в свой аккаунт
Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу