Advanced Vocabulary for Platform Engineers

Основна інженерна термінологія платформи: IDP, золоті шляхи, метрики DORA, топології команди, когнітивне навантаження і асфальтовані дороги для внутрішніх платформ розробників.

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


Що таке інженерна платформа?

Платформа інженерії це практика проектування, створення і експлуатації самообслуговуючих внутрішніх платформ розробників (IDP), які дозволяють командам продукту доставляти програмне забезпечення швидше і надійніше. На відміну від традиційного DevOps, який часто покладається на спільні команди операцій, інженерія платформи розглядає саму платформу як продукт з внутрішніми розробниками як своїми клієнтами.

“Наша команда інженерів-платформістів володіє IDP. Продуктові команди забезпечують середовища, запускають трубопроводи і розгортають послуги без підняття квитка з командою інфраструктури. “


Внутрішня платформа розробників (IDP)

** Внутрішня платформа розробників (IDP) ** — це набір інструментів, потоків робіт і можливостей самообслуговування, які розробники використовують для створення, тестування і розгортання програмного забезпечення. IDP зазвичай включає в себе забезпечення середовища, CI / CD конвеєри, управління секретами, спостережність і каталоги послуг.

“IDP абстрагує складність Kubernetes. Розробники визначають, що вони хочуть розгорнути; платформа управляє тим, як це відбувається.» “Прийняття IDP зросло з 40% до 85% після того, як ми додали каталог послуг і зменшили кількість кроків для розгортання нової послуги з двадцяти трьох до чотирьох.”


Золоті ворота

** Золотий шлях ** (також відомий як асфальтована дорога) є попередньо створеним, добре підтримуваним маршрутом для звичайних завдань розробників. Це не обов’язково, але це найпростіший шлях - і той, який команда платформи активно підтримує і вдосконалює.

“Наш золотий шлях для нової мікросервісу надає вам шаблон сховища, конвеєр CI/CD, панелі спостереження і runbook — все налаштовано і з’ єднано — менш ніж за десять хвилин.” “Ми не забороняємо командам сходити з золотого шляху, але вони беруть на себе оперативну відповідальність за все, що вони створюють за його межами.”


Дорога асфальтована

Павед дорога - це синонім золотого шляху, популяризованого Netflix. Метафора проста: ви можете подорожувати по бездоріжжю, якщо хочете, але асфальтована дорога швидша, гладша і краще підтримується.

  • “Брокова дорога Netflix дала командам попередньо інтегровані бібліотеки для стійкості, спостережливості і розгортання. Команди, які залишилися на асфальтованій дорозі, відправлялися швидше і мали менше інцидентів»

Портал розробників

** Портал розробника ** є фронт- енд внутрішньої платформи розробника — веб- інтерфейс, де розробники знаходять послуги, документацію, інструменти, API і потоки самообслуговування. Backstage (від Spotify) є найбільш широко прийнятим порталом розробників з відкритим кодом.

  • “Портал розробників — це вхід до платформи. Звідти інженери можуть створити нову службу, переглянути каталог послуг, переглянути власника і перевірити стан розгортання. * “Ми інтегрували нашу документацію API, runbooks і історію інцидентів у портал розробників, тому все знаходиться в одному місці.”

Дора Метрікс

** Метрики DORA ** — від групи досліджень і оцінки DevOps — це чотири ключові метрики, які використовуються для вимірювання продуктивності доставки програмного забезпечення:

  • ** Частота розгортання ** — як часто код розгортається до виробничого стану
  • ** Час зміни ** — час від затвердження коду до виробництва
  • ** Змінити рівень невдач ** — відсоток розгортань, які спричинили інциденти у виробництві
  • ** Час відновлення служби ** — час, який знадобиться для відновлення після аварії

*“Наші показники DORA значно поліпшились після прийняття платформи. Частота розгортання зросла з тижневих до щоденних, а час виконання зменшився з чотирьох днів до шести годин. *

  • “Відповідальні команди в звіті DORA розгортають кілька разів на день і відновлюють службу менше ніж за годину. Це наша цільова держава.»*

Командні топології

** Team Topologies ** — це система (з книги Matthew Skelton і Manuel Pais) для організації команд розробників програмного забезпечення з метою оптимізації швидкого потоку змін. У ньому визначено чотири типи команд:

  • ** Команда, вирівняна за потоком ** — вирівняна за потоком роботи для продукту або послуги
  • ** Platform team ** — надає можливості самообслуговування потоково- вирівняним командам
  • ** Вдосконалення команди ** — допомагає іншим командам приймати нові технології або практики
  • Команда складних підсистем — володіє підсистемою, що вимагає глибоких спеціалізованих знань
  • “Ми реструктурували за допомогою командних топологій. Наша команда хмарної інфраструктури стала командою платформи; команди продуктів стали потоковими командами. Режим взаємодії змінився з квитків на API самообслуговування.”*

