Що таке Infrastructure as Code (IaC)?
Infrastructure as Code — підхід, за якого сервери, мережі, бази та права доступу описуються в конфігураційних файлах і створюються автоматично за цим описом, замість ручного налаштування через вебінтерфейс хмари.
Інфраструктура, зібрана руками, з часом розходиться: тестове оточення відрізняється від продакшену, а точний порядок дій памʼятає одна людина. Опис у коді прибирає цю невизначеність — оточення можна перестворити з нуля будь-якої миті.
Оскільки конфігурація — це файли, до неї застосовні всі звичні практики розробки: зберігання в Git, історія змін, код-рев'ю перед застосуванням, автоматична перевірка в CI/CD. Інструменти — Terraform, Ansible, Pulumi та аналоги від хмарних провайдерів.
Повʼязані терміни
Terraform — інструмент, який створює хмарну інфраструктуру за описом у файлах конфігурації. Ви вказуєте, які ресурси мають існувати, а Terraform сам обчислює, що створити, змінити чи видалити, щоб привести хмару до цього стану.
DevOpsDevOps — підхід до розробки, у якому створення програми та її експлуатація обʼєднані в один процес: та сама команда відповідає і за код, і за те, як він збирається, розгортається та працює на серверах. Мета — випускати зміни часто, швидко й безпечно.
CI/CDCI/CD — автоматичний конвеєр, через який проходить кожна зміна коду: збірка, запуск тестів і доставка готової версії на сервери. Розробник надсилає код у репозиторій, а все інше відбувається без ручних дій.
Cloud ComputingХмарні технології — оренда обчислювальних ресурсів у провайдера замість купівлі власних серверів. Компанія бере потрібні потужності, бази та сервіси на вимогу й платить лише за фактичне споживання.
GitGit — система контролю версій: вона зберігає історію змін проєкту, дозволяє повернутися до будь-якого попереднього стану й дає кільком розробникам працювати над одним кодом паралельно, не перезаписуючи правки одне одного.