Tech Recipe Book
My Services
  • Book
    • About the author
    • Architect
      • Algorithms
        • DB index algorithms
          • How does database indexing work
        • Neural network optimization
          • Neural Network Optimization
        • Route search
          • Road network in a database to build a route
          • Traveling Salesman Problem (TSP)
      • Architecture Frameworks
        • DODAF
        • TOGAF
        • Enterprise Architecture (EA) Tools Reviews 2023 | Gartner
      • Zero Trust
      • Billing
        • SHM billing system
      • Bots
        • Discord
        • Telegram
          • Chat GPT Telegram bot
          • Получаем статистику Telegram-канала при помощи api и python или свой tgstat с регистрацией и смс
          • Как хостить телеграм-бота (и другие скрипты на Python) на Repl.it бесплатно 24/7
          • Создание Telegram бота на PHP #1: основные понятия для работы с API
          • Создание Telegram бота на PHP #2: создание первого бота для Telegram
          • Создание Telegram бота на PHP #3: примеры отправки сообщений с кнопками в Telegram
          • Создание Telegram бота на PHP #4: отправка файлов и изображений в Telegram
          • Создание Telegram бота на PHP #5: работа с хуками
      • Business intelligence
      • Cloud Storage
        • Ceph
        • Virtual Distributed File System
      • Cryptography
        • Open Source PKI Software
        • OpenPGP
          • Email Encryption
          • Kleopatra
          • Miscellaneous Tools
          • Server side applications
      • Message broker
        • Kafka
          • Kafka UI-tools
          • Kafka streams ksqlDb
        • RabbitMQ
      • DB
        • MySQL
          • Auto sharding
          • MariaDB Zabbix monitoring
          • MySQL and MariaDB replication with Zabbix monitoring
        • Postgres
          • HA PostgreSQL with Patroni, Haproxy, Keepalived
          • Mass parallel requests - Greenplum
          • PostgreSQL cluster for development and testing
        • Vitess - Scalable. Reliable. MySQL-compatible. Cloud-native. Database.
      • Identity and Access Management (IDM)
        • FreeIPA - Identity, Policy, Audit
        • FreeIPA as an Enterprise solution
        • Keycloak
          • Keycloak HA cluster
        • Open Identity Platform
        • SSO
          • Keycloak for Java app
          • OpenAM
          • OpenIG
      • Firewall
        • nftables
      • Infrastructure As a Code
        • Ansible
        • IaC Packer Ansible Teraform
        • Installing Jenkins using terraform in Kubernetes in Yandex Cloud with letsencypt
        • Teraform Crosplan Pulumi
        • Yandex IaC solutions
      • Kubernetes
        • Installation
          • Install Kubernetes cluster
          • Deploying a Kubespray cluster to OpenStack using Terraform
          • Kube deploy in Yandex cloud
        • Frameworks
          • Deckhouse
            • LDAP authentification
            • On premise Install
            • Yandex Cloud Install
          • K3S
          • OpenShift OKD
          • RKE2
          • Rancher
            • Rancher Install
        • Auth
          • Keycloak in k8s
          • LDAP
        • GUI management Lens
        • Monitoring
          • Monitoring with Falco
          • Network monitoring
          • Nginx ingress
          • Prometheus Graphana for sample Nodejs app
          • Rsource monitoring Avito
        • Exposing services
          • Exposing Kubernetes Services
          • Cilium BGP
        • CNCF
        • Helm
          • Repositories
            • Artifact Hub | official
            • Bitnami | vmware
          • Awesome helm charts and resources
          • Essential Services for Modern Organizations
          • Security and Compliance
          • Additional charts
        • Isolation
          • vcluster - Virtual Kubernetes Clusters
          • Kiosk
          • KubeArmor
          • Control Plane Hardening
          • Hierarchical namespaces
        • Security Center
          • Minesweeper
          • NeuVector by SUSE
          • SOAR in Kubernetes
          • Security Сenter for Kubernetes
        • Terraform CI security
          • Terraform plan analysis with Checkov and Bridgecrew
          • Yandex Terraform scan
        • Vulnerability management
          • Aqua
          • Sysdig
          • Kyverno
          • GitLab
          • NeuVector by SUSE
        • Image scanning
          • Snyk
          • Sysdig
          • Harbor
          • Trivy
        • Signature verification
          • Sigstore
        • Control plane security
          • Gatekeeper
            • Applying OPA Gatekeeper
          • Kyverno
            • Policy as a code. Kyverno
        • Runtime Security
          • Osquery
          • Falco
          • ClamAV
        • Network security
          • Cilium
          • Control Plane Hardening (API restriction)
          • Network policy recipes
          • Service mesh
            • Istio HA, LoadBalance, Rate limit
          • mTLS Autocert
        • Honeypot
          • Building honeypot using vcluster and Falco
        • Backup
          • Kasten K10
        • Secrets
          • Vault CSI Driver
      • Load Balance
        • Nginx
        • HAProxy
          • Proxy methods
          • HAProxy for RDP
          • Payment gateway A/B test with HAProxy
          • HAPRoxy for Percona or Galera
      • Monitoring
        • Zabbix
          • Apache Zabbix
          • Disc Quota
          • Nginx Zabbix
          • SSL certificates Zabix
          • Zabbix notifications
        • Nagios
          • Datacenter monitoring
        • Prometheus and Grafana
      • Windows
        • Sysmon enhanced Windows audit
        • Sysmon to Block Unwanted File
      • Linux
        • Rsync
        • Debian based
          • Apt-Cacher NG
          • Unattended Upgrades in Debian / Ubuntu
        • RedHat basede
          • RPM Server
        • Logs analysis
        • Build armhf qemu
      • NGFW
      • CI/CD
        • DevSecOps
          • DAST
            • Burp
              • Dastardly
            • StackHawk
            • ZAP and GitHub Actions
          • SAST
            • Checkmarx
            • OSV by Google
            • Snyk
            • SonarQube
        • GitLab Runner in Yandex Cloud
        • Dynamic Gitlab Runners in Yandex Cloud
        • GitLab runner in Kubernetes with Werf
        • Kubernetes deploy strategies
        • Kubernetes highload deploy. part 1
        • Kubernetes highload deploy. part 2
        • Kubernetes Argo Rollouts
        • Jenkins in Kubernetes
        • Ansible Semaphore
        • Image storage, scaning and signing
        • Install WireGuard with Gitlab and Terraform
        • CI/CD example fror small web app
        • Threat matrix for CI CD Pipeline
      • SIEM / SOC
        • Datadog
        • Splunk
          • Splunk — general description
        • MaxPatrol
          • MaxPatrol 8 and RedCheck Enterprise
        • QRadar IBM
        • Cloud Native Security Platform (CNAPP) - Aqua
        • OSSIM | AT&T
          • AlienVault (OSSIM) install
        • Wazuh
        • EDR
          • Cortex XDR | Palo Alto Networks
          • Cynet
          • FortiEDR | Fortinet
          • Elastic
        • Elastic
          • Install Elasticsearch, Logstash, and Kibana (Elastic Stack) on Ubuntu 22.04
          • Setting Up Elastic 8 with Kibana, Fleet, Endpoint Security, and Windows Log Collection
        • Threat Intelligence
          • MISP
          • msticpy Microsoft
          • X-Force | IBM
          • Elastic
      • VPN
        • Full-Mesh VPN fastd, tinc, VpnCloud
        • Wireguard
          • WireGuard for Internet access
          • WireGuard on MikroTik and Keenetic
          • WireGuard site to site
        • SoftEther VPN Project
        • Cisco AnyConnect client
        • OpenConnect
        • SSTP python server
      • OS hardening
        • CIS Benchmarks
      • Cloud Providers
      • OpenNebula
        • OpenNebula Edge Cloud - Open Source Cloud & Edge Computing
        • Discover OpenNebula – Open Source Cloud & Edge Computing Platform
        • OpenNebula Multi-Cloud
        • Kubernetes on OpenNebula
        • The Open Source Alternative to Nutanix
        • The Simple Alternative to OpenStack
        • OpenNebula Partner Ecosystem
      • OpenStack
        • Install manual
        • Install with DevStack
      • VM
        • Create a VHD file from a Linux disk
        • Backup / Migration
          • Coriolis
          • Proxmox Backup Server
        • oVirt
        • VMware vCenter
        • Proxmox
      • Docker
        • Container optimization
        • Ubuntu RDP container
      • LXC
        • LXD on Ubuntu 18.04
        • Install, Create and Manage LXC in Ubuntu/Debian
    • Big Data
      • OLAP data qubes
      • Storage and autoscale in Lerua
    • Machine Learning
      • Yandex YaLM 100B. GPT model
      • Kaggle Community Datasts Models
      • AI in video production
      • Image search
      • Chat bots
        • You.com
        • Chat GPT
          • Implementing GPT in NumPy
        • Jailbreak Chat
      • Coding plugins CodeWhisperer
    • Malware
      • Isiaon/Pitraix: Modern Cross-Platform Peer-to-Peer Botnet over TOR
      • theZoo A repository of LIVE malwares
    • Pentest
      • Red Team
        • MITRE ATT&CK matrix
        • C2 Frameworks
          • Brute Ratel C4
          • Cobalt Strike
          • Covenant
          • Havoc Framework
          • Merlin
          • Metasploit
          • Sillenttrinity
          • Sliver
        • Manage and report
          • Dradis Framework
          • Hexway
        • Underground
      • Social engineering
        • Social Engineer Toolkit setoolkit
      • OSINT
        • OSINT for comapny
        • Instagram fishing
      • Forensics
        • Forensics tools
      • Pentesting Methodology
      • Web
      • CI/CD Methodology
      • Cloud Methodology
        • Hacking The Cloud
      • Kubernetes Pentesting
      • Android
        • SSL Unpinning for Android applications
      • iOS
        • SSL unpinning iOS and macOS applications
      • HackBar tool
      • CyberChef Tools
      • Python virtualenv
      • IppSec - YouTube
      • Hacktricks.xyz
    • Compliance
      • 152 ФЗ. Personal data
      • PCI DSS and ГОСТ Р 57580.1-2017
      • Cloud compliance
      • ГОСТ Р 57580.1-2017 для Kubernetes
      • Kubernets as DevSecOps and NIST compliance
      • NIST SP 800-61 cyberincidece control
      • CIS Kubernetes Benchmark v1.6 - RKE2 v1.20
      • CIS Kubernetes Benchmark v1.23 - RKE2
      • Requirements for Russian Banks
      • Tools
        • Chef InSpec
        • Elastic SIEM
    • Asset management
      • CMDBuild
    • Project management
    • Incident management SRE
    • Risk management
      • IT risk management
      • BSI-Standard 200-3
    • Web Dev
      • Cookie security
      • OWASP Top 10 2021
      • Docker nginx php mysql
      • Docker tor hiddenservice nginx
      • Docker Compose wp nginx php mariadb
      • Dependency Checking
        • Nexus Analyzer
        • OWASP dependency-check
      • Yii skeeks cms
      • YiiStudio
    • Art
      • GTK Themes
      • Themes for Xfce Desktop
      • XFCE / Xubuntu Windows 95
      • Moscow events
      • Photo goods
      • Russian style gifts
    • Cryptocurrency
      • News
      • Arbitrage
      • Stocks
      • Exchange aggregators
      • Where to use
      • Prepaid cards
        • BitFree
        • Pyypl Your Money at Your Fingertips
    • IT magazines
      • WIKI and Writeups tools
        • BookStack
        • GitBook
        • MkDocs
        • Wiki.js
        • DokuWiki
    • Languages
    • Learning
      • (ISC)2
        • CISSP
      • Offensive Security
        • OSCP
        • OSEP
        • OSED
      • DevSecOps
        • Certified DevSecOps Professional (CDP)
        • Certified DevSecOps Expert (CDE)
      • Web Security Academy: PortSwigger
    • Relocation
      • London experience
      • IT visas in 2022
      • Remote work
      • Running business in UAE
    • Freenet
      • Independent online services: the philosophy of a free Internet
      • Tor Project Anonymity Online
      • I2P Anonymous Network
    • Services
      • SMS Registration
        • Registering ChatGPT in Russia
      • Local and regional eSIMs for travellers - Airalo
      • Digital busines cards
      • No KYC services and exchanges
