Дорожная карта DevOps: навыки, которые нужны в 2021 году

Стать специалистом в сфере DevOps хотят многие, но это не так просто. Не удивительно, что освоить и внедрять DevOps могут исключительно профессионалы. Как стать одним из них? Об этом и поговорим → 

Среди всех инструментов и практик очень сложно выбрать правильный путь к DevOps. Здесь не достаточно просто обучиться, а важно набраться опыта. Что такое DevOps? Как стать DevOps-инженером? Какие инструменты нужно изучить? Ответы на эти и другие вопросы найдёте далее.

Жизненный цикл DevOps

DevOps — это набор практик, который нужен для автоматизации и интеграции процессов между разработчиками ПО и IТ-командами.  Он нужен, чтобы создавать, тестировать и выпускать ПО быстрее и надёжнее.

Термин DevOps получился путём объединения слов “development” и “operations”. Эти практики сделали целый культурный сдвиг, который устранил разрыв между группами разработчиков и тех, кто отвечает за эксплуатацию софта. Ранее они работали отдельно друг от друга. 

По своей сути DevOps — это культура, движение, философия.

Хотя цикл DevOps выглядит прямолинейным, он нуждается в постоянной кооперации сотрудников и итеративном улучшении. 

Жизненный цикл DevOps состоит из шести фаз:

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

  • планирование, 
  • построение, 
  • непрерывную интеграцию (CI)
  • непрерывное развёртывание (CD), 
  • мониторинг эксплуатации,
  • постоянную обратную связь.

Что нужно знать DevOps-инженеру?

Обязательно ли изучать Maven и Jenkins для DevOps-специалиста? Как насчёт Docker и Kubernetes? Является ли автоматизация инфраструктуры частью DevOps? Нужно ли мне выучить Chef, Puppet или Ansible? Вот лишь малая часть из тех вопросов, которые возникают в головах будущих специалистов.

Сегодня мы поделимся замечательной находкой, что поможет вам стать ближе к мечте — освоить профессию DevOps-инженера. Это “Дорожная карта DevOps на 2021 год”. Ехать никуда не нужно, а обучаться можно прямо у себя дома! 

Эта дорожная карта прекрасна во всех смыслах. Она подчёркивает роль DevOps-инженера и акцентирует на тех инструментах и технологиях, которые обязательно нужны, чтобы освоить эту область. Но есть одно “но”: карта не подскажет вам, как и где учиться. Зато подскажем мы: вот варианты обучения

Дорожная карта DevOps: ключ к пониманию

Схема выглядит запутано и даже немного пугает. Это только на первый взгляд. Давайте пройдёмся по дорожной карте шаг за шагом.

Итак, чтобы стать DevOps-гуру 2021 года, важно разбираться в:

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

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

1. Языки программирования

Мы предполагаем, что вы знаете один из трёх основных языков программирования, то есть Java, Python или JavaScript. Если нет, то рекомендуем изучить хотя бы один из них. Дальше стоит начать интересоваться C/C++, Go, Ruby, Rust и другими.

2. Различные концепции ОС

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

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

3. Жизнь в терминале

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

4. Сеть, безопасность и протоколы

В современном мире всё связано со всем, что делается в сети. Следовательно, безопасность — очень важна. Чтобы стать хорошим DevOps-инженером, вы должны разбираться в основных понятиях темы “Сеть, безопасность и протоколы”. А именно: DNS, модель OSI, а также HTTP, HTTPS, FTP, SSL/TLS, SSH, Port Forwarding и другие.

5. Понимание и настройка

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

Также, инженер DevOps должен понимать, как настроить веб-серверы: IIS, Apache, Tomcat, Nginx, Istio. Потом, и другие можно подтянуть.

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

Это, наверное, одна из самых важных и обширных тем для DevOps-инженера. Как специалист, вы должны знать о контейнерах Docker и LXC. Разбираться в инструментах управления конфигурацией: Ansible, Chef и Puppet. Понимать суть оркестровки контейнеров Kubernetes, Docker Swarm и других. Знать о подготовке инфраструктуры Terraform и CloudFormation

7. Инструменты непрерывной интеграции и доставки (CI/CD)

Это еще одна очень важная вещь для DevOps-гуру: область CI/CD. Здесь есть много инструментов, например Jenkins, TeamCity, Gitlab CI, Circle CI, GitHub Actions и другие.

В первую очередь мы рекомендуем изучить хотя бы Jenkins. Всё потому, что это самый используемый и, вероятно, самый зрелый инструмент CI/CD на рынке. 

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

Помимо настройки и развертывания, мониторинг является ещё одним важным аспектом DevOps. Именно поэтому вам важно узнать о контроле инфраструктуры и приложений.

Мониторинг инфраструктуры. Здесь есть много инструментов, например Nagios, Datadog, Zabbix, Monit, AppDynanics, New Relic и другие. Вы можете выбрать некоторые из них в зависимости от того, что используется в вашей компании (или той, куда вы хотите попасть).

Контроль приложений. Эта группа подразумевает работу с: Jaeger, New Relic, AppDynamics, Instana и Open Tracing.

Мониторинг логов. Здесь нужно познакомиться с: Elastic Stack, Graylog и другими системами. 

9. Облачные провайдеры

Облако — следующий большой пласт, который вам рано или поздно придётся освоить. Для начала, вы хотя бы должны уметь переносить своё приложение в облако. Для DevOps-инженера важно (как минимум) знать о некоторых популярных облачных провайдерах и основе их работы.

Хотя AWS является лидером в области облачных технологий, стоит обратить внимание и на Google Cloud, и на Azure, которые постепенно догоняют Amazon. Затем, вы можете познакомиться с Heroku, Cloud Foundry и Digital Ocean.

ИТОГ

Вы можете подумать, что это слишком большой пласт информации. Но есть вероятность, что вы уже знакомы с большей частью материала. IT-курсы, смогут систематизировать ваши знания и добавят новые. Есть много полезных бесплатных ресурсов, которые помогут вам лучше усвоить определённые темы. Конечно же, для DevOps важны знания в сочетании с опытом. Получить его можно на различных стажировках после прохождения курсов.

Конечно, путь будет непростым. Но, ознакомившись с этой дорожной картой и нашим “ключом” к ней, вы уже стали на один шаг ближе к мечте. 

Удачи на пути к DevOps! 

P.S. Keep learning 🙂  

Добавить комментарий

Спасибо, что поделились