22.04.2024 17:43

Новости

Администратор

Автор:

Администратор

За пределами Git: как развиваются системы контроля версий для devops

Контроль версий имеет решающее значение для управления изменениями в исходном коде с течением времени. Вот как развиваются такие платформы, как GitHub, для удовлетворения требований к гибкости, масштабируемости, производительности и многому другому.


Автор: Боб Виолино, InfoWorld
 
Инструменты, управляющие изменениями в исходном коде, программах, документах или других наборах информации, известны под разными названиями: управление версиями, контроль версий, управление версиями исходного кода или управление исходным кодом — все это общие описания. Независимо от того, как мы их называем, эти системы приобретают все большее значение в мире, где программное обеспечение и данные являются товарами первой необходимости.
 
Спрос на системы контроля версий
 
Системы контроля версий (VCS) используются для отслеживания всех изменений в исходном коде. Они помогают командам разработчиков и другим лицам управлять этими изменениями с течением времени. Поскольку давление рынка ускоряет процесс разработчики для более быстрого вывода продуктов на рынок, контроль версий становится как никогда важным.
 
«По мере роста спроса на все большее количество программного обеспечения, будь то традиционное программное обеспечение или новые и растущие области применения, такие как инфраструктура как код, политика как код и технологии low-code, это напрямую влияет на спрос на управление версиями», — говорит Кристофер Кондо, главный аналитик Forrester Research.
 
«Поскольку весь код должен контролироваться версиями, любое увеличение спроса на программное обеспечение приведет к увеличению спроса на системы контроля версий», — добавляет он.
 
В отчете исследовательской компании Acumen Research and Consulting говорится, что рынок систем контроля версий будет расти по мере того, как все больше организаций будут внедрять гибкие методологии разработки, а также по мере того, как сотрудничество и управление кодом станут более важными.
Согласно отчету, рынок этих продуктов будет увеличиваться примерно на 12% в годовом исчислении и достигнет 2,68 млрд долларов к 2030 году. Растущее внедрение облачных систем контроля версий также является движущей силой роста рынка, говорится в отчете.
 
«Контроль версий или управление исходным кодом изначально предназначался для разработчиков», — говорит вице-президент по разработке программного обеспечения DevOps & DevSecOps IDC Джим Мерсер. «Но с развитием подхода «все как код», используя такие вещи, как инфраструктура как код, безопасность как код, сеть как код и так далее, появляется все больше пользователей системы контроля версий».
 
Использование всего в виде кода «проложило путь к GitOps, методологии разработки и развертывания, которая использует систему управления версиями Git для управления всей инфраструктурой приложений и конфигурациями в виде кода в системе управления версиями», — отмечает Мерсер. «Кроме того, программный код стал жемчужиной современного цифрового бизнеса, и поэтому система контроля версий требует большей функциональности и строгой защиты для поддержки и защиты кода».
 
На что обратить внимание в VCS
 
Системы контроля версий развиваются в соответствии с меняющимся техническим ландшафтом и спросом на рынке. На базовом уровне VCS позволяет разработчикам управлять различными версиями исходного кода, конфигурациями и любыми другими артефактами, которые со временем будут меняться, говорит Кондо. Команды также ищут множество дополнительных ключевых функций в зависимости от размера и приоритетов организаций.
 
Одна из таких функций — масштабируемость. Эти системы должны быть способны управлять кодом в разных доменах и на разных платформах, позволяя разработчикам и другим сотрудникам организации использовать одну и ту же систему контроля версий, отмечает Мерсер. Масштабируемость особенно важна для растущей компании с расширяющимися инициативами в области разработки.
 
Производительность — еще один важный критерий. По словам Мерсера, программное обеспечение для контроля версий должно хорошо работать везде, где оно используется в организации.
Система контроля версий также должна обладать возможностями разветвления. Это позволяет дублировать объект, находящийся под контролем версий, чтобы каждый последующий объект можно было модифицировать отдельно и параллельно.
 
