Рубрики
Uncategorized

Переход на терраформ: ретроспектива

Резюме: в 15Five мы переехали в Terraform за 8 месяцев с командой из 3 человек. Это пошло Smoo … Tagged с DevOps, Terraform, AWS.

Резюме:

В 15five Мы мигрировали в Terraform за 8 месяцев с командой из 3 человек. Это прошло гладко и дало нам больше уверенности в нашей инфраструктуре AWS. Когда дело дошло до настройки нового VPC для клиента, часы, которые мы инвестировали, вернулись к нам в скорой и простой настройке, процесс, который был бы огромной болью, если бы мы сделали это вручную.

Статистика:

  • Строки кода: ~ 16 000
  • Количество коммитов: 903
  • PR: 514
  • Команда: Пол (главный инженер), Джеймс (менеджер Devops), Калеб (SRE)

Временная шкала:

2019.09 — Я впервые играл с Terraform в хакатоне компании. 2019.09 — Я использовал Terraform, чтобы сделать свои первые изменения AWS. 2019.11 — Джеймс присоединяется к команде и начинает работать над Terraform. Repo разделен на основную репо и Terraform Repo для наших различных модулей. На этом этапе у нас есть только два модуля. CI настроен. 2020.01 — Мы перенесли в нашу первую среду 2020.04.28 — Попытка миграции среды предварительного просмотра 1 2020.04.29 — Попытка миграции предварительного просмотра 2 ✔ 2020.05 — Постановка миграции 2020.06 — Одиночная клиентская миграция 2020.06 — Производственная миграция 2020.06

Вынос:

Калеб:

Болевые точки:

  • Наличие двух разных репо всего немного неловко. Я чувствую, что наличие монорепо или более CI было бы лучше, так как отсутствие обратной связи CI при изменении кода в модулях репо замедлило ситуацию. Мы, вероятно, переедем в Monorepo в будущем.

Что прошло хорошо:

  • Хакатоны хороши для вдохновляющих изменений.
  • Контрольные списки великолепны. Просто приятно проверить вещи, например. Это также заставляет вас думать обо всех предметах, которые можно сделать заранее, и убедится, что вы ничего не забываете. Больницы использовали контрольные списки для массового снижения уровня инфекции, Хотя результаты зависят от того, насколько эффективно они используются Анкет
  • Terraform отлично подходит для глубокого понимания всех услуг, связанных с вашей инфраструктурой. Описывая свою инфраструктуру в коде, вы разрабатываете ментальную модель всех задействованных компонентов, и у вас есть письменная запись о крошечных настройках, которые обычно могут быть скрыты за некоторыми неинтуитивными значками пользовательского интерфейса.
  • Мигрирование производства прошло довольно гладко, это стоит своего веса.

Джеймс:

Болевые точки:

  • Монолитная структура модулей Terraform приводит к очень большим артефактам — она предпочтительнее разбить его на несколько репозиториев GIT, один репо для каждого модуля.

Что прошло хорошо:

  • Мы смогли обновить Terraform без инцидента.
  • Мы смогли развиться на 30-40% быстрее из-за небольшой гибкой команды без чрезмерно ограничительной бюрократии.

Павел:

Болевые точки

  • Мы должны были прикрепить версию Terraform в контроле версий, чтобы предотвратить случайное обновление и держать всех в одной и той же версии (в итоге мы сделали это позже с TFENV и .Terraform-версия
  • Ни одно из решений для обращения с несколькими условиями не казалось идеальным, но Джеймс в итоге решил это с Terragrunt, как только он пришел на борт.

Что прошло хорошо?

  • Это было сильным облегчением, чтобы терраформ обрабатывал настройку окружающей среды. Вам просто нужно было нажать кнопку, уйти, и к тому времени, когда вы вернетесь, инфраструктура будет готова.
  • Использование Terragrunt было очень чистым способом настройки инфраструктуры во многих средах.
  • Он проверил множество коробок для соблюдения и аварийного восстановления.

Что мы могли сделать лучше?

  • Оглядываясь назад, я мог бы сдать больше работы продукта другим людям, чтобы иметь больше времени, чтобы написать Terraform и обеспечить передовую практику.
  • У нас могли быть ночные тестовые пробежки — раскручивать и разорвать инфраструктуру в другом регионе, чтобы быть уверенным, что всегда будет работать. Метрики, такие как время и деньги, потраченные на настройку, были бы полезны. Чем больше метрик, тем лучше.

Есть другие мысли?

  • Хотел бы я знать, что обертки Terraform, такие как Палуми были вариантом. Тем не менее, это, вероятно, было бы излишним в то время.
  • Я обнаружил, что это экономит больше времени для сначала настройки облачной службы с Terraform, а затем проверяет пользовательский интерфейс. Сначала делать это в пользовательском интерфейсе, а затем перевести это на Terraform, медленнее.

Оригинал: «https://dev.to/15five/migrating-to-terraform-a-retrospective-4cko»