Top.Mail.Ru
Вход
Регистрация

Современный DevOps-инструментарий

Современный DevOps-инструментарий

Современный DevOps-инструментарий

Мы уже рассказывали о методологии Agile, которая позволяет организовать разработку программного обеспечения. Не менее (а может и более) распространенным подходом сегодня является еще один – DevOps. Он, в отличие от Agile, нацелен на организацию работы команд, создающих софт.

Что такое DevOps

Этому термину как минимум 11 лет. Акроним от слов development и operations впервые прозвучал еще в 2009 году, но часто утверждается, что как подход к разработке программного обеспечения DevOps существует гораздо дольше. Не станем докапываться до истоков. Сегодня DevOps превратился в методологию. Под этим термином одновременно понимаются и подходы к взаимодействию разных специалистов, и интеграция рабочих процессов, и даже отдельная специальность, представители которой формируют единую команду из разработчиков и специалистов поддержки.

DevOps иногда даже путают с Agile – еще одной популярной методологией. Правда, между ними есть одно важное различие. Если Agile нацелен на изменение и практики работы команд разработки, то DevOps больше погружен в процессы и организацию. Более того, популярность DevOps стала прямым следствием распространения agile-подходов, которое привело к увеличению количества версий выпускаемого ПО.

В команде, которая работает над любым серьезным приложением, есть специалисты как минимум двух разных профилей. Одна группа (назовем ее условно разработчиками – Developers) отвечает за создание приложение и его запуск. В обязанности другой входит обеспечение устойчивой работы приложения (Operations). Плохой пример взаимодействия этих разных групп – неработающее приложение, восстановить функциональность которого невозможно никакими силами. 

Каждое из подразделений отвечает за свой участок работы и переводит «стрелки» на незадачливых коллег. Точно такая же ситуация была красочно описана одним из персонажей Аркадия Райкина: «К пуговицам претензии есть?». Что делать для того, чтоб избежать такой неприятной ситуации? Вот в таких случаях как раз и необходим DevOps. С ним ответственность и за разработку, и за работоспособность ПО лежит на всех членах команды, и каждый из них готов подключиться, в случае необходимости, к решению возникшей проблемы.

Инструменты DevOps

Как и для любой методологии, для использования DevOps необходимы специальные инструменты. Увы, но универсального, единственного инструмента, который мог бы полностью обеспечить DevOps-подход, не существует. 

Множество самых разных решений, от Slack и Jira до Asana и Zoom можно назвать DevOps-инструментами, и это будет вполне справедливо. Ведь для того, чтобы реализовать DevOps-подход, необходимы решения для разработки и сборки ПО, автоматизации тестирования, организации выпуска релизов, обеспечения работоспособности, и, наконец, средства для совместной работы внутри отдельных команд и взаимодействия разных команд разработки отдельных продуктов.

Сделать общий обзор всех инструментов DevOps просто невозможно. Каждый их класс требует отдельного рассмотрения. Мы в этот раз коснемся даже не одного класса, а отдельного решения, которое с недавних пор стало доступно клиентам «Системного софта». Речь пойдет об управлении репозиторием – хранилищем тех самых кирпичиков, из которых строятся программные решения.

Хостинг для исходного кода

Любому разработчику конечно же знакомо название GitHub – «социальная сеть для программистов», крупнейший ресурс для хостинга ИТ-проектов и их совместной разработки. Он был основан в 2008 году и стал чрезвычайно популярным и, наконец, крупнейшим в мире ресурсом для девелоперов. Крупнейшим, но не единственным. У GitHub есть альтернатива, о которой сегодня и пойдет речь.

Созвучие названий не должно создавать иллюзии родства. Общие у них только первые части названий, произошедшие от названия распределенной системы управления версиями ПО. GitLab – самостоятельный проект с продолжительной историей. Его создали в 2011 году украинские программисты Валерий Сизов и Дмитрий Запорожец. Сегодня это – компания с миллиардной капитализацией. 

Уже в первые годы своего существования проект разделился на две версии: Community Edition и Enterprise Edition, которые распространяются как свободное программное обеспечение с открытым исходным кодом под лицензией MIT. Отличие версий – в дополнительных возможностях, которые присутствуют в Enterprise Edition.

В числе клиентов GitLab – IBM, Goldman Sachs, Ticketmaster, Drupal, Nvidia, Siemens, Alibaba и NASA. На GitLab хостятся сотни проектов GNOME, и надо полагать, что в ближайшем будущем эта «доска почета» станет еще шире: сегодня проект стал главной альтернативой GitHub после того, как его купила в 2018 году Microsoft.

Главный продукт GitLab – одноименное приложение. Оно предназначено для того, чтобы полностью контролировать весь процесс создания и использования программного обеспечения.

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

Доступ к репозиторию осуществляется на основе учетных записей и групп. По сравнению с GitHub подход более строг: если в «соцсети для программистов» разработчики сами определяют, какие именно права доступа предоставляются к отдельным репозиториям, то в GitLab политика доступа формируется на основе ролей участников команд. 

При этом группы могут быть приватными, внутренними и публичными. Более того, существуют и подгруппы, что делает GitLab особенно удобным для крупных компаний, где ведутся сразу несколько проектов или работают несколько подразделений.

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

Доступные версии GitLab

Важное достоинство GitLab – возможность выбора модели использования энтерпрайз-версии сервиса. Он прост: в распоряжении пользователей есть обычная SaaS-версия, которая позволяет начать работу, просто зарегистрировав аккаунт, или специальная, позволяющая разместить решение на собственном сервере или на публичной облачной платформе.

GitLab – классическое публичное облако, в котором заказчик получает готовую систему, не занимаясь ее настройкой. Для тех, кто предпочитает хостить свои проекты на собственных серверах (физических или облачных) или на арендуемой у провайдера платформе, предназначена версия GitLab self-managed.

Отличия версий невелики. В первом случае управление доступом членов команды будет осуществлять тот, кто администрирует зарегистрированный на сервисе аккаунт, во втором раздать доступ будет администратор компании. Кроме того, версия self-managed позволит настраивать сервис индивидуально для каждого пользователя, и выбирать дополнительную функциональность в соответствии с потребностями конкретной группы разработки.



Самое читаемое

1012 | Новости Syssoft«Системный софт» расширяет портфель решений для удаленного доступа продуктами RuDesktop от разработчика «Передовые технологии» 855 | SoftPowerЦифровизация торговых сетей с помощью BPM-системы «Первая Форма» 601 | Записи вебинаровPostgres Pro Enterprise Manager полнофункциональный графический инструмент управления Базами Данных 589 | Новости вендоровСУБД Tantor получила сертификат ФСТЭК России 559 | Акции и скидкиСкидка 35% при миграции на решение RuDesktop 475 | Новости вендоров«Первая Форма» обновила функции проектного управления 444 | Новости вендоровКомпания «Нанософт» объявила о выходе nanoCAD BIM Строительство версии 24 323 | Акции и скидкиKaspersky Smart: Умная защита компаний среднего бизнеса по специальной цене со скидкой до 30% 283 | Акции и скидкиСпециальное предложение: скидка 5% на решения AOMEI по промокоду! 246 | ВебинарыzVirt. Технологии, которые изменят российский рынок виртуализации 124 | Записи вебинаровОбзор функциональных возможностей nanoCAD Механика PRO 121 | Записи вебинаровPositive Technologies MaxPatrol EDR: возможности защиты конечных устройств