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

В данном релизе мы добавили возможности по улучшению планирования, развертывания, надежности и многое другое.

Улучшение эффективности планирования вашей работы

На мой взгляд, у задач GitLab много общего с водой: они необходимы для жизни, но в большом количестве можно и утонуть.

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

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

Ускоренный fetch

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

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

Отказоустойчивость и масштабируемость

Благодаря тому, что GitLab спроектирован как одно приложение, в нем содержится единое хранилище данных для репозитория исходного кода, отслеживания задач, CI/CD и мониторинга. Такой единый подход способствует наглядности, повышению эффективности и упрощению работы с проектом для всех участников.

GitLab является ядром разработки для множества команд, поэтому он должен работать безотказно вне зависимости от времени суток. В данном релизе мы с гордостью сообщаем, что PostgreSQL High Availability выходит в общий доступ, благодаря чему стало возможно с легкостью настроить и запустить кластер Postgres для GitLab. Простой процесс установки на основе Omnibus и автоматическая система отказоустойчивости позволят вашим разработчикам не отвлекаться на посторонние проблемы.

Суть:

  • Единый источник истины (single source of truth) == :)
  • Единая точка отказа (single point of failure) == :(

Ускоренное развертывание на Kubernetes

Мы стремимся улучшать работу с GitLab Kubernetes в каждом релизе. В прошлом месяце мы упростили создание кластеров Kubernetes. Но ведь после создания кластера нужно еще и настроить дополнительные сервисы, например, внешний контроллер доступа (external access controller). Вам больше не нужно тратить на это время: в данном релизе мы добавили установщики в один клик для Tiller and Ingress. А в следующем месяце мы планируем добавить поддержку одновременного развертывания сразу нескольких кластеров. Мы стремимся к тому, чтобы каждое из ежемесячных обновлений было законченным и ценным продуктом.

Не пропустите новые возможности

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

Далее в статье мы подробнее остановимся на этих и других нововведениях GitLab 10.2.

Приглашаем на наши встречи!

MVP месяца — Travis Miller

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

Мы благодарим Travis за его вклад! В знак благодарности, мы отправили ему носки, стикеры, футболку и стакан GitLab, которые, похоже, пришлись ему по душе.

Настраиваемые доски задач (EES, EEP)

Многие команды используют общую доску задач для планирования и отслеживания рабочего процесса. Каждый член команды должен видеть на ней один и тот же набор задач. Ранее к доске задач можно было привязать только майлстоун, а теперь — майлстоун (включая вариант «нет майлстоунов»), метки, исполнителя и вес, что расширяет возможности вашей команды.

Такая конфигурация сохраняется вместе с доской, так что любой пользователь, который ее просматривает, увидит все эти фильтры. Вы можете настраивать и редактировать конфигурацию доски нажатием кнопки View scope (Просмотр скоупа) или Edit board (редактирование доски), в зависимости от вашего уровня доступа.

https://www.youtube.com/embed/m5UTNCSqaDk

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

Установка Helm и Ingress на Kubernetes в один клик (CE, EES, EEP)

В GitLab 10.1 появилась возможность подключения аккаунта Google к проектам и создания нового кластера Kubernetes прямо из страницы GitLab Cluster. В дальнейшем этот кластер можно использовать для развертывания приложений для ревью и сред разработки.

В GitLab 10.2 мы продолжили работу в этом направлении, добавив возможность установки Helm Tiller и Nginx Ingress для вашего кластера GKE в один клик, что еще больше сокращает временные затраты на разработку приложений.

Иллюстрация к One-click install for Helm and Ingress on Kubernetes

Документация по установке приложений на кластеры GKE.

Ограничение коммитов по авторству (EEP)

GitLab Enterprise Edition Premium предоставляет дополнительные возможности управления рабочим процессом и меры контроля среды разработки.

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

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

Данное нововведение, в сочетании с возможностью отклонения неподписанных коммитов в EEP, предоставляет полный контроль над идентификацией и верификацией вносимых изменений.

Иллюстрация к Commit Author Restriction

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

GitLab Geo теперь в общем доступе (EEP)

Многие команды, использующие GitLab, распределены по различным географическим локациям, однако их инстанс GitLab находится в одном месте. GitLab Geo позволяет устранить связанные с этим сложности, ускоряя fetch-операции, такие как клонирование репозиториев.

Теперь GitLab Geo находится в общем доступе! После настройки GitLab Geo поддерживает синхронизацию вторичных read-only инстансов GitLab с основным. GitLab Geo можно использовать для доступа к Git, объектам LFS, задачам, вики и артефактам CI ближайшего инстанса GitLab.

Обратите внимание, хотя Geo и High Availability теперь находятся в общем доступе, их одновременное использование рассматривается как бета.

Важные изменения в GitLab 10.2:

Полный список изменений Geo в версии 10.2 можно посмотреть здесь.

Иллюстрация к GitLab Geo is now Generally Available

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

Postgres HA теперь в общем доступе (EEP)

GitLab является одним из ключевых инструментов разработки для множества организаций: с его помощью поддерживается репозиторий кода, CI/CD, управление задачами и многое другое. Для того, чтобы быть уверенным в непрерывном функционировании GitLab, можно проводить его развертывание в конфигурации высокой доступности (high availability).

Мы с радостью сообщаем, что, начиная с GitLab 10.2, PostgreSQL High Availability находится в общем доступе. Пакет установки Omnibus включен в GitLab Enterprise Edition Premium, что заметно упрощает создание и настройку кластеров баз данных Postgres.

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

Иллюстрация к Postgres HA is now Generally Available

Документация по настройке баз данных для GitLab HA.

Оценка производительности канареечного развертывания (EEP)

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

В GitLab 10.2 мы добавляем возможность отслеживания системных метрик таких «канареечных» версий, что позволит с легкостью сравнить реальную производительность различных версий. Теперь разработчики смогут быстро оценить влияние изменений на производительность и решить, можно ли проводить полномасштабное развертывание. А самое приятное, что это все можно сделать, не покидая GitLab!

Иллюстрация к Compare production and canary performance

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

Улучшенная ревизия событий (EES, EEP)

Ревизия событий в GitLab Enterprise Edition помогает усилить контроль и улучшить отчетность. В GitLab Enterprise Edition Starter (EES) вы можете просматривать ревизию событий в каждом проекте или группе. GitLab Enterprise Edition Premium (EEP) включает централизованный лог, в котором все события проекта сосредоточены в одном месте.

GitLab 10.2 EES и EEP теперь включают дополнительные события для действий над проектами или группами. Например:

  • Создание проекта или группы
  • Удаление проекта или группы
  • Перемещение, переименование или назначение нового владельца для проекта
  • Изменение видимости группы
  • Добавление пользователя в группу (с отображением прав доступа пользователя)
  • Изменение прав доступа пользователя
  • Добавление проекта в группу или удаление его из группы

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

Документация по улучшенной ревизии событий.

Подгруппы и проекты на странице групп (CE, EES, EEP)

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

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

Иллюстрация к Subgroups and projects on the group page

Документация по подгруппам и проектам на странице групп.

Эпики (EEU)

В этом релизе мы запускаем самую первую версию _ Эпиков (Epics)_ как первую часть Управления портфолио. Эпики сделаны для того, чтобы позволить вам планировать и контролировать вашу работу на уровне фич, а не дизайна и деталей реализации задачи.

Эпики нацелены на работу на групповом уровне. После создания эпика с названием и (необязательно) описанием вы можете создать множество задач и связать их с эпиком. Это типичный процесс работы «сверху-вниз», где вы сначала планируете фичу на верхнем уровне, а потом разбиваете ее на меньшие задачи, чтобы ее проще было реализовать. И наоборот: вы можете применить подход «снизу-вверх», когда берете несколько существующих задач и объединяете их в один новый эпик.

Каждая задача, входящая в группу эпика или любую из его подгрупп может быть привязана к этому эпику. Также у эпика есть дополнительные опции планируемая дата начала (planned start date) и планируемая дата завершения (planned end date).

Эпики включены в Enterprise Edition Ultimate (EEU) и Золотой план подписки GitLab.com.

Иллюстрация к Epics

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

Токены личного доступа заменят токены приватного доступа (CE, EES, EEP)

Для каждого токена личного доступа (personal access token) можно выбрать только необходимые привилегии API. Это делает доступ в GitLab через API или через сторонние приложения более защищенным.

Приватные токены (private access tokens) ранее были запрещены; теперь их убрали окончательно.

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

Документация по токенам личного доступа, заменяющим приватные токены.

Повышение майлстоунов проекта до майлстоунов группы (CE, EES, EEP)

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

Иллюстрация к Promote project milestones to group milestones

Документация о повышении майлстоунов проекта до майлстоунов группы.

Ограничение зеркалирования пушей в репозиторий (EES, EEP)

Пуш-зеркалирование работает так: репозиторий отправляет все входящие изменения в другой, заранее заданный, репозиторий.

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

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

Восстановлена возможность выбрать readme-обзор проекта (CE, EES, EEP)

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

В GitLab 9.0 была удалена возможность выбирать только readme. Теперь эту возможность вернули для тех, кто предпочитает минимальный обзор проекта.

Документация по readme-обзору проекта.

Улучшенная локализация (CE, EES, EEP)

Мы продолжаем переводить GitLab на разные языки. В этот раз мы ‘экстернализировали строки на страницах «Contributors» и «Tag», позволив нашему сообществу переводчиков добавлять добавлять новые языки и строки в GitLab.

Если вы хотите поучаствовать в локализации GitLab, приглашаем вас присоединиться к нашему сообществу переводчиков.

Документация по улучшениям локализации.

API для GitLab Pages (CE, EES, EEP)

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

В GitLab 10.2 стало возможным управлять собственными доменами для GitLab Pages через запросы API. Вы сможете автоматизировать подключение новых доменов и получение информации от существующих, а также обновлять данные домена — например, когда был обновлен SSL сертификат.

Документация по API для GitLab Pages.

Видимость проекта как переменная CI/CD (CE, EES, EEP)

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

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

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

Улучшения Omnibus (CE, EES, EEP)

  • Когда используются устаревшие (deprecated) настройки конфигурации, предупреждения теперь отображаются яснее.
  • Добавлена поддержка запуска раздельных инстансов Redis для каждого класса персистентности.
  • Обновили OpenSSL до 1.0.2m.
  • Обновили libxml2 до 2.9.6.

Документация по улучшениям Omnibus.

GitLab Mattermost 4.3.2 (CE, EES, EEP)

GitLab 10.2 включает Mattermost 4.3.2, альтернативу Slack с открытым исходным кодом. Новый релиз включает поддержку планшетов в бета-версии, улучшения мобильного приложения и многое другое. В данной версии имеются обновления безопасности, рекомендуем обновиться.

Документация по GitLab Mattermost 4.3.2.

GitLab Runner 10.2 (CE, EES, EEP)

В этой версии также вышел GitLab Runner 10.2. Это проект с открытым исходным кодом, позволяющий запускать работы CI/CD и посылать результаты обратно в GitLab.

Самые важные изменения:

  • Улучшена библиотека minio: теперь она поддерживает ускоренные конечные точки Amazon S3 (Amazon S3 Accelerated endpoints) и регион eu-west-2
    • В настройки docker executor добавлена опция helper_image

Полный список изменений находится в CHANGELOG GitLab Runner.

Документация по GitLab Runner 10.2.

Улучшения производительности (CE, EES, EEP)

Производительность — важная часть GitLab, позволяющая ему масштабироваться до сотен тысяч пользователей.

В версии GitLab 10.2 появился новый импортер GitHub, который использует Sidekiq для параллельного выполнения задач, что значительно уменьшает время, необходимое на импорт проектов из GitHub. Если будет достигнут лимит на количество запросов к GitHub, новый импортер приостановит работу и продолжит ее тогда, когда лимит сбросится. При этом ни один из обработчиков Sidekiq не прекратит работу.

Для маленьких проектов вроде https://github.com/yorickpeterse/oga время импорта уменьшилось от 5 минут до 30-60 секунд, а для таких больших проектов, как https://github.com/kubernetes/kubernetes, время импорта вместо нескольких недель превратилось в 6.5 часов.

Больше информации о новом импортере GitHub вы найдете в мерж-реквесте CE.

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

Полный список улучшений производительности в GitLab 10.2.

—- Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 10.2 released with Configurable Issue Boards and GitLab Geo General Availability.

Перевод с английского выполнен переводческой артелью «Надмозг и партнеры», http://nadmosq.ru. Над переводом работали @rishavant, @sgnl_05 и @nick_volynkin.