#design-patterns #module #terraform #cloud #infrastructure-as-code
Вопрос:
Этот вопрос не ограничивается каким-либо инструментом, это общий вопрос.
Предположим, что у нас есть следующие компоненты в простом проекте. Типичное трехуровневое приложение.
- 3 Изображения докера API
- 1 Компонент пользовательского интерфейса
- 1 База данных
Я разработал свои модули Терраформирования, пропорциональные этому. Это означает, что 3 модуля терраформирования 1 модуль для создания кластера. API, пользовательский интерфейс, база данных. Например,
- cluster.tf — Создает кластер
- api1.tf — Создает приложение и другие необходимые ресурсы для приложения
- api2.tf
- api3.tf
- ui.tf — Создает CDN, ресурсы для обслуживания статических файлов
- database.tf — Создает управляемые экземпляры базы данных
Если мы добавим еще одно приложение API, я буду api4.tf. Легче масштабировать.
Является ли это рекомендуемым шаблоном?
Другой способ сделать это -,
- compute.tf — Создает кластер и все 3 приложения
- network.tf — Создает подсети и т. Д
- storage.tf — Создает том хранилища, экземпляр базы данных
- authentication.tf
Проблема, которую я вижу со вторым подходом, заключается в том, что он не будет отражать компоненты моего проекта.
Есть какие-нибудь предложения?