Проект модуля #1

Деплой Docker-образов с помощью Ansible

Ansible

Автоматизация раскатывания контейнеризированного приложения на кластер машин в облаке

2-4
недели

Цель

Создание веб-сервиса — это не только программирование, код и тестирование. Когда приложение готово, разработчики переходят на следующий этап: делают приложение доступным для пользователей. Для этого они разворачивают окружение и настраивают инфраструктуру: веб-серверы, кластеры баз данных, балансировщики нагрузки и сервисы мониторинга.

Часто инфраструктура сайта располагается на одном сервере. Обычно новый сервер содержит только операционную систему и предустановленные программы. Чтобы запустить приложение, нужно пройти еще много шагов: выбрать стек технологий, подобрать необходимые дополнительные пакеты и установить их.

Эту сложную задачу можно выполнить вручную, если речь идет об одном сервере. Но в сложных ситуациях количество серверов измеряется тысячами. Тогда не обойтись без инструментов автоматизации — Docker и Ansible. Они автоматизируют настройку и деплой серверов, сводя всю работу к запуску одной команды в терминале. С помощью Ansible вы сможете настраивать несколько серверов одновременно, управлять конфигурацией через код, отслеживать изменения через git и подключать других членов команды к управлению инфраструктурой.

Описание

Чтобы выполнить этот проект, студенты создают инфраструктуру на облачном хостинге (DigitalOcean, Linode, Yandex Cloud) — это единственное, что придется сделать руками. Дальше вы будете настраивать серверы и деплоить приложения автоматически только с помощью Ansible. Особое внимание в проекте мы уделили автоматизации деплоя на созданной инфраструктуре. В качестве приложения используется образ с Redmine. Готовый проект будет доступен на собственном домене в интернете.

Сколько стоят проекты?

Проекты входят в стоимость обучения на любом плане: самостоятельном, групповом и индивидуальном. Дополнительно платить не нужно.

Зачем проходить проекты?

Проекты дают опыт разработки в реальной среде. Проходите каждый проект сразу после изучения курсов, которые стоят в учебном плане перед ним, — это отличный способ глубже разобраться в материале.

Проекты — портфолио программиста. Их код останется в вашем аккаунте на GitHub и будет преимуществом при поиске работы.

Чтобы узнать о том, что такое проекты и в чём их польза, прочитайте нашу статью «Анатомия проектов Хекслета».

Что делать, если возникли трудности во время выполнения проекта?

Задавайте вопросы в разделе «Обсуждение» на странице шага, на котором возникли трудности, или вашему наставнику. Изучите вопросы других студентов в «Обсуждениях»: там собрана большая база знаний, ей можно и нужно пользоваться.

Кто проверяет проекты?

Автоматизированные тесты и линтер. В групповом и индивидуальном форматах наставник дополнительно проверит то, что тестами проверить невозможно (архитектуру проекта, правильность именования, удачность решений), и проведёт код-ревью, чтобы сделать проект ещё качественнее.

У меня другой вопрос

Нажмите на виджет в правом нижнем углу экрана и поищите ответ в нашей справке. Или сразу пишите на support@hexlet.io — вам ответит живой человек из команды Хекслета.