Англійська для трубопроводів CircleCI

Вивчіть англійську лексику для опису потоків робіт, завдань і кешування CircleCI під час обговорення з командою помилок і поліпшень конвеєра CI.

Файл налаштувань CircleCI описує цілий графік завдань, потоків роботи і правил кешування, і коли конвеєр пошкоджується, легко описати симптом (« збірка червона ») без назви шару, який насправді зазнав невдачі. Вивчення точного словника сприяє прискоренню розмов щодо зневадження і допомагає вам писати більш чіткі коментарі щодо змін у конвеєрі за запитом на звантаження.

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

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

  • “Задача розгортання не була запущена, оскільки поток робіт має її залежною від тестового завдання, а тестове завдання зазнало невдачі до того, як було запущено завдання розгортання.” *

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

** Виконувач ** — середовище, у якому виконується завдання, наприклад, штамп Docker, віртуальна машина Linux або машина macOS, яке визначає, які інструменти і ресурси є доступними.

  • “Ми змінили виконавця цього завдання з малого штампу Docker на виконавця машини, оскільки йому потрібен доступ до вбудованої фонової служби Docker.” *

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

  • “Відповідно до зміни ключа кешу, час збирання збільшився вдвічі після того, як ми перезапустили файл блокування, і кожному завданню потрібно було перевстановлювати залежності з холодного кешу.” *

** Orb ** — пакунок з версіями налаштувань CircleCI (команд, завдань, виконавців), який можна поділитись, що дозволяє командам повторно використовувати спільну логіку конвеєра замість копіювання YAML між сховищами. “Замість того, щоб знову писати кроки розгортання вручну, ми витягнули AWS orb, який вже обробляє автентифікацію і розгортання в декількох рядках налаштувань.”

Звичайні фрази

  • «Яка робота в робочому потоці насправді зазнала невдачі — це була збірка, тести або розгортання?»
  • Чи є це проблемою виконавця, чи робота сама по собі закінчується?»
  • “Чи змінився ключ кешу? Це пояснило б, чому цей запуск набагато повільніший»
  • Чи можемо ми втягнути в це сферу замість того, щоб написати її з нуля?»
  • «Чи потрібно цьому завданню блокувати решту потоку робіт, або воно може працювати паралельно?»

Приклади висловлювань

Діагностика повільного конвеєра: “Сам процес роботи працює нормально — це одна робота, яка повільно виконується, і це тому, що ключ кешу прив’ язано до файла, який змінюється при кожному занесенні, отже, ми ніколи не отримуємо кеш-пострілу.”

Пояснення помилки розгортання: ” Розгортання не було запущено, оскільки поток роботи вимагає, щоб тестове завдання пройшло першим, а тести зазнали невдачі через неспоріднене твердження — логіка розгортання так і не була досягнута.”

Пропозиція щодо поліпшення конвейєра:

  • « Я хочу переключити це завдання на легший виконавець і запустити стандартний orb для нашого постачальника хмарних послуг, що значно скоротить час виконання і розмір налаштувань. » *

Професійні поради

  • Використовуйте workflow, якщо ви маєте на увазі загальний графік залежностей, і job, якщо ви маєте на увазі одну одиницю роботи — переглядачі не зможуть діагностувати « помилка конвеєра », не знаючи, який шар ви насправді описуєте.
  • Явно згадати про ** виконавця **, коли завдання поводиться інакше, ніж очікувалося — дивовижна кількість « нерівних » завдань насправді є відмінностями ресурсів або середовища на рівні виконавця, а не тестуванням нерівності.
  • Перевірити, чи не змінився ** ключ кешу **, перш ніж припустити, що сповільнення є справжньою регресією — холодний кеш з блокування файла виглядає ідентично справжній проблемі швидкодії у таймінгу конвеєра.
  • Запропонуйте ** orb ** за назвою, коли пропонуєте спростити налаштування — це швидший спосіб повідомити « давайте використаємо підтримувану інтеграцію », ніж описувати кроки, які ви інакше написали б від руки.

Практичні вправи

  1. Поясніть одним реченням різницю між потоком робіт і завданням у CircleCI.
  2. Описує, як зміна ключа кешу може призвести до того, що конвеєр буде виглядати повільнішим, без жодної реальної регресії у коді.
  3. Напишіть два речення, у яких ви запропонуєте співробітнику команди пересунути повільне завдання іншому виконавцю, поясніть, чому, на вашу думку, це допоможе.

На практиці: Навігація зворотного зв’язку і запитів

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

Розгляньте це повідомлення Slack від старшого розробника Марка, відповідаючи молодшому розробнику Сарі, яка повідомила про помилку CircleCI: «Збірка зазнає невдачі на гілки main. Чи можете ви дослідити помилки витягування зображення Docker?» Сара може інстинктивно перекласти « Docker image pull errors » безпосередньо, але це не повністю пояснює проблему. Фраза означає проблему з самим зображенням — можливо, воно застаріло, пошкоджено або несумісне з середовищем CI. Більш корисною відповіддю було б: «Гаразд, давайте розглянемо ці помилки завантаження зображення Docker. Здається, що може бути проблема з базовою версією штампу, яку ми використовуємо. Чи можете ви спробувати отримати останню мітку і побачити, чи це вирішить проблему? Також перевірте ваш circle.yml на наявність налаштувань кешування, які можуть викликати перешкоди. Зауважте, що такі фрази, як « останній міток », « вирішує проблему » і « перешкоджає » є більш специфічними і дійовими, ніж простий переклад оригінальних термінів.

Інша поширена ситуація виникає під час надсилання запитів на зміни до опису PR або файла налаштувань CircleCI. Ви можете отримати відповідь на зразок: « Цьому завданню потрібен більше контексту — додайте коментар, у якому пояснюється, чому його виконують ». Ключовим у цьому випадку є розуміння « більше контексту ». Це не просто додавання речення; це означає надання * достатньої * інформації для того, щоб хтось інший (або ви самі у майбутньому) міг зрозуміти мету завдання і його залежності. Хороший опис PR буде описувати мету зміни, будь- які відповідні вхідні або вихідні дані, і як вона інтегрується з більшою системою. Це про ясність і підтримку - якості, які високо цінуються в професійній англійській.

Нарешті, при обговоренні потенційних поліпшень конвеєра CircleCI, уникайте надмірно буквальних перекладів. Замість того, щоб сказати « оптимізувати це завдання », ви можете сказати « Давайте дослідимо способи поліпшення швидкості виконання цього завдання за допомогою зменшення його залежностей або ефективнішого використання кешування ». Остання фраза є набагато більш адресованою і пропонує конкретні пункти дій.

Ось приклад фрагмента circle.yml, який використовує можливості кешування CircleCI, щоб продемонструвати, як можна обговорити цей словник:

cache:
  directories:
    - ./node_modules
    - vendor/npm

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

Про що ця стаття "Англійська для трубопроводів CircleCI"?

Вивчіть англійську лексику для опису потоків робіт, завдань і кешування CircleCI під час обговорення з командою помилок і поліпшень конвеєра CI.

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

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

Скільки часу займає читання "Англійська для трубопроводів CircleCI"?

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