Category: DevOps

25
Дек
2020

∞ Перспективы для инженера DevOps в 2021 году

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

Ранее мы писали о заработках инженеров DevOps в разных странах и рассматривали, как можно освоить популярную профессию с нуля. Продолжая тему DevOps, подведем итоги 2020 года и расскажем об основных, по мнению экспертов, тенденциях развития этого направления в ИТ.

О DevOps в 2020

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

Несмотря на экономический спад во всем мире, отрасль DevOps активно развивается. По данным поставщика рыночной информации и консультационных услуг International Data Corporation (IDC), продолжается рост технологических изменений и достижений, связанных с платформами доставки и развертывания приложений.

Ожидается, что на мировом рынке выручка в DevOps вырастет на 29,4% в 2020 году, а затем продолжит расти и достигнет прогнозируемой отметки в $21,3 млрд. к 2027 году.

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

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

Отчет компании Puppet

Каждый год компания-разработчик систем управления конфигурацией Puppet сообщает о состоянии DevOps. Недавно они выпустили девятый отчет, опросив более 2400 профессионалов. За прошедшие годы было опрошено свыше 35 тыс. технических специалистов, поэтому полученные результаты имеют большое значение.

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

Наибольшее количество респондентов находится в Европе (33%), США и Канаде (30%). Большинство из них (33%) представляют технологические компании, финансовые организации и промышленные предприятия.

Количество опрошенных по глобальным регионам и отраслям в процентном соотношении
Количество опрошенных по глобальным регионам и отраслям в процентном соотношении

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

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

  • использование единой инфраструктурной платформы DevOps для команд разработчиков. Платформенный подход – это выделение отдельной команды, которая разрабатывает общую инфраструктуру DevOps для всех внутренних разработчиков, вне зависимости от используемого ими стека. Такой подход разгружает создающие приложения команды, позволяя им не тратить ресурсы на самостоятельные попытки разработки и поддержки инфраструктуры поставки. При правильной реализации это позволяет добиться первоначальной задачи DevOps: «быстрой и эффективной доставки высококачественного программного обеспечения, которое отвечает бизнес-потребностям организации»;
  • применение принципов DevOps для изменения управленческой эффективности. Утверждение выпуска – узкое место, которое часто замедляет поставку программного обеспечения. Высокий уровень автоматизации без требования утверждения выпуска и предоставление сотрудникам большей возможности влиять на изменения, могут помочь добиться эффективных, частых и безопасных релизов ПО.

Ключевые выводы из отчета Puppet:

  • организации с высокоразвитыми практиками DevOps больше полагаются на внутренние платформы, которые, тем не менее, могут быть слабым местом, поскольку для стандартизации требуется больше времени, опыта и настройки;
  • организации должны рассматривать свои цифровые инициативы как продукты, а не как проекты, что позволит масштабировать платформы и практики DevOps;
  • наиболее распространенный интерфейс самообслуживания это CI/CD в организациях на разных уровнях развития DevOps;
  • организации, внедрившие безопасность во весь жизненный цикл DevOps, могут устранить почти половину своих критических уязвимостей менее чем за 24 часа. Не столь зрелые организации могут решить только 25% проблем за тот же период.

Отчет DevOps Institute

Институт DevOps провел посвященное навыкам специалистов исследование. Более 1200 опрошенных по всему миру профессионалов определили, какие из них считаются критически важными для DevOps и цифровой трансформации.

Ключевые выводы из отчета:

  • поиск и привлечение квалифицированных специалистов по-прежнему остается проблемой в 2020 году. 58% респондентов заявили, что найти квалифицированных специалистов по DevOps очень сложно. 48% считают, что столь же непросто удержать опытных профессионалов в компании;
  • некоторые навыки будут более востребованы. В 2020 году управление версиями программного обеспечения стало более востребованным, чем навык разработки полного цикла. Также рейтинг опыта в настройке и мониторинге производительности увеличился с 32% до 39%.
  • SRE начинает cильнее конкурировать с Agile, DevOps и ITIL. Рейтинги внедрения Agile (81%), внедрения практик DevOps (74%) и ITIL (25%) выросли по сравнению с результатами аналогичного опроса 2019 года. Внедрение SRE увеличилось с 10% в 2019 году до 28% в 2020 году.
Показатели роста методологий SRE, Agile и DevOps в 2019 и 2020 годах
Показатели роста методологий SRE, Agile и DevOps в 2019 и 2020 годах

Состояние DevOps в 2020 году в России

Исследования состояния DevOps в мире проводятся с 2011 года. Эти отчеты формируются зарубежными компаниями и информации о российском рынке там очень мало.

В 2020 году состояние DevOps в России решили изучить компании «Экспресс 42» и «Онтико». Авторы исследования Игорь Курочкин и Виталий Хабаров.

Им удалось опросить 889 человек из России и СНГ.

Количество опрошенных по регионам в процентном соотношении
Количество опрошенных по регионам в процентном соотношении

Четыре ключевые метрики авторы соотнесли с тремя профилями эффективности: Low, Medium, High.

Соотношение ключевых метрик исследования и профилей эффективности специалиста DevOps
Соотношение ключевых метрик исследования и профилей эффективности специалиста DevOps

По результатам опроса только 16% респондентов были точно определены в один из профилей. Остальные находятся на стыке Low, Medium или High. Авторы исследования советуют использовать калькулятор DORA для точного определения своего уровня.

Посвященная инструментам DevOps часть опроса показала, что ОС семейства Linux лидируют, а ОС Windows не сбрасывает свои позиции и все еще популярна.

Среди облачных сервисов наиболее популярны Amazon Web Services (AWS) и Google Cloud Platform. Объемы использования российских облачных хостингов постепенно увеличиваются.

Kubernetes занимает лидирующую позицию среди программного обеспечения для автоматизации развертывания. Ansible первый среди систем управления конфигурацией, а Jenkins и GitLab – среди CI-систем.

Использование инструментов DevOps специалистами в процентном соотношении
Использование инструментов DevOps специалистами в процентном соотношении

Авторы решили также проверить, как компании чувствуют себя в условиях пандемии COVID-19. Из таблицы можно сделать вывод, что команды профиля High справляются лучше, чем остальные. Они в 1,5-2 раза активнее выпускали новые продукты и в 2 раза чаще повышали производительность и/или надежность инфраструктуры приложений.

Уровень развития команд DevOps в условиях пандемии COVID-19
Уровень развития команд DevOps в условиях пандемии COVID-19

Основные планы команд-респондентов на 2021 год:

  • DevOps-трансформация;
  • изменение организационной структуры или переформирование команд;
  • внедрение DevSecOps, интеграция практик безопасности в процессы разработки, тестирования и эксплуатации.
Список запланированного развития команд DevOps на 2021 год
Список запланированного развития команд DevOps на 2021 год

Прогнозы на 2021 год

Проанализировав ряд свежих отчетов о состоянии DevOps, мы можем сделать вывод о тенденциях наступающего года:

  • большинство российских и иностранных компаний в 2021 году будут внедрять ориентированную на облако инфраструктуру для поддержки облачных рабочих процессов и приложений. Из-за связанных с пандемией изменений эти шаги уже начали предприниматься. В отчете “IDC FutureScape: Прогноз всемирно известных разработчиков и DevOps на 2021” утверждается, что 80% предприятий разработают механизм, позволяющий удвоить скорость этого внедрения уже к концу 2021 года. 29% опрошенных российских команд DevOps планируют миграцию инфраструктуры или приложений в облака в следующем году;
  • безопасность приложений и внедрение DevSecOps станет ключевым аспектом развития DevOps в 2021 году. Все больше команд будут внедрять гибкие методологии в DevOps, следовательно, у них будет мало времени на длительный цикл тестирования безопасности. Поэтому популярность DevSecOps существенно вырастет. Безопасность облачных вычислений также будет актуальной. Компании переходят в облако для быстрого и частого предоставления новых функций, а командам безопасности необходимо использовать новые инструменты и процессы, чтобы гарантировать быстроту и безопасность развертываний. 30% респондентов отчета о состоянии DevOps в России планируют внедрение DevSecOps и интеграцию практик безопасности в 2021 году;
  • гибридные рабочие места будут популярны и в 2021 году. В 2020-м компании были не готовы к массовому переходу на удаленный формат работы. Сейчас им стоит принимать долгосрочные решения, которые касаются формата работы. Преуспевающие в этом году компании сумели быстро изменить свою модель работы и предоставили сотрудникам возможность работать где угодно и в любой среде. В своем отчете компания IDC отметила, что к 2023 году 75% компаний создадут гибридную структуру того или иного типа;
  • многие команды перейдут на использование внутренних платформ. В исследовании Puppet 63% респондентов отметили, что их компания использует от 2 до 4 внутренних платформ. 25% опрошенных команд из России планируют внедрение или разработку внутренней платформы в следующем году. Хотя такие платформы достаточно громоздки, а также требуют большого количества времени и навыков для стандартизации, они будут активно внедряться в ближайшее время.
***

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

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

30
Ноя
2020

Конференция DevFest Siberia 2020

Пятая ежегодная конференция по Mobile, Frontend, Backend, DevOps, Security, Data Science и Hype. Более 40 спикеров со всего мира, 4 трека и воркшопы.
— Читать дальше «Конференция DevFest Siberia 2020»

30
Ноя
2020

💵 Сколько зарабатывают инженеры DevOps в разных странах

Желающим освоить профессию важно понимать состояние рынка труда. По сайтам вакансий мы изучили требования к квалификации специалистов и зарплаты инженеров DevOps в России, Европе и США.

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

Определение и обязанности DevOps

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

Со временем новая специальность стала совмещать в себе все больше навыков: системное администрирование, программирование, облачное администрирование и автоматизацию инфраструктуры.

Сегодня обязанности инженера DevOps выглядят так:

  • развертывание поставляемых разработчиками продуктов;
  • определение требований к инфраструктуре;
  • настройка инфраструктуры с учетом особенностей разрабатываемого ПО;
  • подготовка среды к частым внесениям изменений;
  • усиление эффективности и безопасности разработки ПО;
  • обнаружение и исправление ошибок;
  • автоматизация процессов разработки.

На собеседованиях менеджеры HR ожидают увидеть специалиста, который разбирается в использовании облачных технологий и автоматизации крупной инфраструктуры. Инженер DevOps должен обеспечивать безопасность и отказоустойчивость ПО, отлично владеть базовыми инструментами: AWS, Ansible, Docker, Kubernetes, Chef, Puppet и другими, а также понимать процессы планирования работ, уметь управлять командами и ожиданиями заказчика.


Уровни специалистов DevOps

Инженеров DevOps можно условно поделить на три типа:

  • Junior – до 3-х лет опыта.

Основное требование к новичкам – наличие умения самостоятельно выполнять сформулированные технические задачи. Среди Junior(ов) много тех, кто понял перспективность отрасли и стремительно запрыгнул в нее. Они больше заточены под рынок, но экспертизы и опыта им все же не хватает. Часто новички могут охватить лишь мониторинг и некоторые базовые задачи по установке. Они тратят много времени на самообразование, а принимать решения в сложной ситуации им крайне непросто;

  • Middle – до 6-ти лет опыта.

Middle DevOps способен самостоятельно выполнять поставленные задачи, понимает требования бизнеса и умеет переводить их в технические решения. Часто это сисадмины, которые освоили навыки программирования, научились поддерживать инфраструктуру и обеспечивать ее стабильную работу. Преимущество таких специалистов в том, что они совмещают в себе экспертизу на стыке Development и Operations;

  • Senior – от 6-ти лет опыта.

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

