- Кто такой DevOps-инженер
- Где учиться на инженера данных
- ВУЗы
- Онлайн образование
- Самообразование
- Что должен знать DevOps
- Разработка
- Операционные системы
- Облака
- Системы оркестрации и микросервисы
- Что ещё попробовать будущему DevOps
- Работа и карьера
- Востребованность инженера данных
- Требования и обязанности
- Где искать работу
- DevOps-инженер и системный администратор: в чём разница
- Как стать DevOps‑инженером
- Самостоятельное обучение
- Онлайн-курсы
- Насколько востребованы DevOps-инженеры и сколько им платят
- Важные личные качества
- Ссылки
- DevOps-инженер
- Что такое DevOps
- Чем занимается DevOps-инженер
- Squzy — бесплатная open-source self-host система мониторинга с инцидентами и уведомлениями
- DevOps-инженерами становятся:
- О технологиях
- Что нужно знать системному администратору, чтобы стать DevOps-инженером
Кто такой DevOps-инженер
Для начала поговорим, что такое DevOps. Это не инструменты и не сервисы. Это концепция, культура, целый комплекс методов, технологий и правил взаимодействия сотрудников из разных команд.
DevOps-практики направлены на объединение работников, устранение разрозненности и распределение ответственности за всю работу на каждого члена команды.
Несмотря на то что веб-разработчики трудятся над написанием кода, тестировщики ответственны за его проверку, а системные администраторы занимаются эксплуатацией, все участники, которые задействованы в создании продукта, берут на себя ответственность именно за конечный результат, а не только за свою часть работы.
Барьер между разработкой и поддержкой стал рассеиваться. Проблемы не перекладываются друг на друга, команда действует сообща, каждый пытается внести свою лепту в решение проблемы. В этом и состоит вторая составляющая DevOps-практик
Важно не только сплочение, но и реальное решение проблем
Поэтому проекту нужны не конкретно DevOps-инженеры, т. е. люди, которые внедряют девопс-практики в коллективную среду, а тот результат, что они помогают достигать. В некоторых фирмах даже нет такой должности, а обязанности этого сотрудника поделены между всеми участниками проекта.
Хотя работодатели и готовы назначить заработную плату от 200 000 руб. и больше, все равно ощущается дефицит этих сотрудников из-за сложности обязанностей.
Более 100 крутых уроков, тестов и тренажеров для развития мозга
Начать развиваться
DevOps-инженер должен делать все для решения проблем при производстве и реализации продукта. Для этого в работе специалисту необходимо придерживаться:
- Автоматизации всех процессов.
- Ускорения выхода продукта в свет.
- Моментальной обратной связи от потребителей.
Насчет автоматизации понятно: все повторяющиеся действия выполняются автоматически, быстро, отлажено и четко.
Второе – это важный пункт для заказчика. Всем производителям выгодно представлять свое творение раньше, чем конкуренты придумают что-то похожее. Это осуществимо благодаря слаженности в действиях всех частей команды проекта. И это самое единство организует DevOps-инженер.
Обратная связь от клиентов предполагает внесение корректировок и обновление приложения сразу после получения жалоб от пользователей.
По этим пунктам понятно, что обязанности DevOps-специалиста распространяются на все этапы жизненного цикла веб-продукта: от выбора архитектуры и написания кода до выпуска приложения и мониторинга отзывов пользователей.
Где учиться на инженера данных
Обучение на data инженера — трудоемкий и длительный процесс. Эффективность обучения зависит не только от человека, но и от выбранного способа. Получить нужные знания можно в ВУЗе, на курсах и самому.
ВУЗы
К сожалению, в России нет ВУЗов со специализацией инженера данных. Можно изучить лишь часть знаний, которые нужны в профессии. Это языки программирования SQL, Java, Scala и Python. Им обучают на следующих специальностях: программирование, прикладная информатика; программная инженерия, вычислительная техника и программное обеспечение, информационная безопасность, математическое обеспечение и администрирование информационных систем.
Но есть несколько факультетов, в которых работе с данными уделяют особое внимание:
- Магистерская программа “Большие Данные” на факультете ВМиК МГУ;
- Факультет компьютерных наук в Высшей Школе Экономики;
- Магистерская программа по большим данным в СПБГУ;
- Факультет микроприборов и технической кибернетики МИЭТ;
- Факультет инноваций и высоких технологий в МФТИ.
После обучения в ВУЗе, доучиться на курсах или самостоятельно будет значительно проще.
Онлайн образование
Онлайн-школы и академии — самый простой и эффективный способ обучения. В них преподавателями выступают опытные специалисты, которые всегда готовы помочь советом.
Среди множества курсов можно выделить следующие:
1. Курс «Инженер данных» от Яндекс Практикума.
Продвинутая программа «Яндекса», обучение в которой происходит в собственной среде практикума. Курс создан для разработчиков, начинающих инженеров данных и специалистов по data science. Начать обучение можно, только зная SQL и Python. На курсе студентов учат строить пайплайны, проектировать безопасные хранилища, масштабировать данные и настраивать мониторинг. Все знания и навыки закрепляются на практике с помощью актуальных инструментов: оркестрантов, контейнеров и BI-систем.
Длительность обучения — 6,5 месяца. Есть возможность оплаты частями и возврат денег за оставшуюся часть программы.
Ссылка на курс и подробная программа обучения: https://practicum.yandex.ru/data-engineer
2. Инженер данных на GeekBrains
Ссылка на обучение и подробная информация о курсе: https://gb.ru/geek_university/data-engineer
3. Программа обучения от Нетологии
Длится целый год, с возможностью первого платежа через полгода после начала курса. В конце программы выдается диплом о профессиональной переподготовке.
Ссылка на обучение и информация о курсе: https://netology.ru/programs/data-engineer
4. Курс Data Engineer на SkillFactory
Продолжительность — 10 недель. Полное обучение с нуля до дипломного проекта. Есть возможность общения с другими учениками и преподавателями.
Ссылка на обучение и информация о курсе: https://skillfactory.ru/data-engineer
Каждый из вышеперечисленных курсов отличается от другого программой обучения. Рекомендуется ознакомиться с каждым вариантом и выбрать наиболее подходящий.
Самообразование
Есть возможность научиться профессии самому. Это самый сложный вариант, так как профессия инженера данных сложная и подразделяется на несколько специализаций. Из-за этого в сети не так много полноценных программ обучения и придется учиться отрывками, сначала изучая структуру данных, а затем языки программирования отдельно и т.д.
Ресурсы для самообучения:
- Учебное пособие по Data Engineering на сайте TProger;
- Бесплатный курс по алгоритмам и методам работы с ними на Stepik;
- Бесплатный курс по структурам данных на Stepik;
- Бесплатный курс с ознакомлением с SQL на английском языке;
- Введение в Data Engineering на Stepik, цена — 10 долларов;
- Плейлист на YouTube по работе с данными, на английском;
- Бесплатная программа по алгоритмам на Coursera;
- Продвинутое изучение баз данных, плейлист на YouTube;
- Вводный курс по Python на английском;
- Бесплатный вводный курс SQL на CodeAcademy;
- Короткий курс обучения компьютерной инженерии;
- Бесплатный курс по основам баз данных;
- Бесплатные материалы по обучению R на CodeAcademy;
- Бесплатный курс знакомства с Hadoop;
- Интерактивный учебник по основам алгоритмизации;
- Книга “Введение в статистическую теорию распознавания образов” от Фукунаги.
- Книга Introduction to Algorithms, автор E. Leiserson;
- Книга Machine learning авторства Tom M. Mitchell;
Как видно, в отличие от многих других IT-профессий, даже самообразование на инженера данных основано на курсах. Большинство из них на английском языке.
Что должен знать DevOps
Хороший DevOps-инженер — это многопрофильный специалист с очень большим кругозором. Для успешной работы вам придётся разобраться сразу в нескольких IT-направлениях.
Разработка
DevOps напишет скрипт, который поможет разработчикам устанавливать код на сервер. Сделает программу, которая «на лету» тестирует отзывчивость баз данных. Напишет приложение для контроля за версионностью. Наконец, просто заметит потенциальную проблему в разработке, которая может появиться на сервере.
Сильный DevOps-специалист знает несколько языков, подходящих для автоматизации. Разбирается в них не досконально, но быстро напишет небольшую программу или прочитает чужой код. Если раньше с разработкой не сталкивались, начните с Python — у него простой синтаксис, на нём легко работать с облачными технологиями, есть много документации и библиотек.
Операционные системы
Знать все возможности каждой версии каждой системы невозможно — на такое обучение можно потратить тысячи часов и толку не будет. Вместо этого хороший DevOps понимает общие принципы работы на любой ОС. Хотя, судя по упоминаниям в вакансиях, большинство сейчас работают в Linux.
Хороший инженер понимает, в какой системе лучше разворачивать проект, какими инструментами пользоваться и какие потенциальные ошибки могут появиться в процессе внедрения или эксплуатации.
Облака
Рынок облачных технологий растёт в среднем на 20-25% в год — такая инфраструктура позволяет автоматизировать операции тестирования кода, сборки приложений из компонентов, доставки обновлений до пользователей. Хороший DevOps разбирается как в полностью облачных, так и в гибридных решениях.
В стандартных же требованиях к инженерам обычно значится GCP, AWS и Azure.
Сюда можно отнести и владение инструментами CI/CD. Обычно для непрерывной интеграции используется Jenkins, но стоит попробовать и аналоги. Их много, например, Buddy, TeamCity и Gitlab CI. Полезным будем изучить Terraform — это декларативный инструмент, помогающий удалённо поднимать и настраивать инфраструктуру в облаках. И Packer, который нужен для автоматического создания образов ОС.
Системы оркестрации и микросервисы
У микросервисной архитектуры есть много преимуществ — стабильность, возможность быстрого масштабирования, упрощение и повторные использования. DevOps понимает, как работают микросервисы, и может предупредить потенциальные проблемы.
Досконально знает Docker и Kubernetes. Понимает, как работают контейнеры, как строить систему так, чтобы можно было отключать часть из них без последствий для общей системы в целом. Например, умеет построить Kubernetes-кластер при помощи Ansible
Что ещё попробовать будущему DevOps
Перечислять инструменты, которые могут пригодиться в работе DevOps-инженеру, можно бесконечно. Кто-то работает над оркестрацией проектов, другие большую часть времени занимаются автоматизацией развёртывания и тестирования, третьи повышают эффективность в управлении конфигурациями. В процессе будет понятно, куда копать и какие проекты пригодятся.
Вот ещё небольшой минимум, который поможет на старте:
- Разберитесь, как работает Git и Github, если ещё не сталкивались с этим. Установите GitLab на свой сервер.
- Познакомьтесь с языками разметки JSON и YAML.
- Установите и попробуйте поработать в базах данных — не только в MySQL, но и NoSQL. Попробуйте MongoDB.
- Разберитесь, как управлять конфигурацией сразу нескольких серверов. Например, с помощью Ansible.
- Сразу настройте мониторинг нагрузки и логи. Попробуйте связку Prometheus, Grafana, Alertmanager.
- Поищите лучшие решения для деплоя под разные языки — достаточно просто познакомиться, внедрять и разбираться будете на тренировочном или рабочем проекте.
Работа и карьера
Чтобы получать высокую заработную плату, нужно устроиться в хорошую компанию (лучше международную), имея большой опыт.
Так как это специальность в сфере IT, то такие обычно поглощают с головой. Это значит, что если человек серьезно относится к профессии, скорее всего, он останется в ней на всю жизнь.
Востребованность инженера данных
Как уже упоминалось ранее, эта специализация очень востребована как в России, так и во всем мире. Прямо сейчас можно найти множество вакансий на сайтах по поиску работы. Причем нужны не только опытные сотрудники, но и новички. Кратко говоря, достаточно знать алгоритмы и структуры данных, а также SQL с Python, и устроиться на минимальную зарплату в 80-120 тысяч рублей вполне реально. К тому же обучаться новым навыкам параллельно работая значительно эффективнее, чем только учиться.
Требования и обязанности
Чтобы процесс поиска работы data инженеру был проще, стоит ознакомиться с наиболее встречающимися требованиями и обязанностями, которые выдвигают работодатели.
Список основных требований и обязанностей:
- великолепное знание SQL;
- владение стеком Haroop;
- владение языком программирования Python;
- понимание паттернов проектирования моделей различных баз данных;
- знание эффективных алгоритмов и структур данных;
- умение работы с R, Java, Scala:
- работа в Apache Kafka, HDFS, Apache Spark, Apache Cassandra;
- умение работы с облачными платформами Amazon Web Services, Google Cloud, Microsoft Azure;
- умение работы с масштабными кластерами данных;
- создание, структурирование и применение организации потоков данных (pipelines);
- навык написания скриптов с нуля и умение подключать API-системы.
Последние несколько требований встречаются лишь в вакансиях больших компаний, например, Mail.ru.
Дополнительно рекомендуем посмотреть график самых востребованных навыков:
Где искать работу
Главное, с чего начать data инженеру при поиске работы — найти подходящие вакансии. Это самый легкий этап, так как всё, что требуется, это перейти на один из крупных сайтов с вакансиями, зарегистрироваться в нем, создать или загрузить резюме и начать поиск работы. Самые популярные сайты это HeadHunter и Trud.
Советы по устройству на работу:
откликаться на вакансию только в том случае, если вы подходите каждому требованию, даже тому, который кажется неважным; указывать в резюме и портфолио любые проекты, даже небольшие и бывшие частью обучения; если собеседование проходит с HR-менеджером, важно донести до него, что вы подходите по всем требованиям без частого использования терминов; так как здесь нет разделения на джунов, сеньоров и прочих, искать вакансию на сайтах нужно просто по названию профессии; обязательно пишите краткое и яркое сопроводительное письмо, в котором указано, почему вы хотите работать именно в этой компании и какую пользу можете принести
DevOps-инженер и системный администратор: в чём разница
Существует заблуждение, что задачи DevOps-инженера может решить системный администратор. К тому же часто, DevOps начинают свою карьеру в IT именно с позиций администрирования. Отчасти требования к этим специалистам схожи, но при детальном анализе выявляются и существенные различия:
- Так, DevOps занимается конфигурированием рабочих, тестовых и production-серверов, поэтому в их резюме отмечены навыки Puppet, Ansible, Chef и т.д. Системные администраторы решают вопросы построения и обслуживания оборудования и программного обеспечения, необходимых для компании, и для этого им нужен опыт в настройке оборудования и маршрутизаторов, а также навыки в администрировании рабочих станций и т.д.
- DevOps автоматизируют процесс разработки и пишут для этого скрипты, поэтому в своих резюме они указывают языки программирования, которыми владеют. В то время как системные администраторы не принимают участия в написании кода, скриптов и разработке ПО, поэтому от них знание языков программирования не требуется.
- DevOps-инженеры решают задачи надежности функционирования облачной ИТ-инфраструктуры, высоконагруженных проектов, высокой доступности приложений, балансировки нагрузки и т.д., а следовательно они обладают опытом работы с AWS, MS Azure, Docker, Kubernetes и т.д. А системные администраторы помогают поддерживать работоспособность локальной сети и ПО, следовательно, навыки работы с контейнерными оркестраторами и облачной инфраструктурой им не нужны.
Как стать DevOps‑инженером
Если совсем нет никаких знаний в IT-области, легко и быстро начать работать не получится. Необходимо иметь предварительную подготовку.
Хорошо, если человек понимает процедуру старта приложений, в какой среде они развиваются, как найти и исправить ошибки. Идеально, если есть опыт работы разработчиком, тестировщиком или системным администратором.
В чем обязательно надо разобраться перед началом работы:
- освоить работу с локальными и глобальными сетями: уметь устанавливать, настраивать и управлять ими;
- как писать скрипты на каком-либо языке программирования;
- изучить объектно-ориентированное программирование;
- в чем состоит жизненный цикл разработки продукта.
Не помешает и английский язык для чтения документации и интерфейса.
Можно не увлекаться, т. к. для старта подойдет и минимальный уровень подготовки. С вышеперечисленными навыками можно начинать осваивать DevOps самостоятельно или же записаться на курсы.
Самостоятельное обучение
Для самостоятельного освоения профессии подойдут следующие ресурсы:
- еженедельная рассылка Devops Weekly – новости о DevOps;
- сайты DZone и DevOps.com;
- Slack-чат для программистов, где можно найти работающих DevOps-инженеров, попросить у них совет или задать вопрос;
- Telegram-чаты Devops Deflope и DevOps – новости, статьи, полезные ссылки и информация;
- YouTube-каналы Cloud Native Computing Foundation и DevOps Channel, на которых можно найти вебинары, конференции и другие полезные видео.
При самостоятельном обучении также помогут книги по DevOps, список которых есть на блоге iklife.ru.
Вот самые эффективные и полезные:
- Джин Ким, Кевин Бер, Джордж Спаффорд «Проект “Феникс”. Роман о том, как DevOps меняет бизнес к лучшему»
- Джин Ким, Джон Уиллис, Патрик Дебуа, Джез Хамбл “Руководство по DevOps”
- Дженнифер Дэвис, Кэтрин Дэниелс “Философия DevOps. Искусство управления IT”
- Джез Хамбл, Николь Форсгрен, Джин Ким “Ускоряйся! Наука DevOps”
Онлайн-курсы
При выборе онлайн-курсов можно руководствоваться следующими преимуществами:
- сжатые сроки для освоения профессии;
- выбор времени, места и длительности занятия остается за студентом;
- теория четко структурирована, подается в удобном формате;
- из домашних заданий можно сформировать портфолио.
Курсы для DevOps-инженеров можно найти на блоге iklife.ru. Некоторые из них представлены ниже:
- Профессия DevOps-инженер – Skillbox.
- Профессия DevOps-инженер PRO – Skillbox.
- Старт в DevOps: системное администрирование для начинающих – Skillbox.
- DevOps-инженер – Нетология.
- DevOps-инженер – GeekBrains.
Знаний после курсов будет достаточно, чтобы начать работать и стать востребованным сотрудником.
Насколько востребованы DevOps-инженеры и сколько им платят
DevOps-инженеры нужны во всём мире. Например, согласно исследованию Linux Foundation и edX, в 2020 году 65% IT-компаний искали DevOps-инженеров, но только 59% искали разработчиков. Разница в процентах кажется небольшой, но на практике это сотни и тысячи открытых вакансий. Рынок DevOps растёт даже несмотря на пандемию — это значит, что спрос на девопс-инженеров будет только увеличиваться. В рейтинге лучших должностей Америки должность DevOps-инженера занимает пятое место.
По России такой статистики, к сожалению, нет. Но можно оценить общий спрос, просмотрев вакансии. На «Яндекс.Работе», которая агрегирует данные разных работных ресурсов, сейчас есть больше 8 тысяч предложений для DevOps-инженеров:
Для сравнения, вакансий по запросу «Web-разработчик» — около 7 тысяч, «JavaScript-разработчик» — 8,5 тысяч, а это самый популярный язык веб-программирования в мире. Это совсем не значит, что DevOps требуется больше — на 10–20 разработчиков нужен всего один. Но сами цифры показывают, что потребность в таких специалистах очень высока.
К слову, вакансий сисадмина гораздо больше — 23 тысячи. Но большая часть из них никак не связана с разработкой — это поиск системного администратора в небольшую компанию, который будет настраивать сеть и следить, чтобы бухгалтеры и менеджеры ничего не сломали.
Всё это значит, что DevOps-инженер легко может найти работу в России, а при желании — уехать за рубеж. И спрос на таких специалистов будет только расти.
В США DevOps зарабатывает в среднем 7–10 тысяч долларов. В России даже начинающим специалистам готовы платить от 90 тысяч рублей в месяц уже после вычета налогов, а зарплаты опытных доходят до 250 тысяч рублей и больше.
Часто в вакансиях DevOps-инженерам предлагают переезд и зарплату в долларах или евро
Важные личные качества
Стрессоустойчивость. Технические системы могут сломаться в любое время и ремонтировать их надо срочно. В такие моменты люди могут испытывать стресс. DevOps-инженер должен научиться спокойно переживать момент, когда «всё пропало».
Коммуникабельность
Чтобы договариваться с командой и участвовать в обсуждении рабочих задач.
Эмпатия для дружеской атмосферы в команде.
Умение фокусировать внимание. Все непростые задачи требуют к себе внимания
Их надо изучать, выдвигать и проверять гипотезы.
Управление временем. Сочетание труда и отдыха и ведение записей помогают справляться с рабочей нагрузкой на организм и психику.
Ссылки
- Debois, Patrick . DevopsDays. Дата обращения 19 августа 2019.
- Gartner Market Trends: DevOps – Not a Market, but Tool-Centric Philosophy That supports a Continuous Delivery Value Chain (англ.) : journal. — Gartner, 2015. — 18 February.
- Theakanath, Thomas (недоступная ссылка). devops.com. Дата обращения 5 июня 2017.
- (недоступная ссылка). Puppet Labs. Дата обращения 22 октября 2015.
- Humble, Jez; Farley, David. Continuous Delivery: reliable software releases through build, test, and deployment automation (англ.). — Pearson Education Inc. (англ.)русск., 2011. — ISBN 978-0-321-60191-9.
- ↑
DevOps-инженер
По запросу «DevOps инженер» HeadHunter тоже выдает около 3 тыс. вакансий. Подготовленный читатель скажет: «DevOps — это не специальность, DevOps — это философия, набор инструментов». Так и есть!
Что такое DevOps
DevOps — это набор практик для повышения эффективности процессов разработки (Development) и эксплуатации (Operation) софта.
DevOps появился в ответ на конфликт между разработчиками и инженерами эксплуатации (админами, которые поддерживают код): цель первых — выкатывать фичи как можно чаще, цель вторых — поддерживать систему в рабочем состоянии. Так как новый код с высокой вероятностью что-нибудь сломает в проде, эксплуатация его не очень любит. DevOps разрешает это противоречие за счет своей философии и множества разнообразных практик.
Подробно о философии и практиках можно почитать в других статьях, их достаточно. Для целей нашей статьи достаточно понимать два ключевых момента. DevOps предполагает:
- тесное взаимодействие разработчиков и отдела эксплуатации;
- настройку и автоматизацию процессов непрерывной интеграции и непрерывной поставки кода (CI/CD).
Второй пункт часто невозможен без перехода на микросервисную архитектуру. Как правило, она реализуется с помощью Docker и Kubernetes.
Чем занимается DevOps-инженер
DevOps не профессия, но это слово регулярно используют в значении «специалист, который внедряет практики DevOps». Если вы когда-нибудь открывали сайт с вакансиями, то понимаете, о чем речь. Но цель этой статьи не спор вокруг терминологии, а анализ содержания вакансий. К нему и перейдем.
Исходя из философии DevOps, внедрять его практики могут как разработчики, так и инженеры эксплуатации. Но судя по вакансиям, разработчиков у нас на эту роль ищут редко, и требования к DevOps-инженеру во многом пересекаются с требованиями к системному администратору. Смотрите сами.
Требования, совпадающие с требованиям к системным администраторам:
- знание и опыт администрирования Linux, систем контейнеризации (Docker, Kubernetes), баз данных, LAMP;
- понимание принципов работы TCP/IP;
- опыт администрирования SQL и NoSQL баз данных;
- опыт настройки систем мониторинга и логирования (Zabbix, ELK, Grafana, Prometheus);
- опыт конфигурирования инфраструктуры через код (Ansible);
- умение писать скрипты на Bash, Python или Ruby (иногда упоминается Perl);
- опыт работы с облачными платформами.
Требования, которые не встречаются в вакансиях системных администраторов, но типичны для вакансий DevOps-инженеров:
- понимание философии DevOps;
- понимание и следование подходу «инфраструктура как код»;
- понимание жизненного цикла разработки ПО и принципов CI/CD;
- тесное взаимодействие с командой разработки.
Если смотреть по приоритетам, то системный администратор сосредоточивает свое внимание на инфраструктуре, тогда как DevOps-инженер большую часть времени тратит на автоматизацию процессов разработки и релиза, организацию мониторинга.
При этом некоторые вакансии DevOps-инженера действительно похожи на вакансии системного администратора. Иногда в объявлении совсем не упоминается настройка CI/CD, а есть только требование построить и поддерживать кластер на Kubernetes. Но четкой градации между вакансиями нет, разделить их на группы нельзя.
Сергей, СТO в Southbridge:
Ключевой момент, который отличает DevOps-инженера от системного администратора, — это навыки автоматизации и сокращение ручного труда (особенно касается построения CI/CD), понимание процессов со стороны разработки. DevOps должен знать Linux, Git + CI/CD, Ansible, Docker + Kubernetes, Automation and Scripting (обязательно).
Валентина, инженер в МТС:
Топ-5 обязанностей: настраивать CI/CD, автоматизировать и поддерживать инфраструктуру тестовых сред и прода, общаться с разработкой и понимать их код. Топ-5 технологий: Gitlab CI, Docker, K8s, Ansible, Python.
DevOps-инженеры требуются в крупные компании с большими командами разработки, которым важна скорость и качество поставки нового кода. Это все те же онлайн-магазины, онлайн-кинотеатры, банки и телеком-операторы.
Зарплата DevOps-инженеров значительно больше, чем системных администраторов: от 1000 до 3500 USD и выше.
Squzy — бесплатная open-source self-host система мониторинга с инцидентами и уведомлениями
Однажды знойным зимним вечером к нам пришла идея написать приложение для проверки Sitemap фирмы, в которой мы работаем, с возможностью нотификации при возникновении ошибки.
Постепенно эта идея перешла к реализации, там появились мысли по улучшению, возник мониторинг хостов, затем — мониторинг приложений, и как вишенка на торте — инциденты с нотификацией.
В итоге мы получили полноценную систему мониторинга, являющуюся полностью open-source self-host решением, не имеющим внешних коммуникаций, с полностью определяемыми пользователем инцидентами.
И в этом посте мы хотим познакомить Вас с получившимся продуктом.
DevOps-инженерами становятся:
- Когда хочется освоить много компетенций сразу, разобраться в основах программирования и развивать коммуникативные навыки.
- Разработчики, которые интересуются развертыванием и сетевыми операциями.
- Системные администраторы, которые увлекаются написанием сценариев и кодированием и переходят на сторону разработки, где они могут улучшить планирование тестирования и развертывания.
- Тестировщики, которым стало тесно в своей профессии, хочется освоить больше направлений.
Вячеслав Светлов:Я пришел в специальность из системного администрирования около трех лет назад. До этого работал в центре обработки данных (ЦОД), занимался системами мониторинга — приходилось заниматься как администрированием, так и немного разработкой. После решил попробовать себя в DevOps, там и остался.
О технологиях
Цифровая трансформация — насколько по твоему мнению она необходима?
Как любая хайповая тема, она и модна, и необходима. У нас очень большое количество заказов сделать загрузку «эксельки». Невероятное количество компаний ведут работы в Excel. И им надо сделать так, чтобы эта «экселька» загружалась, парсилась, превращалась в базу данных и дальше можно было работать с ней, а потом выгрузить. Цифровая трансформация должна привести к переходу на нормальные системы работы — CRM, системы контента, СМS. И отказаться от эксельки и жить в нормальном web-мире. Есть такой хороший пример. В предыдущей компании, где я работал до Бюро-Бюро, у нас были две компании-клиента. А мы смогли детально отследить, как всё происходит. В одной компании работа с клиентами шла через Excel. Там была большая база данных. Это был 2012-2013 год. Обычная CRM там не подходила — большое workflow и на обычной CRM настраивать всё это очень долго. И одна компания ушла работать в «эксельку». А вторая потратила полгода — и написала свою CRM. В итоге, первая компания через полгода после того, как они дошли до пика продаж, и у них началась работа с клиентами — они схлопнулись. Просто их служба обращений не смогла обеспечить хороший и быстрый сервис. А вторая компания со своей CRM наоборот быстро по одной кнопке отслеживали, что за клиент, как он попал к ним, что ему ответили менеджеры. Они выжили в этот пик роста — и работают до сих пор. Электронный документооборот — тоже тренд. Экономия времени. Кто оперирует быстрее информацией, тот быстрее зарабатывает. Так во всём. Если нет хорошего мониторинга и нет хорошего логирования на проекте, то инженеры не смогут понять быстро, в чём проблема. А от этого сейчас по-настоящему зависит выживаемость и успешность бизнеса. А значит надо не просто забацать красивый сайтец, а необходимо построить правильный сайт и правильную систему логирования. Цифровая трансформация нужна. Необходимо идти в ногу со временем. Если есть такие технологии, надо стараться их внедрить.
Какие ты сейчас видишь технологии, которые в ближайшем будущем будут перспективны? Например, два года назад считался перспективным Кубернетес. Сейчас он просто необходим.
Будущее за machine learning и AI. Лет через пять это станет актуально. Год назад была крипта и был machine learning на хайпе. Сейчас всё поутихло. Но всё равно в ближайшие пять лет machine learning выстрелит, как я думаю. Работы ведутся — опыт и решения накапливаются.
Есть мнение, что с машинным обучением и искусственным интеллектом много профессий просто пропадёт. Это касается и учителей, и экономистов. И юристы поговаривают, что технология блокчейн подвинет определённые сферы в юриспруденции. Какие профессии в IT, как ты видишь, пропадут?
Исчезнет точно, как я думаю, верстальщики. Как мне кажется в ближайшие года три. Как говорится, запомните этот твит. (смеётся) Скорее всего, скоро напишут machine learning, который будет хорошо верстать. Что-нибудь придумают. А дальше, наверное, пропадут программисты несложных систем. Но всё равно всегда останутся программисты, которые будут проектировать и программировать ядро микрочипа. Всегда программисты будут.
Что нужно знать системному администратору, чтобы стать DevOps-инженером
Опыт системного администратора – хорошая отправная точка для карьеры DevOps-инженера. Осталось дополнить этот бэкграунд специфическими для DevOps навыками. Освоить их вы можете самостоятельно или на дистанционных курсах. Например, в GeekBrains на факультете DevOps вы можете выбрать обучение на полгода или год в зависимости от ваших навыков.
Опыт администрирования ОС
Чтобы практиковаться в работе с операционной системой Linux, можно установить дистрибутивы Fedora или Ubuntu на своем компьютере. Если хотите в целом подтянуть свои знания в администрировании, то можно записаться на курсы. Например, в Минске в образовательном центре ПВТ программа поLinuxдлится месяц, а на образовательном портале Microsoft есть бесплатный по администрированию Windows Server.
Знание программирования
DevOps-инженеру нужно знать скриптовые языки программирования (Bash, Perl), на которых пишутся сценарии для настройки автоматизации. Чтобы повысить квалификацию, можно выучить один из языков общего назначения, например, Java или Python. Это поможет лучше понимать код разработчиков.
Понимание работы с облачными сервисами
Сегодня наиболее востребованы облачные платформы от Amazon и Microsoft. Основные сервисы AWS, с которыми работает DevOps-инженер, – EC2, VPC, S3, RDS, ELB, EBS. Дополнительно можно изучить ECS, CloudFormation, OpsWorks, CloudWatch. Если вы еще не работали с AWS, то можете зарегистрироваться на официальном сайте – и получите годовой бесплатный доступ ко многим продуктам компании. Узнать больше об инструментах платформы поможет специализированный портал. Microsoft в конце 2018 года расширила список сервисов для платформы Azure DevOps. Для знакомства с ними можно выбрать бесплатные курсы на образовательном портале Microsoft.
Навыки работы с контейнерами
Контейнеры – это изолированные структуры, в которых можно развертывать приложения независимо от основной операционной системы. По сравнению с виртуальными машинами, контейнеры меньше весят и быстрее запускаются. Самый популярный инструмент для работы с контейнерами – Docker. И разработчик, и DevOps-инженер могут одновременно работать в Docker-контейнере. Пока разработчик пишет код самого приложения, DevOps-специалист создает конфигурационные файлы. Для запуска и управления контейнерами используются системы оркестрации, самая популярная из которых – Kubernetes. Разобраться в основах программы можно с помощью онлайн-курса от Linux Foundation.
Знание английского языка
В IT знание английского языка уже давно стало аксиомой. Но для DevOps-инженера это особенно актуально, ведь этот подход востребован в основном на проектах для зарубежных заказчиков, преимущественно из США. Английский пригодится и для самообразования, чтобы вы могли изучать новые технологии, не дожидаясь пока появится соответствующий курс на русском языке. Если в будущем захотите получить профессиональный сертификат (например, AWS Certified DevOps Engineer), экзамен, скорее всего, тоже нужно будет сдавать на английском.