Англійська мова для інженерів DevOps: Essential Vocabulary
Конвейєр, артефакт, канарське розгортання, синьо-зелене, runbook — словник, який інженери DevOps використовують щодня в документації, обговореннях та інцидентах.
DevOps має свій власний щільний словник — і багато з нього має сенс тільки в культурному контексті. Знання термінології допоможе вам швидше читати документацію, робити внесок у розслідування інциденту і чітко спілкуватися з SRE, інженерами платформи і розробниками.
Ось 35 найчастіше використовуваних DevOps і хмарних термінів, згруповані в робочі потоки, де ви їх зустрінете.
CI/CD: Автоматизація трубопроводу
- Нет, не надо Автоматизована послідовність етапів — збирання, тестування, розгортання — виконується при кожній зміні коду. Описано як: * « Конвейєр зазнав невдачі на стадії тестування інтеграції. » *
** Стадія / Завдання / Крок ** Рівні гранулярності у конвеєрі. * Конвейєр * має * стадії * (наприклад, збирання, тестування, розгортання). Кожен етап має завдання (наприклад, тести-установки, lint, сканування безпеки). Кожне завдання має * кроки * (наприклад, виконати цей сценарій).
Артефакт
Файл, створений процесом збирання і переданий на наступні етапи конвеєра. Приклади: скомпільований бінарний файл, образ Docker, звіт про тестування, .zip програми. Фраза: * “Артефакт штампу Docker опубліковано у реєстрі контейнера.” *
Тригер Подія, яка запускає виконання конвеєра: відсилання до гілки, запит на витягнення, заплановане завдання cron або вручну виконане завдання.
Відправка/відправлення
- Розгортання * = процес розгортання нової версії (поступово або всіх за раз). * Відновлення * = повернення до попередньої версії. Фраза: “Ми виявили високу кількість помилок під час розгортання і повернули до v2.3.”
Стратегия развертывания
Синьо-зелене розгортання Два ідентичних виробничих середовища. Середовище живлення (синій) отримує трафік, а нова версія розгортається у середовищі бездіяльності (зелений). Перемикач руху, коли зелений перевіряється. Негайне повернення: переключити перемикач.
Канарський розгортання Невеликий відсоток трафіку (часто 1-5%) маршрутизується до нової версії до повного розгортання. Якщо показники виглядають нормально, розгортання продовжується; у іншому випадку, трафік повертається до стабільної версії.
** Прапорець можливості / Перемикання можливості ** Параметри налаштування, які уможливлюють або виключають функціональність під час виконання, без розгортання нового коду. Фраза: “Ми відправили новий поток оплати за прапорцем функції — він видимий тільки для 10% користувачів.”
** Безперервний пуск** Стратегия розгортання, яка забезпечує доступність служби протягом усього процесу випуску. Досягнуто за допомогою синьо-зеленого, канарського або рухомого розгортання.
Поступово розгортається Екземпляри програми оновлюються один за одним (або по пакетах), без одночасного виключення всіх з мережі. Поширений у Кубернетесі.
Контейнери та оркестрація
** Контейнер / штамп Docker ** Контейнер пакує програму і її залежності у легкий, переносимий блок. * Докер- штамп * — це проект; * контейнер * — це запущений екземпляр цього штампу.
** Реєстр контейнера ** Система зберігання і розповсюдження штампів Docker. Приклади: Docker Hub, Amazon ECR, Google Artifact Registry. Фраза: “Підставити штамп до реєстру, а потім конвеєр розгортання його витягне.”
Оркестрація Автоматичне керування контейнерами в масштабі: планування, масштабування, відновлення, мережеві зв’язки. Kubernetes є домінантною платформою оркестрації.
- Под Найменший розгортальний блок в Kubernetes — група одного або декількох контейнерів, що спільно використовують мережу і сховище. Фраза: “Под знаходиться в CrashLoopBackOff — перевірте журнали контейнера.”
** Простір назв **
Віртуальний кластер в кластері Kubernetes, використовується для ізоляції середовищ (наприклад, dev, staging, production ). Фраза: “Спочатку розгорнути в простір імен staging.”
Шлемная диаграмма
Пакунок манифестів Kubernetes з шаблонами, що використовується для розгортання і налаштування програм. Фраза: “Ми використовуємо Helm chart для служби — перезаписати тег зображення в values.yaml.”
Інфраструктура як код
**IaC (Інфраструктура як код) ** Керування інфраструктурою за допомогою файлів налаштувань, які можна читати машиною, замість ручних процесів. Увімкнення контролю версій, відтворюваності і перегляду змін інфраструктури.
Терраформ Найпопулярніший інструмент IaC, що використовує HCL (HashiCorp Configuration Language) для декларативного визначення ресурсів хмари.
** Стан / Дрейф ** Terraform підтримує * файл стану *, що відстежує те, що було розгорнуто. * Дрейф * відбувається, коли реальна інфраструктура відхиляється від стану — зазвичай, від вручну внесених змін, що обходять IaC. Фраза: “В конфігурації балансувальника навантаження є дрейф — хтось змінив його вручну.”
Модуль Повторно використовуваний, параметризований набір ресурсів Terraform. Фраза: “Ми маємо внутрішній модуль для VPC — використовуйте його замість написання його з нуля.”
Observability
** SLI / SLO / SLA **
-
- SLI (Service Level Indicator) *: вимірювана метрика (наприклад, рівень успішності запитів)
-
- SLO (Service Level Objective) *: ціль (наприклад, 99, 9% успішності протягом 30 днів)
- *SLA (Service Level Agreement) *: договорне зобов’ язання перед клієнтами
Фраза: * “Ми використовуємо весь наш бюджет на помилки - наш SLO становить 99,9%, але цього тижня ми були на 99,5%.” *
Помилка бюджету Допустима кількість ненадійності, що виникає за SLO. Якщо SLO дорівнює 99,9%, то бюджет помилок становить 0,1% від запитів або часу. Фраза: “Ми повинні заморозити роботу над функцією — бюджет на помилки вичерпаний цього місяця.”
Золоті сигнали Google SRE має чотири ключові показники для будь-якої служби: Затримка (скільки часу займають запити), Транспорт (запити за секунду), Помилки (рівень помилок), Насичення (як «повна» система). Метод RED (Rate, Errors, Duration) схожий.
** Трассування / Розподілене трассування ** Відстеження одного запиту від початку до кінця, коли він проходить через декілька служб. Інструменти: Jaeger, Zipkin, OpenTelemetry, AWS X-Ray. Фраза: * « Трассування показує, що пік затримки знаходиться у службі автентифікації, а не у базі даних. » *
Керування інцидентами
По приглашению Ротация инженеров, ответственных за реагирование на производственные инциденты вне рабочего времени. Фраза: “Я на тиждень на гарячому — мені повідомлять, якщо щось не так.”
** Сторінка / Попередження ** Сповіщення, яке надсилається інженеру, коли показник перевищує пороговий рівень. Інструменти: PagerDuty, OpsGenie. Фраза: “Я отримав посилання о 2 годині ранку — рівень помилок підскочив до 40%.”
Книга походів Документований набір процедур для обробки відомих подій або рутинних операційних завдань. Фраза: “Для цього є підручник — виконайте кроки в Confluence під ‘Збої в базі даних’.”
Посмертный обзор/инцидент Безвинний аналіз події: хронологія, основна причина, фактори, що сприяли, і елементи дій. Фраза: “Посмертна експертиза відбудеться в п’ятницю — будь ласка, додайте свої спостереження до спільного документа до цього часу.”
** RCA (Аналіз кореневої причини) ** Процес визначення основної причини інциденту. Фраза: “RCA визначила умову гонки в службі автентифікації, введеній у минулому четверті.”
** MTTR (середній час відновлення) ** Середній час між виявленням події і відновленням нормальної роботи. Ключовий показник надійності.
Використовується в таких випадках
Читання недостатньо — використовуйте ці терміни під час написання документації, повідомлень Slack і описів PR. Чим частіше ви пишете * « конвейєр зазнав невдачі на етапі збирання » * або * « ми розгорнули за прапорцем можливості » *, тим більш природно буде звучати лексика у мовленнєвих викликах і викликах інциденту.
Спробуйте наш Вправа зі словником DevOps, щоб перевірити ваше розуміння в контексті.
Наприклад, описати значення значення в описі значення в аналітичній алгоритмі
Будьмо чесними. Як молодший інженер, слухаючи такі фрази, як «артефакт», «розгортання канарки» або «відновлення», може відчувати себе… заляканим. Це не тільки незнайомі терміни самі по собі; це часто прийняті знання за ними. Обговорення після смерті про невдале розгортання не просто про перелік помилок; це про розуміння зробленого вибору, потенційних наслідків і як запобігти подібним проблемам в майбутньому. Цей нюанс є ключовим для ефективного спілкування і співпраці в команді DevOps.
Одним з найбільших заперечень, з якими я стикався, було використання таких термінів, як «інциденти» проти «проблем». Хоча вони, здається, взаємозамінні, вони мають різну вагу. * інцидент * говорить про незапланований перерив з значними наслідками — наприклад, критичний відключення сервера. Формування чогось як «інциденту» негайно підвищує сприйняту серйозність і викликає більш формальну відповідь, ніж просто позначаючи його як «проблему». І навпаки, використання «проблеми» в ситуації, яка вимагає глибшого розслідування, може пригнічувати невідкладність або складність. Це про передачу правильного рівня занепокоєння - не просто заявивши, що сталося, але * чому * це має значення. Аналогічно, навчання конструктивно сформулювати конкретний зворотній зв’язок є життєво важливим; замість того, щоб сказати «Цей код потребує роботи», розгляньте щось на зразок: «Я помітив деякі потенційні умови гонки в цій секції і пропоную реалізувати механізм блокування для поліпшення одночасності»
Крім того, не бійтеся задати прояснюючі питання. Це набагато краще визнати, що ви не розумієте термін або процес, ніж прикидатися, що ви розумієте, і, можливо, зробити дорогу помилку. Більшість досвідчених DevOps інженерів є неймовірно терплячими і охоче пояснюють речі в деталях - особливо, коли вони бачать, що ви справді намагаєтеся навчитися. Пам’ятайте, що кожен починає з чогось.
Ось приклад того, як це може виглядати у Slack під час пост-мортему:
# Example: Checking for stale deployments with Argo Rollouts
kubectl rollout status deployment/my-app --prune -n production
Ця проста команда - і пояснення за нею (перевірка застарілих версій після випуску канарки) - демонструє основний принцип DevOps. Це не просто запуск команд; це розуміння * чому * ви їх запускаєте, що вони означають, і як вони сприяють загальній стабільності системи. Не бійтеся запитати про метрику, за якою ведеться спостереження, або про процедури відновлення, які можуть бути встановлені.