«По мере выполнения работ обычно создается временная ветвь для новой работы, чтобы избежать сбоев в работе основного отделения», — говорит Кондо. «Точно так же, когда новая работа готова к слиянию с основной ветвью, возможность объединения является критически важной».
 
Совместная работа также важна для современных систем контроля версий. Команды разработчиков часто работают в разных регионах, и им необходимо эффективно сотрудничать над проектами. Совместная работа гарантирует, что все будут работать с одним и тем же источником, будь то с одной кодовой базой или несколькими ветвями.
 
Расширяемость с помощью защищенных API-интерфейсов — еще одна особенность, на которую стоит обратить внимание. «Системы контроля версий все чаще используются для организации автоматизации тестирования, развертывания и выпуска релизов в производство», — говорит Кондо. «Поэтому наличие защищенных API, которые могут интегрировать контроль версий с инструментами управления развертыванием и выпуском, необходимо для обеспечения непрерывной доставки».
 
Наконец, эти системы должны обеспечивать целостность данных и хронологию, говорит Мерсер. Пользователи должны иметь возможность полагаться на историю версий кода для выполнения отката назад и вперед по мере необходимости.
 
Ориентируясь на Git и devops
 
По словам Мерсера, за последние 20 с лишним лет было разработано множество систем контроля версий, включая Subversion, ClearCase, Mercurial и другие.
 
«Однако большинство команд предпочитают решения, основанные на базе проекта Git с открытым исходным кодом. Поэтому основными вариантами являются GitHub, GitLab и Bitbucket», — говорит Мерсер. «Многие другие системы контроля версий создали мосты или интегрировались с Git, учитывая его доминирующее положение».
 
Большинство систем контроля версий, включая GitLab и GitHub, добавили дополнительные функции, чтобы превратиться в полнофункциональные платформы devops, — говорит Мерсер. «Другие разработки, как правило, связаны с масштабируемостью, производительностью, безопасностью и возможностью создавать политики, гарантирующие защиту исходного кода от таких факторов, как утечка кода, защита цифрового происхождения и т.д.», — добавляет он.
 
GitHub, GitLab и Bitbucket «значительно эволюционировали, став более современной средой разработки», отмечает Томас Мерфи, старший директор-аналитик исследовательской фирмы Gartner. «Они запускают сборку, управляют проектом, управляют документацией, и могут упаковывать, тестировать и развертывать программное обеспечение».
 
Генеративный ИИ в системе управления версиями
 
Мерфи отмечает, что эти платформы в настоящий момент используют ИИ-помощников для создания и обновления кода и выполнения других задач. Ассистенты на базе генеративного искусственного интеллекта помогают с обычными задачами, такими как создание сообщений о фиксации или помощь в разветвлении и слиянии, которые иногда могут усложняться, говорит Кондо.
 
По словам Кондо, GitHub — один из лидеров в области инноваций в системах контроля версий. GitHub Copilot — приложение genAI, использующее данные из GitHub для обучения больших языковых моделей (LLMs), которые затем могут помочь разработчикам с предложениями по кодированию. По его словам, GitLab использует аналогичный подход в работе с помощниками на базе искусственного интеллекта и прилагает все усилия, чтобы отличаться от GitHub.
 
Но появление генеративного ИИ и способы обучения LLMs вызывают особую озабоченность у некоторых организаций, — говорит Кондо. «Общеизвестно, что такие инструменты, как GitHub Copilot, используют исходный код из общедоступных систем контроля версий, которые они размещают, для обучения своей модели», — объясняет он. «Покупатели должны решить, устраивает ли их это или они предпочли бы, чтобы их код не использовался для этой цели».
 
Организациям, у которых есть чувствительные алгоритмы или которые опасаются утечки интеллектуальной собственности (ИС), необходимо искать средства защиты своих ИС от использования в качестве обучающих данных. «Если цель состоит в том, чтобы совместно использовать IP-адрес в рамках проекта с открытым исходным кодом, это может быть абсолютно нормально, если такое решение примет заказчик», — говорит Кондо.
 
Облачный контроль версий
 