Это условная градация, которая встречается в вакансиях. На самом деле грейды от Junior к Senior больше свойственны программистам. Карьера специалистов DevOps часто начинается со среднего уровня, где требуемый опыт работы – больше трех лет. Обычно DevOps вырастают из системных администраторов, которые разобрались в инструментах программирования, или из разработчиков, изучивших тонкости операционных процессов.

Сколько зарабатывают DevOps в России, Европе и США

Судя по объявлениям на hh.ru, в Москве доступно более 3 тысяч вакансий по запросу DevOps. На них приходится более 5 тысяч резюме от 4 тысяч соискателей.

Скриншот сайта для поиска работы hh.ru
Скриншот сайта для поиска работы hh.ru

Можно сделать вывод, что количество соискателей всего за полгода (по данным из статьи на habr.com) увеличилось почти в 2.5 раза.

Скриншот из статьи на сайте habr.com
Скриншот из статьи на сайте habr.com

Младший специалист DevOps в Москве получает от 70 до 150 тыс. рублей в месяц, а зарплата ведущего составляет примерно 250 тыс. рублей.

В регионах младший специалист DevOps может заработать от 25 до 80 тыс. рублей, а ведущий – от 100 тыс. рублей. Большинство работодателей ожидают увидеть от трех лет практического опыта администрирования ОС Linux и опыт работы с Docker, Kubernetes, Ansible, а также с инструментами CI/CD.

Средняя медианная зарплата специалиста DevOps по данным Хабр Карьера во втором полугодии 2020 года составила 155 тыс. рублей.

Средняя медианная зарплата специалиста DevOps в России
Средняя медианная зарплата специалиста DevOps в России

В первом полугодии 2019 года средняя медианная зарплата DevOps в России составляла 130 тыс. рублей, а в первом полугодии 2020 года – 140 тыс. рублей.

Сравнение заплат DevOps за 2019 и 2020 годы
Сравнение заплат DevOps за 2019 и 2020 годы

По запросу DevOps на одном из популярных международных сайтов для поиска работы Monster.com, можно найти более 14 тыс. вакансий в США, из них более 2 тыс. для удаленной работы.

Скриншот сайта для поиска работы Monster.com
Скриншот сайта для поиска работы Monster.com

Американские работодатели готовы платить младшим специалистам DevOps от $5-7 тыс. в месяц, а продвинутым – от $10 тыс. в месяц. Разница в зарплате для офисных и удаленных сотрудников несущественна.

Среди требований: от 3 до 5 лет опыта в разработке программного обеспечения или DevOps, владение платформами: Git, AWS, Jenkins, Kubernetes, Puppet, Chef и другими, а также понимание систем сборки для разных языков программирования: C/C ++, Go, Python, Bash.

В Германии для DevOps открыто более 900 вакансий на сайте Monster.de. Младшему специалисту там предложат от 3 тыс. в месяц, а продвинутому – от 6 тыс.

Немецким предприятиям необходимы сотрудники с высоким уровнем владения английским. Часто требуется, но не во всех компаниях обязательно – знание устного и письменного немецкого языка (не ниже B1).

Специалистов DevOps в Германии ищут в основном консалтинговые компании, банки, компании-разработчики ПО и другие организации.

На платформе для удаленной работы UpWork доступно более 200 вакансий для DevOps. Можно найти хорошие варианты для проектной работы.

Скриншот сайта для поиска удаленной работы UpWork
Скриншот сайта для поиска удаленной работы UpWork

Выводы

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

Прежде чем приступить к поиску работы, стоит сделать следующее:

  • решите, где вы хотите работать.

Местоположение компании – один из самых важных критериев выбора для DevOps. Оно влияет на заработную плату, уровень жизни, баланс между работой и личной жизнью, и этот список можно продолжать. Изучите все тонкости города/страны, которые вас интересуют для работы или релокейта, чтобы найти подходящую вакансию;

  • определите, в чем вы действительно сильны.

Изучите свои сильные стороны, выберите предпочитаемые языки и технические стеки, с которыми вам интересно работать. Освоение новых инструментов на новой работе может стать проблемой, поэтому стоит подготовиться заранее;

  • установите зарплатные ожидания.

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

  • ищите компанию, которая соответствует всем вашим требованиям.

Вы можете предпочесть стартап, крупное предприятие, или удаленную работу – выбирать вам. Главное – еще до отправки резюме детально изучите культуру компании и решите, подходит ли она под ваши требования.

***

Если вы только начинаете свой путь в отрасли, стоит обратить внимание на курс DevOps онлайн-университета GeekBrains. Вы освоите упомянутые в статье современные технологии: Git, Docker, Kubernetes, AWS, Azure и многие другие. Опытные преподаватели помогут студентам получить все необходимые для старта карьеры в DevOps знания, а также решить шесть проектных задач и применить полученные навыки на практике.

27
Ноя
2020

Где размещается staging, testing environment в случае микросервисов работающих в облаке?

Допустим мы решили делать проект на Java, изначально с микросервисной архитектурой, работать он будет в AWS под управлением docker containers + kubernetes. Где в таком случае поднимать окружения для того чтобы:

разработчики могли что-то п…

19
Ноя
2020

👨‍🎓️👨‍🔧️50 терминов DevOps: словарь инженера

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

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

Совместно с Факультетом DevOps онлайн-университета GeekBrains мы составили список из 50 терминов, часто употребляемых специалистами в работе.

***

Словарь DevOps

A

Agent

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

Agile

(Гибкая разработка программного обеспечения)

Ряд методик и подходов к управлению и разработке программного обеспечения, которые нацелены на минимизацию рисков. Это достигается путем сведения разработки к серии коротких циклов (итераций), которые обычно длятся две-три недели. Agile позволяет легко корректировать требования к проекту (при необходимости), а в конце каждой итерации создается хоть и несовершенный, но работоспособный вариант продукта.

Amazon AWS

(Amazon Web Services)

Популярная облачная платформа, которая поддерживается и развивается компанией Amazon с 2006 года. Подписчикам доступен широкий спектр услуг, как по инфраструктурной модели (виртуальные серверы, ресурсы хранения), так и платформенного уровня (облачные базы данных, облачное связующее ПО, средства разработки).

Apache

HTTP-сервер. ПО с открытым исходным кодом, один из самых популярных веб-серверов. Позволяет запускать веб-сайты и приложения.

API

(Программный интерфейс приложения)

Программный посредник, который позволяет двум приложениям взаимодействовать друг с другом.

Artifact

Результат выполнения какого-либо шага в процессе разработки ПО, на который можно ссылаться. Это могут быть диаграммы, требования пользователей, модели UML и прочее.

B

Bastion host

(Узел-бастион)

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

Black Box Testing

(Тестирование по стратегии «черного ящика»)

Метод функционального тестирования внутренней структуры, дизайна и кода ПО. Его особенность состоит в том, что тестировщики не имеют доступа к исходному коду приложения.

Branching

(Разветвление)

Существует для разделения основного кода на пути развития (ветки) в системе управления версиями (например Git). Каждая ветка может содержать собственную модификацию основного кода.

Build Agent

(Агент сборки)

Тип агента, который используется в непрерывной интеграции и отправляет/получает сообщения об обработке сборки ПО.

Build Artifact

(Артефакты сборки)

Сопровождающие ресурсы, которые отличаются от основного кода и участвуют в работе или развертывании приложения (например изображения, конфиги, дампы баз данных).

Build Automation

(Автоматизация сборки)

Автоматизация сборки ПО и связанных с ней процессов (компиляция исходного кода в двоичный, упаковка двоичного кода и выполнение автоматических тестов).

C

Canary Release

(«Канареечный релиз»)

Метод, который используется для постепенного ознакомления с выпуском ПО небольшой подгруппы пользователей. Главная задача – убедиться в безопасности и функциональности ПО перед развертыванием для всей пользовательской базы.

Capacity Test

(Тест емкости)

Определяет количество пользователей, которое может обработать компьютер, сервер или приложение при максимальной производительности.

Commit

Операция, которая сохраняет последние изменения исходного кода в репозитории (например, Git).

Configuration Management

(Управление конфигурацией)

Дисциплина постоянного мониторинга и поддержания согласованных настроек системы с помощью инструментов для автоматизации ИТ-инфраструктуры (например, Chef, Puppet, Kubernetes, Ansible).

Container

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

Containers-as-a-Service (CaaS)

(Контейнеры как услуга)

Модель облачного сервиса, которая позволяет загружать, организовывать, запускать, масштабировать или любым другим способом управлять контейнерами, приложениями и кластерами. Это реализовывается с помощью виртуализации на основе контейнеров, интерфейса прикладного программирования (API) или интерфейса веб-портала.

Continuous Delivery (CD)

(Непрерывная доставка)

Подход к разработке ПО, при котором оно производится короткими итерациями, и может быть передано в эксплуатацию в любое время (передача происходит вручную). Цель – сборка, тестирование и релиз ПО с большей скоростью и частотой.

Continuous Integration (CI)

(Непрерывная интеграция)

Практика разработки ПО, при которой код часто (несколько раз в день) объединяют в общий репозиторий. Это необходимо для оперативного выявления потенциальных дефектов и решения интеграционных проблем.

Cluster

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

D

Deployment

(Развертывание)

Термин, который объединяет все связанные с запуском нового ПО процессы: установку, настройку, запуск и тестирование.

DevOps

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

DevSecOps

(Операции по обеспечению безопасности доставки)

Подход, который использует принципы и практики DevOps для обеспечения безопасности ПО на всех этапах процесса разработки.

E

Exploratory Testing

(Исследовательское тестирование)

Тип ручного тестирования, при котором тестировщики свободно выбирают и тестируют те области ПО, где по их мнению могут возникнуть проблемы.

F

Fail Fast

(«Быстрый провал»)

Подход к разработке ПО, при котором раннее тестирование и выявление ошибок помогает быстро определить, имеет ли идея ценность.

G

Google Cloud Platform

Набор облачных служб, который предоставляет компания Google. Служат для сборки, тестирования и развертывания приложений в масштабируемой облачной инфраструктуре. Предлагает вычислительные мощности, хранение, обслуживание программных решений и машинное обучение.

H

Hybrid Cloud

(Гибридное облако)

Решение, которое объединяет минимум одно частное и общедоступное облако. Они связаны технологией, которая поддерживает переносимость данных и приложений. Это дает предприятиям возможность легко масштабировать локальную инфраструктуру до общедоступного облака, чтобы справиться с любой перегрузкой.

I

Integration Testing

(Интеграционное тестирование)

Тестирование компонента и модуля кода, в ходе которого они объединяются для гарантии слаженной работы и правильной интеграции с другими компонентами и модулями кода.

K

Kanban

Инструмент организации производства, который является частью agile-философии и позволяет реализовывать принцип «точно и в срок». Достичь необходимого результата можно с помощью визуализации (виртуальной или реальной доски, на которую прикрепляются стикеры или карточки).

L

Lead Time

(«Время производственного цикла»)

Среднее время, необходимое для выполнения процесса или серии операций. При разработке ПО это выражается в переносе изменений кода в рабочую среду.

M

Machine Learning (ML)

(Машинное обучение)

Подраздел искусственного интеллекта, связанный с построением алгоритмов, которые способны обучаться без вмешательства человека.

Microservices Architecture

(Микросервисная архитектура)

Способ разработки ПО, как взаимосвязанной системы из нескольких независимых модульных сервисов, которые взаимодействуют друг с другом. Каждый из микросервисов отвечает за отдельную задачу и может быть изменен.

Microsoft Azure

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

N

Nginx

HTTP-сервер. ПО с открытым кодом, совместимое с UNIX-системами. Области его применения – от кэширования HTTP до создания инвертированного прокси-сервера.

O

Open Source

(Открытое программное обеспечение)

