Обложка статьи «Как стать DevOps-инженером в 2021 году: дорожная карта»

Как стать DevOps-инженером в 2021 году: дорожная карта

Как стать DevOps-инженером в 2021 году и в каком направлении развиваться? Поможет понять дорожная карта:

Дорожная карта DevOps

Чтобы разобраться в обязанностях такого специалиста, почитайте нашу статью о том, кто такой DevOps-инженер.

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

Изучение хотя бы одного языка программирования из представленных обязательно. Порой нелегко отбросить мысль, что программирование нужно только разработчикам. Суть в том, что DevOps-специалисту необязательно получать профессиональные знания в области разработки, и не столь важно, какой язык программирования вы выберете. Главное, уметь использовать знание языка для автоматизации ряда процессов.

DevOps-инженеры обычно изучают Python, Ruby, Node.js, Go, Rust, C или C++.

Операционные системы

Данную специальность часто называют симбиозом разработчика и сисадмина. В какой-то степени это так. Что касается операционных систем, вам следует знать принципы их работы, стандарты POSIX, концепции построения сети, потоки и параллелизм, уметь работать с файловой системой, виртуализацией, сокетами, управлять памятью, процессами, вводом и выводом (I/O).

Кроме того, нужен навык работы с терминалом на разных операционных системах. Чтобы лучше понять, как стать DevOps engineer и что следует знать об ОС, загляните в открытые вакансии. Часто компании работают в Linux-среде, так что в требованиях нередко указывается опыт работы с Linux-администрированием и Bash-скриптами.

Полезные материалы:

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

Сетевые протоколы для передачи электронной почты, криптографические протоколы SSL/TLS, понимание разницы между HTTP и HTTPS, протокол передачи файлов по сети FTP, протокол удалённого управления сервером SSH, а также технология Port Forwarding.

Помимо перечисленного, следует понимать сетевую модель OSI и разбираться в её уровнях:

Также обратите внимание на SaltStack — опенсорсный инструмент, использующий push-модель для выполнения команд по протоколу SSH. В нём предусмотрена поддержка шаблонов YAML, а также горизонтального и вертикального масштабирования.

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

Согласно модели IaC (Infrastructure as Code), процесс настройки инфраструктуры схож с процессом разработки ПО. Вам предстоит работать с контейнеризацией,  оркестрацией контейнеров, обеспечивать инфраструктуру и управлять конфигурацией с помощью специальных инструментов.

Об одном из наиболее популярных инструментариев в области контейнеризации Docker вы можете узнать из данного видео:

Всего полтора часа, которые заменят дни поиска в Google, раскуривания мануалов, проб, ошибок и походов на Stack Overflow.

Облачные провайдеры и шаблоны проектирования для облачных сред

Ну и как стать DevOps-инженером в 2021 году, если не знать о таких популярных провайдерах, как AWS (Amazon Web Services), Heroku, Azure, Google Cloud и DigitalOcean? Кстати, мы уже рассказывали, как настроить сервер для сайта на примере Tproger, используя DigitalOcean и Ubuntu 20.04 LTS: заходите, там интересно.

Что же касается Cloud Design Patterns, то здесь важно разбираться в проблемах, с которыми приходится сталкиваться при разработке облачных приложений:

  • Доступность — процент времени непрерывной работы системы, на который могут повлиять атаки, нагрузка, системные ошибки и проблемы инфраструктуры.
  • Управление данными — важный элемент облачных приложений. Данные часто разбросаны по нескольким серверам, что обеспечивает лучшую производительность и доступность, но также может стать причиной ряда сложностей вроде синхронизации.
  • Проектирование и реализация — это решения, которые затрагивают согласованность в создании и развёртывании, обслуживание, администрирование, повторное использование компонентов и подсистем.
  • Управление и мониторинг — обязательные действия, направленные на отслеживание и контроль системы при условии, что облачные приложения выполняются удалённо, где полный контроль над инфраструктурой отсутствует.

Дополнительно

Отдельно следует упомянуть работу с прокси, файрволом, различными веб-серверами, балансировкой нагрузки, кэшированием, а также инструментами CI/CD и мониторинга. Всё это подробнее отражено в дорожной карте.

Заключение

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