Пулюмі англійською: Інфраструктура як код в будь-якій мові

Освоєння англійської лексики Pulumi — стеків, ресурсів, станів, постачальників і ключових відмінностей від Terraform, пояснених для фахівців з інформаційних технологій.

Introduction

Pulumi — це платформа інфраструктури як коду (IaC), яка надає вам змогу визначити хмарну інфраструктуру за допомогою мов програмування загального призначення, таких як TypeScript, Python, Go і C#. Якщо ваша команда використовує Pulumi або оцінює його у порівнянні з Terraform, ви зіткнетеся з певним словником у обговореннях архітектури, перегляді запитів на витягування і документації. Правильне розуміння цих термінів допоможе вам чітко повідомляти про зміни в інфраструктурі і брати участь у прийнятті рішень щодо проектування.

Програми та проекти

У Pulumi, проект є збіркою коду, який визначає вашу інфраструктуру, аналогічно до сховища або пакунка. Стек є екземпляром розгортання цього проекту — зазвичай представляє середовище, наприклад dev, staging, або production. Інженери використовують ці терміни дуже конкретно:

  • «Кожне середовище є окремим стеком» — dev, staging і production є трьома стеками одного проекту
  • “Ми розгортаємо стек” — запустити pulumi up для застосування змін в інфраструктурі
  • «Стек посилається на вивід з іншого стека» — крос-стекові посилання для спільного використання значень, таких як VPC ID
  • «Ми знищуємо стек» — pulumi destroy вилучає всі ресурси зі стеку
  • «Стек конфігурації» — параметри середовища, якими керується pulumi config set

Фраза “вивід стека” є важливою. Інженери кажуть: « ми експортуємо адресу URL балансувальника навантаження як вивід стека, щоб інші стеки могли її використовувати ». Експортування значень з одного стека і читання їх у іншому є звичайним архітектурним шаблоном у багатостековій конфігурації Pulumi.

Ресурси, постачальники, і держава

** Ресурси ** є фундаментальними будівельними блоками — контейнер Pulumi S3, екземпляр EC2 або розгортання Kubernetes. Кожен ресурс відповідає реальному об’ єкту хмари. Словник:

  • «Ми декларимуємо ресурс» — пишемо код, який визначає хмарний ресурс
  • « Ресурс забезпечений » — Pulumi створив або оновив фактичний об’ єкт хмари
  • « Вхідні дані ресурсу » — налаштування, які ви передали конструктору ресурсів
  • « Ресурсні виводи » — значення, які стають відомими тільки після створення ресурсу, наприклад, IP- адреса або ARN

** Provider ** — це додаток, який знає, як взаємодіяти з хмарною платформою. « Ми використовуємо AWS provider » означає, що Pulumi використовує AWS SDK під капотом. Інженери кажуть «налаштувати провайдера з цільовим регіоном» при встановленні, де ресурси повинні бути розгорнуті.

** Стан ** — це спосіб, яким Pulumi відстежує те, що було розгорнуто. За замовчуванням стан зберігається в хмарі Pulumi, але команди можуть також використовувати «самокерований стан», зберігається в контейнері S3 або Azure Blob Storage. Інженери кажуть: «Ми зберігаємо стан в Pulumi Cloud для керованого блокування» — посилаючись на контроль одночасності, який запобігає двом інженерам від запуску pulumi up одночасно і пошкодження стану.

Вгору, перегляд, оновлення

Три команди визначають потоки робіт Pulumi:

  • ** pulumi preview ** — показує, які зміни буде внесено без їх застосування; « ми завжди переглядаємо перед застосуванням у виробничих умовах »
  • ** pulumi up ** — застосовує зміни; « ми запускаємо pulumi up, щоб розгорнути нову базу даних »
  • ** pulumi refresh ** — оновлює стан Pulumi, щоб він відповідав фактичному стану хмари; « ми оновлюватимемо після того, як у консолі буде внесено зміну вручну »

Інженери описують відмінності, які показує pulumi preview як ** план **: « План показує три ресурси, які оновлюються і один, який замінюється ». Слово ** замінено ** важливе — це означає, що ресурс буде знищено і створено знову, що часто спричиняє перерви у роботі і вимагає чіткого перегляду.

Порівняння з гібридними моделями

Команди часто порівнюють Pulumi і Terraform. Ключові фрази у цих гілках:

  • «Реальні петлі і умовні» — Pulumi використовує рідні мови конструкцій; «ми використовуємо TypeScript for петлю, щоб створити 10 S3 buckets, які вимагали б count або for_each в Terraform»
  • «Безпека типів» — Pulumi забезпечує перевірку конфігурацій ресурсів під час компіляції
  • «HCL проти мови загального призначення» — центральне порівняння; HCL є доменно-спеціфічною мовою Terraform
  • «Pulumi використовує ту ж екосистему провайдера, що і Terraform» — через Terraform provider bridge

Ключовий словник

TermDefinition
projectThe Pulumi codebase that defines a set of infrastructure resources
stackA deployment instance of a project, representing one environment
resourceA cloud object managed by Pulumi, such as a VM or database
providerThe plugin that interfaces with a specific cloud platform
statePulumi’s record of what resources have been deployed
stack outputAn exported value from a stack that other stacks can consume
pulumi previewShows planned changes without applying them
pulumi upApplies the infrastructure changes
replaceDestroy and recreate a resource, typically due to an immutable property change
self-managed stateStoring Pulumi state in your own cloud storage rather than Pulumi Cloud

