В данном релизе мы добавили возможности по улучшению планирования, развертывания, надежности и многое другое.
Улучшение эффективности планирования вашей работы
На мой взгляд, у задач 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
(редактирование доски), в зависимости от вашего уровня доступа.
Документация по настройке досок задач.
Установка Helm и Ingress на Kubernetes в один клик (CE, EES, EEP)
В GitLab 10.1 появилась возможность подключения аккаунта Google к проектам и создания нового кластера Kubernetes прямо из страницы GitLab Cluster. В дальнейшем этот кластер можно использовать для развертывания приложений для ревью и сред разработки.
В GitLab 10.2 мы продолжили работу в этом направлении, добавив возможность установки Helm Tiller и Nginx Ingress для вашего кластера GKE в один клик, что еще больше сокращает временные затраты на разработку приложений.
Документация по установке приложений на кластеры GKE.
Ограничение коммитов по авторству (EEP)
GitLab Enterprise Edition Premium предоставляет дополнительные возможности управления рабочим процессом и меры контроля среды разработки.
В версии 10.2 появилась возможность настроить правила пуша таким образом, что автором коммита может быть только тот же пользователь, что пушит изменения в репозиторий. Это позволит предотвратить попадание неавторизованного кода в ваш проект, а также повысит уровень контроля над процессом разработки.
Эту опцию можно подключить как для отдельных репозиториев, так и для всего инстанса GitLab, что позволит контролировать рабочий процесс на всем сервере.
Данное нововведение, в сочетании с возможностью отклонения неподписанных коммитов в EEP, предоставляет полный контроль над идентификацией и верификацией вносимых изменений.
Документация по правилам пуша.
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 с использованием HTTPS
- Добавлена безопасная репликация PostgreSQL
- Добавлен API для получения статуса Geo
- Улучшена обработка ошибок репликации
Полный список изменений Geo в версии 10.2 можно посмотреть здесь.
Postgres HA теперь в общем доступе (EEP)
GitLab является одним из ключевых инструментов разработки для множества организаций: с его помощью поддерживается репозиторий кода, CI/CD, управление задачами и многое другое. Для того, чтобы быть уверенным в непрерывном функционировании GitLab, можно проводить его развертывание в конфигурации высокой доступности (high availability).
Мы с радостью сообщаем, что, начиная с GitLab 10.2, PostgreSQL High Availability находится в общем доступе. Пакет установки Omnibus включен в GitLab Enterprise Edition Premium, что заметно упрощает создание и настройку кластеров баз данных Postgres.
В случае отказа нода базы данных, кластер автоматически переключится на вторичный, что гарантирует непрерывность процесса разработки.
Документация по настройке баз данных для GitLab HA.
Оценка производительности канареечного развертывания (EEP)
В GitLab 9.1 мы добавили канареечные развертывания в GitLab CI, что повысило уровень контроля над процессом запуска новых релизов. Суть такого подхода состоит в том, что перед глобальным запуском развертывание новой версии продукта проводится лишь на небольшом проценте нодов, благодаря чему изменения затрагивают небольшую долю пользователей, и, в случае непредвиденных осложнений, эти изменения можно легко исправить или откатить.
В GitLab 10.2 мы добавляем возможность отслеживания системных метрик таких «канареечных» версий, что позволит с легкостью сравнить реальную производительность различных версий. Теперь разработчики смогут быстро оценить влияние изменений на производительность и решить, можно ли проводить полномасштабное развертывание. А самое приятное, что это все можно сделать, не покидая GitLab!
Документация по оценке производительности канареечного развертывания.
Улучшенная ревизия событий (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. Стало удобнее перемещаться и искать подгруппы и проекты. Теперь на странице групп вы будете видеть навигацию в виде расширяющегося дерева, которая поможет вам быстро найти то, что вы ищете, или обнаружить новые проекты и группы.
Документация по подгруппам и проектам на странице групп.
Эпики (EEU)
В этом релизе мы запускаем самую первую версию Эпиков (Epics) как первую часть Управления портфолио. Эпики сделаны для того, чтобы позволить вам планировать и контролировать вашу работу на уровне фич, а не дизайна и деталей реализации задачи.
Эпики нацелены на работу на групповом уровне. После создания эпика с названием и (необязательно) описанием вы можете создать множество задач и связать их с эпиком. Это типичный процесс работы «сверху-вниз», где вы сначала планируете фичу на верхнем уровне, а потом разбиваете ее на меньшие задачи, чтобы ее проще было реализовать. И наоборот: вы можете применить подход «снизу-вверх», когда берете несколько существующих задач и объединяете их в один новый эпик.
Каждая задача, входящая в группу эпика или любую из его подгрупп может быть привязана к этому эпику. Также у эпика есть дополнительные опции
планируемая дата начала (planned start date) и планируемая дата завершения (planned end date).
Эпики включены в Enterprise Edition Ultimate (EEU) и Золотой план подписки GitLab.com.
Токены личного доступа заменят токены приватного доступа (CE, EES, EEP)
Для каждого токена личного доступа (personal access token) можно выбрать только необходимые привилегии API. Это делает доступ в GitLab через API или через сторонние приложения более защищенным.
Приватные токены (private access tokens) ранее были запрещены; теперь их убрали окончательно.
После обновления все приватные токены станут токенами личного доступа, поэтому все существующие приложения продолжат работать как раньше.
Документация по токенам личного доступа, заменяющим приватные токены.
Повышение майлстоунов проекта до майлстоунов группы (CE, EES, EEP)
Когда вы переросли ваш проект, вы можете легко повысить майлстоуны проекта до майлстоунов группы. Просто зайдите на страницу майлстоуна нужного проекта и нажмите кнопку, чтобы сделать его майлстоуном группы. Так же, как и с метками, все проектные майлстоуны с тем же названием по всем проектам группы объединятся в один майлстоун группы. И все задачи и мерж-реквесты, ранее связанные с одним из объединённых майлстоунов, привяжутся к получившемуся майлстоуну группы. Проектные доски задач, связанные с предыдущим майлстоуном проекта теперь будут связаны с майлстоуном группы.
Документация о повышении майлстоунов проекта до майлстоунов группы.
Ограничение зеркалирования пушей в репозиторий (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
- В настройки docker executor добавлена опция
Полный список изменений находится в 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.
Комментарии (6)
Boyd_Rice
08.12.2017 13:521000 баксов за пользователя в год, только чтобы пользоваться эпиками — это, как бы, ппц. Гитлаб, конечно, сильно поприятнее в использовании продуктов Atlassian и Jetbrains, в плане UI и скорости его работы. Но с такими конскими ценами — оно того не стоит.
aionin Автор
08.12.2017 15:24В целом разделяю вашу оценку стоимости подписки Ultimate. Однако, редакций GitLab стало просто на 1 больше:
Community Edition — бесплатная редакция
EE Starter pack
EE Premium pack
Ultimate
И цены на подписки EE не изменились
А кому надо Ultimate — пусть думает сам. Пока в этой редакции нет ничего, кроме обещаний.
Опять же хотеть продать за эту цену, и реально найти покупателя, готового заплатить такие деньги — две большие разницы. Как в том анекдоте.
— Почему семечки дорогие?
— Деньги нужны…Boyd_Rice
08.12.2017 17:03Скажем так, эпики — слишком широко используемая фича, чтобы пихать их в самую дорогую редакцию. Такое неудачное ценообразование делает невозможным или неполноценным использование гитлаба в стартапах, небольших и даже средних командах.
Сейчас как раз пытаюсь найти бесплатную/дешевую альтернативу архаичному пакету Atlassian для своего небольшого стартапа и, к сожалению, единственная система, которая выглядит вменяемо с технической точки зрения и обладает шустрым интерфейсом, имеет такое неудачное ценовое позиционирование. Может, конечно, вы подскажете какие-нибудь удачные альтернативы?aionin Автор
08.12.2017 17:07Я понимаю, что включение Эпиков в GitLab давно ожидалось разработчиками. Однако, как-то ведь до сих пор обходились тасками, нет?
Тем более для стартапа.Boyd_Rice
08.12.2017 18:52Ну, скажем, стартап он хоть и стартап, но это не значит, что мы тут все делаем на коленке) Напротив, выстраиваем достаточно проработанную систему работы и разработки. Так что наличие нормальной иерархии задач тут точно сложно назвать опциональной вещью. Нет, конечно как-то худо-бедно проживем, куда деваться то. Но пока наверно посмотрю на доступные интеграции, может есть какое-то отдельное решение для задач, которое подойдет. Мда, с Jira/Bitbucket/Bamboo тудно перестраиваться. Все-таки, функционально они были неплохи, хоть и с ужасным юзабилити и скоростью работы.
Softer
А подгруппы для инсталляций на MySQL пофиксили?