Як системному адміністратору стати DevOps-інженером
Привіт! Мене звати Павло Завада, я DevOps-інженер із 15+ років досвіду у сфері, співзасновник NETFORCE Group. А ще я ділюся своїми знаннями як викладач в IT Education Center.
Зараз серед моїх знайомих айтівців поширюється думка, що з розвитком технологій робота системних адміністраторів може стати непотрібною. Хмарні обчислення й автоматизація просто позбавлять потреби в цих спеціалістах.
Але що ж насправді чекає системних адміністраторів?
Про це я й хотів би розповісти у цій статті.
Передслово: спочатку був сисадмін
Зі зростанням популярності та впливу методології DevOps я бачу як багато традиційних ІТ-ролей повільно, але впевнено переходять у профіль DevOps. Першість у цьому списку посідають системні адміністратори.
Оскільки DevOps — це суміш розробки та адміністрування, багато системних адміністраторів намагаються відточити свої навички й перейти на сторону DevOps.
За власним досвідом скажу, що перехід від системного адміністратора до DevOps-фахівця залежить від конкретного спеціаліста та його можливостей. Як і у випадку з більшістю традиційних ролей в ІТ, хороший сисадмін досягне успіху в кількох сферах, які складають критичні аспекти набору навичок DevOps-інженера. Але поряд із цим важливо, щоб такий фахівець здобув нові скіли, аби досягти успіху в ролі DevOps.
Традиційна роль системного адміністратора є однією з найрізноманітніших і складних ролей в ІТ. Він повинен:
- знати про операційні системи, мережі, апаратне забезпечення і бази даних;
- мати уявлення про бюджет, роботу та підтримку.
Не дивно, що саме сисадмінів приваблюють вакансії зі сфери DevOps.
Та перш ніж здійснити перехід, важливо проаналізувати свої навички та зіставити їх з вимогами індустрії DevOps. Як це зробити? Розказую нижче.
Різниця між System Administrator і DevOps Engineer
Роль системного адміністратора не нова для галузі, вона існує доволі тривалий час із визначеними завданнями та обов’язками. На відміну від DevOps-інженерів, чия посада з’явилася лише наприкінці 2009 року.
З власного досвіду бачу, що DevOps вніс легкий місандестендінг у сферу і те, чим займається зараз сисадмін, залежить від розміру компанії, сфери діяльності, досвіду та навичок самого фахівця. Кожна організація має різні вимоги: хтось хоче найняти енікейщика, а хтось — DevOps-фахівця, а вакансії публікуються під єдиною посадою System Administrator.
Загалом, системний адміністратор займається налаштуванням, обслуговуванням серверів і комп’ютерних систем. Традиційно системний адміністратор не бере участі в процесі розробки програмного забезпечення.
Методологія DevOps — це інший підхід, завдання якого налагодити взаємодію програмістів, QA та сисадмінів у компанії. Якщо ІТ-фахівці з різних відділів не розуміють суть завдань один одного, випуск нових додатків та оновлень для них затягується.
У DevOps вся команда бере участь у життєвому циклі розробки продукту, що формує безшовний цикл розробки й допомагає прискорити випуск програмного продукту.
Однак посада DevOps-інженер — це одна з найскладніших ролей. Вона синхронізує всі етапи створення програмного продукту: від написання коду до тестування та випуску. Такий фахівець контролює відділи розробки та адміністрування плюс автоматизує виконання їхніх завдань, впроваджуючи різноманітні програмні інструменти.
Фішка DevOps-інженера в тому, що він поєднує безліч професій: сисадміна, розробника, тестувальника та менеджера. Поєднує, але не заміняє їх.
Чим займається системний адміністратор?
Професійні обов’язки сисадміна закладають хороший та надійний фундамент, на якому можна побудувати кар’єру DevOps-інженера.
1. Резервне копіювання та аварійне відновлення
Системні адміністратори впроваджують резервне копіювання даних разом зі стратегіями аварійного відновлення. Ці стратегії стосуються ІТ-систем, а також середовищ SDLC. Деякі заходи включають впровадження автоматизованих програмних рішень та заміну апаратних і програмних компонентів.
2. Адміністрування мережі, безпеки та бази даних
Сисадміни переконуються, що мережеві взаємодії відповідають усім протоколам для підтримки цілісності мережі. Вони моніторять і аналізують мережу, дбають про безпеку апаратних компонентів, займаються ідентифікацією та керуванням доступами тощо. Зазвичай ці обов’язки зосереджені на інфраструктурі та безпеці мережі. Діяльність з адміністрування бази даних включає підтримку цілісності, продуктивності та ефективності системи БД. Сисадміни діють як зв’язна ланка із користувачами для розв’язання проблем, пов’язаних із базою даних, як-от резервне копіювання та відновлення.
3. Адміністрування користувачів
Основним обов’язком системного адміністратора є підтримка надійного та ефективного використання складних ІТ-систем кінцевим користувачем. Це включає керування ідентифікаційними даними, доступ до надання спеціальної технічної підтримки окремим користувачам. Вони також є єдиним контактом з ІТ-відділами для юзерів, щоб розв’язувати будь-які технічні проблеми.
4. Документація
Системні адміністратори ведуть звіти про використання ІТ-активів. Документація є основною вимогою для відповідності нормативним вимогам. Запити кінцевих користувачів, а також бізнес-вимоги та ІТ-проблеми документуються для планування майбутніх інвестицій в ІТ та модернізації.
5. Обслуговування системи
Системні адміністратори відповідають за доступність ІТ-систем та їх покращення. Такі фахівці потрібні, щоб усувати несправності та проблеми, які погіршують продуктивність системи або обмежують доступ до неї.
Що треба знати системному адміністратору, щоб потрапити в DevOps?
Сисадміни мають достатню базу знать, щоб перейти у DevOps. Але з власного досвіду зазначу: щоб цей перехід був вдалим, слід опанувати хмарні cервіси та автоматизовані інструменти. Ну і куди ж без софт скілів? DevOps-інженер має працювати над розвитком комунікативних навичок та бути хорошим командним гравцем. А ще знання англійської, хоча б на рівні «читаю документацію».
Ось деякі ключові навички, які системні адміністратори повинні освоїти, щоб досягти успіху в ролі DevOps Engineer.
1. Хмарні технології
Клауд є важливою частиною DevOps, оскільки більшість проєктів тут розміщені в хмарі. DevOps-інженер повинен вміти налаштовувати служби та сервери, пов’язані з різними хмарними провайдерами. Окрім цього, повинен мати уявлення про клауд-сервіси, такі як SaaS, PaaS, IaaS.
2. Навички програмування
Системний адміністратор не є розробником в сенсі програмування сайтів, застосунків для мобільних телефонів тощо. Для сисадмінів на Linux стеку must have досвід написання скриптів на Shell/Bash, на Windows стеку — скриптів на Powershell. Але для переходу на посаду DevOps-інженера буде плюсом знати теорію і мати невеликий досвід програмування. Тому, гарна ідея познайомитися з такими мовами програмування, як Python або Go.
3. Безперервна інтеграція (CI)
Безперервна інтеграція або CI є однією з найважливіших частин DevOps. CI дозволяє постійно впроваджувати зміни в програмний продукт. Оскільки у традиційні обов’язки системних адміністраторів не входить налаштування конвеєрів безперервної інтеграції, слід їх опанувати, щоб потрапити в DevOps.
Існує багато різних інструментів для впровадження безперервної інтеграції у вашій організації. Одними з популярних інструментів CI є Jenkins, CircleCI, TravisCI, GitLab, Bamboo, TeamCity тощо.
4. Прогнозні стратегії розгортання
Основою CI/CD є часта доставка змін коду до виробничих середовищ. Розгортання в DevOps відбуваються досить часто. Отже, має бути впевненість, що час простою відсутній або зведений до мінімуму. Таким чином, системний адміністратор, який переходить на посаду інженера DevOps, повинен розуміти найефективніші способи розгортання програм, мінімізуючи час простою. Він повинен ознайомитися з безпечними та ефективними стратегіями розгортання.
5. Управління конфігурацією
Системний адміністратор повинен бути знайомий з керуванням конфігураціями, якщо він намагається стати DevOps-інженером. Прикладами таких інструментів є найпопулярніший Ansible, менш популярні — Chef, Puppet. Вони створені для того, щоб полегшити автоматичне налаштування та обслуговування сотень і тисяч серверів. Інструменти керування конфігурацією допомагають автоматизувати процеси.
6. Контейнеризація додатків і IaaS
Системні адміністратори, які хочуть вирости до професіоналів DevOps, швидше за все, займатимуться розгортанням і підтримкою контейнерних програм. Отже, щоб гарантувати успіх як DevOps-інженеру, людина повинна мати розуміння практик, пов’язаних із контейнеризацією (технології Docker та Kubernetes). Крім того, треба мати знання та практичний досвід роботи з такими популярними платформами IaaS, як AWS Google Cloud і Microsoft Azure.
Висновок
Роль системного адміністратора дещо збігається в обов’язках і досвіді з DevOps-інженером. Багато сисадмінів уже мають навички роботи зі сценаріями та, можливо, навіть певний рівень знайомства з технологіями та платформами для автоматизованого розгортання програм, конфігурації сервера тощо.
Тож, кожен сам вирішує, чи хоче він залишитися системним адміністратором, чи перейти на DevOps.
А тепер обговорімо ваші питання та думки в коментарях.
4 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів