Поради Junior спеціалістам: як стати Senior DevOps Engineer?

З джуна у сеньйори за 3 роки. Гадаєте, це довго? Аж ніяк, бо мова йде про DevOps-інженерів. Що потрібно вивчити за цей час? На яких навичках слід закцентувати? Нумо розбиратися.

Як стати Senior DevOps Engineer?

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

Якщо для вас це не новина, імовірно, ви вже на посаді Junior DevOps Engineer. Але як рухатися кар’єрними сходами далі? 

Що повинен вміти й знати сеньйор?

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

Senior DevOps Engineer також може відповідати за створення інструментів автоматизації або за сценарії, які можуть допомогти прискорити процес розробки ПЗ. Від тестування нових функцій перед їх випуском до автоматизації рутинних завдань, щоб розробникам більше не доводилося витрачати на них час.

Проте слід пам’ятати: впроваджувати нові технології слід тільки якщо вони дійсно матимуть ефект в майбутньому. «Помилка на рівні архітектури найдорожча», — зазначає Антон Чудаєв, TeamLead DevOps в V.I.Tech.

Основні вимоги до старшого DevOps-інженера

  • Детальне розуміння компонентів платформи, таких як інфраструктура, набір інструментів SDLC, керування даними та аспекти безпеки.
  • Досвід розробки корпоративних програмних продуктів і життєвого циклу SDLC.
  • Глибоке розуміння реалізацій DevOps, DevSecOps і конвеєра.
  • Досвід роботи з такими технологіями як Ansible, Salt, Chef і Terraform.
  • Глибоке розуміння інфраструктурних технологій On-Prem і Cloud hosting.
  • Розуміння та досвід роботи з SaC (Security as Code).
  • Досвід роботи як мінімум з однією мовою програмування Python, Go, Java, C, C++.
  • Глибоке розуміння технологій управління даними, досвід роботи принаймні з одним із продуктів SQL і NoSQL.
  • Досвід роботи з Big Data, Hadoop і розуміння MapReduce. 
  • Глибокі навички роботи з вебпротоколами, вебслужбами та REST API.
  • Розуміння 3-рівневої архітектури додатків і досвід проєктування принаймні однієї корпоративної програми від початку до кінця.
  • Детальне розуміння хмарної безпеки та послуг хмарної інфраструктури.
  • Глибоке розуміння практики SRE та досвід роботи принаймні з одним зі стеків спостереження (моніторинг, логування, візуалізація).

Інструменти, якими має володіти Senior DevOps Engineer

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

  1. Git
    Це опенсорсний стандарт трекінгу вихідного коду. Git — обов’язковий для вивчення кожному DevOps-інженеру.
  2. Gitlab
    Система підтримує повний цикл розробки, що включає управління вихідним кодом Git, CI/CD та відстеження проблем. Тут можна повністю вести розробку: «мерджитися», «деплоїтися» та інше. 
  3. Jenkins
    Старожил на терені систем автоматизації сьогодні частіше використовується в компаніях, що вже «встали на ноги». Jenkins розроблявся як інструмент безперервної інтеграції, але розвинувся до системи, здатної запустити ракети в космос завдяки плагінам.
  4. Jira
    Рішення Atlassian стали певним індустріальним стандартом. Попри низку аналогів, плюс Jira — інтеграція з іншими системами Atlassian, наприклад, Confluence.
  5. Confluence
    Система динамічного керування контентом. Певною мірою — це «вікі» з візуальним редактором сторінок. Тут можна вести проєктну документацію, трекати вимоги до системи, створювати сторінки з опису білдів тощо.
  6. Docker
    Система контейнеризації та одна з основних технологій для DevOps-інженера. ПЗ для автоматизації розгортання та ізоляції додатків. 
  7. Kubernetes
    Платформа для автоматизації керування контейнерами додатків. Kubernetes став стандартом, обійшовши нечисленних конкурентів типу Rancher. Система надає механізми вирішення всіх стандартних завдань IT з управління програмами. 
  8. Lens
    Графічний інтерфейс для управління та моніторингу Kubernetes кластерів. Також відомий як GUI для Kubernetes. Хоча це не обов’язковий інструмент для DevOps-інженера, але рекомендуємо його використовувати. Тут багато різних крутих можливостей. Наприклад, доступ до приватних кластерів через власний проксі.
  9. Prometheus
    База даних для збирання метрик у реальному часі. Використовує модель HTTP-запиту та «ходить» до URL-адрес додатків для збору даних.
  10. Grafana
    Dashboard-рішення для візуалізації отриманих даних. Зазвичай, Grafana використовують у зв’язку з Prometheus. Система демонструє графіки, таблиці та використовується в сучасних стеках великих рішень.
  11. Loki
    Молода система збору логів. До неї логи завжди зберігалися у текстових файлах або індексувалися в системі типу Elasticsearch. Це призводило до великої ваги на диску та навантаженні під час пошуку та агрегації. Loki індексує метадані, дозволяючи зберігати логи в досить повільному та дешевому сховищі на зразок Object Storage (AWS S3 etc), тому що для пошуку та агрегації не використовується весь текст. Вони займають менше місця і пошук відбувається швидше.
  12. Splunk
    Велика неповоротка система моніторингу всіх даних. Стара, потужна, але малопродуктивна. Великі компанії, зазвичай, не хочуть замінювати Splunk на Prometheus та Grafana. Тому DevOps-інженеру у великій організації доведеться навчитися працювати зі Splunk.
  13. Terraform
    Система управління інфраструктурою за допомогою API, хмарних провайдерів, приватних хмар. Terraform стала першим інструментом, що дозволив працювати з різними хмарними провайдерами. Для опису та застосування оточення в коді не потрібно йти в консоль. Система сама створює необхідні мережі, кластери тощо.