ПО с открытым исходным кодом. Если код предоставляется бесплатно и является доступным для изменения и обмена, такая разновидность открытого ПО называется свободным.

P

Pair Programming

(Парное программирование)

Техника разработки ПО, при которой исходный код создают на одном рабочем месте два программиста одновременно. Один из них («ведущий») пишет код, а другой («наблюдатель») просматривает его на наличие ошибок. Время от времени они могут меняться местами.

Platform-as-a-Service (PaaS)

(Платформа как услуга)

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

Production

Среда, в которой хранится конечная версия приложения или сайта, доступная рядовым пользователям.

R

Rollback

(Откат)

Автоматическая или ручная операция возврата продукта или приложения к предыдущей версии.

S

Self-Service Deployment

(Самостоятельное развертывание)

Автоматизация процессов развертывания, когда одна команда переносит код из среды разработки в релиз. При этом менеджеры проектов и даже клиенты могут напрямую управлять развертыванием.

Software-as-a-Service (SaaS)

(Программное обеспечение как услуга)

Модель самообслуживания для облачных вычислений по которой пользователям предоставляется доступ к прикладному ПО, обслуживаемому провайдером.

Staging Environment

(Промежуточная среда)

Копия производственной среды, используемой для тестирования более новой версии ПО, прежде чем она будет запущена в производство. Это позволяет выявить ошибки и убедиться, что все работает правильно перед выпуском ПО.

T

Test Automation

(Автоматизация тестирования)

Использование отдельного ПО для тестирования. Этапы: запуск, инициализация, выполнение, анализ и автоматическая выдача результата. Используется для контроля выполнения тестов и сравнения фактических результатов с прогнозируемыми.

Technical Debt

(Технический долг)

Относится к доработке, которая возникает, когда легко реализуемый в краткосрочной перспективе код используется вместо применения лучшего, но более медленного/дорогого общего решения.

U

User Acceptance Testing (UAT)

(Пользовательское приемочное тестирование)

Этап тестирования ПО, на котором клиенты и конечные пользователи могут проверить, будет ли работать данное приложение в реальном сценарии.

Unit Testing

(Модульное тестирование)

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

V

Virtual Machine (VM)

(Виртуальная машина)

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

W

Waterfall

(Модель «Водопад»)

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

White Box Testing

(Тестирование по стратегии «белого ящика»)

Метод функционального тестирования внутренней структуры, дизайна и кода ПО. Отличается от тестирования по стратегии «черного ящика» тем, что исходный код виден тестировщику.

Выводы

Прочтя нашу статью, вы познакомились только с основами – это далеко не вся необходимая действующему инженеру терминология. Чтобы узнать больше специальных терминов из сферы DevOps и научиться применять знания на практике, стоит обратить внимание на курс DevOps онлайн-университета GeekBrains. Учебная программа подойдет начинающим: под руководством опытных наставников вы получите все необходимые для старта в профессии знания, а успешно окончившим курс студентам университет помогает с трудоустройством.

17
Ноя
2020

Конференция HighLoad++ 2020

Темы выступлений — все аспекты разработки и поддержки высоконагруженных систем. Спикеры расскажут про архитектуры и разные методологии.
— Читать дальше «Конференция HighLoad++ 2020»

03
Ноя
2020

👨‍🔧️ Зачем DevOps сисадмину и программисту?

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

Для смены специальности есть масса причин. Системное администрирование в наше время – это не работа для состоявшегося профессионала. Рано или поздно вперед вырвется молодняк с лучшей обучаемостью и подвижной психикой, как предыдущее поколение вытеснило с рынка труда собственных динозавров. Рядовые сисадмины перестали быть офисными небожителями и переквалифицировались в грамотных техников. По сути они теперь – обслуживающий персонал, от которого требуется действовать по инструкции и быстро осваивать новые решения. Хорошее занятие для юных, но перспектив никаких.

Почему DevOps?

Путей развития у сисадмина довольно много: он может уйти в большую компанию и дорасти до управляющего железом операторского класса сетевого инженера, а то и до системного архитектора, если есть охота заниматься бумажной работой. Некоторые становятся специалистами по ИБ или уходят в управленцы (ИТ-менеджеры). Из позволяющих совершенствоваться в техническом направлении специальностей ближе всего к системному администрированию стоит DevOps. Настолько близко, что эти профессии часто путают.

Разница все-таки есть: практики DevOps (Development Operations) сочетают разработку (Dev) и ИТ-операции (Ops) для обеспечения непрерывной поставки софта заказчикам. Навыки администрирования относятся к Ops – это лишь часть необходимого инженеру багажа, хотя и достаточная для старта в новой профессии. Не случайно многие девопсы вышли из сисадминов, а споры о различиях между профессиями не утихают годами. И те и другие делают, чтобы все работало, но в случае DevOps в квесте возникают дополнительные уровни сложности.

Иллюстрация с pixabay.com
Иллюстрация с pixabay.com

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

Освоивший практики DevOps программист перестает думать алгоритмами и кодом. Эволюция сисадмина идет другим путем, но сходным образом: где разработчики получают навыки администрирования, там администраторы нарабатывают скилы разработчиков. Это грубая и неточная формулировка, но суть дела она отражает. Когда Dev и Ops сходятся в одном человеке, наступает просветление. У программиста появляется навык работы с инфраструктурой и видение всего ландшафта, а понимание привязки приложения к местности позволяет ему писать более качественный код. Отошедший от сферы обслуживания в сторону создания платформы сисадмин учится объединять разрозненные ее части, т.е. создавать для компании новую ценность – интегрированный инфраструктурный продукт.

Как познать мудрость?

Если системный администратор или разработчик решили эволюционировать в более развитую форму ИТ-организмов, им придется наметить для себя путь к цели. Освоить практики DevOps можно, постепенно включаясь в работу, но бессистемный подход к обучению не всегда дает хороший результат. К тому же в девопсе не бывает джунов: работодателям нужны готовые боевые единицы, способные закрыть проблемные участки. Новичкам помогут онлайн-курсы с продуманной программой и опытными преподавателями. Незачем наступать на собственные грабли, проще за относительно небольшое время (как правило несколько месяцев) изучить чужой систематизированный опыт без отрыва от производства.

Иллюстрация с pixabay.com
Иллюстрация с pixabay.com

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

После обучения выпускник может рассчитывать на новую должность или хотя бы на прибавку к зарплате. Околокомпьютерную романтику девяностых DevOps не вернет, времена «Хакеров» и «Лабиринта отражений» прошли безвозвратно. Сейчас работодатели ценят крепких профессионалов, а шаманы никому не нужны, но это и хорошо. Романтика организму требуется лишь время от времени, а кушать ему хочется всегда.

***

Чтобы сделать выбор, начать в любом случае стоит с профориентации. Компания OTUS проводит запись на бесплатный день открытых дверей к объемному онлайн-курсу по практикам и инструментам DevOps. Позже будет еще один предварительный вебинар по этой теме, но чтобы на него попасть, нужно пройти тестирование. Аналогичные мероприятие запланированы и для курса по Kubernetes. После регистрации все желающие смогут познакомиться с преподавателем и учебной программой на вебинаре, а прохождение теста позволит поучаствовать в бесплатном вводном онлайн-занятии. Успешно окончившие курс студенты смогут пройти сертификацию от CNCF: CKA и CKAD. Специально к ней не готовят, но встречающиеся на экзамене темы освещаются подробно.

31
Окт
2020

🗺 Дорожная карта инженера DevOps

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

Мы уже рассказывали о профессии инженера DevOps и как ее можно освоить. Другие публикации по теме доступны на сайте Proglib.io.

Что такое DevOps?

DevOps – это методология, которая позволяет автоматизировать и интегрировать процессы между разработчиками программного обеспечения и ИТ-командами. Благодаря этому они создают, тестируют и выпускают качественные продукты в короткие сроки.

Главная задача методологии DevOps вовремя предоставить необходимую технологию бизнес-подразделениям и наладить ее бесперебойную работу.

Схема работы DevOps
Схема работы DevOps

Сокращение DevOps расшифровывается, как development и operations. «Dev» используется как сокращение, обозначающее работу программистов и всех, кто задействован в разработке продукта. Например, менеджеров, тестировщиков и других специалистов.

«Ops» – это общий термин, который характеризует работу системных администраторов, операционного персонала, администраторов баз данных, сетевых инженеров, специалистов по безопасности и других.

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

Схема взаимодействия в методологии DevOps
Схема взаимодействия в методологии DevOps

В DevOps нет junior-инженеров?

Обсуждения на Reddit и StackOverflow часто касаются темы о младших инженерах DevOps. Многие считают, будто их не существует, а мир разработки довольно суров к тем, кто пытается прорваться на арену DevOps.

У инженеров-программистов существует общепринятая система перехода от младшего специалиста к старшему. Когда дело доходит до DevOps, градация часто начинается со среднего уровня, где требуемый опыт работы – не менее трех лет. Младшие специалисты часто могут охватить лишь мониторинг и некоторые базовые задачи по установке.

Основные сложности для новичка в DevOps связаны со следующими факторами:

  • жесткими требованиями и высоким уровнем ответственности. Для младшего специалиста решить все проблемы настройки среды разработки DevOps будет крайне непросто, например:
  1. развернуть среду разработки, тестирования, предпродажной подготовки и производства;
  2. настроить передачу данных между средами;
  3. разработать механизмы резервного копирования и развертывания;
  4. осуществить мониторинг с прогнозированием, визуализацией данных и ведением журнала;
  5. задокументировать настройки и запросы на изменение;
  6. сформировать отчетность перед инженерным менеджментом, и прочее.
  • отсутствием необходимого опыта

(специалист DevOps с опытом может настроить полностью автоматическую систему, выявить сбои еще до их возникновения и устранить проблемы с минимальным воздействием. Младший специалист тратит слишком много времени на самообразование, которое часто сводится к поиску в Google, ему непросто принимать правильные решения в сложной ситуации);

  • отсутствием формального образования

(DevOps – ремесло, которому нельзя просто научиться в вузе. Специалисты DevOps чаще всего переходят в эту отрасль из смежных областей и являются самоучками. Большую часть знаний можно получить, обучаясь на онлайн-курсах, или самостоятельно читая специализированные руководства, а также общаясь с опытными коллегами).

Дорожная карта специалиста DevOps

Путь DevOps сложен и объединяет в себе большое количество требований к навыкам, которые необходимо освоить будущим специалистам. Для того, чтобы лучше разобраться в профессии и понять, какие инструменты и технологии необходимо изучить, лучше всего руководствоваться дорожной картой DevOps.

Дорожная карта специалиста DevOps
Дорожная карта специалиста DevOps

Изучите язык программирования

Начать стоит с изучения одного из предложенных на дорожной карте языков программирования: Python, Ruby, Go, Rust, C, C++, и т.д. Главное не их количество, а общее понимание принципов работы.

Языки программирования и основные концепции ОС
Языки программирования и основные концепции ОС

Автор рекомендует начать изучение с языка Go, также известного как Golang. Go – это статически типизированный язык программирования, который был разработан внутри компании Google. В отличие от динамически типизированного языка, код проверяется перед запуском, а не после.

Плюсы:

  • легкость и доступность для изучения (простой синтаксис);
  • производительность и скорость работы (Go компилируется в машинный код);
  • возможность выявления ошибок на ранних этапах;
  • возможность написания не громоздкого кода;
  • большое количество библиотек (библиотека Go легко читается, отличается качеством, благодаря чему можно выполнить практически любую поставленную задачу);
  • отсутствие наследования, что значительно упрощает поддержку приложений на Go;
  • наличие инструмента, который помогает стандартизировать код – go fmt.

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

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

Возможности языков Go и Python мы сравнивали в одном из материалов.

