Кожна компанія, що прагне найняти на роботу спеціаліста, ставить свої вимоги до кандидатів на посаду. Тому дуже часто кандидати не зовсім розуміють, якого спеціаліста шукають рекрутери та чого від них чекатимуть, коли вони отримають роботу.
Ми підготували спеціальну статтю для тих, хто планує стати адміністратором DevOps, та поки що не розуміє чим саме займається даний спеціаліст.
Щоб по-справжньому зрозуміти, які обов’язки має виконувати адміністратор DevOps, краще прочитати розповіді провідних спеціалістів, що багато років обіймають цю посаду і мають значний досвід роботи.
Дізнайтеся про те, що означає працювати в ролі DevOps, від спеціалістів Метью Грасбергера (інженера DevOps в Imperfect Foods) та Мірко Херінга (керівника глобальної трансформації в Accenture).
Такі вимоги до роботи адміністратора DevOps як розробка програмного забезпечення, системне управління, комунікативні навички здаються простими, але кожна спеціальність має свої нюанси.
Обов’язки адміністратора DevOps можуть відрізнятися в залежності від посади, яку він обіймає (junior, middle, senior), проте існують і однакові вимоги, що стосуються всіх посад. Наприклад, для посади senior потрібно більше років досвіду ніж для junior, але обидві посади вимагають наявності ступеня бакалавра в галузі інформатики або суміжної галузі.
Розглянемо детальніше, які саме потрібні знання на думку Метью Грасбергера та Мірко Херінга, щоб стати досвідченим адміністратором devops.
Мірко Херінг перерахував три найважливіші навички, які повинен мати адміністратор DevOps:
Найбільшою перевагою для будь-якого спеціаліста є бажання вивчати нові технології, всебічно саморозвиватись, а не спеціалізуватись лише на одному інструменті. Один зі способів показати, що ви дійсно кваліфікований професіонал, це пройти сертифікацію та отримати відповідний сертифікат. Для цього бажано попередньо пройти курси DevOps, чи курси Microsoft Azure.
Автоматизація в DevOps — це загальний навик необхідний всім адміністраторам DevOps. Більшість спеціалістів, з якими працює Херінг не мають проблем із переходом із Jenkins до DevOps. Вони розуміють, як працює автоматизація, як потрібно абстрагувати змінні, як потрібно думати про використання конфігурації для всього, а не жорсткого кодування.
Важливо мати не тільки загальні знання та бажання вчитися, але й навички, досвід і вміння користуватися таким інструментом або платформою, як Azure DevOps, Ansible або Terraform.
Admin DevOps іноді має першим реагувати на певні проблеми та несправності, говорить Грасбергер, і для цього він має бути ознайомлений зі стеком програм своєї компанії. Ці знання мають вирішальне значення для цієї ролі, тому що, наприклад, обов’язки адміністратора можуть включати моніторинг журналу та логів, для визначення завантаженості бази даних.
І хоча стек додатків може змінюватися від компанії до компанії, адміністраторам необхідно мати досвід роботи з різноманітними популярними мовами програмування. Замість того, щоб спеціалізуватися однією мовою сценаріїв, адміністратор DevOps повинен бути знайомий з кількома мовами, такими як Java, JavaScript, Ruby, Python, PHP, Bash та іншими. А також повинен відчувати себе комфортно при написанні коду та усуненні проблем використовуючи будь-яку з перерахованих мов.
Однак, відповідальність адміністратора DevOps не обмежується тільки навичками роботи з програмами, а також поширюється і на знання всієї інфраструктури. Для багатьох це може означати посилення навичок роботи з хмарними платформами та додатками. Але, швидше за все, це означає розуміння гібридного середовища, адже компанія може зажадати розгорнути середовище між локальною інфраструктурою на VMware та хмарою.
В час масового переходу компаній в хмару, користуються попитом спеціалісти, що ознайомлені з хмарними провайдерами та інфраструктурою.
Мірко Херінг згадує, що кілька років тому, однією з основних задач інженерів або адміністраторів DevOps було створення та підтримка конвеєрів CD (безперервного розгортання). Щоб виконати це завдання, спеціалісти повинні були володіти такими інструментами та концептами як Jenkins, автоматизація, Perl і Bash.
Сьогодні, компанії все частіше користуються послугами Microsoft Azure, Google Cloud або будь-якого з інших доступних хмарних провайдерів, тому адміністратори DevOps почали більше працювати з хмарними рішеннями, - зазначає Грасбергер.
Хоча кожен з хмарних провайдерів має свої тонкощі роботи, проте всі вони мають і спільні характеристики. Наприклад, зазвичай ці провайдери використовують мови програмування, API та контейнери. Тому, щоб стати досвідченим спеціалістом потрібно мати загальне уявлення про роботу хмар і вміти працювати з будь-якою платформою. Ось чому так важливо мати навички роботи з платформою Azure DevOps, або з такими альтернативами як AWS чи Google.
За останні кілька років Грасбергер також спостерігає зростання використання контейнеризації. Наразі, використання Docker, принаймні в багатьох компаніях, є де-факто стандартом для розробки багатьох додатків. Тому ці компанії переходять на Kubernetes, Elastic Container Service та багатьох інших провайдерів, і потребують спеціалістів, що здатні працювати з контейнерами Docker.
Інструменти «інфраструктури як коду» надзвичайно популярні, і на це є вагомі причини, зазначає Грасбергер, оскільки без них дуже важко зрозуміти та відстежити, що відбувається з інфраструктурою компанії. Компанії стартапи, які прагнуть якнайшвидше розпочати роботу, можуть не турбуватися про відстеження змін, але великі організації повинні відстежувати ці зміни та їх вплив на налаштування хмари, пояснив він. Тому адміністратори devops мають вміти користуватись такими популярними інструментами «інфраструктури як коду» як Terraform, та альтернативними, такими як шаблони Ansible та ARM.
DevOps - це насамперед культура. Щоб адміністратор DevOps успішно реалізував цю методологію, потрібно оптимізувати спосіб розробки проектів спеціалістами. Одним зі способів пояснити процес є навички візуалізації. Візуалізація процесів, наприклад, відображення потоків цінностей або візуалізація додатків та інфраструктур, допомагає донести до інших спеціалістів потрібну інформацію щодо цілі яку потрібно досягти, будь то впровадження технології чи зміна робочих процесів.
Херінг вважає вміння аналізувати та використовувати дані для прийняття рішень - особливо показників платформ і програм DevOps - одним із наступних кроків у розвитку ролі адміністратора DevOps. Це можуть бути рішення про активне відновлення безпеки та захисту від вразливостей, для того, щоб уберегти компанію від проблеми, коли з’явиться така вразливість як Log4J, і тоді доведеться дуже швидко виправляти її всюди. Також, адміністратори мають досліджувати як дані використовуються програмами, щоб побачити, які компоненти більш навантажені, ніж інші, і вчасно вживати заходів з перенесення навантаження.
Якщо ви бажаєте опанувати основні DevOps практики й інструменти – ми пропонуємо прослухати наш курс «DevOps методології, вибір платформи та інструментів реалізації»
Для спеціалістів, що бажають поглибити свої знання DevOps, ми маємо наступні курси:
Курс AZ-400T00 Розробка та впровадження рішень Microsoft DevOps
Курс NT-Docker Контейнеризація та управління на платформі Docker