Главная » Хабрахабр » [Перевод] Вышел GitLab 10.8: зеркалирование пушей в открытом доступе и инкрементное развертывание

[Перевод] Вышел GitLab 10.8: зеркалирование пушей в открытом доступе и инкрементное развертывание

Картинка для привлечения внимания

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

Больше уверенности при развертывании

Наша новая фича инкрементного развертывания (Incremental Rollouts) позволяет проводить развертывание кода только для определенного подмножества пользователей. Выпуск новой функциональности всегда сопряжен с волнением, ведь даже при самом строгом тестировании присутствует риск непредвиденных осложнений. В случае каких-либо осложнений, вы можете откатить изменения до того, как они затронут всю пользовательскую базу целиком. Теперь вместо того, чтобы выкатывать обновления сразу для всех пользователей, вы можете постепенно увеличивать количество подов Kubernetes, на которые проводится развертывание. Это нововведение предоставляет дополнительный уровень защиты пользователей от непредвиденных ошибок, что в идеале позволит вам чаще проводить развертывание.

Зеркалирование пушей теперь в открытом доступе

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

Фрилансеры теперь смогут проводить зеркалирование любого клиентского репозитория, а пользователи, переходящие на GitLab из других git-репозиториев, смогут воспользоваться возможностями зеркалирования для упрощения процесса миграции. Благодаря этому у пользователей GitLab Core появляются новые возможности, связанные среди прочего с фриланс разработкой и миграцией.

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

Ускорение работы с уязвимостями

В данном релизе мы продолжаем работу в этом направлении. Практически невозможно отслеживать уязвимости в коде без какой-либо автоматизации, поэтому в GitLab включено несколько встроенных систем безопасности, таких как SAST, DAST, а также сканирование контейнеров и зависимостей.

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

Ждем вашего ответа!

Что нам следует улучшить? Мы с нетерпением ждем вашей реакции на нововведения этого релиза — что вам понравилось? Мы с интересом прочитаем ваши комментарии к оригиналу статьи и продолжим работу над улучшением GitLab.

Спасибо за ваше участие!

GitLab MVP badge

Эту функциональность пользователи просили более года, и вклад Alexis наконец позволил претворить ее в жизнь. Alexis добавил очень полезную возможность создания общих CI Runner’ов для групп. Теперь управлять Runner’ами проектов определенной группы стало намного проще.

В знак благодарности мы отправили ему фирменные кофту, носки и тануки ручной работы с символикой GitLab. Спасибо, Alexis!

Инкрементное развертывание (PREMIUM, ULTIMATE, SILVER, GOLD)

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

8 мы добавляем возможность инкрементного развертывания кода на 10, 25, 50 и 100 процентов ваших подов. В GitLab 10. Вы также можете применять этот подход в Auto DevOps с помощью переменной окружения INCREMENTAL_ROLLOUT_ENABLED.

Incremental rollout deployments

Документация по инкрементному развертыванию

