Files
digital-garden/dev/architecture/Infrastructure as Code.md
2025-01-11 10:37:51 +03:00

40 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
- IaC
tags:
- maturity/🌱
date: 2024-12-21
---
Infrastructure as Code (IaC) — это практика управления, конфигурирования и автоматизации вычислительных ресурсов (серверов, сетей, баз данных и т.д.) с использованием программного кода. Она позволяет инфраструктуре быть определённой в виде описания, которое можно сохранить в системе контроля версий, автоматически применять и изменять.
Пример: создание сервера не вручную через облачный интерфейс, а с использованием скрипта, который можно запустить и повторить в любой момент.
**Принципы**
- **Декларативность или императивность.** Инфраструктура описывается либо в виде желаемого состояния (декларативный подход), либо через последовательность команд (императивный подход).
- **Контроль версий.** Код инфраструктуры хранится в системах контроля версий (например, Git), что позволяет отслеживать изменения и возвращаться к предыдущим состояниям.
- [[Идемпотентность]]. Повторное выполнение кода приводит к одному и тому же результату, что важно для стабильности.
**Преимущества**
- **Стандартизация.** Все ресурсы управляются одинаково, снижается риск ошибок.
- **Ускорение разработки.** Быстрое развёртывание и настройка инфраструктуры.
- [[Масштабирование информационной системы|Масштабируемость]]. Удобное управление инфраструктурой даже в крупных системах.
- Упрощение [[highload/Disaster recovery|восстановления]]. Код инфраструктуры позволяет восстановить её после сбоев.
**Недостатки**
- **Кривая обучения.** Требуется время на изучение инструментов и практик IaC.
- **Сложность внедрения.** Для небольших команд или простых систем реализация IaC может быть излишней.
- **Необходимость дисциплины.** Некорректное управление кодом может привести к нестабильности.
***
## Мета информация
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
**Родитель**:: [[Архитектурная концепция]]
**Источник**::
**Создана**:: [[2024-12-21]]
**Автор**::
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->