В данном релизе мы добавили возможности по улучшению планирования, развертывания, надежности и многое другое.
На мой взгляд, у задач GitLab много общего с водой: они необходимы для жизни, но в большом количестве можно и утонуть.
В командной работе с общим обзором полезно его сужение только до задач, важных в определенном контексте. Ранее GitLab позволял применять фильтры для отображения задач связанных с определенным майлстоуном или меткой доски задач, однако, это было лишь временным решением. Возможно, вам приходилось сохранять в закладки и отправлять коллегам ссылки на доску задач..
В данном релизе мы вводим настройку доски задач, с помощью которой вы сможете сохранять выборку по майлстоунам, меткам, весу и исполнителям задач, что позволит каждому члену команды видеть одни и те же задачи.
Команды разработчиков всё чаще бывают распределены географически.. Это одна из причин, по которым Git так популярен: он является распределяемым по своей природе — в вашем локальном репозитории содержатся копии каждого коммита, файла и ветки в истории проекта. Загружаемая история серьезно ускоряет процесс разработки.
Однако, если существует только один физический инстанс репозитория, возможна ситуация, в которой он расположен вдали от распределенных команд. Это замедляет загрузку большого количества маленьких файлов. Мы с радостью сообщаем, что в данном релизе GitLab Geo выпущен в общий доступ. GitLab Geo позволяет запускать read-only реплики GitLab (включая его интерфейс) в физической близости от удаленных команд.
Благодаря тому, что GitLab спроектирован как одно приложение, в нем содержится единое хранилище данных для репозитория исходного кода, отслеживания задач, CI/CD и мониторинга. Такой единый подход способствует наглядности, повышению эффективности и упрощению работы с проектом для всех участников.
GitLab является ядром разработки для множества команд, поэтому он должен работать безотказно вне зависимости от времени суток. В данном релизе мы с гордостью сообщаем, что PostgreSQL High Availability выходит в общий доступ, благодаря чему стало возможно с легкостью настроить и запустить кластер Postgres для GitLab. Простой процесс установки на основе Omnibus и автоматическая система отказоустойчивости позволят вашим разработчикам не отвлекаться на посторонние проблемы.
Суть:
Мы стремимся улучшать работу с GitLab Kubernetes в каждом релизе. В прошлом месяце мы упростили создание кластеров Kubernetes. Но ведь после создания кластера нужно еще и настроить дополнительные сервисы, например, внешний контроллер доступа (external access controller). Вам больше не нужно тратить на это время: в данном релизе мы добавили установщики в один клик для Tiller and Ingress. А в следующем месяце мы планируем добавить поддержку одновременного развертывания сразу нескольких кластеров. Мы стремимся к тому, чтобы каждое из ежемесячных обновлений было законченным и ценным продуктом.
В этом месяце мы добавили множество новых интересных функциональностей, например, ограничение авторства коммитов и повышение майлстоунов проекта до майлстоунов группы.
Далее в статье мы подробнее остановимся на этих и других нововведениях GitLab 10.2.
В течение последних нескольких релизов Travis работал над улучшением GitLab Pages, а в GitLab 10.2 он внес вклад в создание нового интерфейса страницы Pages для управления существующими доменами. Это нововведение позволяет запрограммировать ключевые задачи, например, обновление сертификата или перевод существующего домена на HTTPS.
Мы благодарим Travis за его вклад! В знак благодарности, мы отправили ему носки, стикеры, футболку и стакан GitLab, которые, похоже, пришлись ему по душе.
Многие команды используют общую доску задач для планирования и отслеживания рабочего процесса. Каждый член команды должен видеть на ней один и тот же набор задач. Ранее к доске задач можно было привязать только майлстоун, а теперь — майлстоун (включая вариант «нет майлстоунов»), метки, исполнителя и вес, что расширяет возможности вашей команды.
Такая конфигурация сохраняется вместе с доской, так что любой пользователь, который ее просматривает, увидит все эти фильтры. Вы можете настраивать и редактировать конфигурацию доски нажатием кнопки View scope
(Просмотр скоупа) или Edit board
(редактирование доски), в зависимости от вашего уровня доступа.
Документация по настройке досок задач.
В GitLab 10.1 появилась возможность подключения аккаунта Google к проектам и создания нового кластера Kubernetes прямо из страницы GitLab Cluster. В дальнейшем этот кластер можно использовать для развертывания приложений для ревью и сред разработки.
В GitLab 10.2 мы продолжили работу в этом направлении, добавив возможность установки Helm Tiller и Nginx Ingress для вашего кластера GKE в один клик, что еще больше сокращает временные затраты на разработку приложений.
Документация по установке приложений на кластеры GKE.
GitLab Enterprise Edition Premium предоставляет дополнительные возможности управления рабочим процессом и меры контроля среды разработки.
В версии 10.2 появилась возможность настроить правила пуша таким образом, что автором коммита может быть только тот же пользователь, что пушит изменения в репозиторий. Это позволит предотвратить попадание неавторизованного кода в ваш проект, а также повысит уровень контроля над процессом разработки.
Эту опцию можно подключить как для отдельных репозиториев, так и для всего инстанса GitLab, что позволит контролировать рабочий процесс на всем сервере.
Данное нововведение, в сочетании с возможностью отклонения неподписанных коммитов в 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 является одним из ключевых инструментов разработки для множества организаций: с его помощью поддерживается репозиторий кода, CI/CD, управление задачами и многое другое. Для того, чтобы быть уверенным в непрерывном функционировании GitLab, можно проводить его развертывание в конфигурации высокой доступности (high availability).
Мы с радостью сообщаем, что, начиная с GitLab 10.2, PostgreSQL High Availability находится в общем доступе. Пакет установки Omnibus включен в GitLab Enterprise Edition Premium, что заметно упрощает создание и настройку кластеров баз данных Postgres.
В случае отказа нода базы данных, кластер автоматически переключится на вторичный, что гарантирует непрерывность процесса разработки.
Документация по настройке баз данных для GitLab HA.
В GitLab 9.1 мы добавили канареечные развертывания в GitLab CI, что повысило уровень контроля над процессом запуска новых релизов. Суть такого подхода состоит в том, что перед глобальным запуском развертывание новой версии продукта проводится лишь на небольшом проценте нодов, благодаря чему изменения затрагивают небольшую долю пользователей, и, в случае непредвиденных осложнений, эти изменения можно легко исправить или откатить.
В GitLab 10.2 мы добавляем возможность отслеживания системных метрик таких «канареечных» версий, что позволит с легкостью сравнить реальную производительность различных версий. Теперь разработчики смогут быстро оценить влияние изменений на производительность и решить, можно ли проводить полномасштабное развертывание. А самое приятное, что это все можно сделать, не покидая GitLab!
Документация по оценке производительности канареечного развертывания.
Ревизия событий в GitLab Enterprise Edition помогает усилить контроль и улучшить отчетность. В GitLab Enterprise Edition Starter (EES) вы можете просматривать ревизию событий в каждом проекте или группе. GitLab Enterprise Edition Premium (EEP) включает централизованный лог, в котором все события проекта сосредоточены в одном месте.
GitLab 10.2 EES и EEP теперь включают дополнительные события для действий над проектами или группами. Например:
В GitLab EEP данные ревизии удаленного проекта или группы теперь сохраняются на сервере в общем логе и доступны администратору. Также теперь включается IP адрес пользователя, совершающего действие.
Документация по улучшенной ревизии событий.
Подгруппы — отличный способ организации проектов или команд в GitLab. С почти неограниченным наследованием групп вы можете создать структуру для отображения сложных репозиториев, микросервисов или даже обрисовать внутреннее устройство ваших команд разработки.
Мы провели капитальный ремонт страницы групп GitLab. Стало удобнее перемещаться и искать подгруппы и проекты. Теперь на странице групп вы будете видеть навигацию в виде расширяющегося дерева, которая поможет вам быстро найти то, что вы ищете, или обнаружить новые проекты и группы.
Документация по подгруппам и проектам на странице групп.
В этом релизе мы запускаем самую первую версию _ Эпиков (Epics)_ как первую часть Управления портфолио. Эпики сделаны для того, чтобы позволить вам планировать и контролировать вашу работу на уровне фич, а не дизайна и деталей реализации задачи.
Эпики нацелены на работу на групповом уровне. После создания эпика с названием и (необязательно) описанием вы можете создать множество задач и связать их с эпиком. Это типичный процесс работы «сверху-вниз», где вы сначала планируете фичу на верхнем уровне, а потом разбиваете ее на меньшие задачи, чтобы ее проще было реализовать. И наоборот: вы можете применить подход «снизу-вверх», когда берете несколько существующих задач и объединяете их в один новый эпик.
Каждая задача, входящая в группу эпика или любую из его подгрупп может быть привязана к этому эпику. Также у эпика есть дополнительные опции планируемая дата начала (planned start date) и планируемая дата завершения (planned end date).
Эпики включены в Enterprise Edition Ultimate (EEU) и Золотой план подписки GitLab.com.
Для каждого токена личного доступа (personal access token) можно выбрать только необходимые привилегии API. Это делает доступ в GitLab через API или через сторонние приложения более защищенным.
Приватные токены (private access tokens) ранее были запрещены; теперь их убрали окончательно.
После обновления все приватные токены станут токенами личного доступа, поэтому все существующие приложения продолжат работать как раньше.
Документация по токенам личного доступа, заменяющим приватные токены.
Когда вы переросли ваш проект, вы можете легко повысить майлстоуны проекта до майлстоунов группы. Просто зайдите на страницу майлстоуна нужного проекта и нажмите кнопку, чтобы сделать его майлстоуном группы. Так же, как и с метками, все проектные майлстоуны с тем же названием по всем проектам группы объединятся в один майлстоун группы. И все задачи и мерж-реквесты, ранее связанные с одним из объединённых майлстоунов, привяжутся к получившемуся майлстоуну группы. Проектные доски задач, связанные с предыдущим майлстоуном проекта теперь будут связаны с майлстоуном группы.
Документация о повышении майлстоунов проекта до майлстоунов группы.
Пуш-зеркалирование работает так: репозиторий отправляет все входящие изменения в другой, заранее заданный, репозиторий.
Администраторы теперь могут ограничить доступ к зеркалированию пушей так, чтобы оно было доступно только администраторам. Это поможет предотвратить автоматическое зеркалирование приватных проектов в другой репозиторий, который может оказаться внешним или небезопасным.
Документация по зеркалированию репозиториев.
Настройки «предпочитаемой домашней страницы проекта» позволяют выбирать контент, который вы увидите на домашней странице любого открытого проекта. Вы можете выбрать активности проекта, список файлов и readme, либо только readme.
В GitLab 9.0 была удалена возможность выбирать только readme. Теперь эту возможность вернули для тех, кто предпочитает минимальный обзор проекта.
Документация по readme-обзору проекта.
Мы продолжаем переводить GitLab на разные языки. В этот раз мы ‘экстернализировали строки на страницах «Contributors» и «Tag», позволив нашему сообществу переводчиков добавлять добавлять новые языки и строки в GitLab.
Если вы хотите поучаствовать в локализации GitLab, приглашаем вас присоединиться к нашему сообществу переводчиков.
Документация по улучшениям локализации.
GitLab Pages позволяет вам публиковать статичный сайт прямо из конвейера вашего проекта. Если вы хотите сделать его более профессиональным, вы можете настроить собственные домены для вашего контента и защитить их сертификатами.
В GitLab 10.2 стало возможным управлять собственными доменами для GitLab Pages через запросы API. Вы сможете автоматизировать подключение новых доменов и получение информации от существующих, а также обновлять данные домена — например, когда был обновлен SSL сертификат.
Документация по API для GitLab Pages.
В GitLab вы можете определять, какой проект — публичный или приватный — вы хотите создать. При работе с конвейером вам иногда нужна эта информация для совершения разных действий.
В GitLab 10.2 эта информация находится в переменной CI_PROJECT_VISIBILITY
. С ее помощью вы можете определить, к примеру, разрешен ли публичный доступ к артефактам или образам Docker.
Очень удобно, когда у вас есть шаблон с общим доступом, который используется для разных проектов.
Документация о переменной для видимости проекта.
Документация по улучшениям Omnibus.
GitLab 10.2 включает Mattermost 4.3.2, альтернативу Slack с открытым исходным кодом. Новый релиз включает поддержку планшетов в бета-версии, улучшения мобильного приложения и многое другое. В данной версии имеются обновления безопасности, рекомендуем обновиться.
Документация по GitLab Mattermost 4.3.2.
В этой версии также вышел GitLab Runner 10.2. Это проект с открытым исходным кодом, позволяющий запускать работы CI/CD и посылать результаты обратно в GitLab.
eu-west-2
helper_image
Полный список изменений находится в CHANGELOG GitLab Runner.
Документация по GitLab Runner 10.2.
Производительность — важная часть 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.