Еще одна тенденция последних лет — переход к облачным системам контроля версий, — следует из исследования Acumen. По словам представителей компании, эти сервисы предлагают такие преимущества, как совместная работа в режиме реального времени, доступность из любой точки мира и более низкие первоначальные затраты по сравнению с локальными системами.
 
По словам Кондо, GitHub, GitLab и другие онлайн-хранилища позволяют организациям использовать свои программные продукты как услугу без необходимости применения автономной системы контроля версий. «Это облегчает сотрудничество распределенных команд в разных регионах», — говорит он.
 
Организации, которые решают запустить собственную локальную систему контроля версий, сталкиваются со своим набором проблем и должны обладать необходимыми навыками и ресурсами, чтобы делать это успешно и безопасно.
 
«У них должны быть ресурсы, позволяющие эффективно управлять защищенной системой контроля версий, обеспечивая при этом совместную работу с командами в других регионах», — говорит Кондо. «Даже компании, базирующиеся исключительно в США и ведущие бизнес в США, должны принимать это во внимание, поскольку они все чаще используют удаленных разработчиков или привлекают системных интеграторов, у которых есть разработчики в других регионах мира».
 
Кроме того, внедрение системы контроля версий также означает необходимость идти в ногу с изменениями, добавляет Кондо. Платформы контроля версий «постоянно развиваются и обновляются. Это не принесет предприятию абсолютно никакой пользы, если у него не будет пропускной способности или набора навыков для управления ключами к своему королевству».
 
Популярные системы контроля версий
 
Какие системы контроля версий являются ведущими на сегодняшний день и как они работают? Вот краткий обзор этой области.
 
Apache Subversion (SVN)
Система управления версиями программного обеспечения, распространяемая с открытым исходным кодом по лицензии Apache. Разработчики могут использовать SVN для поддержки текущих и архивных версий файлов, включая исходный код, веб-страницы и документацию.
 
Bitbucket
Сервис хостинга репозиториев исходного кода на основе Git и совместной работы, принадлежащий Atlassian. Bitbucket предлагает как коммерческие тарифные планы, так и бесплатные аккаунты с неограниченным количеством частных репозиториев. В основном он используется для написания кода и его рецензирования.
 
Git
Наиболее широко используемая система контроля версий. Git — бесплатный инструмент devops с открытым исходным кодом, используемый для управления исходным кодом. Он может работать как с небольшими, так и с очень крупными проектами разработки. Использование Git для отслеживания изменений в исходном коде позволяет нескольким разработчикам совместно работать над нелинейным проектом.
 
GitHub
Платформа от дочерней компании Microsoft GitHub, которая позволяет разработчикам создавать, управлять и делиться кодом. GitHub предоставляет распределенный контроль версий Git, а также контроль доступа, отслеживание ошибок, управление задачами и другие возможности. Платформа предлагает большой репозиторий с открытым исходным кодом, инструменты для управления программным проектом и сообществом, а также широкий набор партнеров, которые поддерживают ее с помощью дополнительных функций.
 
GitLab
GitLab — менеджер репозиториев с открытым исходным кодом, основанный на Git, для совместной работы и контроля версий. Команды могут использовать его для управления проектами, отслеживания проблем и проверки кода.
 
Mercurial
Бесплатный распределенный инструмент управления версиями для разработчиков программного обеспечения, который может работать с проектами любого размера. Mercurial был создан с учетом независимости от платформы.
 
Perforce
Поддерживает Git, но предлагает собственный продукт Helix Core. Perforce — платформа управления версиями для разработчиков, которая отслеживает и управляет изменениями в исходном коде, цифровых активах и больших двоичных файлах.
 
Team Foundation Version Control (TFVC)
Эта платформа от Microsoft представляет собой централизованную систему контроля версий, в отличие от распределенного управления версиями, такого как Git. TFVC позволяет пользователям применять детализированные разрешения и ограничивать доступ вплоть до уровня файлов.
 
Ссылка на источник


0


Нет комментариев. Ваш будет первым!
Загрузка...