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

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

Давайте подробно рассмотрим каждую веху.

1. Выучить язык программирования (достаточно)

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

Компании, нанимающие DevOps-инженеров, ищут навыки владения одним языком программирования. Как инженер DevOps, вы будете нести ответственность за написание скриптов на таких языках, как Python. Вы можете начать практиковаться в написании сценариев после изучения основ языка. Python может быть отличным языком для изучения инженерами DevOps.

2. Понимание различных концепций ОС

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

3. Операционная система

Вам нужно получить некоторые знания администрирования с точки зрения ОС. В основном вы будете работать с машинами Linux, поэтому для этого вы можете использовать любой дистрибутив Linux, например Debian, Ubuntu, CentOS, RHEL и т.д.

4. Работа в терминале

В большинстве компаний вы не получите графический интерфейс для работы в среде Linux. Так что вам должно быть очень удобно работать с терминалами. Несколько вещей, на которых вы должны сосредоточиться, — это сценарии bash, инструменты для работы с текстом, такие как grep, awk, sed, sort, uniq и т.д., мониторинг процессов, сетевая и силовая оболочка.

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

Такие понятия, как HTTP, HTTPs, SMTP, очень важны с точки зрения собеседования. Вы также должны узнать о кэширующем сервере, обратном прокси, прямом прокси и балансировщике нагрузки.

6. Веб сервер

Вы можете сосредоточиться на одном веб-сервере, таком как Nginx, чтобы изучить концепции веб-сервера.

7. Изучите инфраструктуру как код

Это один из наиболее важных компонентов пути обучения инженера DevOps. Вам необходимо узнать о контейнеризации приложений и иметь полное представление о контейнерных инструментах, таких как Docker и Kubernetes. Инструменты управления конфигурацией, такие как Ansible, Chef, Salt и Puppet. Другие области включают оркестрацию контейнеров и предоставление инфраструктуры.

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

Непрерывная интеграция/непрерывное развертывание теперь является основной частью настройки культуры DevOps. Поэтому вам следует ознакомиться с инструментами CI/CD, такими как Gitlab, Jenkins, действия Github и т.д.

Я бы посоветовал вам познакомиться хотя бы с Jenkins и Gitlab CI/CD.

9. Научитесь контролировать программное обеспечение и инфраструктуру

Когда у вас запущены тысячи служб, важно убедиться, что система работает нормально. И ваша инфраструктура, и приложение должны постоянно контролироваться. Такие инструменты, как SigNoz, могут помочь вам настроить надежную систему мониторинга для ваших приложений.

10. Узнайте об облачных провайдерах

Большинство приложений сегодня создаются как облачные. Поэтому вам необходимо ознакомиться с основными поставщиками облачных услуг. AWS, Azure и Google Cloud являются ведущими игроками, и они также предоставляют бесплатные курсы по своим инструментам.

Заключение

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