Англійський словник для інфраструктури Pulumi як код
Вивчіть англійську лексику, яку використовують інженери DevOps з Pulumi — стеки, програми, виводи, посилання на стеки, ComponentResource і API автоматизації з чітким поясненням.
Pulumi — це інструмент інфраструктури як коду (IaC), який надає вам змогу визначити хмарні ресурси за допомогою мов програмування загального призначення, таких як TypeScript, Python, Go і Java. Якщо ви працюєте з Pulumi або переходите з Terraform, знати специфічний словник Pulumi є обов’ язковим для читання його документації, внесення внесків до баз коду команди і участі у обговореннях щодо інфраструктури.
Ключовий словник
Стек
Стек — це ізольований, незалежно розгортається екземпляр програми Pulumi. Стек зазвичай відображається на середовищах (розробка, стадіонарний, виробничий) або регіонах. Команди «створюють», «оновлюють», «переглядають» і «знищують» стеки. Кожен стек має свій власний стан і налаштування.
Приклад: “Ми маємо три стека для інфраструктури API — api-dev, api-staging, і api-prod — кожен вказує на інший обліковий запис AWS.”
Проект
Проект є одиницею організації коду в Pulumi — каталог, що містить файл Pulumi.yaml і початковий код програми. Проект може мати декілька стеків. Команди «ініціалізують», «структурують» і «організують» проекти.
Приклад: “Ми розділили монолітний проект на три окремі проекти — мережевий, бази даних і програмний — щоб команди могли розгортати їх незалежно.”
Програма
Програма Pulumi — це код (на TypeScript, Python тощо), який декларує потрібні ресурси хмари. Коли ви запускаєте pulumi up, Pulumi виконує програму і обчислює необхідні зміни. Розробники «писати», «запускати» і «виконувати» програми Pulumi.
- Приклад: « Програма Pulumi створює VPC, підмережі і групи безпеки в порядку — Pulumi автоматично розв’ язує графік залежностей. » *
** Ресурс ** Ресурс представляє компонент хмарної інфраструктури — контейнер S3, екземпляр RDS, функцію Lambda. Ресурси оголошуються за допомогою інстанцій класів постачальника у програмі. Розробники «заявляють», «надає», і «керують» ресурсами.
- Приклад: « Я оголосив ресурс контейнера S3 з ввімкненим версіями і налаштованим шифруванням у стані спокою як властивості. » *
** Вивід **
Вивід — це значення, яке обчислюється ресурсом після його створення, наприклад, назва контейнера, публічний IP-адреса екземпляра EC2 або DNS-назва балансувальника навантаження. Виводи є Promise -подібними значеннями. Розробники “експортують”, “використовують” і “довідкові” виводи.
- Приклад: « Ми експортуємо вивід кінцевої точки бази даних, щоб інші стеки могли його використовувати без твердого кодування значення. » *
** Довідка зі стека ** StackReference — це ресурс Pulumi, який надає змогу одному стеку використовувати експортовані виводи з іншого стека. Це стандартний механізм для залежностей між стеками. Команди «створюють», «використовують» і «читають» посилання на стек.
- Приклад: « Стек програми використовує StackReference для читання ідентифікаторів VPC і підмереж, експортованих мережевим стеком. » *
** ComponentResource **
ComponentResource є повторно використовуваним ресурсом вищого порядку, який групує кілька дочірніх ресурсів разом в логічну одиницю. Це те, як команди будують внутрішні модулі і абстракції. Розробники «писають», «визначають» і «реалізують» ComponentResources.
- Приклад: « Ми збудували
ManagedDatabaseComponentResource, який створює екземпляр RDS, групу безпеки і секрет менеджера секретів разом як єдиний об’ єкт. » *
** Автоматизація API ** API автоматизації є пакетом розробки програмного забезпечення Pulumi, який надає вам змогу вбудовувати дії Pulumi (збільшення, перегляд, знищення) у ваші власні програми і конвеєри без використання CLI. Команди «використовують», «інтегрують» і «будують» з API автоматизації. Приклад: «Ми побудували внутрішній портал самообслуговування, який використовує API автоматизації для забезпечення пісочниць розробників на запит без необхідності доступу до CLI.»
Фрази і фразеологізми
** “експортувати вивід стека” ** Дія, яка робить значення доступним для інших стеків або зовнішніх користувачів. Завжди « експортувати » — не « публікувати » або « ділитися »
- Приклад: « Експортувати назву DNS балансувальника навантаження як вивід стека, щоб команда моніторингу могла налаштувати свої попередження без читання коду. » *
** “посилання на інший стек” ** Стандартна фраза для використання StackReference. « Посилання » є більш точним, ніж « імпортувати з » або « читати з »
- Приклад: « Стек програм посилається на мережевий стек, щоб отримати ідентифікатори підмереж — таким чином команда мережевих розробників контролює значення ». *
“запустить программу Пулумі”
Стандартний опис виконання pulumi up або pulumi preview. Завжди « запускати програму Pulumi » у документації.
- Приклад: « Запустіть програму Pulumi з
pulumi previewспочатку, щоб побачити заплановані зміни перед їх застосуванням. » *
** “ресурс очікує заміни” **
Коли зміна властивостей ресурсу вимагає знищення і відтворення ресурсу, а не його оновлення на місці. Це критичне попередження на виході pulumi preview.
- Приклад: « Ресурс очікує заміни, оскільки ви змінили версію рушія RDS — це призведе до перерви у роботі; запланувати вікно обслуговування. » *
** “налаштувати постачальника” ** Налаштування постачальника послуг Pulumi (AWS, Azure, GCP, Kubernetes) з уповноваженими даними, регіоном та іншими параметрами. Команди «налаштовують», «запускають» та «ініціалізують» провайдери. Приклад: «Налаштувати постачальника AWS з роллю облікового запису цілі ARN, щоб програма розгорталася у правильному середовищі.»
Практичні рекомендації
- «Мережевий стек експортує VPC ID і прикладний стек посилається на нього через StackReference.»
- «Ми створили ComponentResource для нашого стандартного розгортання мікросервісів, що включає в себе визначення завдання ECS, службу і політику автоматичного масштабування»
- Запустити
pulumi previewі перевірити наявність ресурсів, які очікують заміни, перед затвердженням зміни - «Automation API дозволяє нашій CI системі запускати
pulumi upпрограмно без підтримки скриптів оболонки навколо CLI» - «Експортувати рядок з’єднання бази даних як вивід стека, щоб нижчі стеки могли посилатися на нього без дублювання налаштувань.»
Необхідно уникати помилок
** Плутанина між « проектом » і « стеком » ** Проект — це код; стек — це розгорнутий екземпляр цього коду. Сказати « у нас є три проекти для розробки, стаджування і виробництва » неправильно, якщо у вас є одна база коду з трьома стеками. Скажіть “у нас є один проект з трьома стеками”
Сказав “прийняти” замість “до”
Терраформ використовує terraform apply ; Пулумі використовує pulumi up. У обговореннях Pulumi, скажіть “запустити pulumi up ” або “виконати оновлення” - а не “застосувати зміни”, що звучить як Terraform лексика.
** Використання « variable » замість « output » або « config » ** Pulumi має певні терміни: « config » для вхідних значень налаштування і « output » для вихідних значень ресурсів. Називати обидві з них «змінними» неточно. Використовуйте правильний термін для зрозумілості.
Summary
Словник Pulumi — стеки, проекти, програми, виходи, посилання на стеки, ComponentResources і Automation API — відображає його підхід до інфраструктури, що базується на мові програмування. Правильне використання цих термінів допоможе вам написати документацію з інфраструктури, брати участь у спільноті Pulumi на Discord і GitHub, а також ефективно співпрацювати з інженерами DevOps, які щоденно використовують Pulumi. Документація Pulumi і сховище Pulumi Examples на GitHub використовують ці терміни послідовно і є чудовими ресурсами для вивчення як Pulumi, так і професійної DevOps англійської одночасно.
Навигація Nuance: Common Phrases for Collaboration
Для розробників, які вивчають професійну англійську, особливо в технічній області, такій як інфраструктура, як код, розуміння тонких фраз так само важливо, як і знання визначення окремих слів. Недостатньо просто знати, що означає «посилання на стек»; вам потрібно розуміти, як і коли його використовують у командному потоці роботи. Часто нерозуміння виникають через відмінності в очікуваннях навколо комунікації - наприклад, рівень деталей, необхідних у коментарі до перегляду коду, або тон, який відповідає запиту на зміни.
Одна з часто зустрічається областей плутанини виникає з переходу між описом * що * щось робить і * чому * це зроблено. Просте повідомлення на зразок « Цей компонент слід оновити » може не містити достатньої кількості інформації. Кориснішим варіантом, особливо у описі запиту на витягування, було б « Оновлення цього ComponentResource необхідно для того, щоб відповідати останнім найкращим практикам безпеки, описаним у стандартних операційних процедурах нашої команди ». Це додає контексту: мова йде не лише про зміну коду, а й про дотримання встановлених правил. Аналогічно, коли відповідаєте на зворотній зв’ язок, не просто кажуть « Добре ». Замість цього, визнайте занепокоєння і поясніть ваші аргументи: « Я дякую вам за те, що ви вказали на потенційний вплив на продуктивність. Я додав кешування шар, щоб зменшити це, як описано в оновленій документації. ”
Іншою поширеною пасткою є використання надмірно технічної мови при спілкуванні з нетехнічними зацікавленими сторонами. Хоча точність є життєво важливою в команді DevOps, пояснення складних концепцій на жаргоні може бути відчуженим. Формування вашої роботи в доступних термінах - наприклад, описуючи вивід програми Pulumi як “інформація, необхідна для розгортання і налаштування наших серверів” - значно покращує розуміння і співпрацю. І пам’ятайте, що активне спілкування є ключовим; передбачення потенційних питань і їх розв’язання заздалегідь може запобігти непорозумінням, перш ніж вони ескалуються.
Нарешті, будьте уважні до тону, який ви використовуєте, коли запитуєте зміни або надсилаєте зворотній зв’ язок. Фрази типу “Вам потрібно це виправити” можуть здатися вимогливими. Замість цього, вибирайте такі пропозиції, як « Чи можемо ми розглянути переробку цього розділу, щоб поліпшити його читабельність? » або « Мені цікаво, чи не могли б ми розглянути використання іншого підходу — можливо, використовуючи [спеціальну функцію Pulumi]? » Ці м’ якіші підходи сприяють більш продуктивному співробітництву.
Ось приклад того, як ви можете використовувати pulumi type=azure:resource у контексті CLI, який проілюструє вивід:
pulumi up --output-url https://example.com/outputs
Ця команда демонструє використання прапора --output-url для пересування вихідних даних, створених Pulumi, до певного місця. Зрозуміти, як такі прапорці використовуються і їх наслідки (наприклад, доступність, версії) є ключовим для ефективного співробітництва в рамках інфраструктури як код проекту.