Когнітивне навантаження

** Когнітивне навантаження ** стосується розумових зусиль, необхідних розробнику для розуміння, роботи і підтримки системи або потоку робіт. Платформа інженерії має на меті зменшити когнітивне навантаження на команди продукту, абстрагуючи складність інфраструктури.

“До появи платформи, розробники повинні були розуміти маніфести Kubernetes, діаграми Helm, модулі Terraform і секрети Vault, щоб розгорнути службу. Це когнітивне навантаження було занадто високим.» “Хороший золотий шлях зменшує навантаження на розум, роблячи правильні речі легкими.”


Підтримка платформи

** Прийняття платформи ** вимірює, наскільки широко внутрішні команди використовують платформу. Низьке прийняття часто вказує на те, що платформа занадто складна, занадто повільна або не вирішує справжніх проблем розробників. Команди платформи вимірюють прийняття як ключову метрику продукту.

“Ми відстежуємо прийняття платформи за послугами: який відсоток служб використовує стандартний конвеєр, стандартну бібліотеку журналювання та реєстрацію каталогу послуг.”

  • “Прийняття є відсталим показником. Щоб керувати ним, ми зосереджуємось на зменшенні тертя - кожен додатковий крок в установці коштує нам прийняття.” *

Практичні фрази для інженерів платформи

  • “Ми повинні зменшити когнітивне навантаження на потокові команди - їм не потрібно знати, як працює Terraform.”
  • “Золотий шлях є типовим; команди можуть відхилятися, але вони відповідають за наслідки.”
    • “Наші метричні дані DORA говорять нам, де знаходяться вузли. Час виконання є високим через довгі черги перегляду, а не повільне розгортання. ”*
    • “Події порталу розробників на 60%. Головною перешкодою є те, що дані каталогу послуг застаріли.»*
  • “Ми застосовуємо командні топології, щоб прояснити режими взаємодії — команда платформи надає X-як-сервіс; ми не робимо спеціальну роботу для кожної команди.”

Платформа інженерного словника відображає перехід від реактивних операцій до проактивної, продукт-керованої інфраструктури. Освоєння цих термінів допоможе вам робити внесок у обговорення стратегії платформи, оцінювати інструменти IDP і повідомляти про цінність інженерії платформи керівництву інженерії і бізнес-партнерам.

Національна мова: мова, що використовується для спілкування між ненаціональними групами

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

Інша проблема часто виникає при обговоренні таких концепцій, як «золоті шляхи» або «спостережливість». Ці терміни, хоча вони все частіше зустрічаються, можуть звучати абстрактно без чіткого розуміння їхніх практичних наслідків. Розробник, не знайомий з основоположною філософією, може спробувати сформулювати * чому * встановлення золотих шляхів є корисним - це не тільки про створення улюблених маршрутів; це про оптимізацію для ефективності, зменшення складності і сприяння послідовності по всій платформі. Аналогічно, коли ви просите дані спостережливості, просто запитувати про «логи» недостатньо. Вам потрібно вказати що вам потрібно побачити (наприклад, частота помилок, затримка запитів за службою), де знайти його (наприклад, певний інструмент агрегування журналів, наприклад, Grafana або Splunk), і чому ви його запитуєте (наприклад, «для діагностики недавнього погіршення продуктивності»). Сфокусування на «і що?» даних має вирішальне значення, перетворюючи технічні специфікації на дії.

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

# Example: Using kubectl to describe a Pod's resource requests
kubectl describe pod my-app-pod -n production --namespace=production

Ця команда надає докладні відомості про my-app-pod у просторі імен production, зокрема про його запити на процесор і пам’ ять. Це практичний приклад того, як точна мова використовується при документуванні конфігурацій інфраструктури - навички, що перекладаються безпосередньо на обговорення щодо розподілу ресурсів і оптимізації продуктивності в контексті інженерії платформи.

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

Про що ця стаття "Advanced Vocabulary for Platform Engineers"?

Основна інженерна термінологія платформи: IDP, золоті шляхи, метрики DORA, топології команди, когнітивне навантаження і асфальтовані дороги для внутрішніх платформ розробників.

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

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

Скільки часу займає читання "Advanced Vocabulary for Platform Engineers"?

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