Изучите основные аспекты операционных систем

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

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

Получите навыки администрирования серверов

Инженеру DevOps необходимо управлять всеми типами серверов. Часто речь идет о целом парке: их может быть больше ста и состоят они из экземпляров ОС Linux (очень редко из экземпляров других ОС).

Поэтому для начала мы советуем уделить особое внимание Linux. Если у вас мало опыта работы с данной ОС, начните с Ubuntu. Изучите основные команды, инструменты для мониторинга, настройки и разберитесь с работой терминала.

Сервера, сети и их безопасность
Сервера, сети и их безопасность

Изучите сети и безопасность

Знание сетей, безопасности и базовых протоколов необходимо инженеру DevOps, так как он должен настраивать VPC и группы безопасности/брандмауэры, а также использовать различные протоколы.

Например:

  • HTTP (протокол передачи гипертекста);
  • SSL (обеспечивает защищенный обмен данными);
  • SSH (сетевой протокол, позволяющий производить удаленное управление операционной системой);
  • FTP (протокол передачи файлов);
  • SMTP (простой протокол передачи почты) и другие.

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

Еще обязательно придется работать с веб-серверами, поэтому необходимы знания и практический опыт взаимодействия с серверами обратного прокси, такими как Nginx и/или Apache.

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

Инфраструктура как код (IaC) – это управление сетями, виртуальными машинами, балансировщиками нагрузки и топологией подключения с использованием методов разработки кода и программного обеспечения, таких как контроль версий и непрерывная интеграция.

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

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

Важно обратить внимание на работу с контейнерами (автор советует использовать ПО Docker), изучить управление конфигурацией (с помощью системы управления конфигурациями Ansible), оркестрирование контейнеров (это лучше всего делать с Kubernetes) и управление инфраструктурой с помощью программного инструмента с открытым кодом Terraform.

Изучите некоторые инструменты CI/CD

Непрерывная интеграция (CI) – это практика разработки программного обеспечения, при которой разработчики часто объединяют код в общий репозиторий (несколько раз в день). Затем каждую интеграцию можно проверить с помощью автоматизированной сборки и автоматических тестов для выявления потенциальных дефектов и решения проблем.

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

Как специалист DevOps, вы должны изучить и знать основные инструменты CI/CD:

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

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

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

Программное обеспечение и инфраструктура
Программное обеспечение и инфраструктура

Для инженера DevOps важно собирать отзывы и внедрять изменения, для этого необходимы такие инструменты мониторинга, как Nagios, Prometheus, Grafana.

Изучите облачных провайдеров

Будущему специалисту DevOps важно разобраться с особенностями работы облачных провайдеров. Для начала обратите внимание на AWS – лидера в сфере облачных технологий. При необходимости уделите внимание Azure, Google Cloud, Digital Ocean и другим.

Облачные провайдеры
Облачные провайдеры

Куда и как расти специалисту DevOps?

Чтобы войти в профессию, необходим технический бэкграунд. Отличный вариант – перейти в DevOps из системных администраторов, специалистов по эксплуатации, тестированию или разработчиков.

Если необходимого опыта у вас нет:

  • пройдите базовый курс по администрированию ОС Linux;
  • изучите языки программирования Go и/или Python (напишите для начала несколько скриптов);
  • разберитесь в принципах ООП (объектно-ориентированное программирование);
  • обратите внимание на общий цикл разработки продукта.
  • изучите базовые протоколы: HTTP, SSL, SSH и т.д.;
  • обратите внимание на основные инструменты CI/CD: Jenkins, GitLab CI и т.д.

Если вы уже имеете опыт в профессии, советуем записаться на курсы, чтобы развить необходимые навыки и получить недостающие знания.

Карьерный путь инженера может выглядеть так:

  • развитие специалиста DevOps в отрасли с углублением в специализацию (параллельно можно изучать похожие технологии);
  • системным администраторам можно перейти в разработчики, или наоборот (если вам интереснее работать с инфраструктурой, нежели с кодом);
  • можно переквалифицироваться в специалиста по безопасности DevSecOps (это методология разработки ПО, которая подразумевает контроль и безопасность на всех этапах создания приложений);
  • рост в направлении проектного менеджмента, системной архитектуры или тестирования.

Заключение

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

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

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

26
Окт
2020

👨‍🔧️ Повседневные задачи в DevOps: мнения инженеров

Корреспондент Proglib выяснил у инженеров DevOps, с какими задачами они сталкиваются ежедневно и какими инструментами пользуются. Рассказываем о наиболее полезных для профессионального развития.

В предыдущих статьях мы писали об основах DevOps и рассказали, как освоить эту профессию. Остальные публикации по теме доступны на сайте Proglib.io.

***

Чем инженер DevOps отличается от сисадминов

DevOps (DEVelopment OPerations) – набор практик, сочетающий разработку программного обеспечения (Dev) и IТ-операции (Ops). Эти практики направлены на сокращение жизненного цикла создания систем и непрерывную поставку программного обеспечения высокого качества.

Специалист DevOps должен знать все процессы цикла: от самой разработки до поддержки продукта после релиза. Он должен быть хорошим менеджером, который разбирается в процессах планирования и управления командами, а также умеет общаться с заказчиком.

Работа специалиста DevOps объединяет несколько направлений:

  • непрерывную интеграцию и доставку (CI/CD);
  • автоматизацию развертывания серверов (IaC);
  • мониторинг;
  • отчетность;
  • сотрудничество.

Роль DevOps мы уже рассматривали подробнее.

Существует миф, будто задачи инженера DevOps может решать системный администратор или администратор Big Data, но сферы ответственности и рабочие объекты у этих специалистов различаются.

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

Системный администратор:

  • разрабатывает конфигурацию корпоративной сети;
  • работает с программным и аппаратным обеспечением персональных компьютеров;
  • настраивает серверы;
  • ведет мониторинг состояния сети;
  • реализует резервное копирование и восстановление данных.

Администратор Big Data:

  • настраивает и обслуживает инфраструктуру для хранения данных, создавая кластеры и конфигурируя облачные платформы;
  • заботится об информационной безопасности больших данных;
  • взаимодействует с облачными и виртуальными серверами.
Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

Инженер DevOps:

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

Системные администраторы обслуживают серверы и ПО, администраторы Big Data отвечают за инфраструктуру для больших данных, а инженеры DevOps автоматизируют решение задач, которые относятся к интеграции и доставке программного продукта заказчику.

Нюансы работы специалистов разных уровней

Мы расспросили специалистов DevOps разных уровней об их основных обязанностях и использующихся в работе инструментах.

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

Алексей Мамаев стажировался на позиции DevOps в «Тинькофф Банк», а сейчас занимает должность младшего разработчика в Mail.ru Group. Большая часть времени в процессе его стажировки уделялась разработке.

Круг обязанностей был следующим:

  • настройка мониторинга инфраструктуры;
  • разработка внутренних сервисов (например, конфигурирования серверов).

Задачи и инструменты:

  • Системы мониторинга:
  1. конфигурирование мониторинга внутренней инфраструктуры (добавление метрик, их группировка, формирование дашбордов) в Nagios;
  2. разработка дополнительных плагинов на C, когда нужна более тонкая логика обработки: например, отслеживание совокупности метрик;
  3. добавление метрик для системы мониторинга Prometheus с использованием Golang;
  • Шаблонное редактирование конфигураций развернутых в Kubernetes или на физических машинах веб-сервисов с помощью Puppet;
  • Разработка внутренних сервисов: бекенда на Python и простейшего фронтенда с использованием Bootstrap. Возможно, с использованием Django/Flask. Как пример – простейший веб-интерфейс управления определенным классом серверов в дата-центре (включить/выключить, отобразить информацию о машине).

В итоге немалый объем работы был связан с мониторингом. По словам Алексея, эта сфера интересна ему в т.ч. по эстетическим соображениям, а опыт в DevOps может быть полезен обычным разработчикам: если в команде нет специалистов, им достается часть обязанностей по доставке ПО и поддержке разворачиваемых сервисов.

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

Андрей Сидоров занимает в компании ARRIVAL должность DevSecOps Architech.

В его обязанности входит проработка целевой безопасности компании:

  • построение Security CI/CD для всех компонентов системы в соответствии со стандартами безопасности;
  • построение SIEM для анализа и выявления кибер-угроз всем компонентам ИТ-инфраструктуры;
  • построение системы работы с секретными данными на уровне всей компании;
  • построение инфраструктуры для работы приложений в соответствии со стандартами безопасности.

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

В остальное время он продумывает и разрабатывает Proof Of Concept различных решений и тестирует гипотезы.

Инструменты:

Сейчас Андрей занимается решением для отправки отчетов различных сканеров (owasp dependency check, gitleaks, hadolint, dockle, trivy) в системы Application Security Vulnerability management (DefectDojo). В зависимости от настроек, оно импортирует нужную информацию о проекте и отправляет в DefectDojo, интегрируясь с Jira.

Андрей отмечает, что профессионалы в DevOps чаще вырастают из системных администраторов: им очень не хватает опыта программирования, поэтому изучение Go и Python необходимы. Go – из-за высокой популярности в корпоративном секторе, а также благодаря активному использованию в экосистеме Kubernetes.

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

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

Илья Бленцов работает на должности Senior IT Engineer.

По мнению Ильи, обязанности специалиста DevOps зависят от проекта и его фазы, роли инженера на этом проекте и списка задач. Он приводит такие варианты задач по автоматизации отдельно взятых процессов:

  • установка/развертывание решения, статическое тестирование кода, подготовка/обновление/клонирование окружения;
  • изучение существующих инструментов и процессов на проекте с последующей их автоматизацией и оптимизацией, например «на нашем проекте вся автоматизация на скриптах Ansible и Shell»;
  • изучение и внедрение конкретного инструмента (например, graylog для управления логами на проекте или Vault), где инженеру необходимо будет изучить продукт и понять, как с его помощью решить задачи проекта;
  • организация CI/CD на проекте с помощью Gitlab-CI, где задачи инженера будут следующими:
  1. изучить существующие процессы на проекте;
  2. понять, как запрошенный инструмент поможет решить поставленную задачу;
  3. адаптировать/оптимизировать существующие процессы для реализации поставленной задачи;
  4. построить CI/CD;
  • разработка унифицированного инструмента для компании, с написанием сопроводительной документации, подготовкой презентации и внедрением.

По мнению эксперта, не последнее место занимает задача «продать» новый инструментарий или подход командам, презентовать его, и в конце концов научить им пользоваться.

Илья отмечает, что ему приходится работать с IaaS и PaaS, развернутыми в частных и публичных облаках. В DevOps большинство задач так или иначе связаны с IaaS, причем наиболее популярна и актуальна сейчас экосистема Kubernetes.

Интересен опыт работы с публичными облаками крупных провайдеров: AWS, Azure, Google Cloud Platform. Python для специалиста DevOps по-прежнему «в топе», но все более актуальным становится язык программирования Go.

***

DevOps – сложная и многогранная методология. Профессию можно освоить самостоятельно, но если вы только начинаете свой путь в ней, обратите внимание на курс DevOps онлайн-университета GeekBrains.

В течении полутора лет студенты осваивают перечисленные героями статьи инструменты: Python, Docker, Kubernetes, Ansible, Terraform, CD/CI, AWS и Azure. Они изучают настройку серверов, облачные технологии и микросервисную архитектуру, платформу Azure, системы мониторинга на примере Prometheus+Grafana и многое другое. В возникающих проблемах студентам помогают разобраться опытные преподаватели и личный наставник.

19
Окт
2020

Курс для QA-инженеров

Курс подойдёт специалистам, которые хотят понимать, в какую сторону развиваться, и показывать теоретическую экспертность на собеседованиях.
— Читать дальше «Курс для QA-инженеров»

