Привет друг!
Знаете ли вы, что примерно до 2007 или 2008 года команды программистов не обязательно сопровождали и поддерживали созданный ими код?
За это отвечала другая команда, отдел ИТ-операций. Неудивительно, что это привело к многочисленным разногласиям. Так кто же такие инженеры DevOps и где они нужны?
Существовало общее недовольство такой организацией, хотя в ней не было ничего плохого. Поэтому обе команды решили приступить к выполнению миссии и выяснить, в чем дело.
Очень скоро все стало ясно - у них были не только разные и конкурирующие цели, но и разные лидеры, и иногда они работали в разных помещениях.
Благодаря усилиям Патрика Дебуа, Джина Кима и Джона Уиллиса, начавшимся около 15 лет назад, родился DevOps и, соответственно, роль инженера DevOps.
В этой статье мы исследуем мир DevOps - что это такое, как это работает и как вы можете стать инженером DevOps.
1. Что такое DevOps?
Не существует единого, полного или правильного определения DevOps. Это связано с тем, что DevOps имеет несколько аспектов.
Это философия, культура, методология, набор практик, карьера, а иногда это может относиться к набору инструментов.
Наиболее важной функцией DevOps является соединение двух вышеупомянутых команд: разработки и поддержки.
Таким образом, команда разработчиков будет принимать во внимание то, как приложение будет работать после развертывания, даже в процессе создания программного обеспечения.
С другой стороны, в процессе разработки сотрудники операционной группы знают, как разрабатывается программное обеспечение, включая используемые технологии, что помогает им выбирать и разрабатывать системы, на которых работает ПО.
В результате команды быстрее выпускают программное обеспечение лучшего качества. Кроме того, улучшаются коммуникационные потоки, распределяется ответственность, обеспечивается прозрачность и оперативная обратная связь.
Дополнительные преимущества внедрения DevOps в жизненный цикл разработки программного обеспечения (SDLC) включают:
- Улучшенное сотрудничество
- Повышение эффективности
- Ускоренное время выхода на рынок
- Более частые релизы
- Расстановка приоритетов в отношении потребностей пользователей
- Сокращение времени, затрачиваемого на исправления
- Снижение количества отказов новых релизов
- Сокращение среднего времени восстановления (MTTR). MTTR - это время, необходимое для восстановления после сбоя системы.
DevOps как процесс представляет собой бесконечный цикл.
Этот цикл состоит из таких этапов, как планирование, кодирование, создание, тестирование, выпуск кода, развертывание, эксплуатация и мониторинг.
Таким образом, весь процесс SDLC объединяет аспекты как разработки, так и обслуживания.
DevOps характеризуется такими понятиями, как:
- непрерывная интеграция
- непрерывная доставка
- непрерывное развёртывание
- непрерывная обратная связь
- непрерывный мониторинг
- непрерывное обеспечение
- управление конфигурацией
- гибкие методы
Технологии, используемые в DevOps, включают облачные вычисления, контейнеризацию и микросервисы.
DevOps также использует набор инструментов и платформ для автоматизации процессов, что позволяет ускорить и повысить эффективность SDLC.
Эти инструменты называются "платформой DevOps". Чтобы платформа действительно функционировала в рамках DevOps, все эти инструменты и платформы должны быть интегрированы.
2. Кто такой инженер DevOps?
По сути, инженер DevOps создает системы, которые делают DevOps возможным. Они обладают знаниями о жизненном цикле разработки программного обеспечения и помогают автоматизировать такие процессы, как развертывание. Они также отвечают за то, чтобы SDLC оставался эффективным.
Поскольку 99% респондентов исследования Atlassian's 2020 DevOps Trends Survey заявили, что DevOps положительно повлиял на их организацию, неудивительно, что компании стремятся внедрить DevOps.
Это означает, что существует высокий спрос на специалистов по DevOps. На сайте LinkedIn Jobs в настоящее время только в США открыто более 20 000 вакансий на эту роль!
Чем занимается инженер DevOps?
Помимо вышеперечисленных, к другим задачам инженера DevOps относятся:
- мониторинг инфраструктуры
- Создание, поддержка и управление конвейерами CI/CD
- автоматизация ручных, повторяющихся и отнимающих много времени задач
- тестирование кода и развертывания для поиска путей повышения их эффективности и исключения ошибок
- Поддержание производственной среды, обеспечивая ее надежную работу
- Создание платформ и инфраструктуры для команд разработчиков для размещения их приложений
- Планирование проекта, чтобы понять варианты систем и провести анализ затрат и выгод.
3. Как стать инженером DevOps с нуля
Стать инженером DevOps непросто. Однако это вполне выполнимо, если проявить решительность и сосредоточиться.
Давайте разберем основные шаги, которые необходимо предпринять, чтобы пойти по этому карьерному пути.
Шаг первый: Получите необходимое образование
Как инженеру DevOps, вам необходимы некоторые знания в области программирования, поскольку вы будете писать код при создании инфраструктуры и автоматизации задач.
В этом вам поможет интенсив "DevOps для программистов" от онлайн школы Хекслет! Упакуйте приложение в Docker и подключите непрерывную интеграцию на Github Actions. Автоматизируйте деплой с помощью Ansible. Разверните облачную инфраструктуру (Digital Ocean, AWS, Yandex Cloud и др.) через Terraform. Настройте мониторинг, логирование и сбор ошибок.
Как только вы научитесь кодировать, вам следует сосредоточиться на других важных составляющих DevOps, таких как инструменты CI/CD, инфраструктурные инструменты, контейнеризация, а также платформы облачных вычислений.
Получите сертификаты в области ИТ - например, сертификаты AWS - и пройдите курсы DevOps.
Сосредоточьтесь только на тех инструментах, которые вы считаете актуальными, и на одной платформе облачных вычислений. AWS - самая популярная, поэтому начните с нее.
Если вы сможете найти несколько книг по DevOps, то сможете действительно понять эту область и ее роль в SDLC.
Шаг второй: Практика, практика, практика
После того как вы приобрели значительные знания о DevOps, пришло время начать практиковаться. Вы можете начать с создания приложения и размещения его на GitHub, GitLab или любом другом репозитории по вашему выбору.
Затем добавьте CI к проекту. Это позволит проверить интеграцию нового кода.
Убедившись, что тесты прошли, разверните приложение. Вы можете развернуть его с помощью контейнера или лямбда-функции. Вы даже можете попытаться развернуть приложение с помощью инфраструктуры как кода.
Добавьте другие аспекты DevOps, такие как мониторинг, и попытайтесь показать, что вы можете масштабировать приложение на основе использования, трафика и загрузки процессора.
Вы можете добавить шлюз API, базу данных, сервисы, которые вызывают друг друга, и даже улучшить тесты.
Шаг третий: Демонстрируйте свою работу
Вместо того чтобы рассказывать людям, как вы можете стать инженером DevOps, почему бы не показать им это? Если вы еще не сделали этого, создайте веб-сайт или портфолио для демонстрации своей работы. Затем вы можете поделиться им на социальных платформах и в LinkedIn, а также добавить его в свое резюме.
А еще лучше - напишите подробную статью в блоге и опубликуйте ее на как можно большем количестве платформ. Никогда не знаешь, кто на него наткнется.
Шаг четвертый: Сеть
Начните общаться с людьми в отрасли и предпринимателями, которые, возможно, ищут практиков DevOps.
Вы можете сделать это, присоединившись к онлайн-сообществам в Discord, Slack и Tech Twitter. На этих платформах также есть форумы сообществ, к которым вы можете присоединиться, учиться у других, вносить свой вклад и общаться.
Вы также можете посещать вебинары и мероприятия как онлайн, так и очно.
Шаг 5: Поиск работы
Вооружившись резюме, портфолио и хорошими soft skills, вы готовы начать поиск работы инженера DevOps. Вы можете искать компании, нанимающие DevOps-инженеров начального уровня, стажировки и даже оплачиваемые стажировки.
На данном этапе все, что вам нужно сделать, - это "просунуть ногу в дверь". Затем вы сможете расти с любой начальной роли DevOps, которую получите.
Подведение итогов
Мы путешествовали по миру DevOps и выяснили, кто такой DevOps-инженер, что такое DevOps, узнали, как работать в этой области, и ответили на некоторые вопросы по DevOps, которые у вас могли возникнуть.
Мы надеемся, что теперь вы готовы отправиться в мир DevOps. Все, что вам нужно, - это терпение, сосредоточенность и решимость. В конце концов, вы будете на пути к автоматизации систем и развитию культуры DevOps в компании или организации.
До новых встреч!