4 совета DevOps для небольших команд
Опубликовано: 2020-02-08Хотите знать, как развернуть DevOps для небольших команд? DevOps — это растущая область стратегии и реализации в компаниях любого размера. Это ускоряет время выхода на рынок, обеспечивает более быстрое развертывание и повышает удовлетворенность разработчиков, руководителей операций и клиентов.
Мы собираемся поговорить о том, что такое DevOps, как его внедряют крупные компании и какие уроки и советы небольшие компании могут извлечь и внедрить прямо сейчас.
Что такое DevOps?
DevOps — сложный термин для определения, главным образом потому, что он охватывает множество практик. По сути, DevOps — это комбинация двух вещей для улучшения коммуникации: «Dev» означает «разработчики» и «Ops» — операции.
Таким образом, DevOps обычно представляет собой группу как разработчиков кода, так и менеджеров системных операций, которые сотрудничают, чтобы разрушить бункеры знаний — по сути, чтобы убедиться, что они всегда находятся на одной странице, когда речь идет об эффективной разработке и развертывании кода.
DevOps означает эффективную коммуникацию между отделами. Это означает совместную работу над созданием стратегий для одного отдела, облегчающих жизнь другому отделу. Это также обычно означает большую автоматизацию кода, меньшие фрагменты кода, системы управления исходным кодом и, возможно, еще несколько встреч.
Но что происходит без DevOps?
Зачем нужен DevOps?
Традиционно операционные менеджеры обслуживают производственную среду, то есть все, с чем взаимодействуют заказчики и клиенты.
Разработчики, с другой стороны, работают за кулисами, создавая код в среде тестирования — области, отгороженной стеной от производственной среды. Эта среда разработки в идеале имитирует производственную среду и то, как код или приложение работают в реальном мире.
На практике это означает, что разработчики пишут код в своем пузыре и отправляют его для развертывания в производственной среде, где операционные менеджеры должны выяснить, как сохранить все работоспособным и стабильным при интеграции нового кода. И разработчики, как правило, слишком заняты кодированием новых функций, а операционные менеджеры слишком заняты, просто пытаясь поддерживать каждую тарелку, поэтому времени на общение и перестройку среды мало.
И хотя DevOps требует немного времени для настройки и запуска, результаты могут сделать любую компанию — большую или маленькую — более гибкой и более конкурентоспособной.
DevOps в крупных компаниях
DevOps — это беспроигрышный вариант для крупных компаний. При большом количестве разработчиков и достаточно большой кодовой базе разработка и развертывание кода могут стать титанической борьбой.
У крупных компаний больше клиентов. Больше клиентов означает больше серверов, часто больше функций и больше нагрузки на сеть. Это создает большую кодовую базу, что означает, что даже небольшие изменения могут иметь каскадный эффект в среде. А поскольку крупные компании часто пытаются внедрить новые функции, чтобы оставаться конкурентоспособными на рынке, им необходимо, чтобы среда разработки и производственная среда шли в ногу.
Такие компании, как Netflix, Amazon и Target, используют DevOps для оптимизации своих услуг. Интеграция их среды разработки с производственной средой (наряду с интенсивной автоматизацией) позволяет Netflix и Amazon развертывать тысячи раз в день .
Amazon использует систему непрерывного развертывания и автоматизированного контроля версий для автоматической проверки версий, проводя их через процесс сборки и тестирования без вмешательства человека.
НАСА использует аналогичную систему, используя комбинацию сервиса Amazon AWS и контейнерных систем данных, чтобы позволить специалистам по данным НАСА обмениваться данными телеметрии и анализом со своими инженерами в постоянном темпе.
Но эти компании и организации огромны. Как может небольшая команда приблизиться к такому уровню организации и автоматизации? Как DevOps для небольших команд работает в реальных условиях?
Решения DevOps, которые могут принять небольшие команды
Небольшие команды не обладают такой же пропускной способностью, как более крупные компании — как по количеству людей, отделов, так и по ресурсам. Однако это оказывается обоюдоострым мечом, потому что, как правило, небольшие команды уже используют множество решений DevOps. Даже если это непреднамеренно.
Тем не менее, это не означает, что нечего делать. Прямо сейчас только 25% индустрии программного обеспечения реализуют DevOps на высоком уровне.
А другие инструменты и стратегии DevOps можно позаимствовать у крупных компаний и использовать так же эффективно.
1. Создайте команду DevOps
Если у вас нет большой команды разработчиков, о создании отдельной команды DevOps, вероятно, не может быть и речи. Если у вас есть один разработчик и один системный менеджер, или эти роли выполняет один и тот же человек, идея «команды» может показаться даже глупой.
И это нормально. Речь не обязательно о создании какой-то оперативной группы — речь идет просто об общении. Даже если у вас есть один разработчик и один ИТ-менеджер, ваша форма «команды» DevOps может состоять из еженедельных собраний и ежедневных асинхронных обновлений, чтобы держать друг друга в курсе того, что происходит.
Основные цели группы должны заключаться в согласовании среды разработки с производственной средой, более частом написании (и развертывании) небольших фрагментов кода и повышении уровня автоматизации и контроля версий.
Давайте поговорим о том, что эти вещи означают и как их можно выполнить.
2. Согласуйте методы и среду
Даже небольшие команды могут начать согласование своей среды, предоставив разработчикам больший доступ к производственной среде, даже просто для наблюдения за тем, как изменения влияют на конечный продукт.
Попробуйте предоставить вашей команде разработчиков текущую информацию о состоянии сети, даже если она отображается на мониторе в углу. Они могут сразу увидеть, как их развернутый код может повлиять на трафик, или заметить, если произойдет внезапное падение, которое может стать серьезной проблемой.
Вам также понадобится команда DevOps для создания стратегии, позволяющей максимально приблизить среду разработки и тестирования к фактической рабочей среде — в идеале — идентичную. Это будет включать в себя множество совещаний и сильный проект документации, чтобы не только привести среды в соответствие, но и поддерживать их в соответствии с изменениями, происходящими с течением времени.
Согласование двух сред означает, что операционная группа тратит меньше времени на приведение кода разработчика в соответствие с реалиями конечного продукта.
3. Развертывание небольших фрагментов кода
Третий шаг — избавиться от мыслей о большом обновлении. Для тестирования, утверждения и развертывания больших версий кода могут потребоваться недели или месяцы. Это замедляет развертывание функций и, как правило, снижает вашу конкурентоспособность на рынке. Это также делает вас менее гибкими в случае появления новой захватывающей тенденции или катастрофической проблемы.
Один из ключей к расширению DevOps для небольших команд в вашей компании — научиться писать небольшие фрагменты кода и быстрее их развертывать. Они должны быть достаточно малы, чтобы их можно было протестировать и внедрить за считанные часы.
4. Используйте автоматизацию и контроль версий
Последний путь к успешному DevOps для небольших команд — интенсивное использование автоматизации.
Почему автоматизация? Во-первых, автоматизация ускоряет тестирование и развертывание кода. Это также высвобождает время как для разработчиков, так и для операционных менеджеров для реализации перечисленных выше стратегий DevOps. Это дополнительное время также позволяет вашим командам разработки и эксплуатации сосредоточиться на вещах, улучшающих бизнес, а не просто на тушении пожаров. И, наконец, это повышает эффективность и точность документации, которые имеют свои преимущества для адаптации, обучения и соответствия требованиям.
Сначала вам понадобится что-то, что поможет вам постоянно и в любое время создавать и тестировать код. Такие приложения, как Jenkins или Bitrise, могут способствовать непрерывной интеграции и доставке.
Затем вам понадобится платформа управления исходным кодом для отслеживания изменений в коде и управления ими. В этом вам могут помочь такие платформы, как GitHub и SourceForge.
Следующим шагом в цепочке будет система управления конфигурацией для поддержания согласованности и качества по всем направлениям. Такие инструменты, как Chef или SaltStack, отлично подходят для начала.
New Relic создает платформу для наблюдения за всеми вашими системами и чрезвычайно удобна для мониторинга такой сквозной автоматизации кода.
Также может быть хорошей идеей изучить динамическую конфигурацию на случай, если вам нужно быстро развернуть всю автоматизированную систему в новом направлении.
Внедрение DevOps для небольших команд и небольших организаций
Не беспокойтесь о том, что ваша команда или компания слишком малы для эффективного внедрения DevOps. Вместо этого думайте об этих инструментах как о фуршете, с которого вы можете черпать организационные идеи.
Ни одна организация, независимо от ее размера, не пострадает от большего количества коммуникаций, большей подотчетности и большего и более детального отслеживания изменений.