Инфраструктура как код
Узнайте, как подход «инфраструктура как код» позволяет декларативно описывать облачные ресурсы для повторяемого автоматического развёртывания с контролем версий.
«Инфраструктура как код» — бесплатный урок System Design Basics for Backend Developers на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения System Design Basics for Backend Developers, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс System Design Basics for Backend Developers содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
From Clicking to Code
Manually clicking through a cloud console to create servers and networks is slow, error-prone, and impossible to reproduce. Infrastructure as Code (IaC) defines your infrastructure in files you can version, review, and re-run.
Why IaC Matters
IaC brings software engineering discipline to infrastructure:
- Version control and code review for changes
- Reproducible environments (dev, staging, prod identical)
- Automated, fast provisioning and teardown
- Self-documenting infrastructure
Declarative vs Imperative
IaC tools are usually declarative: you describe the desired end state and the tool figures out how to get there. Imperative scripts instead list the exact steps. Declarative is easier to reason about and converge to.
A Declarative Resource
Here is a declarative definition of a virtual machine. You state what should exist; the tool creates or updates it to match.
resource "aws_instance" "web" {
ami = "ami-123456"
instance_type = "t3.micro"
tags = {
Name = "web-server"
}
}Idempotency
A core IaC property is idempotency: applying the same definition repeatedly yields the same result. If the resource already matches, nothing changes. This makes re-runs safe.
State and Drift
Many tools track a state of what they manage. When reality diverges — someone changes a resource by hand — that is drift. The tool detects drift and can reconcile infrastructure back to the declared definition.
Plan Before Apply
Good IaC workflows preview changes before applying them. A plan step shows exactly what will be created, changed, or destroyed, so you catch a destructive change in review rather than in production.
$ terraform plan
+ aws_instance.web will be created
~ aws_security_group.sg will be updated
- aws_instance.old will be destroyedProvisioning vs Configuration
Two related but distinct jobs:
- Provisioning creates infrastructure (Terraform, CloudFormation, Pulumi)
- Configuration management sets up software on existing machines (Ansible, Chef, Puppet)
Containers and immutable images blur this line.
Modules and Reuse
Avoid copy-paste by packaging infrastructure into reusable modules with input variables. One well-tested module can stamp out identical, parameterized environments for many teams.
module "web" {
source = "./modules/app"
instance_type = "t3.small"
env = "production"
}IaC and Cloud-Native CI/CD
IaC fits naturally into pipelines: a commit triggers a plan, review approves it, and the pipeline applies it. Combined with containers and Kubernetes manifests, the entire stack — network, cluster, and apps — becomes reproducible from code.
Best Practices
Keep IaC healthy: store state remotely and locked, never hardcode secrets, review every plan, keep modules small, and treat infrastructure code exactly like application code — tested and reviewed.
Quick Check
Test your understanding of Infrastructure as Code.
Recap
You learned the foundations of Infrastructure as Code:
- Declarative definitions describe desired state idempotently
- State tracking detects and reconciles drift
- Plan before apply to preview changes safely
- Modules enable reuse; IaC integrates into CI/CD pipelines
Часто задаваемые вопросы
Урок «Инфраструктура как код» бесплатный?
Да — полный текст урока «Инфраструктура как код» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс System Design Basics for Backend Developers, подпишись на CoddyKit PRO. Курс System Design Basics for Backend Developers содержит 4 уроков всего.
Чему я научусь в уроке «Инфраструктура как код»?
Узнайте, как подход «инфраструктура как код» позволяет декларативно описывать облачные ресурсы для повторяемого автоматического развёртывания с контролем версий. Ты практикуешь System Design Basics for Backend Developers с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать System Design Basics for Backend Developers?
Предыдущий опыт не требуется. System Design Basics for Backend Developers на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Инфраструктура как код»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке System Design Basics for Backend Developers?
Да. Каждый урок System Design Basics for Backend Developers включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Бессерверные архитектуры
- Контейнеризация с Docker и K8s
- Наблюдаемость и распределённая трассировка
- Инфраструктура как код