Powered by GitBook
On this page
  • Что такое Infrastructure as Code
  • Несколько ключевых концепций IaC
  • Декларативные определения
  • Модели push и pull
  • Изменяемый и неизменяемый подход
  • Преимущества IaC
  • 1. Повторяемость развертываний
  • 2. Сложность облака
  • 3. Требования масштабирования
  • 4. Контроль версий
  • 5. Декларативная парадигма
  • 6. Возможность совместной работы
  • 7. Автоматизация процессов
  • 8. Лучшие практики
  • Зачем нужны инструменты для работы с IaC
  • Топ-3 vendor-neutral инструмента для работы с IaC
  • Crossplane
  • Pulumi
  • Автор советует

Was this helpful?

  1. Book
  2. Architect
  3. Infrastructure As a Code

Teraform Crosplan Pulumi

Last updated 1 year ago

Was this helpful?

Перевод статьи, где автор пишет о подходе Infrastructure as Code с его основными концепциями, оценивает преимущества такого подхода и сравнивает главные инструменты для работы с IaC на сегодняшний день: Terraform, Pulumi и Crossplane.

Инфраструктура как код или Infrastructure as Code (IaC) — метод, который по умолчанию стали применять современные cloud-native компании для управления облачными ресурсами.

  • вследствие растущей сложности облачной архитектуры работа вручную отнимает слишком много времени (не говоря уже о количестве ошибок);

  • ручные изменения необходимо повторять по нескольку раз, что ведет к неэффективному использованию финансов и времени команды инженеров.

