В первом релизе 2018 года мы внесли улучшения в процессы планирования, тестирования, развертывания и работы с мерж-реквестами. Кроме того, в данный релиз включены новые возможности тестирования безопасности, а также первая версия Web IDE, который является частью нашего амбициозного проекта Complete DevOps.
Частью Complete Devops является поддержание мощных инструментов безопасности. С прошлым релизом мы выпустили статическое тестирование безопасности приложений, а в этом мы продолжаем расширять возможности безопасности, добавляя статическое тестирование для контейнеров Docker и динамическое тестирование безопасности приложений (Dynamic Application Security Testing (DAST)).
Правило двух минут от Getting Things Done гласит: если вы можете сделать что-то за две минуты, сделайте это сейчас. Написание небольшого фикса или исправление опечатки не должно занимать много времени, однако такое редко происходит, когда нужно делать stash изменений и переключаться на другой контекст.
Излишние временные затраты при работе с фиксами негативно влияют на время цикла, что особенно заметно в географически распределенных командах — избегание git stash
может привести к целым дням задержки. Новый редактор, который является первым релизом GitLab Web IDE упрощает работу с такими изменениями из интерфейса GitLab.
Также в этом месяце мы внесли множество улучшений в эпики, мерж-реквесты, мониторинг, Geo, Runner, Git LFS, SSH и Auto DevOps.
Далее в статье мы подробнее остановимся на этих и других нововведениях GitLab 10.4.
George присоединился к работе над GitLab только с прошлой версии и на протяжении последнего месяца внес серьезный вклад в улучшение интерфейса, добавив семь мерж-реквестов, в том числе фиксы иконок боковой панели и иерархии списков в пользовательских настройках.
Спасибо George за его внимательность и работу!
Проведение статических проверок кода — первый шаг к обнаружению потенциальных уязвимостей в его безопасности. Однако, после развертывания ваше приложение подвергается риску другой категории атак, например, с использованием межсайтовых скриптов или ненадежной аутентификации.
Мы продолжаем работу над автоматическим обнаружением проблем безопасности и добавляем в GitLab 10.4 систему динамического тестирования безопасности приложений (Dynamic Application Security Testing (DAST)). С ее помощью можно проверить живую версию приложения (например, Review App, созданный в предыдущей работе) прямо из конвейера CI/CD. Начиная с GitLab 10.4.1 Auto DevOps будет автоматически запускать DAST для Review Apps ваших приложений.
При запуске приложений из контейнеров, их код отделяется от кода остальных контейнеров на том же хосте, что повышает их безопасность. Однако даже в таких случаях безопасность приложения может подвергаться угрозам из-за проблем в среде, на которой оно запущено (например, уязвимые системные библиотеки).
В GitLab 10.4 добавлена возможность проведения проверок безопасности образа, в котором содержится ваше приложение, перед мержем изменений в стабильную ветку. Если по результатам этой проверки найдены проблемы безопасности, соответствующие предупреждения отображаются в мерж-реквесте. Такие проверки являются частью Auto DevOps.
Документация по SAST для контейнеров Docker.
В GitLab 10.4 мы вводим бета-версию нового редактора Web IDE, с помощью которого можно будет проще и быстрее вносить небольшие фиксы и реагировать на обратную связь в мерж-реквестах, благодаря исчезновению необходимости stash’а изменений и локального переключения между ветками.
В будущих релизах мы планируем усилить интеграцию Web IDE с мерж-реквестами, улучшить функциональность коммита отдельных файлов, а также добавить превью и веб-терминал для того, чтобы каждый мог внести свой вклад.
Пока Web IDE находится в стадии ранней беты, доступ к нему опционален. Чтобы получить его, зайдите в ваш профиль, далее Settings > Preferences, подключите Web IDE и нажмите Save.
В GitLab CE стало возможным делать перебазирование (rebase) и перемотку (fast-forward) мержа прямо из интерфейса мерж-реквеста. Теперь для этого не нужно переключаться между GitLab и командной строкой; все это можно сделать внутри GitLab.
Ранее эта функциональность была доступна только в EE. Мы добавили ее в CE как следствие добавления GNOME в GitLab CE.
Документация по перемотке мерж-реквестов.
Эпики позволяют вам управлять набором задач, связанных общей темой. Зачастую эпик связан с разработкой большой функциональности, разделенной на несколько задач, работа над которыми ведется параллельно на множестве майлстоунов.
Сортировка списка задач в эпике может выполняться по различным критериям, в зависимости от рабочего процесса организации. Такими критериями могут быть приоритет, сложность, выполнимость (feasibility) или порядок выполнения.
В одних организациях закрытые задачи предпочитают видеть в начале списка, а в других — в конце. В данном релизе мы добавляем возможность менять порядок задач, просто перетягивая их в списке на нужное место — так же как и в досках задач.
Начиная с данной версии, GitLab API поддерживает эпики. Теперь вы можете управлять отдельными эпиками, их списками и всеми их атрибутами (название, описание и даты) через API, что позволит вашей команде создавать кастомные и/или автоматизированные рабочие процессы вне GitLab.
Также поддерживается управление списками задач эпика, в том числе изменение порядка их отображения.
Начиная с данного релиза стало возможным управлять групповыми досками задач через API таким же образом, как и проектными досками задач. Это нововведение добавляет новые возможности автоматизации и повышает гибкость управления рабочими процессами вашей команды.
К примеру, у некоторых команд есть бизнес требования по автоматическому перемещению задач между рядами доски в ответ на выполнение определенных условий. Теперь это можно настроить и для групповых досок задач через API.
Документация по API групповых досок задач.
В данном релизе стало возможным проводить развертывание Prometheus в подключенный кластер Kubernetes в один клик, благодаря чему начать отслеживать производительность вашего приложения становится просто как никогда. Системные метрики, такие как использование процессора и памяти, передаются из Kubernetes автоматически, а ответные метрики, такие как задержка и пропускная способность доступны через NGINX ingress. Для того, чтобы начать, подключите кластер в CI/CD > Clusters
.
Если у GitLab есть сетевой доступ к Prometheus, можно подключить интеграцию с Prometheus для анализа и отображения этих метрик прямо в GitLab. В следующем релизе, GitLab 10.5, интеграция будет подключена автоматически. Также она не будет требовать прямого доступа к сети, что сделает интеграцию еще более гладкой.
Документация по развертыванию Prometheus на Kubernetes через GitLab.
При авторизации пользователя OpenSSH использует линейный поиск, чтобы найти ключ. Это значит, что SSH операции становятся медленнее, когда растет число пользователей инстанса GitLab. Для больших инстансов при выполнении запроса может потребоваться значительное время и высокая скорость записи на диск, что замедлит использование Git по SSH.
В GitLab 9.3 в GitLab EE был добавлен быстрый поиск ключа SSH. Это позволяет пользователям авторизоваться с помощью быстрого индексированного поиска в базе данных GitLab вместо медленного линейного поиска, который был по умолчанию. GitLab CE делается для небольших команд, поэтому предыдущие версии не включали эту оптимизацию. Однако, для поддержки Cloud Native Helm Charts в GitLab, все части кода должны поддерживать быстрый поиск ключей SSH — поэтому мы добавили эту возможность и в GitLab CE.
Документация по быстрому поиску ключей SSH в CE.
Определяйте, какие файлы отслеживаются Git LFS, с помощью новой иконки статуса отслеживания LFS. Эта иконка отображается в блобах и в списках файлов, включая список изменений мерж-реквестов. Это дает возможность проверять, корректно ли LFS отслеживает бинарные файлы при просмотре мерж-реквеста.
Документация по управлению большими бинарными файлами с помощью Git LFS.
В GitLab 10.2 и Geo, и Postgres HA по отдельности стали общедоступными, но использовать Geo вместе с HA можно было только в бета-версии.
Конфигурации, использующие GitLab Geo вместе с HA теперь общедоступны. Это позволит распределенным командам наслаждаться повышенной скоростью fetch-операций Git при использовании GitLab Geo и избыточности высокодоступных конфигураций.
Документация по GitLab Geo вместе с HA.
В прошлой версии мы добавили тестирование производительности браузера, чтобы легко определять влияние изменений на производительность веб-приложений, перед выполнением мержа. Чтобы использовать эту возможность, необходимо было добавить дополнительную работу
в .gitlab-ci.yml
и адаптировать ее под ваши нужды.
В GitLab 10.4 тестирование производительности браузера включено в Auto DevOps, что предоставляет автоматическую аналитику производительности корневой страницы с без какой-либо настройки.
Если вы хотите тестировать дополнительные страницы, просто добавьте соответствующие пути в файл .gitlab-urls.txt
в корневой директории репозитория.
Документация по автоматическому тестированию производительности браузера.
В GitLab 10.4 мы улучшили интерфейс панели производительности окружения, которая отображает системные метрики, получаемые с помощью Prometheus.
Раньше при отслеживании метрик на определенный момент времени они находились в описании графика. Теперь эти метрики четко показаны в ховере. В следующем релизе мы добавим в описание графика общие метрики, отображая статистику вроде максимальной пропускной способности или средней задержки за определенный промежуток времени.
Документация по отслеживанию окружения.
С выходом GitLab 10.4 пакеты Omnibus теперь доступны для openSUSE 42.3.
Этот релиз будет последним с поддержкой openSUSE 42.2, поскольку она официально прекращена.
Документация по поддержке openSUSE Leap 42.3.
GitLab Runner использует кэш для того, чтобы ускорить исполнение за счет переиспользования существующих данных между разными работами. Но иногда это ведет к противоречивому поведению, например, когда одна работа изменяет локальную копию репозитория, и эти изменения влияют на работу следующей.
В GitLab 10.4 мы представляем новую кнопку на странице конвейеров, по нажатию на которую очищается существующий кэш для конкретного проекта, и новый начнется со свежим. Это решает проблему «грязного» запуска.
Документация по очистке кэша Runner.
Мы с гордостью сообщаем, что в версии GitLab 10.4 интеграция с кластером Kubernetes стала общедоступна. Вы можете присоединить ваши существующие кластеры к вашему проекту или создать новые с помощью Google Kubernetes Engine (GKE) парой кликов мыши на новой странице кластеров в разделе CI/CD.
Старый сервис интеграции с Kubernetes все еще доступен, но его использование возможно, только если он был включен до обновления GitLab до 10.4. В следующих релизах существующие данные будут перенесены на новую страницу кластеров, а страница интеграции в конечном итоге будет удалена. Шаблоны сервиса, доступные из зоны администратора, работают как и прежде.
Документация по кластерам GitLab.
Запланированные конвейеры очень удобны для запуска повторяющихся работ без участия пользователя. Обычно их используют для выполнения задач сопровождения или для создания ночных сборок вашего софта. Но иногда такие задачи необходимо выполнить немедленно и вручную, а создавать идентичное окружение (например, добавляя кастомные переменные) может быть тяжело и затратно по времени.
GitLab 10.4 дает возможность запускать запланированный конвейер вручную, прямо из веб-интерфейса: вы найдете кнопку «play» в каждом расписании в списке — и запустить конвейер можно будет всего одним кликом.
Документация по запуску запланированных конвейеров вручную.
Также в этом релизе мы выпускаем GitLab Runner 10.4! GitLab Runner — проект с открытым исходным кодом, который используется для запуска работ CI/CD и отправления результатов обратно в GitLab.
Самые важные изменения:
docker.allowed_images
теперь сможет использовать глобальный синтаксис в config.toml
git config --local
— эта настройка не доступна в Git версии 1.7.1Полный список изменений вы найдете в CHANGELOG GitLab Runner
Документация по GitLab Runner 10.4.
Документация по улучшениям Omnibus.
С каждым новым релизом мы все больше улучшаем производительность GitLab. Мы стараемся не только ускорить каждый инстанс GitLab, но и улучшить производительность всего GitLab.com, в котором больше миллиона пользователей.
В GitLab 10.4 мы ввели улучшения производительности для задач, мерж-реквестов, репозиториев и API. Наиболее заслуживающие внимания из них:
Все улучшения производительности в нашей документации.
Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 10.4 released with Dynamic Application Security Testing and Web IDE (beta).
Над переводом с английского также работали @rishavant и @sgnl_05.