В этой главе мы получим базовые навыки, которые необходимы для доставки приложения в Kubernetes:
- Выполним контейнеризацию приложения: опишем конфигурацию сборки и соберём контейнер.
- Выполним развёртывание приложения: сконфигурируем архитектуру приложения, описав компоненты и их связи, и произведём выкат.
Все действия будут выполняться на локальной машине без использования CI-системы.
Для того, чтобы начать, необходимо установить werf локально.
Приложение
В этой главе мы будем рассматривать простейшее приложение на Ruby on Rails. Оно будет предоставлять примитивное HTTP REST API в формате JSON, состоящее из CRUD-операций для одной сущности (/api/labels
). В качестве базы данных будет использоваться SQLite. Ключевые настройки указываются с помощью переменных окружения (в нашем случае это путь для хранения SQLite, переменная SQLITE_FILE
).
Для упрощения задачи, мы не будем обеспечивать сохранность данных в SQLite: при перевыкате приложения данные будут удаляться. Вопросы хранения данных будут рассмотрены в главе “Полноценные приложения”.