Як допомогти інженерам DevOps відчувати себе менш схожим на одинокого вовка?


66

Я щойно розмовляв з хлопцем DevOps, який підняв кілька справді хороших балів щодо боротьби за те, що бути інженером DevOps та відчувати себе, як іноді, армією однієї людини, хоча він є в команді 16 інженерів.

Він носить безліч різних шапок, але сидить у команді розвитку, виконуючи інфраструктурні роботи. Він любить класну техніку, яку він отримує для роботи - автоматизація, хмара, контейнеризація тощо. Але він бореться за те, що він є єдиною людиною, яка працює opsв devкоманді. Він звітує перед менеджером розвитку, але тісніше співпрацює з менеджером інфраструктури.

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



3
Я завжди є DevOps як модель організації бізнесу, а не роль, яку хтось може взяти.
Т. Сар

Відповіді:


34

Перша моя думка - «чому він єдиний, хто робить оперу, в команді розробників, особливо коли він працює з навантаженнями автоматики?». Я думаю, що там є можливість вирішити синдром самотнього вовка; особливо в середовищі розробників, інфраструктура як код забезпечує чудову основу для спільного використання навантаження. Люди, які працюють в операційному середовищі, повинні бути експертами у визначенні та визначенні інфраструктурних потреб для застосування, але вони також повинні бути в змозі створити платформу для того, щоб ролі розробників могли робити стільки, скільки можуть самостійно.

Це звучить як силос в команді; старі звички важко вмирають. Кодер може не відчувати себе зручно закручувати і загартовувати сервер, але в чистій моделі дедепсів вони повинні мати інструменти для цього. Спеціаліст у команді devops не повинен нести відповідальність за надання інфраструктури для самого додатка, але вони повинні дати деяке розуміння того, що потрібно, а також деякі вказівки щодо того, як розробники додатків можуть це зробити самі. Це майже мета-інфраструктурна модель; ops інженери будують інфраструктуру, яка може будувати інфраструктуру на вимогу за запитом команди розробників.

Консультації, спілкування та змішання обов'язків - все вирішальне значення для успіху команди девепсів.


1
Дещо з цього орієнтоване на дуже м'яке програмне забезпечення. Я працюю з вбудованим програмним забезпеченням (або вбудованим програмним забезпеченням або програмним забезпеченням, що працює на / зі спеціалізованим обладнанням), і багато моделей та інструментів IaC не дуже добре підходять. Іноді хлопець DevOps - єдиний, хто знає, де це обладнання. Я був 1 із 4 з ~ 60 інженерів, які могли піти і знайти речі в лабораторії. У цих випадках цю відповідь важко реалізувати. Ми розробили способи віддалити енергоблоки живлення людей віддалено, але це було майже все, що ми могли придумати. Будь-які пропозиції будуть вітатися.
TafT

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

25

Я думаю, що перший недолік у цьому реченні:

Він звітує перед менеджером розвитку, але тісніше співпрацює з менеджером інфраструктури.

DevOps - це культурний зсув, спрямований на усунення силосів. Якщо силоси залишаються, то цей інженер все, що ви хочете назвати, називайте його; інженер, що займається операційною розробкою, експерт з автоматизації, розробник автоматизованої інфраструктури - але цей інженер не є інженером DevOps.
Насправді, "DevOps Engineer" - це не реальна роль , це скоріше "шапо", оскільки воно може охоплювати розробників, системних адміністраторів, тестувальників якості та архітекторів, що працюють в загальній команді.

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

Як ви описуєте це, цей інженер - єдиний, хто робить Ops в команді Dev. Це не робить його "інженером DevOps". (Що б це не означало в його організації) Він працює ізольовано, оскільки робота представлена ​​як "DevOps Engineer", але здається, що інші люди в його команді не бажають працювати над операціями.

Будемо чесними, завжди буде ops і dev, головна ідея девепса - це розподіл обов'язків таким чином, щоб не було передачі продукту від розробника до операторів або просто постачання платформи операційними системами для розробника. Основна мета - налагодження більшої співпраці в команді. Називаючи цю роль "інженером DevOps", це руйнує цю ідею, пропонуючи в імені ви можете робити обидва на одному рівні знань, що рідко буває істинним.

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

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


1
Однією з важких речей, які можна погодити щодо реалізації девепса, є органічні діаграми. Силоси зазвичай формуються навколо управління, і якщо у вас є Dev mgr та Infrastructure mgr, спонукання цих команд до спілкування звучить добре, але консолідуватись є небажання. Культуру важко змінити, і органічні карти яскраво демонструють культуру.
Стюарт Ейнсворт

@StuartAinsworth дійсно, саме тому я не говорив про зміну організації, а більше про іншу частину команди.
Тенсібай

16

