Здравствуйте, меня зовут %presenter_name%. Я представляю Consulting Team проекта EPAM Cloud Infrastructure.В этой презентации я постараюсь рассказать о том, что из представляет собой методолгияDevOps, как и почему она возникла.
Wikipedia:DevOps (Developers and Operations): методология разработки, при которой разработчики и сисадмины тесно сотрудничают. Она должна помочь ускорить процесс разработки и повысить качество конечного продукта.Разноцветные круги на этой диаграмме – это области знаний. Чтобы получить знания и опыт во всех областях, нужно потратить много лет, людей, которые имеют опыт во всех этих областях, очень мало. DevOps же предлагает дать разработчикам и тестировщикам инструменты управления инфраструктурой, тем самым сократив необходимую область знаний.Почему возникла методология DevOps, и какие преимущества даёт её применение рассмотрим по ходу этой презентации.
Как и почему возникла DevOps?Это реакция на потребности бизнеса.Любой процесс, упрощённо, это идея, которая реализуется и приносит деньги.Процесс разработки ПО полон рисков, конечный продукт часто не выходит в срок, или не соответствует ожиданиям клиента.
Если убрать контекст бизнеса, то увидим несколько групп людей, каждая из которых делает что-то своё.В итоге вы не получите на выходе качественный продукт в срок, что влечёт денежные потери.
Почему вообще из Devи Ops состоит термин DevOps? Разработчику нужно вносить быстрые изменения.Сисадмину же нужно обеспечить бесперебойную и стабильную работу инфраструктуры.Это является следствием того, как обычно строится процесс разработки. На самом же деле у них одна цель – сделать качественный продукт вовремя.
Часто легче сказать, чем DevOps не является.DevOps не:Это не набор инструментовВы не можете сказать «Я DevOps!»DevOps говорит о том, что нужно по-новому взглянуть на сотрудничество всех людей, задействованных в разработке и запуске приложений. Это в первую очередь культурное, а потом уже технологическое движение.
DevOps часто ассоциируется с аббревиатурой CAMS.КультураВ первую очередь нужны изменения культурные, т.е. в применяемых методах и процессах.АвтоматизацияЭто первое, с чего нужно начинать изменения в процессах и культуре при разработке. ИзмерениеЕсли вы не имеете наглядной статистики о процессах, то как вы поймёте, что все идёт так, как надо или наоборот, что все плохо?Обмен знаниями. Это критически важный момент. Когда люди делятся идеями и проблемами с самых первых стадий разработки, это положительно сказывается на результате.
Одно из культурных изменений, о котором говорит DevOps – этоSelf-Service модель.Если каждый может обеспечить себя необходимым окружением и инфраструктурой в любой момент времени, то это даёт огромное ускорение всему процессу. Как это происходит?
Рассмотрим классический пример получения инфраструктуры:Инженеру нужно обратиться в Help Desk, после чего с их стороны будут уточняющие вопросы. После этого запрос выполняется инженерами Help Desk Team. Время, через которое инженер получит нужное ему окружение, может составлять от нескольких минут до нескольких часов и даже дней.
Очевидны минусы такого подхода:Мы тратим время в ожидании, поэтому ресурсы (в том числе и рабочее время инженера) расходуются неэффективно.Предугадать, какое время займёт этот процесс, не возможно, так как это зависит:а) от загрузки Help Desk Teamб) от сложности запросав) человеческий фактор: болезнь, разная степень подготовки персонала.
Если же инфраструктура представляет собой облако и предоставляет API, то мы можем работать с инфраструктурой, как с кодом. Для любого инженера, который использует API любая часть инфраструктуры выглядит как код, с которым можно работать прямо из приложения, скриптов автоматизации и т.д.Представьте себе, если бы каждый раз приходилось делать любое приложение с нуля… Вместо этого используются фреймворки, которые предоставляют API или готовые классы, которые можно использовать как кирпичи для построения приложения. Так же и с инфраструктурой можно работать как с кодом, тем самым мы автоматизируем и ускоряем работу с ней.
Использование методологии DevOps даёт нам множество преимуществ.Так как система строится на основании высокоуровневого кода, она может быть легко повторена, так же как и любые действия, связанные с инфраструктурой могут быть автоматизированы.Повторяемость и автоматизация делает масштабирование более простым и быстрым процессом.Все вышеперечисленное приводит к ускорению всего процесса разработки и запуска приложения.Управляя инфраструктурой как кодом, используя методологии DevOps, мы повышаем надёжность системы и уменьшаем влияние человеческого фактора.
И наконец:следуя DevOps, мы делаем крутые, качественные сервисы и продукты.
В качестве примера такого крутого сервиса можно назвать Flikr.Как они достигли такого успеха?- Culture:- Respect- Trust- Healthy attitude about failure- Automated infrastructure- Shared version control- One step build and deploy- Feature flags- Shared metrics
По перечисленным на этом слайде контактам, вы всегда сможете получить больше информации.Пожалуйста, какие вопросы у вас возникли по ходу презентации? Я с удовольствием на них отвечу.