09
Окт
2020

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

В предыдущих публикациях мы выяснили, чем занимаются инженеры DevOps и как освоить эту профессию. Без обмена опытом с коллегами это невозможно, но общение требуется не только новичкам – состоявшиеся специалисты тоже уделяют ему немало времени. Сегодня мы расскажем о полезных для инженера DevOps мероприятиях и профессиональных сообществах:

  • конференциях, которые пройдут до конца 2020 года и будут касаться различных направлений работы и обучения в сфере DevOps;
  • митапах – тематических онлайн-встречах;
  • известных комьюнити DevOps.
Фото с сайта pixabay.com
Фото с сайта pixabay.com

Конференции

DevOps Enterprise Summit

Где: онлайн

Когда: 13-15 октября 2020

DevOps Enterprise Summit пройдет в Лас-Вегасе. Организаторы обещают участникам насыщенную трехдневную программу, несмотря на онлайн-формат. Вести мероприятие будет Джин Ким – основатель IT Revolution, компании-организатора DevOps Enterprise Summit, автор книг «‎Руководство по DevOps», «‎Проект “Феникс”» и других.

Если вас не смущают доклады на английском, эта конференция заслуживает внимания.

Темы мероприятия:

  • как ускорить DevOps и Agile с помощью VSM;
  • как преодолеть разрыв между IT и бизнесом и научиться доверять друг другу;
  • проблемы реализации DevOps для баз данных;
  • улучшение взаимопонимания с помощью SRE, и многие другие.

Стоимость полного трехдневного билета: $650.

DevOpsCon

Где: Берлин или онлайн

Когда: 12-15 октября 2020

Конференция DevOpsCon пройдет в Берлине, но стать ее участником можно и онлайн. Первые два дня будут посвящены выступлениям спикеров, а два оставшихся – обучающим воркшопам. Языки конференции: английский и немецкий.

Докладчики расскажут:

  • как облачные платформы, микросервисы и Kubernetes взаимодействуют с комплексной автоматизацией и непрерывной доставкой;
  • как справиться с ростом организации;
  • как предоставить высокопроизводительным командам необходимые инструменты и гибкие методологии.

Основные темы DevOpsCon:

  • экосистема Kubernetes;
  • микросервисы и архитектура программного обеспечения;
  • непрерывная доставка и автоматизация;
  • облачные платформы и бессерверные вычисления;
  • бизнес и корпоративная культура;
  • безопасность и другие.

Стоимость четырехдневного билета для участия онлайн: €1250.

Cloud & DevSecOps Z-Days 2020

Где: онлайн

Когда: 14-15 октября 2020

Z-Days – это серия международных комьюнити-конференций, объединяющих людей, технологии и сообщества со всего мира. На мероприятиях выступают спикеры, которых выбирают открытым голосованием. Язык конференции – английский.

Мероприятие будет полезно для специалистов DevOps, профессионалов из сферы безопасности и интересующихся Big Data специалистов.

Темы:

  • как управлять стеком мониторинга в нескольких средах;
  • AWS, GCP, AZURE, IBM, … Какое облако мне нужно?
  • Azure Arc для гибридных и мультиоблачных решений.

Percona Live Online

Где: онлайн

Когда: 21-22 октября 2020

Percona Live – мероприятие, ориентированное на разработчиков баз данных, администраторов, технических специалистов.

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

Вы также узнаете:

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

DevOpsFest.2020

Где: онлайн

Когда: 6 ноября 2020

Фестиваль DevOpsFest.2020 собирает участников со всего мира: в этом году он пройдет в онлайн-формате.

Организаторы обещают один день «хардкорного» погружения в DevOps. Будут раскрыты темы:

  • автоматизация: CI/CD, IaC, GitOps. Что новенького?
  • мониторинг: лучшие практики для спокойного сна;
  • облака: нюансы выбора и принципы экономии;
  • виртуализация: новые веяния или старый хардкор;
  • безопасность: DevSecOps – что мы об этом знаем?

Стоимость: 2 900 руб.

DevOps Pro Moscow 2020

Где: Москва

Когда: 24-26 ноября 2020

DevOps Pro Moscow – ежегодная конференция, которая состоит из одного дня мастер-классов и двух дней выступлений докладчиков.

На трех параллельных потоках спикеры поделятся:

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

Стоимость полного оффлайн-билета: 30 000 руб.

Стоимость билета с доступом к онлайн-трансляции: 15 000 руб.

DevOops 2020 Piter

Где: онлайн

Когда: 2-5 декабря 2020

DevOops – это конференция о процессах, культуре, SRE и Cloud Native. Программа мероприятия состоит из трех главных блоков:

  • DevOps, где спикеры расскажут о процессах и культуре, которая мотивирует им следовать, выкатывать качественный код в продакшн и сокращать затраты на разработку.
  • SRE, где вы узнаете о бессмертном Kubernetes, Terraform, On-call Tools, Observability, Security, Zero Downtime инфраструктуре и мониторинге;
  • Cloud Native, который включает доклады про облачные технологии, Cloud Native, CI/CD в облаках и лучше практики в облачной архитектуре.

Организаторы также обещают провести экспериментальный блок с докладами, которые не попали в главные блоки, но хорошо вписываются в общую концепцию конференции.

Среди спикеров: Барух Садогурский из компании JFrog, Патрик Дебуа – независимый ИТ-консультант и автор книг о DevOps, Виталий Фридман – главный редактор Smashing Magazine, одного из ведущих онлайн-журналов о дизайне и веб-разработке.

Стоимость: 14 500 руб.

Фото с сайта pixabay.com
Фото с сайта pixabay.com

Митапы

Митап (meetup – англ.) – неформальная встреча специалистов для обсуждения тех или иных вопросов, обмена опытом и передачи знаний.

Такие события зачастую проводятся в оффлайне с целью развиртуализации среди членов онлайн-сообществ, но во время пандемии COVID-19 митапы все чаще проводятся онлайн.

Перечислим ближайшие онлайн-митапы на стоит обратить внимание.

St. Petersburg Jenkins Hacktoberfest Online Meetup

Когда: 15 октября

Hacktoberfest – ежегодное мероприятие для разработчиков открытого программного обеспечения, организованное Jenkins. Во время хакатона зарегистрированные участники вносят свои предложения (в виде кода) по улучшению проекта Jenkins, за что получают сувениры и подарки. Заявки на регистрацию принимаются со всего мира.

Сообщество пользователей, администраторов и разработчиков Jenkins в Санкт-Петербурге решило поддержать хакатон, организовав митап, к которому все еще можно присоединиться.

Flux / GitOps Toolkit Guide Walk-through with Leigh Capili

Когда: 19 октября

Иностранный митап, на котором спикер Ли Кэпили расскажет о работе с новым Flux v2 и GitOps Toolkit, а также познакомит с руководствами.

Мероприятие будет интересно специалистам, имеющим представление об этих инструментах и желающих подробнее узнать о нововведениях в проектах.

Зарегистрироваться на митап можно по ссылке.

coding earth global meetup #6: deploy to the cloud

Когда: 20 октября

Еще один иностранный митап, посвященный развертыванию в облаке.

Спикер покажет, как с помощью K3S и Rancher за 15 минут настроить готовую к работе среду Kubernetes с несколькими кластерами.

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

Что нового в мире Hashicorp. HashiConf 2020. Terraform 0.13

Когда: 27 октября

Цель собрания – обсудить HashiConf 2020 и новинки в мире Hashicorp. Организаторы митапа обещают подробно рассказать о связанных с Terraform новостях: релизе Terraform 0.13, CDK для Terraform и пр.

Среди спикеров:

  • Андрей Девяткин – сертифицированный архитектор AWS, специалист по непрерывной интеграции и доставке, публичный спикер, тренер, а также соучредитель компании FivexL.io;
  • Антон Бабенко – разработчик и CTO, основатель консалтинговой компании Betajob AS в Норвегии.
Фото с сайта pixabay.com
Фото с сайта pixabay.com

Сообщества DevOps

Общие комьюнити

DevOps – русскоговорящее сообщество – самый крупный русскоязычный канал Telegram для общения на темы: DevOps, мониторинга, метрик, облак и новостей.

DevOps – еще один русскоязычный канал Telegram для обсуждения тем: DevOps, ansible, git, CoreOS, Docker и пр.

SPb Reliability Meetup – сообщество участников SRE-митапов в Санкт-Петербурге.

DevOps Jobs работа и аналитика – участники канала публикуют вакансии и запросы на поиск работы по направлениям: DevOps, Docker, CoreOS, Kubernetes и пр. Там можно пообщаться, обменяться инсайдами и аналитикой на рынке труда.

DevSecOps русскоговорящее сообщество – канал Telegram для обсуждения тем DevOps и Security. Участники делятся полезным контентом и практиками.

Комьюнити, посвященные инструментам

K8SpbСанкт-Петербургское сообщество пользователей Kubernetes.

ru_gitlab – русскоговорящее сообщество по обсуждению GitLab.

AWS_RU – Telegram-канал для общения об Amazon Web Services.

pro.kafka чат, посвященный Apache Kafka.

Docker русскоговорящее сообщество – участники канала обсуждают вопросы, посвященные Docker, Docker Swarm и всей экосистеме. Еще обмениваются идеями, новостями и решают проблемы.

Pro_ansible – канал для взаимопомощи по Ansible.

Церковь метрик – сообщество для обсуждения метрик и мониторинга.

Linux Help – Telegram-канал для обсуждения проблем с Linux.

Git – русскоговорящее сообщество – канал для обсуждений git, его фич, хаков, надстроек и экосистемы.

Системное администрирование – чат посвящен решению любых вопросов по системному администрированию.

Scalability Camp – чат про распределенные системы.

Сбор и аналитика системных сообщений – русскоговорящее сообщество по аналитике syslog/structured log.

DBA русскоговорящее сообщество канал для обсуждения баз данных.

Иностранные комьюнити

Everything DevOps – форум для обсуждения вопросов по DevOps на Reddit.

Sysadmin – сообщество на Reddit, посвященное профессии сисадмина.

DevOps – крупнейшее сообщество специалистов по DevOps в соцсети LinkedIn.

DevOps | SRE | AIOps | MLOps [Cloud, Kubernetes, Docker, Microservices, Gitops] Discussions – сообщество LinkedIn для обсуждение AWS, GCP, Azure, DevOps, микросервисов, контейнеров (Docker), Kubernetes, бессерверных вычислений, кластеризации, операций AI, машинного обучения и пр.

IT Infrastructure Library – сообщество на Reddit для обсуждения информации, новостей, советов и вопросов об ITIL.

***

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

Вы сможете освоить востребованную профессию с нуля с помощью опытных преподавателей. Слушатели курсов изучат современные технологии DevOps: Git, Docker, Kubernetes, Ansible, Terraform, CD/CI, Azure и другие. Закончив обучение, они получат год практического опыта для резюме, а лучшим студентам гарантировано трудоустройство.

01
Окт
2020

Инженер DevOps компании Wargaming Сергей Макаренко рассказывает о лучших технологиях, проектах, недостатках профессии и работе в крупной международной компании.

В предыдущих статьях о DevOps мы писали о том, Чем занимается DevOps-инженер? Обзор базовых практик и Как и зачем становиться DevOps-инженером. Другие публикации по DevOps доступны по ссылке: https://proglib.io/tag/DevOps.

В этом материале Сергей Макаренко (LinkedIn) рассказал о своем профессиональном пути.

Почему DevOps

Я учился в СПБГПУ на факультете технической кибернетики. Работал в разных отраслях: бизнес-консалтинге, IT-аутсорсинге, банковской и телевизионной сферах, телекоме, гемблинге, в индустрии компьютерных игр, в госкомпании.

