Karabas интернет-магазин
сетевого оборудования
Sergey Latskin 26 окт. 2023 Sergey Latskin 143

Интеграция существующих ИТ-систем с помощью DevOps

----

DevOps - это методология, которая объединяет разработку и операции для улучшения процессов создания и доставки программного обеспечения. Она также может использоваться для интеграции рабочих ИТ-систем. Вот несколько примеров, как DevOps может помочь в интеграции существующих ИТ-систем:

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

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

Более яркую аналогию предложили известные мировые специалисты в данной области Стивен Мэнн и Гленн Доннелл. По их мнению, обе эти группы являются членами одной ИТ-семьи, однако их отношения напоминают враждующие стороны из шекспировской трагедии «Ромео и Джульетта». Такое положение дел негативно сказывается на работе ИТ-отдела, а следовательно, и на бизнесе в целом. Понимание этой ситуации привело к созданию концепции и связанных средств эффективной автоматизации, предназначенных для устранения этой стены и установления дружеских отношений между данными группами. Основная цель — организовать взаимодействие между обеими командами на основе конкретных правил и создать процесс, способный правильно объединять разработку и оперативное обслуживание в течение жизненного времени ИТ-услуг.

Изменения имеют важное значение в ИТ

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

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

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

Как будет работать сейчас и в бедующем

По данным исследовательской компании "Enterprise Management Association" (EMA), департаменты ИТ, применяющие методологию, сосредоточены на процессе внедрения. Концепция подразумевает более тесную кооперацию между разработчиками (Dev) и операционными отделами (Ops) в ходе интеграции готового продукта. DevOps относится к определенной стадии внедрения/выпуска. В таком контексте сотрудничество между группами разработчиков и отделами эксплуатации нацелено на:

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

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

Проблемы в сфере IT и рост абстрагирования от рабочих платформ способствуют более активному применению DevOps. Виртуализация различных уровней инфраструктуры, облачных сервисов и доступ к готовым приложениям через мобильные устройства. Это требует от IT-специалистов отличных знаний и оптимального взаимодействия. Для управления такими сложными системами требуются междисциплинарные команды грамотных специалистов с разнообразными навыками. В сущности, эти команды реализуют расширенное понимание. Аналитики EMA обеспечивает самый оптимальный подход к использованию системы, где интегрируются принципы четкого взаимодействия на различных стадиях и объединяются специалисты, разработчики и бизнес-клиенты. Все три группы взаимодействуют на протяжении всего процесса, где каждая играет ведущую роль на одном из этапов. Бизнес-клиенты отвечают за анализ работы различных приложений и проверку соблюдения Service Level Agreement (SLA), выявляя приоритетные области для разработок или модификации уже имеющихся решений. Разработчики и персонал на этой стадии получают базовые сведения о направлениях деятельности для дальнейшей работы.

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

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

Разработка. Здесь основная роль отводится команде разработчиков. Если используются гибкие методики разработки (agile), заказчики из числа представителей бизнеса обычно активно вовлечены в процессы функционального контроля кода. При возникновении необходимости, специалисты операционных подразделений могут участвовать в полном развертывании средств для разработки и последующей поддержки тестирования. Тестирование. Ключевые роли на этой стадии играют разработчики и сотрудники операционных подразделений. Первые (в том числе специалисты отдела контроля качества) отвечают за функциональное и четкое интеграционное тестирование, в то время как вторые — за интеграционное и нагрузочное тестирование для оценки готовности рабочего окружения к развертыванию готовых приложений. Важной задачей для представителей бизнеса на данной стадии становится приемо-сдаточное тестирование.

Внедрение/выпуск версии. Это главный этап в классической концепции, включающий процессы управления конфигурационными единицами и выпусками в соответствии со стандартом ITIL.

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

Инструментальная поддержка

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

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