Дорожня карта: рух за напрямом DevOps

Серед всіх інструментів і практик дуже складно обрати правильний шлях до DevOps. Тут мало буде просто навчитися, а важливо набратися досвіду. Що таке DevOps? Як стати DevOps-інженером? Які інструменти потрібно вивчити? Відповіді на ці та інші питання знайдете далі.

Життєвий цикл DevOps

DevOps — це набір практик, який потрібен для автоматизації та інтеграції процесів між розробниками ПЗ та ІТ-командами. Він потрібен, щоб створювати, тестувати та випускати ПЗ швидше і надійніше.

Термін DevOps з’явився шляхом об’єднання слів “development” та “operations”. Ці практики зробили ціле культурне зрушення, яке усунуло розрив між групами розробників та тими, хто відповідає за експлуатацію софту. Раніше вони працювали окремо один від одного.

За своєю суттю DevOps — це культура, рух, філософія.

Хоча цикл DevOps виглядає прямолінійним, він потребує постійної кооперації співробітників та ітеративних поліпшень.

Життєвий цикл DevOps складається з шести фаз:

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

  • планування,
  • побудову,
  • безперервну інтеграцію (CI)
  • безперервне розгортання (CD),
  • моніторинг експлуатації,
  • постійний зворотний зв’язок.

Що потрібно знати DevOps-інженеру?

Чи обов’язково вивчати Maven і Jenkins для DevOps-фахівця? Як щодо Docker і Kubernetes?Чи є автоматизація інфраструктури частиною DevOps? Чи потрібно мені вивчити Chef, Puppet або Ansible? Ось лише мала частина з тих питань, які виникають в головах майбутніх фахівців.

Сьогодні ми поділимося чудовою знахідкою, що допоможе вам стати ближче до мрії — освоїти професію DevOps-інженера. Це “Дорожня карта DevOps на 2022 рік”. Їхати нікуди не потрібно, а навчатися можна прямо у себе вдома!

Ця дорожня карта прекрасна у всіх сенсах. Вона підкреслює роль DevOps-інженера та акцентує на тих інструментах і технологіях, які обов’язково потрібні, щоб освоїти цю сферу. Але є одне “але”: картка не підкаже вам, як і де вчитися. Зате підкажемо ми: ось хороші освітні варіанти.

Дорожня карта DevOps: ключ до розуміння

Схема виглядає заплутано і навіть трохи лякає. Це тільки на перший погляд. Пройдімося дорожньою картою крок за кроком.

Отже, щоб стати DevOps-гуру 2022 року, важливо розбиратися в:

  • мовах програмування,
  • концепціях ОС,
  • терміналах,
  • мережевій безпеці,
  • серверах і балансуванню навантаження,
  • інфраструктурі,
  • хмарних провайдерах,
  • контролі ПЗ,
  • CI/CD і багато іншого.

А тепер детальніше про кожен пункт:

1. Мови програмування

Ми припускаємо, що ви знаєте одну з трьох основних мов програмування, тобто JavaPython або JavaScript. Якщо ні, то рекомендуємо вивчити хоча б одну з них. Далі варто почати цікавитися C/C++GoRubyRust й іншими.

2. Різні концепції ОС

Саме тут вступає в справу частина Ops. Раніше, за знання ОС і устаткування відповідали виключно сисадміни та хлопці зі служби підтримки. Тепер і девопсу необхідно в цьому розбиратися. Вам потрібно буде принаймні:

  • розуміти суть управління процесами,
  • знати про сокети та контролери введення-виведення,
  • розуміти суть віртуалізації,
  • розбиратися в сховищах пам’яті й файлових системах.

3. Життя в терміналі

Знання оболонки Linux, типу Bash або Ksh, і таких інструментів, як find, grep, awk, sed, lsof. Також, мережевих команд — nslookup і netstat. Це все є обов’язковим! А ось, наприклад gcc розробники карти не рекомендують.

4. Мережа, безпека і протоколи

У сучасному світі все пов’язано з усім, що робиться в мережі. Отже, безпека — дуже важлива. Щоб стати хорошим DevOps-інженером, ви повинні розбиратися в основних поняттях теми “Мережа, безпека і протоколи”. А саме: DNS, модель OSI, а також HTTPHTTPSFTPSSL/TLSSSHPort Forwarding та інші.

5. Розуміння і налаштування

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

Також, інженер DevOps повинен розуміти, як налаштувати вебсервери: IISApacheTomcatNginx, Istio. Потім, й інші можна підтягнути.

6. Інфраструктура як код

Це, напевно, одна з найважливіших і об’ємних тем для DevOps-інженера. Як фахівець, ви повинні знати про контейнери Docker і LXC. Розбиратися в інструментах управління конфігурацією: AnsibleChef і Puppet. Розуміти суть оркестровки контейнерів KubernetesDocker Swarm й інших. Знати про підготовку інфраструктури Terraform і CloudFormation.

7. Інструменти безперервної інтеграції та доставляння (CI/CD)

Це ще одна дуже важлива річ для DevOps-гуру: область CI/CD. Тут є багато інструментів, наприклад JenkinsTeamCityGitlab CICircle CIGitHub Actions і інші.

В першу чергу ми рекомендуємо вивчити хоча б Jenkins. Все тому, що цей інструмент CI/CD найчастіше використовують та, ймовірно, він найбільш зрілий на ринку.

8. Контроль ПЗ та інфраструктури

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

Моніторинг інфраструктури. Тут є багато інструментів, наприклад NagiosDatadogZabbixMonitAppDynanicsNew Relic і інші. Ви можете вибрати деякі з них в залежності від того, що використовується у вашій компанії (або у тій, куди ви хочете потрапити).

Контроль додатків. Ця група передбачає роботу з: Jaeger, New Relic, AppDynamics, Instana та OpenTracing.

Моніторинг логів. Тут треба познайомитися з: Elastic StackGraylog й іншими системами.

9. Хмарні провайдери

Хмара — наступний великий пласт, який вам рано чи пізно доведеться освоїти. Для початку, ви хоча б повинні вміти переносити свій додаток в хмару. Для DevOps-інженера важливо (як мінімум) знати про деяких популярних хмарних провайдерів й розуміти основу їх роботи.

Хоча AWS є лідером у сфері хмарних технологій, варто звернути увагу і на Google Cloud і на Azure, які поступово наздоганяють Amazon. Потім, ви можете познайомитися з HerokuCloud Foundry і Digital Ocean.

ПІДСУМОК

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

Шлях буде непростим. Але, ознайомившись з цією дорожньою картою і нашим “ключем” до неї, ви вже стали на один крок ближче до мрії.

Удачі на шляху до DevOps!

P.S. Keep learning 🙂

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

Відповідь на коментар

Коментарі (2)

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