Найважливішим для інженерів DevOps в таких ситуаціях є: (а) зобов'язання з управління та (б) необхідні бюджети . Детальніше про обидві читайте далі ...

Отримайте зобов'язання з управління

Як тільки це станеться, такі інженери DevOps стають легкими. Особливо, коли в гру потрапляє опір (від різного роду партій). Повірте, буде такий опір, який викликає такі виклики, як:

  • Чому ми мусимо змінюватися? Я хочу продовжувати робити те, що я робив протягом X років!
  • Я не хочу втрачати (технічну) потужність, яку я маю, і завершити всілякі процедури робочого процесу, щоб отримати нерозумно виправлене виробництво, яке повинно зайняти мене як 5 хвилин замість 5 годин (або днів ...).
  • ... (Я можу сюди додати ще десяток куль ...).

Щоразу, коли виникають ці проблеми, всі інженери DevOps повинні сказати:

Вибачте, я просто виконую свою роботу ... на основі вказівок керівництва.

Отримайте необхідні бюджети

Ефективний спосіб отримати необхідний бюджет - створити / подати відповідний бізнес-кейс, який пояснює відчутні та нематеріальні переваги різних практик DevOps, застосовуючи їх до деяких справ реального світу, що стосуються самої компанії.

Нижче наводиться декілька реальних справ, які я пережив сам, як консультант з SCM, найнятий деякими компаніями, де ці речі траплялися. Я знаю, SCM є лише частиною DevOps, але це сфера, де я маю певний досвід ...

1. Переваги автоматизації

Через деякий страйк лише від 2 (!!!) комп'ютерних операторів (які більше не набирали команди консолі, що вони там, де очікується набрати), поїзди довелося зупиняти десь на півдорозі між двома фабриками (оскільки система на заводі там, де поїзд рухався вниз, важливих даних щодо поводження з поїздом не було).

Впровадивши систему SCM, багато команд оператора були автоматизовані.

2. Зменшити витрати на ліцензію на програмне забезпечення

Деякі виробники програмного забезпечення вирішили збільшити щорічну плату за (застаріле) програмне забезпечення SCM, з яким керівництво не погодилося. Для цього вони створили спеціальний проект, щоб замінити його на якесь альтернативне програмне забезпечення SCM.

Бюджет проекту дорівнював річному внеску, який вони не хотіли продовжувати платити. Це включало в себе політ інженерів з інших континентів (як я), щоб досягти успіху проекту.

3. Зменшити експлуатаційні витрати

Деякі великі страхові компанії використовували деяке програмне забезпечення FTP для передачі виправлень програмного забезпечення на близько 13 000 комп'ютерів середнього класу (AS / 400) по всій країні, і це завжди, коли виходили «виправлення». Вартість 1 такого переказу становила близько 4 USD (13.000 x 4 = 52.000 USD за один переказ ...). Програмне забезпечення складалося з 120 000 компонентів, розроблених / підтримуваних приблизно 150 розробниками. Зробіть математику щодо ймовірності того, що 1 розробник допустив 1 (крихітну) помилку в будь-якому з цих 120 000 компонентів, що призвело до виробництва, і вимагає термінового виправлення, яке коштуватиме ще 52 000 доларів США (лише на передачу!).

Впровадивши адекватну систему SCM (з керованими тестовими середовищами, затвердженнями тощо), ця компанія досягла значного зниження витрат. Подумайте, якщо система SCM могла запобігти необхідності лише 20 передач термінових виправлень, це призвело до зменшення витрат на 52.000 x 20 = 1.040.000 USD (досить бюджет для впровадження системи SCM, їм потрібна була лише частка від цієї суми, щоб виконати роботу).

4. Зменшити витрати на недоступність

Якщо вищезазначені випадки недостатньо переконливі, подумайте, чи система (-и) великої компанії з кредитних карт недоступні у всьому світі. Мені сказали, що 1 секунда недоступності коштує їм 1.000.000 доларів.

Це, мабуть, також причина того, що такі компанії вже дуже багато десятиліть застосовують складні інструменти DevOps. Тому що кожна секунда вони не в бізнесі коштує їм цілого статку.


Я думаю, ти пропускаєш кілька кроків. Якщо команда розробників НЕ вже розгортання кількох копій програми (принаймні , тестової середовищі перед прод), то , що має бути мандат. Тоді вони можуть певний час боротися з цим самостійно, якщо дійсно хочуть витратити час. Це робить експерта Dev Ops корисним для цих людей; вони можуть перетворити хворобливий процес на більш плавний, замість того, щоб вдаватися до "керівництво так говорить". Звідси походить вся ідея Dev Ops, врешті-решт: усунення болю за розгортання та управління кількома середовищами.
jpmc26

4

TL; DR: Оскільки вище керівництво зазвичай непостійне і схильне до гніву, я б запропонував спробувати трохи схилити його розум, щоб отримати іншу точку зору, змінюючи все на краще, поступово.