Практичні поради

  1. ** Поясніть колегі модель стека англійською мовою. ** Вправа: « У Pulumi проект — це код, а стеко — це екземпляр цього коду, розгорнутий у певному середовищі. У нас є один проект і три стеки: розробка, стадіювання і виробництво»

  2. ** Використовуйте принцип « перегляд перед застосуванням » як принцип роботи. ** Завжди скажіть « дозвольте мені спочатку переглянути це » перед запуском pulumi up. Ця фраза сигналізує про хорошу практику і є універсально зрозумілою в спільнотах IaC.

  3. ** Розумійте значення слова « замінити » у переглядах. ** Коли pulumi preview показує, що ресурс « замінено », знайте, як пояснити, чому: « Цей ресурс буде замінено, оскільки ми змінили незмінну властивість — версію рушія бази даних — яка вимагає знищення і відтворення екземпляра. »

  4. ** Прочитайте посібник з переходу з Terraform на Pulumi. ** Цей документ написано простою англійською мовою і явно порівнює поняття поруч. Це чудова вправа з читання, яка одночасно навчає вас словниковому запасу обох інструментів.

Conclusion

Словниковий запас Pulumi — стеки, ресурси, провайдери, стан, перегляд, заміна — точний і важливий для розуміння обговорень інфраструктури. Найбільшим відмінним моментом інструмента є використання справжніх мов програмування, тому лексика навколо циклів, умовних виразів і безпеки типів є центральною для обговорення. Оскільки IaC стає більш рідною мовою програмування, здатність обговорювати ці концепції англійською мовою буде все більш цінною для інженерів інфраструктури.

Наприклад, англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська мова: англійська

Сила Pulumi не * просто * про декларативну інфраструктуру як код; це про ефективне повідомлення про цю складність. Для розробників, які будують свої професійні навички англійської мови разом з технічними, тонкощі термінології Pulumi можуть бути особливо викликом. Погляньмо правді в очі, « стан » - це поширене слово, але розуміння його точного застосування в контексті Pulumi - як це пов’язано з * виявленням дрейфу *, * незмінними змінами * і загальним управлінням вашим хмарним середовищем - вимагає більше, ніж просто перекладу. Аналогічно, опис змін у запиті на завантаження не є простою заявою « оновлено схему бази даних ». Для цього потрібне ретельне формулювання, яке передасть намір, вплив і потенційні наслідки.

Розглянемо цей сценарій: Alex, новий розробник Pulumi, переглядає запит на збирання, надісланий Ben. У описі PR буде написано: « Оновлено екземпляр PostgreSQL ». Алекс, усвідомлюючи потребу у більш детальній інформації, може ввічливо запитати: « Бене, чи не могли б ви розібратися у змінах, які ви внесли до екземпляра PostgreSQL? » Які зміни у схемі було реалізовано і як вони поєднуються з існуючою стратегією міграції даних? Було б корисно включити опис будь-якого потенційного впливу на нижні програми.” Це поширена ситуація - початковий опис Бена функціональний, але не має точності, необхідної для надійного перегляду коду. Ключова річ тут не в тому, що формулювання Бена було неправильним, а в тому, що воно не було достатньо детально для професійного контексту. Використання таких термінів, як «модифікації схеми», «стратегія міграції даних» і проактивне згадування «потенційно негативного впливу» демонструє глибше розуміння основних концепцій Pulumi і важливість ретельної документації.

Інший приклад може з’ явитися у каналі Slack під час розв’ язання проблеми. Сара не розуміє повідомлення про помилку, пов’ язану з розгортанням стека Pulumi: « Виявлено дрейф стану — ресурс « database- server » несподівано змінився ». Замість того, щоб просто сказати « Виправте це!», кориснішою відповіддю було б « Давайте дослідимо дрейф стану. Можете описати зміни, які призвели до цього? Чи було оновлено налаштування сервера бази даних за допомогою нового постачальника послуг, або ж є проблема з нашим існуючим pulumi up командою?» Цей рівень детального опитування демонструє здатність діагностувати проблеми за допомогою розуміння зв’ язку між * станом * Pulumi, ресурсами, якими він керує, і потенційними джерелами невідповідностей. Метою завжди є чітке спілкування - забезпечення того, щоб усі зацікавлені сторони розуміли ситуацію і могли ефективно внести вклад у рішення.

pulumi_command = "pulumi up --stack my-app --auto-approve"

Ця проста команда ілюструє критичну концепцію: підхід Pulumi до інфраструктури як коду підкреслює * явний контроль * над змінами, а не неявну залежність від типових параметрів провайдера. Зрозуміти, що pulumi up це не просто «застосування» конфігурацій, але запуск процесу перевірки стану і потенційної модифікації є фундаментальним для ефективного використання Pulumi - і чіткого повідомлення цих дій у вашій команді.

Поширені запитання

Про що ця стаття "Пулюмі англійською: Інфраструктура як код в будь-якій мові"?

Освоєння англійської лексики Pulumi — стеків, ресурсів, станів, постачальників і ключових відмінностей від Terraform, пояснених для фахівців з інформаційних технологій.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Пулюмі англійською: Інфраструктура як код в будь-якій мові"?

Приблизно 7 min.