Решать приходилось различные задачи: писать код, администрировать, заниматься ITIL, управлять проектами и людьми. В процессе я получал все необходимые для текущей работы навыки.

Какого-то явного желания быть в должности именно инженера DevOps у меня никогда не было, скорее стремление делать свою работу хорошо, не опираясь на то, как эта должность называется. Мне нравится решать сложные задачи и делать работу сервисов лучше, а работу коллег – проще и эффективнее.

О текущей работе

Изначально мне было интересно, как оно – в геймдеве? Поэтому я выбрал компанию Wargaming – это разработчик и издатель популярных компьютерных игр: World of Tanks, World of Tanks Blitz, World of Warships и многих других. Ради работы переехал в Беларусь. Компания помогла мне с релокацией: сопровождала процесс переезда на всех этапах.

Причина такого выбора – большая, известная и интересная в плане задач компания, поэтому я работаю на нее уже 2 года. Численность сотрудников Wargaming превышает 5000 человек в 17 филиалах по всему миру. Самый большой офис расположен в Минске, здесь трудится более 2200 человек. Мое подразделение называется Platform, мы производим общие для всех игр сервисы.

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

Кто такой инженер DevOps

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

Из-за этого в разных компаниях должностные инструкции – явные или неявные – могут сильно различаться. Мой опыт говорит о том, что сложности с определением круга обязанностей для той или иной должности всегда были и всегда будут.

Бывает и так, что в компаниях есть должности, которые с таким названием существуют только внутри них. Так что остается либо подводить какую-то общепринятую нормативную базу, либо приносить пользу и ценности компании и ее клиентам вне зависимости от записи в трудовой книжке.

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

Следовательно инженер DevOps – тот, кто сможет эффективно наладить весь процесс с помощью внедрения конкретных практик, путем обсуждений, построения необходимой инфраструктуры, написания кода.

О рабочем дне

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

  • Разбор того, что пришло за ночь: сообщений в почте и мессенджерах, сработавших триггеров и инцидентов (при этом инциденты, которые ночью были критичными, скорее всего уже были решены дежурным инженером);
  • Корректировка плана на день;
  • Stand-up митинг с проектной и/или структурной командой, частью которой я являюсь;
  • Решение различных задач согласно плана на день:
  1. Решение каких-либо проблем на стейджинг- или продакшн-окружениях с тем, чтобы они больше не повторялись;
  2. Улучшение процессов/инфраструктуры для различных систем и сервисов;
  3. Курирование в том или ином виде каких-либо проектов;
  • Различные встречи при их наличии;
  • Написание плана на следующий день.

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

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

О рабочих проектах и ошибках

В Wargaming я начинал с улучшения работы стейджинг-окружений и встраивания новых сервисов, которые были внедрены в существующую инфраструктуру.

Один из последних крупных проектов, в которых мне довелось участвовать перезапуск World of Tanks в Китае. Требовалось за короткое время развернуть все необходимые сервисы, выполнить интеграции с китайскими партнерами, изменить существующие технические и организационные процессы.

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

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

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

Плюсы и минусы профессии DevOps-инженера

Из плюсов можно отметить, что данная профессия позволяет непрерывно развиваться и сразу видеть, какую пользу ты приносишь.

Из минусов – зачастую работа может быть сопряжена с большим количеством стрессов, но к этому со временем привыкаешь.

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

Новичкам в профессии советую уделять время получению фундаментальных знаний и расширять кругозор.

10 лучших технологий DevOps

Из технологий, которые мы в той или иной степени используем в компании и которые актуальны лично для меня, могу выделить следующие:

CI/CD (Pipeline as Code)

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

Контейнеризация и оркестрация

Облачные сервисы

Observability и мониторинг

Service mesh

Централизованное логирование и трейсинг

API gateways

Feature toggle

Микросервисы и микрофронтенды

Полезные книги, курсы и каналы на YouTube

Книги, которые я рекомендую прочитать как опытным специалистам, так и новичкам:

  • Дженнифер Дэвис и Кэтрин Дэниелс «Философия DevOps. Искусство управления IT».
  • Джин Ким, Джордж Спаффорд, Кевин Бер «Проект “Феникс”. Роман о том, как DevOps меняет бизнес к лучшему».
  • Джин Ким, Патрик Дебуа, Джон Уиллис, Джез Хамбл «Руководство по DevOps».
  • Бетси Бейер, Дженнифер Петофф, Крис Джоунс «Site Reliability Engineering. Надежность и безотказность как в Google».

Об этих и других полезных для DevOps-специалистов книгах мы писали в материале – ТОП-10 книг из библиотеки специалиста DevOps.

Вдобавок могу посоветовать читать книги об операционной системе Linux и языках программирования.

Отчеты об индустрии DevOps:

От частной глобальной технологической компании ThoughtWorks(англ.)

От американской исследовательской компании DevOps Research and Assessment (DORA)(англ.)

Полезные Тelegram-каналы: devopsminsk и devops_deflope.

Каналы на YouTube с записями с различных конференций: CNCF, DevOpsDays, Ontico, Jugru.

***

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

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

29
Сен
2020

Книги для по DevOps для специалистов начального уровня

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

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

Книги для по DevOps для специалистов начального уровня

Джун Ким, Джонг Хан Ким, Бер К., Спаффорд Д. Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему

<a href="https://www.ozon.ru/context/detail/id/32211144/" target="_blank" rel="noopener noreferrer nofollow">Спаффорд Д., Ким Д., Бер К. «Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему» </a>
Спаффорд Д., Ким Д., Бер К. «Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему»

Книга в сообществе @progbook

Проект «Феникс» вымышленная история о компании Parts Unlimited. IT-менеджер Билл узнает, что новый важный проект не укладывается в сроки и выходит за рамки возможностей бюджета. Генеральный директор дает Биллу 90 дней на улаживание проблем по проекту, либо увольняет весь отдел главного героя.

В этой художественной книге рассматриваются реалистичные сценарии работы в IT-компании. Проект «Феникс» предлагает читателям ряд эффективных инструментов и подходов в рамках практик DevOps.

Достоинства:

  • Подходит для ознакомления с профессией.
  • Описано, как происходит становление DevOps-специалиста в компании.
  • В книге есть конкретные практики вывода IT в компаниях на новый уровень эффективности и взаимодействия с бизнесом.
  • Легкий и доступный для новичка язык повествования.

Недостатки:

  • Книга не содержит конкретных технических решений.
  • Есть опечатки, орфографические ошибки.

Джин Ким, Патрик Дебуа, Джон Уиллис и Джез Хамбл. Руководство по DevOps

<a href="https://www.ozon.ru/context/detail/id/147521541/" target="_blank" rel="noopener noreferrer nofollow">Ким Д., Дебуа П., Уиллис Дж. и Хамбл Д. Руководство по DevOps</a>
Ким Д., Дебуа П., Уиллис Дж. и Хамбл Д. Руководство по DevOps

Технически более детальное продолжение Проекта «Феникс». Авторы рассказывают об основных принципах DevOps в виде трех путей: поток, обратная связь и непрерывное обучение.

В разделе «Поток» рассмотрены непрерывная интеграция и доставка приложения (CI/CD). В «Обратной связи» говорится о телеметрии, тестировании и анализе данных для улучшения качества программных продуктов. Раздел «Непрерывное обучение» посвящен улучшению продукта, инструментариям и документации.

В книге также рассмотрены реальные кейсы известных компаний с примерами и путями решения проблем.

Достоинства:

  • Подробно описаны основные понятия DevOps.
  • Описаны подходы CI/CD, сине-зеленое развертывание.
  • Приведено много технических примеров непрерывного развертывания, телеметрии и доставки, а также рассматриваются вопросы безопасности систем.
  • Высокое качество печати.

Недостатки:

  • В книге есть некоторое количество «воды».

Jennifer Davis, Ryn Daniels. Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale

<a href="https://www.amazon.com/Effective-DevOps-Building-Collaboration-Affinity/dp/1491926309" target="_blank" rel="noopener noreferrer nofollow">Davis J., Daniels R. Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale</a>
Davis J., Daniels R. Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale

Книга в оригинале в сообществе @progbook

Основной посыл книги: DevOps – это не только технологии и процессы, но и люди, а также взаимодействие между ними.

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

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

Достоинства:

  • Много полезных советов по управлению персоналом.
  • Описание грамотной организации IТ-департамента.
  • Советы по формированию команд и взаимодействию между ними.

Недостатки:

  • Мягкая обложка.
  • Тяжеловатый стиль изложения.
  • Сделан сильный акцент на культурных аспектах в команде.
  • Недостаточно раскрыта техническая составляющая.

Humble Jez, Farley David. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation

<a href="https://www.amazon.de/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912" target="_blank" rel="noopener noreferrer nofollow">Humble J., Farley D. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation</a>
Humble J., Farley D. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation

Книга в оригинале в сообществе @progbook

Книга выпущена в 2011 году, но большинство описанных в ней принципов по-прежнему актуальны для специалистов DevOps. Она будет полезна желающим ознакомиться с концепцией непрерывной интеграции и доставки (CI/CD).

Достоинства:

  • Помогает автоматизировать рутинные процессы: сборку, тестирование и развертывание проекта.
  • Структурирована так, чтобы читатель сразу же начал внедрять инновации в проект.
  • Есть полезные схемы.

Книги для среднего уровня

Джульен Вехен. Безопасный DevOps

<a href="https://www.ozon.ru/context/detail/id/158868397/" target="_blank" rel="noopener noreferrer nofollow">Вехен Дж. Безопасный DevOps</a>
Вехен Дж. Безопасный DevOps

Книга в оригинале в сообществе @progbook

Книга поможет разобраться в специфике защиты облачных приложений от взлома, повреждений и других угроз информационной безопасности. Автор рассказывает, как устранить уязвимости в продукте и обеспечить надежность в ключевых процессах DevOps. Материал будет полезен специалистам, которые умеют работать с Linux, владеют стандартными практиками DevOps и разбираются в модульном тестировании.

Достоинства:

  • Есть полезные схемы архитектуры, примеры кода и инструменты с открытыми исходными текстами для каждой представленной проблемы.
  • Рассматривается построение облака AWS.
  • Подробные пошаговые примеры основаны на авторском опыте.
  • Структура четкая и последовательная, книга легко читается.

Недостатки:

  • Книга ориентирована только на AWS.
  • Не хватает универсальных решений.
  • Есть ошибки перевода.

Эберхард Вольф. Continuous delivery. Практика непрерывных апдейтов

<a href="https://www.ozon.ru/context/detail/id/143509632/" target="_blank" rel="noopener noreferrer nofollow">Вольф Э. Continuous delivery. Практика непрерывных апдейтов</a>
Вольф Э. Continuous delivery. Практика непрерывных апдейтов

Книга подойдет тем, кто сталкивается в работе с непрерывной поставкой программного обеспечения. Автор рассказывает о необходимых для этого технологиях: Docker, Chef, Vagrant, Jenkins, Graphite, ELK stack, JBehave и Gatling. Применение описанных инструментов на каждом этапе (сборка, непрерывная интеграция, нагрузочное тестирование, развертывание и мониторинг) разобрано достаточно подробно. В книге есть примеры проектов, на которые можно опираться в работе.

Достоинства:

  • Исчерпывающее руководство по методам организации CI/CD.
  • Охватывает многие вопросы технологии непрерывного развертывания, в частности A/B-тестирование, сине-зеленое и канареечное развертывание, применение практик DevOps.

Недостатки:

  • Мало сравнений, плюсов/минусов различных подходов и инструментов.
  • Не затронута тема непрерывной компиляции и автоматического тестирования CI/CD.

