Программы и системы как код. Построение логических абстракций с помощью Terraform. Инфраструктурная платформа
Типовой стенд продукта состоит из 40 различных программ, для корректной работы системы все программы должны быть корректно настроены, соединены между собой и внешними системами. У типовой инсталляции 7 стендов с 4 различными типовыми конфигурациями и интеграциями.
Добавление новой программы в такую инсталляцию занимало 1-5 дней и требовало участие системного инженера, изменение зависимой конфигурации так же требовало 1-4 часа системного инженера.
Мы построили первую систему абстракции на bash&python, которая позволила логически описать зависимости в системах и снизить время участия системного инженера до 10-15 минут для большого круга задач и расширили участие разработчиков в описании абстракций их программ.
Это повысило скорость работы, но все равно подразумевало участие системных инженеров в процессе разработки и все равно оставляло бутылочное горлышко, ограничивающее дальнейший рост количества сервисов и вариантов инсталляций.
Поэтому мы разработали новую систему абстракции и управления конфигурацией с помощью Terraform, которая позволила строить большие многовариантные системы основываясь на логических описаниях самих программ, которые хранятся вместе с кодом программы. Эта система позволила нам исключить прямое участие системного инженера из процесса внедрения и доставки новых компонентов системы до всех целевых инсталляций и стендов, превратив ее в рутинный автоматический процесс.