Что такое Infrastructure as Code

IaC — это декларативный метод предоставления и управления ресурсами (инфраструктурой) в рамках системы контроля версий. Метод схож с тем, как обычно обрабатывают код. Некоторые из инструментов позволяют определить ресурсы, выходящие за рамки облачной инфраструктуры: приложения, конфигурации и т. д.

В дополнение к внедрению инфраструктурных компонентов приложения с помощью IaC можно внедрить соответствующие инструменты сети, мониторинга, безопасности и наблюдения. Файлы IaC часто хранятся вместе с кодом приложения в системах контроля версий.

Несколько ключевых концепций IaC

Декларативные определения

IaC декларативна по своей природе: она гарантирует, что конечное состояние системы точно соответствует заданному во входной конфигурации. Пользователи могут просто указать желаемое конечное состояние вместо императивного описания процедуры для его достижения. Это необходимо для управления несколькими ресурсами заданного масштаба в различных средах.

Есть два типичных подхода к IaC: декларативный и процедурный. Декларативное определение дает инструкции, как должна выглядеть система после завершения процесса настройки. Процедурное/императивное определение представляет собой пошаговые инструкции о том, что система должна сделать для достижения желаемой конфигурации.

Модели push и pull

Определение IaC необходимо запустить, чтобы повлиять на целевые системы и перевести их в желаемое состояние. Это достигается либо пулингом конфигураций уровнем управления (pull), либо запушиванием изменений в репозиторий всякий раз, когда в конфигурации происходят изменения (push).