Зеркалирование пушей теперь в открытом доступе (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Это упрощает работу с несколькими инстансами GitLab: например, вы можете зеркалировать результаты работы вашей команды в личный инстанс GitLab ваших клиентов. Зеркалирование репозиториев позволяет копировать репозитории Git из одной локации в другую. Также зеркалирование пушей упрощает перемещение проекта в GitLab из других репозиториев, причем оригинальный репозиторий, из которого производится перемещение, остается актуальным.

Ранее зеркалирование пушей было доступно в GitLab Starter, а теперь еще и в Core.

Документация по зеркалированию пушей

Push Mirroring now open source

Интерактивная обратная связь в отчетах безопасности (альфа-версия) (ULTIMATE, GOLD)

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

8 вы можете создавать задачи по исправлению уязвимостей прямо из окна отчета безопасности. Начиная с GitLab 10. Ваша обратная связь отображается напрямую в отчете. Также вы можете отклонить определенную уязвимость в случае ложноположительного срабатывания.

Документация по работе с отчетами безопасности

Interactive feedback in security reports (alpha)

Нечеткий поиск файлов для Web IDE (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Нечеткий поиск доступен по комбинации клавиш Cmd + p/Ctrl + p. Мы добавили нечеткий (fuzzy) поиск файлов в Web IDE с целью упрощения навигации для крупных проектов.

Ранее вам нужно было напрямую просматривать дерево файлов проекта для того, чтобы найти определенный файл.

Документация по Web IDE

Fuzzy file finder in the Web IDE

Коммит отдельных файлов в Web IDE (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Внесенные изменения добавляются в соответствующий список unstaged changes, после чего из этого списка вы можете выбрать нужные файлы и добавить их в список staged changes — эти файлы станут частью следующего коммита. Мы добавили возможность добавления (stage) отдельных файлов в коммит в Web IDE, что позволяет совершать коммиты небольшого масштаба.

Документация по Web IDE

Stage and commit by file in the Web IDE

Графики выполнения задач для групп (PREMIUM, ULTIMATE, SILVER, GOLD)

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

Эти графики функционируют абсолютно так же, как и проектные: в них отображается прогресс выполнения всех задач, связанных с майлстоуном, что предоставляет наглядную демонстрацию рабочего процесса. В данном релизе мы добавляем графики выполнения задач для групповых майлстоунов. С помощью этих графиков вы можете оценить вероятность выполнения работ в срок и внести необходимые изменения в работу.

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

Документация по графикам выполнения задач

Group milestone burndown chart

Метрики Prometheus выходят в общий доступ, включены по умолчанию (CORE, STARTER, PREMIUM, ULTIMATE)

В предыдущих релизах мы добавили метрики Prometheus для зависимостей Redis и Postgres, а также несколько экспериментальных метрик в версии 9. GitLab часто является ключевым элементом цикла поставки ПО, поэтому важно быть уверенным в его стабильной и корректной работе. С тех пор мы покрыли метриками ещё некоторые части нашей кодовой базы, а также уменьшили негативное влияние сбора метрик на производительность. 3. Теперь мы используем эти метрики для мониторинга сервиса GitLab.com.

8. Как следствие прошедших нововведений, мы выводим мониторинг Prometheus в общий доступ (GA, general availability) начиная с версии 10. Также мы выпустили пробную версию приборной панели Grafana для наглядной визуализации метрик. Для всех новых установок GitLab мониторинг будет включен по умолчанию.

Документация по мониторингу Prometheus в GitLab

GitLab Prometheus service metrics now GA, on by default for new installations

Другие улучшения GitLab 10.8

Подтверждение обновлений политики использования (CORE, STARTER, PREMIUM, ULTIMATE)

Вместо того, чтобы использовать эту функциональность один раз и забыть про нее, мы решили добавить ее в GitLab, чтобы пользователи могли использовать эту фичу и в дальнейшем. GitLab готовится к внедрению GDPR и, как часть этого процесса, мы попросили наших пользователей просмотреть и подтвердить обновленные Условия Использования.

До тех пор, пока пользователь не подтвердит это сообщение, его доступ к GitLab через веб, API и Git будет заблокирован. При включении этой фичи админом инстанса, пользователи будут обязаны просмотреть Условия Использования и согласиться с ними перед продолжением работы с GitLab.

Также, поскольку это сообщение создается на основе GitLab-flavored Markdown, в нем могут даже содержаться ссылки на другие страницы. Сообщение с Условиями Использования может быть полностью изменено в настройках админа.

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

Документация по подтверждению обновлений политики использования

Меню поиска и фильтрации по эпикам дорожной карты (ULTIMATE, GOLD)

Мы решили использовать эту функциональность для поиска и фильтрации эпиков дорожной карты (roadmap) при ее просмотре. Меню поиска и фильтрации — очень полезная часть интерфейса, хорошо знакомая пользователям и используемая по всему GitLab.

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

Epic roadmap search and filter bar

Документация по дорожным картам

Обсуждения в API (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

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

Документация об обсуждениях в API

SAST для PHP и Java Gradle (ULTIMATE, GOLD)

Именно поэтому мы увеличиваем количество этих языков с каждым релизом, добавляя наиболее популярные из них. Статическое тестирование безопасности приложений (SAST) эффективно только в тех случаях, когда ваш проект использует язык программирования, поддерживаемый одним из инструментов GitLab.

8 проекты, написанные на PHP и Java с Gradle могут автоматически проверяться на уязвимости безопасности. В GitLab 10. Для этого даже не нужно определять язык — он определяется в рантайме автоматически.

SAST for PHP and Java Gradle

Документация по SAST

Определение переменных для ручных конвейеров (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

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

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

Specify variables for manual pipelines

Документация о запуске конвейеров

Мерж-коммиты в виджете мерж-реквеста (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Это изменение — хороший тому пример. Мы продолжаем работать над маленькими фичами GitLab, которые имеют большое значение при его использовании. По этой ссылке вы сможете перейти непосредственно к мерж-коммиту. Если вы используете мерж-коммиты в вашем проекте, ссылка на мерж-коммит будет появляться в виджете мерж-реквеста сразу после мержа.

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

Merge commit in merge request widget

Документация о мерж-реквестах

Системные заметки для добавления веса задачи (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)

В частности, команды используют веса задач для планирования разработки при работе по Agile или по другим методологиям, основанным на гибкой разработке. Вес задачи позволяет сопоставить задаче GitLab определенное численное значение, указывающее на ее объем. Это поможет членам команды отслеживать изменения для оценки работ, а также просто узнавать, когда была произведена первая оценка. В этом релизе мы добавили системные заметки, появляющиеся каждый раз, когда вы добавляете или изменяете вес задачи.

System note for adding issue weight

Документация по весам задач

Вес задачи и статус блокировки в экспорте CSV (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)

Это дает вам еще больше информации о задачах, чтобы вы могли провести любой тип анализа и рабочих процессов вне GitLab. В этом релизе мы добавили в экспорт CSV вес задачи и статус ее блокировки.

Документация по экспорту CSV

Мерж-реквесты GitLab в Jira Development Panel (PREMIUM, ULTIMATE, SILVER, GOLD)

Это значит, что, если вы используете специальную интеграцию, в боковой панели связанной задачи Jira вдобавок к коммитам и веткам Gitlab будут отображаться еще и мерж-реквесты. В этом релизе мы улучшили интеграцию с Jira Development Panel: теперь она включает мерж-реквесты GitLab.

Обратите внимание, что в интерфейсе Jira мерж-реквесты называются «pull requests».

GitLab merge requests in Jira Development Panel

Документация по интеграции с GitLab Jira Development Panel

Уведомления на email для комментариев по эпикам (ULTIMATE, GOLD)

В этом релизе мы сделали совместную работу над эпиками еще более похожей на остальные части GitLab — за счет добавления email уведомлений. В предыдущем релизе мы представили треды комментариев для эпиков. Например, когда член команды упоминает вас в описании эпика или комментарии к нему, вы получите уведомление, если вы настроили свои уведомления для группы этого эпика на уровень Participate или выше. Как и ранее в задачах и мерж-реквестах, вы будете получать уведомления на email (указанный вами в настройках GitLab) после соответствующей активности в эпике.

Epic email notifications

Документация по эпикам

Улучшенное отображение длинных описаний коммитов (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Мы улучшили отображение длинных описаний, так что читать их стало еще проще! Хорошее описание коммита, которое объясняет, почему было нужно изменение, помогает делать небольшие атомарные коммиты и упрощает чтение логов коммитов для остальных членов команды.

Improved display of long commit messages

Поддержка встроенных сниппетов (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Теперь вы можете встраивать публичные сниппеты в ваш веб-сайт. Сниппеты полезны для обсуждения части кода. За эту возможность спасибо Haseeb. Это очень помогает в документировании, дополнении поста в блоге примерами кода или на личном сайте.

Документация о поддержке встроенных сниппетов

API для языков проекта (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Это может быть полезно для отчетов или исследований — например, понять, какие языки программирования чаще всего используются в вашей организации или в проекте с открытым исходным кодом на GitLab.com. С помощью нового API для языков вы сможете собирать статистику по языкам проекта. Спасибо, Roger, за твой вклад!

Документация по API для языков проекта

GitLab Runner для групп (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Однако, иногда существует необходимость предоставить набор Runner-ов целой группе проектов, не предоставляя доступ к ним кому-либо извне. У GitLab Runner-ов есть два типа настройки: для целого инстанса (shared) или на уровне проекта (specific). На GitLab.com, например, это хорошо работает за счет прямой связи между группами и организациями.

8 вы сможете соединять ваши GitLab Runner с конкретной группой — и каждый проект этой группы получит возможности CI/CD без каких-либо дополнительных настроек. Начиная с GitLab 10. За эту фичу спасибо Alexis. А новые проекты будут получать все преимущества групповых Runner-ов сразу после создания.

GitLab Runners for groups

Документация по настройке GitLab Runners

Поддержка политики тестового окружения для Auto DevOps (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Это очень полезно, но иногда для завершенности приложения или доступности продакшн-окружения нужно использовать дополнительное тестовое окружение. До этого релиза Auto DevOps по умолчанию использовал модель непрерывного развертывания: пуш в production происходил автоматически каждый раз после запуска конвейера в ветке master. Только после прохождения всех проверок на нем можно вручную запускать развертывание в продакшн.

Если кто-то хотел воспользоваться прогоном через тестовое окружение, нужно было отдельно создать файл .gitlab-ci.yml. В шаблоне Auto DevOps раньше уже поддерживалась такая возможность, но она не была включена по умолчанию.

8, шаблоны Auto DevOps позволят пользователям включать staging с помощью переменной окружения. Начиная с GitLab 10. Развертывание в production нужно будет запускать вручную — и можно будет сделать это в нужное время. Вы можете указать STAGING_ENABLED для целой группы, для одного проекта или даже для конкретного запуска.

Staging environment policy support for Auto DevOps

Документация о политике развертывания Auto DevOps

Шаблоны проектов теперь работают с Auto DevOps (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Это позволит вам быстро запустить новое приложение и затем настроить его под свои нужды. В GitLab вы можете легко начать работу над проектом с определенным языком: просто используйте шаблоны.

8 включает усовершенствованные версии шаблонов Rails, Spring и Express, так что при создании новых проектов вы можете использовать все возможности Auto DevOps. GitLab 10. Используя эти улучшенные шаблоны, вы сможете пройти путь от идеи до производства за считанные минуты.

Project templates now work with Auto DevOps

Документация о создании шаблонов, основанных на проектах

Улучшения Geo (PREMIUM, ULTIMATE, SILVER, GOLD)

  • Geo поставляется с Git 2.16.3, что значительно уменьшит время синхронизации репозиториев с большим количеством ссылок.
  • После первоначального клонирования репозитория вторичный нод Geo будет выполнять переупаковку (git pack-objects), чтобы освободить место на диске. Также он будет регулярно выполнять сборку мусора (git gc).
  • При включенных проверках репозитория Geo будет периодически запускать git fsck на каждом репозитории вторичного нода.
  • Улучшены метрики Geo Prometheus: стало проще находить репозитории с несовместимыми контрольными суммами.

Документация по Geo

8 released with incremental rollouts, plus open source push mirroring. Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 10.

Над переводом с английского работали rishavant и sgnl_05.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

«Противостояние» на PHDays 8 — взгляд со стороны SOC

В мае этого года прошла конференция Positive Hack Days 8, на которой мы вновь поучаствовали в роли SOC в уже традиционном Противостоянии (The Standoff). Атакующие — молодцы! В этом году организаторы учли прошлые ошибки и Противостояние началось в срок. Нападали ...

Погружение в AD: разбираем продвинутые атаки на Microsoft Active Directory и способы их детекта

Изображение: Pexels Участники рассказывают о новых векторах и своих изобретениях, но не забывают и о советах, как можно их обнаружить и предотвратить. За последние четыре года ни один Black Hat или DEF CON не обошелся без докладов на тему атак ...