Саморозвиток DevOps-інженера

Ми вже писали про повний список усього, що має знати та вміти DevOps-інженер у дорожній карті. Тепер час поговорити про саморозвиток. Які книги має читати DevOps? Які курси проходити? Про усе це по пунктах трохи нижче.

Що почитати?

Є основа основ, яку повинен прочитати кожен спеціаліст зі сфери, щоб розуміти культуру і суть DevOps. Є туторіали, що допоможуть розібратися в нагальних питаннях. Існують книги «на часі», які варто прочитати, щоб розуміти що зараз коїться у сфері. Найголовніше з цих груп — зібрали нижче.

Книги для DevOps-інженерів:

Звісно ж, не книгами єдиними. Знайшли кілька цікавих ресурсів, що допоможуть розібратися в Linux, мові програмування Go та маршрутизації.

Ресурси: 

  • TecMint.com — тут знайдете усе про Linux;
  • A Tour of Go — екскурсія мовою програмування Go;
  • Cisco CCNA — посібник по маршрутизації та комутації.

Які конференції подивитися на YouTube?

Фізично бути на усіх конференціях, що цікавлять — неможливо. Спочатку пандемія внесла свої корективи, тепер війна. Знайшли записи найцікавіших заходів для DevOps-інженерів. Корисно буде усім, від джунів до сеньйорів.

Які курси пройти?

Для початку можна освіжити знання за допомогою безплатних курсів:

Якщо хочете освоїти щось нове або заповнити прогалини в знаннях, рекомендуємо пройти курси від IT Education Center рівня DevOps. Ви дізнаєтеся про те, що дійсно важливо у роботі DevOps-інженера та навчитеся адмініструвати Amazon Web Services, Docker та Kubernetes. Розберетесь, як автоматизувати свої складні завдання за допомогою Ansible та багато іншого. 

І куди ж без знань іноземної. Щоб підвищити словниковий запас технічної англійської, відвідайте ресурси:

  • TechTerms — безплатний онлайн-словник комп’ютерних термінів;
  • BusinessEnglishSite — допоможе зрозуміти контекст використання ІТ-термінів;
  • Herdingcode — тематичні подкасти зі скриптами.

Післяслово

Вам не потрібно вчити усе й зразу, щоб стати Senior DevOps Engineer. Не поспішайте, цікавтеся новим та ставте запитання старшим колегам. Від банального: «Чим я можу допомогти?» до «Я працював над завданням, зіткнувся з проблемами й вирішував їх ось так, але не вийшло. Можете допомогти порадою?»

«Радити всі люблять… Якщо правильно запустити маховик порад, то вся команда буде сперечатися, хто порадив краще, а ви, як Junior DevOps Engineer — купатиметеся в достатку архітектурних рішень, технологій та best practices», — зазначає Олег Миколайченко, DevOps Team Lead в Ring Ukraine.

З чого розпочати? З GNU/Linux, адже це чудова основа. І мова не лише про ядро ​​Linux, а й про інструменти, які постачаються з цією екосистемою. Дізнайтесь про них більше, спілкуйтесь у ком’юніті зі сфери та цікавтесь трендами. І пам’ятайте, кожен сеньйор з чогось починав, як і ви. 

Хочете щось спитати у сеньйора девопса? Напишіть у коментарях, впевнені, відповідь на ваше запитання невдовзі прийде 😉

Залишити відповідь

Дякуємо, що поділились