Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Большинство предприятий находятся на пути внедрения DevOps для решения проблем, связанных с поставкой программного обеспечения. Сложности связаны со стоимостью, скоростью и качеством.
DevOps основан на решении этих проблем путем объединения разработки (Development), эксплуатации (Operation) и автоматизации деятельности. Несмотря на то, что DevOps часто подтверждает заявленные преимущества, для себя можно выделить несколько уроков, которыми делятся те, кто пришел к DevOps.
Давайте рассмотрим 5 ошибок, которых следует избегать при работе с DevOps.
Определение DevOps
Прежде чем обсуждать, что следует и чего не следует делать при внедрении DevOps, необходимо узнать, что такое DevOps.
Существует множество различных определений, но будем лаконичны: DevOps — это взаимодействие и автоматизация процессов разработки, эксплуатации и контроля качества для создания культуры коммуникации, улучшения процессов и развития технологий и инструментов.
Автоматизация лежит в основе этого определения, позволяя внедрять лучшие практики DevOps и, в конечном итоге, получать многочисленные преимущества, включая:
Ускоренное время выхода на рынок и получения обратной связи
Повышение удовлетворенности клиентов
Повышение способности создавать правильные решения
Более высокое качество продукции
Более надежные релизы
Повышение производительности
Снижение затрат и рисков
Другие важные факторы включают безопасность, интегрированные инструментальные средства, автоматизацию тестирования и качества, agile мышление, культуру совместной работы и непрерывность всего: непрерывную интеграцию, непрерывную поставку и непрерывное развертывание систем (continuous deployment).
Ошибка № 1: Мышление по принципу "или-или" в отношении людей, процессов или технологий
Для решения проблем, связанных с разработкой и поставкой современного программного обеспечения, предприятиям необходимо совершенствовать три области: людей, процессы и технологии.
Люди и процессы тесно связаны между собой, поскольку процессы и системы определяют организационную культуру. Например, разрозненные процессы приводят к резкому разграничению между командами, такими как Dev (Development) и Ops (Operations). Другие традиционные процессы и технологии включают монолитные архитектуры, физические серверы и водопадные методологии.
Современные методы, напротив, включают в себя совместную работу команд и ориентацию на продукт. Процессы должны становиться все более Agile, включая непрерывную доставку и повсеместную автоматизацию. Наконец, следует внедрять новые технологии, включая облака, контейнеры, микросервисы, API и бессерверные технологии.
На предприятиях любого размера есть люди, процессы и технологии, которые варьируются от традиционных до современных.
Ошибка заключается в том, чтобы сосредоточиться на одной или двух из них. Организации зачастую пытаются «вскипятить океан», не достигнут результатов, к которым стремятся.
DevOps требует всех трех аспектов: изменения культуры, внедрения гибких процессов и новых технологий.
Только при таком стратегическом подходе организации могут обеспечить эффективную совместную работу и ориентацию на продукт. Команды могут достичь своей цели — непрерывного потока новых возможностей, улучшений и исправлений ошибок, радуя своих внутренних и внешних клиентов.
Ошибка № 2: Фокус на Dev или Ops
Организации часто спрашивают, ориентированы ли процессы на развитие или на деятельность. Это происходит из-за конфликта, традиционно связанного с целями разработки и целями эксплуатации.
Разработчики хотят создавать программное обеспечение, интегрировать системы и двигаться как можно быстрее. Операционные команды же хотят стабильности, безопасности и контроля, которые обычно не ассоциируются со скоростью.
Организации совершают ошибку, когда решают сосредоточиться только на Dev или направить все свои усилия на Ops.
Цель состоит в том, чтобы наладить сотрудничество между этими двумя группами с помощью DevOps. Это достигается, когда организации признают конфликт и разделение между Dev и Ops и поощряют сотрудничество между командами.
Все работают для достижения одной цели: быстро разрабатывать и поставлять высококачественное программное обеспечение, снижая при этом затраты и риски на благо организации и конечных потребителей.
Ошибка № 3: Отсутствие стратегий развертывания
В зависимости от того, на каком этапе перехода к DevOps находится организация, она может изучить и внедрить стратегии развертывания (deployement), а может и нет.
Эти стратегии направлены на обеспечение высокого качества развертывания и управление рисками. Для этого используются как процессы, так и вспомогательные технологии.
К стратегиям развертывания относятся A/B, Blue/Green и Canary. Каждая из них признает, что существует множество типов изменений, и не все они соответствуют единому стандарту.
Их применение означает, что вы должны тестировать изменения для проверки их качества и выполнять их с уверенностью. Этот процесс можно повторять с помощью непрерывных экспериментов.
Преимущества быстрого контролируемого внедрения изменений в заданные условия заключаются в сокращении времени простоя и снижении риска. В более широком масштабе компании становятся более эффективными, чаще внедряя высококачественные изменения для своих конечных пользователей.
Принятие стратегий развертывания может быть не первым, что вы делаете при внедрении DevOps, но было бы ошибкой упускать преимущества применения более продвинутых форм развертывания по мере развития вашей реализации DevOps.
Ошибка № 4: Фокус только на экономию затрат
Любая покупка или процесс в сфере ИТ влечет за собой обсуждение конечного результата. Инвестиции в DevOps на первый взгляд могут показаться дорогостоящими и пугающими, но окупаемость инвестиций может быть достигнута быстро.
При этом экономия затрат не должна быть единственной целью.
Одним из основных преимуществ DevOps является сокращение ручного труда и выполнения сценариев. Меньшее количество ручного труда, безусловно, снижает затраты, а также означает меньшее количество человеческих ошибок. Это снижает риск перебоев в развертывании различных сред и экономит время, поскольку уменьшается количество ошибок, связанных с развертыванием и последующей отладкой.
Кроме того, автоматизация повышает скорость и частоту поставки программного обеспечения. Это помогает вам не отставать от конкурентов и отрасли в целом, которая развивается все более быстрыми темпами.
Удовлетворенность сотрудников и их удержание повышаются благодаря сокращению ручных утомительных действий. Разработчики теперь могут заниматься любимым делом — разработкой!
В долгосрочной перспективе эти преимущества помогут вам сэкономить деньги. Когда сотрудники более продуктивны и счастливы, их производительность выше, продукты/изменения лучше, конечные пользователи довольны, а вам не нужно тратиться на привлечение новых сотрудников.
Ошибка № 5: Неудача с запуском или применением теории Большого Взрыва
Самый большой способ потерпеть неудачу в DevOps — никогда не начинать. Это может показаться огромной, пугающей задачей, но помните, что "DevOps" подразумевает множество разных вещей. Большинство компаний стремятся к применению DevOps.
Возможно, вы проигрываете на рынке, поскольку вы не так конкурентоспособны. Возможно, вы чрезмерно анализируете ситуацию и боитесь вложений, будь то время или деньги.
Все дело в следующем шаге. Не ждите. Риски, связанные с ничегонеделанием, гораздо выше, чем с началом.
Делайте по одному одинаковому шагу за раз. Разбейте проблемное пространство на части. Начните учиться и постоянно учитесь, применяя новые методы DevOps. Вскоре эти действия превратятся в снежный ком и приведут к зрелому внедрению DevOps.
И наоборот, некоторые совершают ошибку, принимая крайние меры для начала и совершенствования стратегии и внедрения DevOps (т.е. как в теории большого взрыва).
Сегодня это не так распространено, как в прошлом, потому что многие компании, которые пошли по такому пути, потерпели неудачу при внедрении. Эти неудачи показали важность поэтапного подхода.
Самый большой барьер на пути к DevOps
В этом ролике три клиента рассказывают о самых больших препятствиях, с которыми они столкнулись при переходе на DevOps.
Каждый клиент по-своему описывает трудности, связанные с управлением изменениями. Хотя внедрение новых процессов и технологий имеет большое значение, не забывайте о третьем аспекте — людях. Очень важно убедить других сотрудников вашей организации инвестировать свое время и энергию в преобразование DevOps.
Материал подготовлен в рамках курса «DevOps практики и инструменты». Если вам интересно узнать подробнее о формате обучения и программе, познакомиться с преподавателем курса — приглашаем на день открытых дверей онлайн. Регистрация здесь.