Выполнить проект - это целое искусство! Ведь необходимо вовремя, чтобы завершить довольно сложный, высокотехнологический цикл разработки, не допустив при этом неисправностей и отклонений. Именно для этого необходим DevOps. Что это такое? С какой целью используется? Что собой представляет данная философия разработки?
Общая информация
Существующие реалии требуют, чтобы время выполнения проекта, начиная от возникновения идеи и до презентации готового продукта, постоянно уменьшалось. И это сопровождается ограниченным бюджетом. Поэтому не был найден лучший вариант, нежели оптимизация технического процесса. И как одно из направлений развития появился DevOps. Что это такое? Временные резервы можно найти практически в любом отделе. Поднапрячь можно не только разработчиков, но и тестировщиков, управленцев, аналитиков, подразделение внедрения. Остаётся сделать самую малость – подумать, как же это сделать.Каковы решения?
Часто для возникающих проблем используют методологию гибкой, стремительной, а подчас и экстремальной разработки. Она получила название Agile. DevOps считается её наследием. Первоначально пробовали свести процесс разработки к серии коротких циклов, которые назвали итерациями. Они должны были длиться несколько недель. При этом каждый из них, по сути, является небольшим проектом. После каждой итерации команда останавливается и оценивает проделанную работу.Первоначально казалось, что такой подход является качественным, но практика показала ряд недочетов. Так, не было общих инструментов и возможности делиться знаниями у разных подразделений. Поэтому разработка далеко не всегда и не с такой скоростью, как хотелось бы, продвигалась. Кроме этого, сказывалось и то, что у каждого подразделения свои критерии оценки эффективности, из-за чего затрудняется общая стандартизация и унификация. Поэтому поиск решений продолжился.
Сейчас давайте рассмотрим один из предлагаемых вариантов. А именно – узнаем, что собой представляет DevOps для чайников. Благо, прошел уже не один год, и можно более-менее объективно оценить эту методологию.
Что это такое?
В 2009 году широкая общественность была извещена об ещё одном подходе к разработке программного обеспечения. Он получил название «философия DevOps». Искусство управления IT предусматривает внедрение методологии разработки программного обеспечения (ПО), в котором специалисты по созданию и обслуживанию активно взаимодействуют. Этот подход базируется на идее, что необходимо сделать взаимозависимой разработку и эксплуатацию ПО. При этом преследовалась цель позволить организациям ещё быстрее создавать, а в последующем и обновлять выпускаемые программные продукты и сервисы. Для того чтобы рассказать о сути этой методологии, была использована метафора трех путей. Давайте рассмотрим её более внимательно.
Три пути
Говоря о DevOps и что это такое, обойти эту метафору невозможно. Она собой представляет:- Первый путь. Подчёркивает необходимость увеличения и работы над производительностью всей системы. Внимание должно быть уделено всем бизнес потокам, которые способствуют созданию ценности.
- Второй путь. Он предполагает создание петли обратной связи, которая идёт справа налево. Любая инициатива по совершенствованию процессов должна сокращать и усиливать её, чтобы нужные поправки могли внедряться в проект постоянно.
- Третий путь. Предполагает создание культуры, которая будет благоприятной для постоянного экспериментирования, способствуют принятию рисков и извлечению уроков из неудач и успехов, а также позволит понять, что повторение и практика – это предпосылки для мастерства.
При использовании этого комплексного подхода формируется полная картина модели разработки, в которой учитываются интересы всех сторон, четко обозначаются процессы и интеграционный механизм. На этих трех принципах и строится вся методология.
Для кого это?
Инструменты DevOps могут подойти потенциально всем организациям, что задействованы в сфере информационных технологий. Крупным они позволят увеличить скорость разработки, тестирования и представления продуктов. В маленьких организациях наблюдается вовлеченность всех людей в процесс, что позволяет обеспечивать взаимозаменяемость сотрудников. Хотя часто наблюдается ситуация, когда это не интересует. Ведь внедрение DevOps подразумевает очень много работы с новыми технологиями, о которых часто ничего не известно. Хотя в общих чертах эта философия предполагает автоматизацию, стандартизацию и более активное взаимоотношение, в каждой компании, внедряющей её, наблюдаются свои определённые отличия. Чтобы узнать больше, можно ознакомиться со специальной литературой, например, книгой DevOps Handbook.О преимуществах и недостатках
Первоначально о позитивных сторонах этой методологии. В случае её успешного внедрения, компания в перспективе может рассчитывать на:
- Автоматизацию (уменьшение риска человеческой ошибки).
- Упрощение и ускорение процессов разработки и представления готового продукта.
- Получение от пользователей быстрой обратной связи.
Какие же негативные моменты этого подхода? Наиболее частые:
- Не следует забывать и отметать успешные практики предыдущих лет. Многие этим грешат, хотя игнорировать что-то только из-за того, что оно было создано довольно давно – это глупый подход, который может негативным образом сказаться на будущей деятельности.
- Нужно принимать во внимание особенности коллектива, ведь по разным причинам эта философия может им не подойти.
Решаемая проблема
Если говорить о наиболее важном аспекте, то главное, чем занимается DevOps – это что? Старая проблема «неполадки не на нашей стороне». Как часто встречается ситуация, когда программисты кивают в сторону системных администраторов и говорят, что неполадки с сервером. Сисадмины же говорят, что проблемы именно с кодом. Задача методологии – улучшить взаимодействие между разными подразделениями и уничтожить как явление перебрасывание ответственности.
Чтобы лучше разъяснить это сотрудникам, можно не только лично им говорить об этом, но и организовать поездку на конференцию DevOps, где об этом они смогут разузнать от других людей, а также перенять опыт работы. В целом ситуацию, когда разработчик видит только свою зону ответственности и не желает вмешиваться в чужую, вполне можно понять. Но с точки зрения системы такое мировоззрение является чрезвычайно вредным и его необходимо искоренять. Поэтому в случае возникновения стыковых проблем должен быть кто-то, кто возьмёт на себя ответственность за их исправление. А желательно вообще создать систему, которая сможет нивелировать возможность их появления.
Изменения
Необходимо понимать, что проект DevOps предусматривает не наличие некого начитанного или универсального системного администратора и понемногу учувствует во всех этапах, а создание стандартизированного производственного цикла-подхода. Когда внедряется эта методология, то создаётся ещё дополнительный абстрактный уровень координации и синхронизации участков работы, то есть, улучшается управление и контроль.
Первоначально наблюдаются на первый взгляд ненужные усложнения и возмущения со стороны сотрудников, но в перспективе изменения дадут стабильность производственного процесса. Что, следует признать, во время разработки сложных работоспособных систем поистине бесценно, ведь спасает от неприятного режима аврала и завалов в неподходящие моменты. Такая профилактика посредством заранее продуманной и правильно настроенной методологии приносит значительный результат. При этом необходимо позаботиться о коммуникативном взаимодействии разных людей. И конечная цель всех этих изменений – это разработка бесшовной и предельно адаптивной архитектуры создания-сопровождения системного характера.
Модели внедрения
Зависимо от преследуемых целей различают следующие варианты реализации DevOps:
- Первая модель. В данном случае предусматривается углубление процессов разработки программного обеспечения в поставку. Предусматривает непрерывную интеграцию рабочих процессов.
- Вторая модель. Обеспечивает обратную связь от продавца до разработчика. Создаётся полная хронология событий разработки и администрирования, которая должна помочь в разрешении проблем, а также дать возможность проанализировать причины их возникновения везде, где это только можно. Также предусматривается создание сервисов самообслуживания там, где это реализуемо и информационных индикаторов, что показывают изменения в системе, когда они вносятся.
- Третья модель. Объединяется разработка и администрирование. Подразумевается включение команды создателей в разрешения проблем, наработка взаимодействия между персоналом и работа над уменьшением количества эскалаций.
- Четвертая модель. Вся команда включается в разработку, налаживается тесная связь между персоналом, создаются многоэтапные пользовательские истории, где есть развертывание, управлением кодом в процессе производства, определяются нефункциональные требования, которые могут быть применены во всех проектах.
В чем ценность?
Давайте подведём итог, чем же привлекает DevOps. Для бизнеса он предоставляет три существенных преимущества:
- позволяет быстро выйти на рынок за счет сокращения цикла разработки и высокого темпа развертывания;
- повышает качество готового продукта (меньше сбоев, больше единиц техники, на которых программное обеспечение может быть запущено);
- увеличивает организационную эффективность, что сказывается на качестве и скорости результата.
Всё это позволяет методологии DevOps уверенно занимать причитающееся ей место.
Заключение
Конечно, теория – это одно, а реализация на практике - совсем другое. Порой, даже самые лучшие начинания могут быть загублены или саботированы. Как этого не допустить? В первую очередь необходимо адекватно и честно оценить ситуацию, которая сложилась на предприятии. Если оно только формируется, то следует определиться с целью и желаемым алгоритмом развития.
После этого наступает черед планирования. При этом внимание желательно уделять даже самым небольшим мелочам. В последующем, если возникнет потребность, не нужно пренебрегать необходимостью изменить первоначальный план. Чтобы лучше разобраться с ситуацией, можно привлечь специалистов, которых оптимизация затрагивает непосредственно. Их мнения могут оказаться неоценимыми в плане создания комфортной обстановки.