Изменяемый и неизменяемый подход

В зависимости от варианта использования можно внедрить изменяемую или неизменяемую инфраструктуру.

Изменяемая инфраструктура обеспечивает большую гибкость, поскольку ее можно изменять или обновлять после внедрения. Так команды могут реализовывать специальные настройки, исправлять проблемы безопасности и обновлять требования. Несмотря на свою простоту благодаря предлагаемой гибкости, подобная инфраструктура требует наличия системы для документирования изменений. Иногда изменяемая инфраструктура необходима, но тогда важно учесть вероятность потенциального отклонения желаемой конфигурации от фактического состояния (дрифт).

Неизменяемую инфраструктуру нельзя менять или обновлять после внедрения. Если на более поздних этапах потребуются какие-либо изменения, существующий экземпляр инфраструктуры необходимо уничтожить и подготовить новую версию. Это, как правило, более надежная система.

Преимущества IaC

Основными факторами внедрения IaC являются: увеличение количества развертываний, растущая сложность облачных сервисов и архитектуры, а также необходимость масштабирования облачных систем в зависимости от нагрузки.

Пройдемся по основным преимуществам от внедрения Infrastructure as Code.

1. Повторяемость развертываний

Представим, что команда перешла от нескольких развертываний в месяц к сотням развертываний ежедневно. При таких темпах крайне важно иметь надежную и автоматизированную систему управления инфраструктурой. IaC обеспечивает стабильную, протестированную и удобную платформу для развертывания и управления инфраструктурой в нужном масштабе и темпе.