Евгений Брикман. Terraform: инфраструктура на уровне кода

<a href="https://www.ozon.ru/product/kniga-terraform-infrastruktura-na-urovne-koda-173303558/" target="_blank" rel="noopener noreferrer nofollow">Брикман Е. Terraform: инфраструктура на уровне кода</a>
Брикман Е. Terraform: инфраструктура на уровне кода

Книга в оригинале в сообществе @progbook

Американское издательство O’Reilly выпустило множество полезных для инженеров DevOps книг. Одна из них посвящена технологии Terraform. Автор приводит конкретные примеры кода, который используется для развертывания и управления инфраструктурой, а также рассматривает весь спектр инструментов DevOps и разбирает суть подхода Infrastructure as a Code (IaC).

Достоинства:

  • Возможность быстро познакомиться с Terraform.
  • Детальные объяснения и примеры кода.

Недостатки:

  • Мягкая обложка.
  • Присутствуют нерабочие примеры кода.
  • Организация глав оставляет желать лучшего.

Арундел Д., Домингус Д. Kubernetes для DevOps: развертывание, запуск и масштабирование в облаке

<a href="https://www.ozon.ru/context/detail/id/168455112/" target="_blank" rel="noopener noreferrer nofollow">Арундел Д., Домингус Д. Kubernetes для DevOps: развертывание, запуск и масштабирование в облаке</a>
Арундел Д., Домингус Д. Kubernetes для DevOps: развертывание, запуск и масштабирование в облаке

Книга в оригинале в сообществе @progbook

Kubernetes – один из ключевых элементов современной облачной экосистемы. Авторы книги рассматривают особенности создания контейнеров и работы с ними, рассказывают о возможностях, ограничениях, плюсах и минусах популярных инструментов установки Kubernetes: kops, kubeadm и Kubespray.
После прочтения вы сможете построить собственное облачное приложение и создадите инфраструктуру для его поддержки. Настроите среду разработки и конвейер непрерывного развертывания, а также научитесь управлять жизненным циклом контейнера и расходом ресурсов.

Достоинства:

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

Недостатки:

  • Мягкая обложка.

Для продвинутого уровня

Бейер Б., Джоунс К., Петофф Д., Мерфи Р. Site Reliability Engineering. Надежность и безотказность как в Google

<a href="https://www.ozon.ru/context/detail/id/146683766/" target="_blank" rel="noopener noreferrer nofollow">Бейер Б., Джоунс К., Петофф Д., Мерфи Р. Site Reliability Engineering. Надежность и безотказность как в Google</a>
Бейер Б., Джоунс К., Петофф Д., Мерфи Р. Site Reliability Engineering. Надежность и безотказность как в Google

Книга Site Reliability Engineering. Надежность и безотказность как в Google в оригинале в сообществе @progbook

Книга Site Reliability Workbook. Практическое применение в оригинале в сообществе @progbook

Site Reliability Engineering (SRE) – технология, которая позволяет Google более 10 лет обеспечивать бесперебойную работу масштабных IT-систем. В книге раскрыт накопленный компанией опыт ее использования, что будет полезно для инженеров, которые хотят разрабатывать и поддерживать продукт качественно.

Достоинства:

  • Обширная подборка тем по эксплуатации ПО и автоматизации процессов.
  • Подробно описано, как строить мониторинг, чтобы правильно узнавать об ошибках, как упрощать системы и исправлять в них ошибки.
  • Хорошо структурированный материал, можно пользоваться как справочником.

Недостатки:

  • Местами неточный перевод.
  • Мягкая обложка.
  • Неконтрастный шрифт, нечеткие границы букв.

Майкл Нейгард. Release it! Проектирование и дизайн ПО для тех, кому не все равно

<a href="https://www.ozon.ru/context/detail/id/135464861/" target="_blank" rel="noopener noreferrer nofollow">Нейгард М. Release it! Проектирование и дизайн ПО для тех, кому не все равно</a>
Нейгард М. Release it! Проектирование и дизайн ПО для тех, кому не все равно

Книга в сообществе @progbook

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

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

Достоинства:

  • Качественный перевод.
  • Приведено много паттернов и антипаттернов проектирования.
  • Много примеров от автора о судьбе программы после начала ее использования живыми людьми.

Недостатки:

  • Мягкая обложка.
  • На некоторых иллюстрациях текст сложно читаем из-за темного фона.
***

Если вы не увидели любимую книгу в списке, пожалуйста, не стесняйтесь порекомендовать ее в комментариях. Если вы читали перечисленные книги, дополните наши описания – какие преимущества и недостатки отметили бы вы.

***

Если вы хотите получить больше актуальной информации и быстрее овладеть профессиональными навыками, советуем обратить внимание на курс DevOps от GeekBrains. Программа рассчитана на изучение указанных в статье технологий: Docker, Kubernetes, Terraform, CD/CI, AWS. Студенты смогут их освоить и получить другие необходимые для инженера DevOps навыки.

Опытные преподаватели научат вас решать реальные бизнес-задачи самостоятельно и в команде. За время обучения каждый студент выполнит 6 проектных задач и сможет применить полученные навыки на практике.

03
Сен
2020

15-17 сентября, Москва: конференция TestCon Moscow 2020

Специалисты поделятся инструментами и лучшими практиками для проведения тестов в целях улучшения качества программного обеспечения.
— Читать дальше «Конференция TestCon Moscow 2020»

20
Авг
2020

Хотите узнать, зачем в современном IT нужны DevOps-инженеры и почему такой должности не было раньше? Объясняем максимально просто.

Что такое DevOps и кто такой DevOps-инженер

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

Данную статью мы подготовили при поддержке нашего партнера – онлайн-университета GeekBrains. На факультете DevOps саму профессию, необходимые практики и инструменты можно освоить с нуля.

А поподробнее?

Представим, вас уже взяли на должность, связанную с DevOps в компании, создающей сайты на заказ. В компанию обращается клиент ООО «Большая Корпорация». Разработчик Василий и дизайнер Анна читают требования, резво принимаются за дело и вот уже готов первый прототип. Тестировщик Ольга проверяет его и передаёт клиенту.

Вроде бы пока всё идёт нормально, но есть одно «но»… «Большая Корпорация» не была бы самой собой, если бы не вносила правки по одной. Уже на пятой правке после смены цвета всех кнопок с бирюзового на аквамарин, Василий, Анна и Ольга начинают рвать на себе волосы – после каждого изменения необходимо переделывать, тестировать и размещать на сервере клиента весь сайт.

Тут на сцену и вступаете вы – DevOps-инженер. Вы быстро разворачиваете pipeline (букв. англ. «система труб»). Только вместо жидкости по этим трубам «течёт» код, а созданная вами система непрерывной интеграции и тестирования собирает и проверяет всё вместе, значительно ускоряя рабочий процесс.

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

Осталось разобраться, почему же эта практика называется DevOps. Всё просто: Dev (Development) – разработка, а Ops (Operations) – эксплуатация. Вот и вся расшифровка этого страшного термина.

Инструменты и навыки DevOps-инженера

Опытный DevOps-инженер должен понимать, как создать быструю и долговременную систему. Поэтому огромным плюсом будет умение строить в своём сознании «карты» инфраструктуры, описывающие, какой элемент за что отвечает.

Естественно, свою задачу вы будете выполнять не вручную, а с помощью специальных программ, технологий и средств автоматизации:

Если вы хотите стать DevOps, придётся хорошо изучить эти и множество других инструментов. Для работы надо разбираться и в Linux, понимать внутреннее устройство операционной системы.

Материалы для чтения, изучения и просмотра

Если вы твердо решили идти в DevOps, помогут следующие ресурсы:

Есть информация и на русском:

Карьера в DevOps

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

В первую очередь в DevOps стоит идти системным администраторам и всем, кому интересны и знакомы Linux-системы. Полезны будет и другие знания по системному администрированию, но именно эта ОС используется в сфере DevOps чаще всего.

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

Финансовые перспективы

Конечно, DevOps – дело само по себе интересное, но вас ведь не заставят работать без зарплаты. Давайте посмотрим и сравним, сколько платят DevOps-инженерам разных уровней за рубежом и в России.

Чтобы узнать, как дела обстоят в США, воспользуемся инструментом StackOverflow Salary Calculator.

<span>Результаты анализа DevOps-работ с помощью Salary Calculator</span>
Результаты анализа DevOps-работ с помощью Salary Calculator

Медианная зарплата DevOps-инженера в Нью-Йорке составляет 131 тыс. долл. в год (10.8 тыс. долл./мес.), что даже по американским меркам довольно неплохо.

Российские зарплаты рассмотрены в исследовании Яндекса. Как указано в их материале, имея всего год опыта, вы сможете рассчитывать на 115-125 тыс. руб./мес.

Собеседование
Чтобы подготовиться к собеседованию, изучите наш материал 10 вопросов и ответов на DevOps собеседовании.

Конечно, в каждой компании квалификация определяется по-разному, но общепринятым является разделение DevOps-инженеров на те же группы, что и разработчиков: Junior, Middle и Senior. Зарплата DevOps-специалиста стремительно увеличивается с ростом его опыта. Junior и Middle могут рассчитывать на 100-150 тыс. в месяц, а закоренелые DevOps-«волки» получают от 200 тыс. руб.

Заключение

Не терпится начать обучение? Мы предлагаем взглянуть на курс DevOps онлайн-университета Geekbrains, где вам расскажут, как пользоваться такими неотъемлемыми инструментами DevOps, как Docker, Ansible и Kubernetes (полная программа приведена по ссылке).

Стоит заметить, что это один из редких систематизированных материалов на русском языке – рыскать по сети в поисках туториалов и гайдов уже не придётся. Если что-то останется непонятным, вы всегда можете задать вопрос преподавателям напрямую. Кроме того, по результатам успешного прохождения курса платформа помогает с трудоустройством.

27
Июл
2020

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

Традиционная IT-команда крупного проекта состоит
из трех подгрупп:

  1. Разработчики (Dev),
  2. Тестировщики (QA),
  3. Группа эксплуатации (оперативная группа, Ops).

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

Иллюстрация, показывающая представление DevOps как пересечения разработки, эксплуатации и тестирования
Иллюстрация, показывающая представление DevOps как пересечения разработки, эксплуатации и тестирования

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

Зачем нужны DevOps-инженеры?

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


В методологии DevOps
используются различные инструменты:

  • контейнеризация (Docker, Kubernetes)
  • непрерывная интеграция (Jenkins)
  • развертывание сред по шаблону (Terraform, Puppet, Ansible)
  • мониторинг служб и сетей (Nagios, Grafana, Prometheus, Splunk)

Но одних инструментов мало, нужен набор практик.

Непрерывная интеграция (CI)


Непрерывная интеграция (Continuous Integration, CI) – это практика
разработки ПО, которая заключается в постоянном слиянии рабочих копий в общую основную ветвь разработки и выполнении автоматизированных сборок проекта для скорейшего выявления потенциальных дефектов и решения интеграционных проблем.

В традиционных проектах стадия интеграции является заключительной, что приводит к задержке окончания работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счёт раннего обнаружения и устранения ошибок и противоречий. Но главным преимуществом является сокращение стоимости исправления дефекта за счёт его раннего выявления. Решаем проблемы, «не отходя от кассы».

Непрерывное развертывание и доставка


Процесс развертывания
цикличен: разработка → сборка → проверка → управление
версиями сборки → деплой и т. д. Идея непрерывного процесса развертывания
заключается в автоматическом развертывании созданного кода в производственную
среду после того, как сборка пройдет все этапы QA-staging-beta, интеграцию, пользовательское
тестирование и т. д.

