В этой главе мы получим базовые навыки, которые необходимы для доставки приложения в Kubernetes:

  • Выполним контейнеризацию приложения: опишем конфигурацию сборки и соберём контейнер.
  • Выполним развёртывание приложения: сконфигурируем архитектуру приложения, описав компоненты и их связи, и произведём выкат.

Все действия будут выполняться на локальной машине без использования CI-системы.

Для того, чтобы начать, необходимо установить werf локально.

Приложение

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

Для упрощения задачи, мы не будем обеспечивать сохранность данных в SQLite: при перевыкате приложения данные будут удаляться. Вопросы хранения данных будут рассмотрены в главе “Полноценные приложения”.