2. Сложность облака

Основные облачные провайдеры предлагают от 150 до 200 инструментов и сервисов. Для всего этого (в дополнение к сложной гибридной облачной архитектуре) требуется глобальное и безопасное решение, которое можно быстро развернуть.

3. Требования масштабирования

После того, как требования к инфраструктуре определены в виде кода, масштабирование становится проще. Это означает снижение затрат времени и средств.

4. Контроль версий

Как и любой код, IaC предоставляет возможность контроля версий, поэтому в случае сбоя или аномалии в системе можно откатиться и затем разобраться в возникшей проблеме.

5. Декларативная парадигма

Благодаря IaC внедрение инфраструктуры стало значительно проще. Теперь нет необходимости просматривать тысячи страниц документации и постоянно возиться с состояниями. В декларативной парадигме вы устанавливаете желаемое состояние, а контроллер внедряет его и поддерживает конфигурацию системы в этом состоянии.

6. Возможность совместной работы

Поскольку IaC обрабатывается так же, как код, она предоставляет расширенные возможности для совместной работы. Например, через системы контроля версий или платформы облачного инжиниринга, такие как Pulumi.

7. Автоматизация процессов

Технические навыки и бюджет, необходимые для управления сложными облачными средами, могут быть неподъемными для компании. Благодаря IaC несколько инженеров могут легко управлять всей облачной инфраструктурой.

8. Лучшие практики

IaC дает возможность снизить риски эксплуатации системы, а также соблюсти все требования доступности и стандарты безопасности. Изменять и поддерживать конфигурации в соответствии с потребностями клиентов становится так же просто, как обновить одно значение в файле конфигурации.

Зачем нужны инструменты для работы с IaC

С настройкой и обслуживанием приложения и инфраструктуры связаны различные задачи: внедрение, развертывание, настройка, оркестровка. Сегодня существует множество инструментов IaC, помогающих по-разному решить эти задачи. Некоторые инструменты участвуют в настройке инфраструктуры, другие управляют инфраструктурой или приложениями в конкретной среде.

Топ-3 vendor-neutral инструмента для работы с IaC

Terraform

Terraform от HashiCorp — популярнейший инструмент для работы с IaC. Он поставляется в варианте с открытым исходным кодом для самостоятельного управления либо как Terraform Cloud (управляемый). Полезен своей способностью определять облачные и локальные ресурсы в удобочитаемом формате. Этот инструмент не зависит от облачной платформы, а создаваемые модули также могут иметь версии, повторно или совместно использоваться.