Такие инструменты, как Spinnaker, Jenkins, Harness,
Ansible, Chef, Puppet, позволяют команде DevOps настраивать
автоматизированные конвейеры для деплоя в нескольких средах с минимальным
вмешательством человека.

Непрерывная доставка (continuous delivery) – это
практика DevOps, при которой новый код тестируется QA-командой на различных
этапах автоматизированных и ручных циклов QA. Если код проходит цикл QA и это
одобрено командой, всё деплоится в продакшен. Именно так с помощью DevOps команда
может создавать, тестировать и выпускать релизы быстрее и чаще, разделяя весь
процесс на короткие циклы. Это позволяет организациям выпускать больше релизов,
сокращать ручное развертывание и минимизировать риск сбоев.

Конфигурационное управление (CM)

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

Менеджмент конфигураций
дает ряд преимуществ: упрощение настройки новой среды, снижение рисков в
продакшене и экономия времени на разработку ПО вместо
инвестирования усилий в инициирование новых служб с использованием
практики «инфраструктура как код».

Управление изменениями

Управление изменениями
это процесс запроса, планирования, внедрения и оценки изменений, необходимых
для удовлетворения новых требований. Если в процессе работы в существующей
системе или инфраструктуре появляются/требуются какие-либо изменения – вот тут
и «включается» в игру управление изменениями. Оперативные группы должны следить
и представлять свои отчеты с причинами и последствиями изменений, которые могут
возникнуть на более широком уровне, включая другие системы, на которые могут повлиять новые
изменения.

Держитесь вместе

DevOps работает с несколькими отделами. Очень важны коммуникативные навыки: чтобы избежать конфликтов,
несогласованности и недопонимания в командах, используйте общий
ресурс внутренней связи. Активное вовлекайте в обсуждения членов
всех команд.

Автоматизация тестирования


Автоматизированное
тестирование
помогает выполнять больше тестов, увеличить частоту тестирования и
экономить время, затрачиваемое на ручное QA. Этот процесс обеспечивает раннее
обнаружение и исправление ошибок, повышает общее качество софта.
Существует несколько доступных инструментов, легко
интегрируемых с инструментами DevOps: Selenium, Robot Framework, Appium,
XCUITest, JUnit и т. д.

Непрерывный мониторинг (CM)

Непрерывный мониторинг
предполагает мониторинг и отображение отчетов в подробном графическом формате всех
систем и инфраструктуры с помощью нескольких инструментов:

  • дашборды и оповещения;
  • анализ в реальном времени метрик, влияющих на ПО: производительность системы, количество тестов, частота успехов/отказов;
  • состояние развертывания;
  • журналы ошибок.

Сравнение соответствующих инструментов мы сделали в публикации «10 лучших инструментов облачного мониторинга».

Заключение

DevOps – перспективное направление, которое продолжает активно развиваться. Универсальность DevOps специалистов высоко ценится, а постоянное активное обучение, новые практики и подходы не дадут вам заскучать на рабочем месте.

***

Данный материал подготовлен при поддержке компании GeekBrains – нашего партнёра, предоставляющего помощь в освоении DevOps-технологий. Если вы хотите освоить DevOps, не тратя лишнее время и силы на поиск знаний, инструментов и привыкание к разному стилю чтения курсов, обратите внимание на факультет DevOps. Программа и преподаватели имеют высокие оценки учащихся, а при успешном прохождении курса онлайн-университет гарантирует не только диплом, но и трудоустройство.

20
Июл
2020

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

Системный контейнер – один из старых примеров технологии контейнеров. Системный контейнер похож
на виртуальную машину: идеален для хранения операционной системы и запуска нескольких процессов. Системные контейнеры используются для
традиционных и монолитных приложений – в одном контейнере архитектура, инструменты и конфигурации.

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

Схема: контейнер приложения (слева) и контейнер системы
Схема: контейнер приложения (слева) и контейнер системы

Говоря о контейнерах, часто имеют в виду технологию Docker. Большинство облачных вендоров предлагают контейнеры приложений
с Docker-ом внутри каждой виртуалки. Такая машина включает гостевую операционную систему с
памятью, процессором и дисковым пространством. Обычно Docker работает внутри системных контейнеров в пределах одного
ядра и совместно использует ресурсы хост-системы. Хотя эти вложенные
контейнеры являются более легкими, чем виртуальные машины, они изолированы и безопасны.

Сравнение системного контейнера и виртуальной машины. Как видите, они во многом похожи
Сравнение системного контейнера и виртуальной машины. Как видите, они во многом похожи

Ещё один вариант – использование системных контейнеров Virtuozzo и контейнеров
приложений Docker во вложенной архитектуре. Внутри платформы различные типы
контейнеров могут использоваться для разных целей:

  • сертифицированные управляемые контейнеры;
  • elastic VPS;
  • кастомные Docker-контейнеры;
  • Docker Engine CE;
  • кластер Kubernetes.

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

Сертифицированные управляемые контейнеры

Самый распространенный
вариант. Обычно предлагается несколько предварительно сконфигурированных и
управляемых программных стеков, позволяющих создавать гибкие топологии с
необходимым софтом (Java, PHP, Node.js, Ruby, Python или Go), балансировщик
нагрузки, база данных и прочее.

Панель управляемого контейнера
Панель управляемого контейнера

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

Взаимодействие оркестратора с образами
Взаимодействие оркестратора с образами

Данные контейнеры выгоднее
и удобнее таких решений, как автоматизированная конфигурация с масштабированием
ресурсов, автоматизированная установка SSL-сертификатов, авторазвертывание
приложений, управляемая доставка и т. д.

Виртуальные частные серверы (VPS)

Наиболее простым
примером реализации системного контейнера является VPS-контейнер с
предустановленными ОС: CentOS, Ubuntu и Debian. Это «
чистый» контейнер без
каких-либо дополнительных настроек или установленного ПО. Его можно
рассматривать как вариант контейнеризации устаревших приложений – почти не требует настройки при миграции из виртуальных машин.

Настройка под Elastic VPS образа с CentOS 7.7
Настройка под Elastic VPS образа с CentOS 7.7

После установки все
необходимые конфигурации должны быть выполнены конечным пользователем.
Это почти как виртуальная машина, но более
легковесная и с преимуществами автоматического вертикального/горизонтального
масштабирования.

Пользовательские Docker-контейнеры

Это образ Docker,
развернутый внутри системного контейнера, что делает его совместимым с
большинством (но не со всеми) отличительными чертами платформы, например, встроенным вертикальным и горизонтальным масштабированием. Другими словами,
файловая система такого образа распаковывается внутри среды выполнения
системного контейнера.

Работа оркестратора с кастомными образами
Работа оркестратора с кастомными образами

По сравнению с
сертифицированными управляемыми контейнерами этот тип обеспечивает доступ к
более широкому выбору программных стеков. Вы можете выбрать один из сторонних
образов Docker, доступных в Docker Hub или другом публичном
или частном реестре контейнеров. Работоспособность и совместимость ПО внутри платформы уже не может быть гарантирована – здесь уже нет того тестирования, что проводилось для инструментов выше.

Настройка пользовательского контейнера
Настройка пользовательского контейнера

Docker Engine CE

Docker Engine Community
Edition работает внутри системных контейнеров, но в то же время имеет полную
совместимость с нативной экосистемой Docker.

Взаимодействие оркерстратора с образами Docker Engine
Взаимодействие оркерстратора с образами Docker Engine

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

  • Docker Engine – работает с Dockerfile и запускает pre-built образы контейнеров.
  • Docker Registry – хранит и предоставляет доступ к многочисленным общедоступным и частным образам, предназначенным для развертывания в Docker Engine.
  • Docker Compose – помогает собирать приложения, состоящие из нескольких компонентов, где все необходимые конфигурации объявляются в одном compose-файле.
  • Docker Swarm – представляет собой несколько независимых Docker узлов, объединенных в кластер.
Настройка окружений для Docker Engine CE и Docker Swarm Cluster
Настройка окружений для Docker Engine CE и Docker Swarm Cluster

Kubernetes

Платформа Kubernetes предназначена для развертывания и управления
отказоустойчивыми контейнеризированными
приложениями. Она может выполнять сложные задачи оркестрации контейнеров, такие
как развертывание, обнаружение служб, скользящие обновления, самовосстановление
и управление безопасностью.


Иначе говоря, Kubernetes
обеспечивает максимальную совместимость всех проектов. Основным преимуществом его
использования является усовершенствованная модель масштабирования и
запуска контейнеров, что в разы облегчает управление и мониторинг, делает все
это «предприятие» экономически выгодным.

Заключение

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

***

Данный материал подготовлен при поддержке компании GeekBrains — нашего партнёра, предоставляющего помощь в освоении DevOps-технологий. Если вы хотите освоить DevOps, не тратя лишнее время и силы на поиск знаний, инструментов и привыкание к разному стилю чтения курсов, обратите внимание на факультет DevOps.

В рамках курса данного факультета вы освоите технологии Docker, Kubernetes, работу с виртуальными машинами, облачные технологии и микросервисную архитектуру.

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

27
Май
2020

3 июня, онлайн: SM Lab Summer meetup

Специалисты IT-отдела «Спортмастера» поделятся наблюдениями об удалённой работе и расскажут о проблемах, с которыми сталкиваются разработчики.
— Читать дальше «SM Lab Summer meetup»

22
Май
2020

28 мая, онлайн: DevOps Webinar: Kubernetes

Вебинар, посвящённый сдаче CKA: расскажут про подготовку к экзамену, поделятся советами и рекомендациями, а также приоткроют тайну, чего на нём ожидать.
— Читать дальше «DevOps Webinar: Kubernetes»

30
Апр
2020

22–25 мая, онлайн: конференция «Стачка-2020»

Более 200 докладов в 30 разных секциях. Всего 6 крупных направлений: разработка, диджитал, карьера и образование, тренды, менеджмент и IT и государство.
— Читать дальше «Конференция «Стачка-2020»»

15
Апр
2020

1–30 апреля, онлайн: курсы Pluralsight

Более 7000 видео-курсов стали доступными до конца месяца, среди категорий: разработка ПО, DevOps, анализ данных, ИИ и машинное обучение.
— Читать дальше «Онлайн-курсы Pluralsight»

09
Апр
2020

22 апреля, онлайн: конференция GET PROF IT: JavaScript | DevOps

Конференция для опытных JS-разработчиков и DevOps инженеров, на которой поговорят про методологии разработки, веб-компоненты, CI процессы и организацию AWS Cloud Native.
— Читать дальше «Конференция GET PROF IT: JavaScript | DevOps»

05
Апр
2020

Как деплоить приложение?

Подскажите как правильно и просто деплоить приложение (возможно скинуть где почитать или видос)
У меня есть rest api на django, react, postgress и я хочу запустить это все на хостле но не совсем понимаю как сделать это.

Залить ли все на …

09
Мар
2020

20–21 марта, Киев: конференция DevOps Fest 2020

На конференции специалисты из США, Европы, России и Украины поговорят про инструменты, фреймворки и практики для эффективного DevOps.
— Читать дальше «Конференция DevOps Fest 2020»

05
Мар
2020

15 июня – 2 июля, онлайн: конференции JUG.Ru Group на удалёнке

Сразу восемь IT-конференций в онлайне на любой вкус: от распределённых вычислений и хайлоада до JS и тестирования. Можно купить один билет на всё.
— Читать дальше «Конференции JUG.Ru Group на удалёнке»

25
Ноя
2019

29 ноября – 1 декабря, Новосибирск: конференция DevFest

Ежегодное мероприятие, которое проводит сообщество GDG. За три дня можно послушать доклады про мобильную и веб-разработку, машинное обучение и безопасность.
— Читать дальше «Конференция DevFest Siberia 2019»