40 lines
3.5 KiB
Markdown
40 lines
3.5 KiB
Markdown
---
|
||
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) -->
|
||
|