Terraform не просто управляет конфигурацией инфраструктуры — он позволяет создавать инфраструктуру с нуля, определять сетевые ресурсы и комбинировать ресурсы от разных поставщиков.

Язык конфигурации декларативный. Поставщики автоматически вычисляют зависимости между ресурсами, чтобы они создавались и удалялись в правильном порядке. Terraform легко интегрируется с системами контроля версий, такими как GitHub, так что внести изменения в инфраструктуру можно простым Git Merge.

Crossplane

Crossplane — фреймворк для создания cloud-native уровней управления без необходимости написания кода. Создан специально для Kubernetes с поддержкой мультиоблачной, serverless и контейнерной разработки.

Crossplane предоставляет стандартные блоки, которые позволяют внедрять, формировать и использовать инфраструктуру с помощью Kubernetes API. Эти компоненты вместе обеспечивают мощное разделение, чтобы каждый член команды взаимодействовал с Crossplane на соответствующем уровне абстракции.

Pulumi

Pulumi основан в 2017 году ветеранами Microsoft и Google как бесплатный опенсорсный инструмент для работы с IaC, который делает управление инфраструктурой простым, надежным и безопасным. Доступен как в виде self-hosted решения, так и в виде SaaS. Поставку IaC можно осуществлять через существующие CI/CD пайплайны. Также существует возможность усиливать ограничения безопасности и следить за соответствием установленным требованиям.

Ниже представлена таблица сравнения 3 описанных инструментов для работы с IaC, которые предлагают бесплатные версии, высокую универсальность и дополнительные функции.

Автор советует

  1. Ускорьте DevOps. Воспринимайте IaC в качестве средства автоматизации процесса предоставления ценности конечному пользователю. Используйте инфраструктуру, чтобы быстрее выполнять итерации, своевременно масштабировать и создавать более надежные системы.

  2. IaC и GitOps. Внедряйте IaC с учетом совместной работы. Работа с инфраструктурой как с кодом позволяет быстрее планировать, запускать тесты и копировать среды. Эффективное управление доступом и установка ожиданий от новых конфигураций могут помочь контролировать расходы.

Каждый инструмент работы с IaC хорош для своих целей

А мы в Слёрм сконцетрируемся на Terraform! 4-5 февраля пройдет интенсив Terraform Мега для инженеров и разработчиков, которые уже работают с этим инструментом и хотят начать работать с ним на глубоком уровне. Ведут интенсив архитектор Yandex Cloud Павел Селиванов и Lead DevOps в Naviteq Александр Довнар.

Не удивительно, что мировой рынок инструментов для работы с IaC стабильно растет: его прогнозируемая стоимость к 2028 году . Популярность этих инструментов обусловлена двумя факторами:

Плагины Terraform напрямую взаимодействуют с облачным провайдером, поставщиком SaaS и другими API. Список общедоступных поставщиков Terraform можно найти в . Можно использовать один из общедоступных модулей из реестра напрямую или написать свой собственный.

Upbound также предлагает тем компаниям, которым нужно больше стабильности, лучшая поддержка и сниженные риски.

Платформа облачного инжиниринга Pulumi помогает на этапах разработки, развертывания и управления инфраструктурой. Этот инструмент дает возможность использовать любимые языки (например, TypeScript, JavaScript, Go, .NET, YAML) для создания облачной инфраструктуры. Он также предоставляет доступ ко всему массиву услуг от AWS, GCP, Azure и более 60 других поставщиков. Код облачной инфраструктуры можно повторно использовать в виде .

Главная причина успеха Pulumi — способность поддерживать команды и помогать им легко мигрировать на современные контейнерные среды и Kubernetes. можно посмотреть дорожную карту Pulumi и внести свой вклад в развитие инструмента.

Посмотреть программу и записаться здесь:

оценивается в 2,8 млрд долларов
Terraform Registry
Universal Crossplane (UXP)
Pulumi packages
Здесь
https://slurm.club/3j8fZ1G
https://habr.com/ru/companies/slurm/articles/713026/
оригинальной