⏪ Вернуться к gemlog

2022-03-08

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

В этой статье я познакомлю вас с очень популярной дорожной картой https://roadmap.sh/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. Научитесь контролировать программное обеспечение и инфраструктуру

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

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

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

Заключение

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