(Я припускаю , що його біда в тому , в основному , з небажанням девів , а не інші його OPS колег , які , здається, роблять класичні операції в основному.)

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

Єдине, що не повинно відбуватися, це те, що хлопець DevOps робить свою автоматизацію, а всі інші намагаються зробити все можливе, щоб уникнути зазначеної автоматизації (тобто, пройти повз конвеєр CI / CD і робити речі вручну в одному з середовищ). Це, ІМО - головне, що має зупинитися. Одним з рішень для цього було б наполегливо наполягати на підході до худоби, тобто невблаганно руйнувати віз-машини або контейнери, як тільки можна, і постійно крутити нові.

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

По-третє, "один хлопець", звичайно, повинен стежити, щоб він не виконував чергових, повсякденних завдань для своїх колег (наприклад, створення Dockerfile після Dockerfile для їх артефактів ...).

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

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

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


4

Я бачу тут багато чудових відповідей, що говорять про DevOps як культуру, пропозиції щодо того, як працювати з управлінням, а також допомогти визначити, що робити, чи не робити команди DevOps або інженера. Я думаю, що кожен з них чудовий, і справді ілюстративність багатьох відповідей може бути на 100% правильною, і все ж бути дуже різною, або навіть зовсім неоднозначною, одна від одної ... Це DevOps!

Ця відповідь - це лише моя унікальна точка зору з досвіду і може не вказувати на норми чи найкращу практику ...

Але те, на що скаржився ваш колега DevOps, - це сама природа того, що робить DevOps складним і складним , особливо коли він призначений на роль інженера DevOps, а не просто культурного мислення.

Особисто мені подобається бути вовком-одиноким, тому що я все ще роблю цінний внесок, але також можу встановити власні межі, переконуючи інших допомогти собі, тим самим допомагаючи мені, розбиваючи ІТ-силоси.

Деякі силоси залишаються цілими , і це нормально, це місія DevOps обійти це і намагатися зробити ці силоси максимально незначними або невидимими.

Можливо, ваш колега може зрозуміти або ще не зрозумів, що йому або вона не подобається бути інженером DevOps .


3

Відносно кажучи, поняття devops є новим і все ще визначає себе на мою думку. На даний момент я виконую роль інженера devops. Для мене це означає, що я полегшую та розробляю інструменти та процеси, які використовуються як нашими командами розробників, так і операторів, звільняючи їх зосередитись на продукті, що приносить прибуток компанії. Команди операторів і розробників обробляють свої власні сервери та такі, як потрібно. Я просто підключаю ІС для нашої продукції, переконуюсь, що наші процеси мають сенс і шукаю, який процес можна вдосконалити / автоматизувати. Я зустрічаюся з усіма нашими відділами: від продажів, до складських приміщень, до розробників та операцій (QA та менеджерів випусків), щоб побачити, що вони роблять, і як я можу вдосконалити їх процес.


2

Для мене DevOps означає, що розробка та функціонування програмної системи стає відповідальністю однієї команди, а не окремих команд dev і ops. Це двостороння вулиця. Найкращі команди складаються з " T-Shaped " людей, які є експертами в одній галузі та знайомі з кількома суміжними сферами.

  • Від членів команди з досвідом роботи Ops очікується, що вони будуть робити найкраще (тобто Ops), навчати основ того, що вони роблять найкраще (тобто Ops) для інших, а також навчатись та виконувати завдання в суміжних галузях (тобто завдання Dev).
  • Від членів команди, які мають досвід роботи Dev, слід робити те, що їм найкраще (тобто Dev), навчати основ того, що вони роблять найкраще (тобто Dev) для інших, а також навчатись та виконувати завдання у відповідних галузях (тобто завдання Ops).

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

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

Очікуйте, що розробники візьмуть на себе частину розповсюджених завдань Ops, як створити надмірність в команді, так і поширити роботу "друзів".

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


1

Що можна зробити, щоб допомогти інженерам DevOps відчути себе менш схожим на самотнього вовка?

Перефразовуючи - що може інженер DevOps зробити сам / сама , щоб відчувати себе менш , як самотній вовк?

Відсутність культури та підтримки управління - це лише одна частина рівняння. Інша частина, на мою думку, детально знає DevOps часто стосується складних контекстів і важливо мати поради та посилання на робочі приклади.

Тому - не відчувайте себе одиноким вовком; беріть участь у таких спільнотах DevOps, як ця тут, або групах, специфічних для інструментів, і GitHub - відчуття принаймні тоді ви не єдиний самотній вовк ;-)


1
DevOps, за своєю природою - це командна вправа. Єдине, що може зробити сам інженер DevOps, щоб відчути себе менш схожим на одинокого вовка, - це кинути та перейти до більш функціональної організації.
Джеймс Швай
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.