Словник для CI/CD конвеєрів: Build, Test and Deploy Terms Explained (англійською)
Освоєння англійської лексики конвеєрів CI/ CD — стадії, завдання, артефакти, фрагментарні тести, відновлення і стратегії розгортання — з прикладними реченнями для щоденних завдань.
Конвейєри CI/ CD — це місця, де відбувається багато ваших щоденних розмов англійською мовою: « збірка застрягла », « вона застрягла на стадії розгортання », « цей тест знову не працює ». Словниковий запас є специфічним, і якщо ви використовуватимете неправильне слово, ви будете звучати менш вільно, ніж ви є насправді. Цей посібник містить необхідні вам слова для збирання, тестування і розгортання, а також приклади речень для виступів і PR.
Два великих: ЦИ и CD
- ** CI — Continuous Integration ** — автоматичне збирання і тестування кожної зміни. * “CI запускається при кожному натисканні.” *
- ** CD — Continuous Delivery / Deployment ** — автоматичне отримання змін до стадії розробки або виробництва. * « CD deploys to staging on merge. » *
Зауважте різницю: ** Неперервна доставка ** означає * готовий до розгортання за натисканням кнопки *; ** Неперервне розгортання ** означає * розгортається автоматично без вручну виконаних кроків *. Люди кажуть «CD» для обох — поясніть, якщо це має значення.
Структура трубопроводу
- ** pipeline ** — вся автоматизована послідовність. * « Конвейєр триває дванадцять хвилин. » *
- ** стадія ** — стадія (збирання, тестування, розгортання). * « Застряг на стадії розгортання. » *
- ** завдання ** — одиниця роботи у межах етапу. * « Задача lint завершилася невдало. » *
- ** крок ** — одна команда у завданні.
- ** runner / agent ** — машина, яка виконує завдання. * « Жоден з запусків не є вільним ». *
- ** workflow ** — налаштований конвеєр (термін GitHub Actions). * « Я змінив файл потоку робіт. » *
- ** to trigger ** — запуск конвеєра. * « Відсилання викликало збирання ». *
- ** trigger / on push / on merge ** — що запускає поток. * « Цей поток запускає потоки на підставі PR ». *
Конвейєр має три етапи — build, test, deploy — і тестовий етап виконує чотири завдання паралельно
Розвивати словниковий запас
- build — компіляція/пакування коду. “Збірка зелена.”
- ** to compile / to package ** — * « Це збирається, але крок пакування зазнає невдачі. » *
- ** artefact ** — вивід збирання (двійковий файл, штамп або пакунок). * « Артефакт збирання — це штамп Docker. » *
- cache — збережені дані для прискорення збирання. “Кеш залежностей застарів.”
- ** to fail fast ** — зупинити при першій помилці. * « Налаштувати швидке завершення роботи ». *
- ** зелений / червоний ** — успішно пройдено / не вдалося. * « Головний знову червоний. » *
- broken build — збірка, яка зазнала невдачі. « Хто пошкодив збірку? »
- ** to bisect ** — знижує кількість звітів, які щось пошкодили. * « Я розділив його на дві частини для минулорічного об’ єднання. » *
Перевірити словниковий запас
- ** test suite ** — повний набір тестів. * « Набір займає вісім хвилин. » *
- unit / integration / end- to- end (E2E) тести — збільшення обсягу. “E2E — це повільна частина.”
- ** flaky test ** — успішно пройде і зазнає невдачі недетерміністично. * « Цей тест є неефективним — повторіть його ». *
- ** to flake ** — “Це знову лопнуло на CI, але проходить локально.”
- ** coverage ** — скільки коду буде використано під час тестування. * « Покриття знизилося нижче 80% ». *
- ** пропустити / поставити під карантин ** — тимчасово вимкнути тест. * « Я поставив під карантин тест з тріщинами ». *
- ** тест регресії ** — захист від повернення вади.
- ** димовий тест ** — швидка перевірка того, чи працюють основні параметри. * « Димовий тест пройшов ». *
- ** to re- run / to retry ** — * « Повторно виконати завдання; можливо, це тріщина. » *
«Тести блоків проходять, але два тести E2E є лускатими і продовжують переходити в червоний на CI, хоча вони локально зелені»
Слово flaky (і дієслово to flake) є одним з найчастіше використовуваних термінів у CI — вивчайте його холодно.
Розгорнути словник
- ** to deploy / to ship / to release / to roll out ** — відсилання до середовища. * « Ми відправляємо о 3 вечора. » *
- environment — стадіювання, продюсування, контроль якості. “It’s live in staging.”
- ** to promote ** — пересунути збірку з одного середовища до іншого. * “Промоут її до стану prod.” *
- ** rollout ** — дія розгортання. * « Розгортання завершено на 50% ». *
- ** to roll back / revert ** — скасувати розгортання. * « Відновити до останньої правильної версії ». *
- ** canary ** — спочатку випустити невелику підмножину. * “Це в canary, виглядає здорово.” *
- ** синій- зелений ** — два однакових середовища, перемикання трафіку між ними.
- feature flag / toggle — увімкнути/ вимкнути можливості без розгортання. « Це за прапорцем. »
- ** димовий тест при розгортанні ** — перевірка розумового стану після розгортання.
Стратегії розгортання у одному рядку кожна:
- Canary — “Надіслати 5% трафіку до нової версії і спостерігати.”
- ** Синій- зелений ** — * « Розгорнути у бездіяльне середовище, а потім перевернути перемикач. » *
- Rolling — “Замінити екземпляри по кілька за раз.”
Когда что-то пойдет не так
- broken pipeline — “Транспортний трубопровод розірваний для всіх.”
- ** застряг / завис ** — не продовжується. * « Завдання розгортання зависло. » *
- ** timeout ** — перевищено обмеження часу. * « Перевищено час виконання завдання. » *
- ** блискуча інфрачервона ** — самі бігуни ненадійні.
- ** to unblock ** — вилучити те, що зупиняє конвеєр. * “Я перезапустив запуск, щоб розблокувати його.” *
- ** до ворота ** — блокує поступ до тих пір, поки не буде виконано умову. * « Об’ єднання обмежено зеленим CI. » *
«Головний червоний, але це не код — бігун помер, і час завдання розгортання закінчився. Я перезапустив його і тепер він зелений»
Фрази для репортажів і PR
-
- “CI зелений; це готово до злиття.” *
- “Складання червоне на тесті з тріщинами — повторне запуску.”
- “Все готово для монтажа, я перейду на продюсування після димових випробувань.”
-
- “Впровадження призупинено на 25% — кількість помилок збільшилася.” *
- “Я повернув назад; ми перезапустимо, як тільки буде внесено поправку.”
-
- “Це заблоковано за прапорцем можливості, тому об’ єднання безпечно.” *
Поширені помилки
- ** « Тест не працює » проти « несправний ». ** * Несправний * = постійно зазнає невдачі (справжня помилка). * Несправний * = іноді зазнає невдачі (ненадійний тест).
- ** Плутанина між розгортанням і випуском. ** * Розгортання* = код випущено; * випуск* = користувачі можуть ним скористатися (прапорець все ще може його приховати).
- ** « Відкинути » як одне слово проти « відкинути » як дієслово. ** Іменник — * відкинути *; дієслово — * відкинути *.
- ** Використання « build » для всього конвеєра. ** Збирання є одним етапом; конвеєр — це все.
- **« Просунути » проти « розгорнути ». ** *Просунути * пересуває існуючу збірку вперед; *розгорнути * запускає розгортання.
Ключевые вещи
- Знайте структуру: конвейер → етапи → завдання → кроки, запускаються загінами.
- Терміни збирання: artefact, cache, green/red, fail fast, bisect.
- Терміни тестування: ** suite, flaky, coverage, quarantine, smoke test.**
- Терміни розгортання: **promote, roll back, canary, blue- green, feature flag. **
- Розрізняйте flaky проти broken і deploy проти release — вони викликають найбільше плутанини.
Освоєння цього словника і кожне оновлення про ваш трубопровід буде чітким, точним і негайно зрозумілим.
Розуміння нюансів: уникнення неправильних тлумачень у CI/CD комунікації
Для розробників, чия перша мова не є англійською, навігація термінологією навколо постійної інтеграції і постійної доставки (CI / CD) може бути особливо складною. Це не просто про те, щоб знати * що * щось є; це про розуміння тонких конотації і прийняті фрази, використовувані в технічній команді. Здається простим запит, наприклад, «виправити цей неправильний тест» може насправді мати кілька шарів значення, і неправильне тлумачення цих нюансів може призвести до марного часу і розчарування.
Одна з поширених областей плутанини виникає з використання прикметників, що описують тести. Сказати «цей тест нерівний» не означає просто сказати, що він провалюється періодично. Це означає, що є проблема з самим тестом — можливо, проблема з його налаштуванням, залежностями або середовищем, в якому він працює. Рідний англійський носіїв відразу б розглянув * чому * це тріщини: Чи це чутливе до незначних змін? Чи потрібні для цього певні набори даних? Нерідний мовець може зосередитися виключно на тому факті, що він провалюється і звертатися тільки до негайної невдачі без дослідження кореневої причини. Аналогічно, опис тесту як «забитий» — що означає замінений на імітаційну реалізацію — вимагає розуміння концепції ізоляції компонентів для цілей тестування, що може бути важко зрозуміти з буквального перекладу термінів. Під час перегляду коду, коментар на кшталт «Цей тест інтеграції зазнав невдачі через несподівану залежність» звучить цілком нормально, але розробник, не знайомий з термінологією, може припустити, що це просто помилка в самому коді і почати зневаджування без розгляду цілі тесту або потенційних проблем.
Крім того, формулювання навколо стратегій розгортання вимагає ретельної уваги. Сказати, що ви хочете « синє/ зелене розгортання » не просто про використання різних середовищ; це передбачає певну стратегію відновлення — якщо щось не так з новим середовищем, ви можете швидко переключитися назад до початкового. Менш точне твердження, наприклад, «розгорнути цю функцію», може бути інтерпретовано як просто перенесення коду в виробничу версію без розгляду впливу або процедур тестування. Ясне і докладне спілкування є абсолютно необхідним при обговоренні цих концепцій; запитання прояснюючих питань завжди заохочуються - такі фрази, як “Чи можете ви розібратися, що ви маєте на увазі під “флаки” в цьому контексті?”, Ідеально прийнятні, навіть якщо вони відчувають себе трохи незграбно на початку.
# Example: Using `kubectl` to rollback a deployment
kubectl rollout undo -f deployment.yaml
Ця команда демонструє практичне застосування розуміння термінології розгортання — у цьому випадку, ініціювання відновлення для скасування змін, внесених у розгортання Kubernetes. Ключовим моментом є те, що точна мова і проактивне пояснення є необхідними для ефективного співробітництва в середовищі CI / CD. Не вагайтеся задати питання або шукати подальшого пояснення; набагато краще бути ясним, ніж ризикувати нерозумінням, яке може вплинути на весь трубопровод.