Привет, Хабр! Сегодня поговорим об опыте работы Cбера с Helm. Дело в том, что в Сбере широко используется контейнерная платформа OpenShift от RedHat, которая дополняет Kubernetes собственными возможностями, упрощает деятельность по разработке и сопровождению сервисов в промышленной эксплуатации. Платформа отличная, но у неё есть ряд проблем, о которых поговорим ниже. А справиться с ними можно при помощи Helm. О том, как нам помог этот пакетный менеджер, — читайте под катом.
Системы управления версиями *
GIT, SVN и иже с ними
Обзор новой системы контроля версий Sapling компании Meta*
Системы контроля версий — это программные инструменты, помогающие разработчикам отслеживать изменения в исходном коде и управлять ими. Существует множество систем контроля версий (version control system, VCS), каждая из которых имеет собственные функции и возможности.
Одними из самых популярных VCS являются Git, Mercurial и Subversion. Все эти системы предназначены помогать разработчикам совместно работать над проектами, отслеживать изменения в своём коде и поддерживать историю работы. В этом посте я расскажу о новом игроке в этой области, разработанном внутри компании Meta* — VCS Sapling.
Как мы интегрировали и настроили для работы Conventional Commits в PHPStorm
Поднялся вопрос стандартизации коммитов в команде. До этого были такие правила, мы пишем номер задачи и через тире описание того, что было сделано кратко. Номер задачи берется из номера issue. Например: #1 - реализован функционал сборки прода
. Но, это надоело и стало как-то неудобно, когда у нас есть четкое деление задач на фиксы, фичи и так далее.
Нашли Conventional Commits и попробовали его на тестовом репозитории, понравилось. Решили внедрить это в команду, но столкнулись с тем, что люди не всегда делают коммиты правильно, а значит нужна какая-то валидация.
В нашей команде принято по максимуму IDE и его возможности. То есть, коммиты мы делаем не через консоль, а через встроенные утилиты. Поэтому, сразу пошли искать плагины, которые есть в PHPStorm и нашли вот эти 2 важных плагина: Conventional Commit и Git Commit Template. После их установки видим новые кнопки в окне коммита:
Git for Windows: вклад в проект с помощью патча
Существуют разные способы совместной работы над исходным кодом проекта. Так получилось, что сначала я познакомился с тем, как работать с командой «git push», посылая свои изменения в удаленный репозиторий, и как создать на сайте «GitHub» форк для отправки из него запроса на принятие изменений («pull request», сокращенно «PR»). И только после этого я узнал о том, что существует способ обмена изменениями в код с помощью файлов-патчей.
В этой статье я экспериментирую с командой «git diff», создаю тестовый проект и файл-патч из него в программах-оболочках «PowerShell» версии 7 и «Git Bash». Клонирую проект и применяю полученный файл-патч с помощью команды «git apply».
В последней части статьи я показываю, как можно применить программу «Git» для создания файла-патча с изменением в исходный код известного веб-приложения «WordPress». В конце этого примера я создаю сообщение об ошибке (ticket) в системе управления проектом «WordPress» и прикладываю к нему свой файл-патч.
Истории
Берем абсурдную идею и находим ей применение
Абсурдная идея
Если создать в интернете базу данных всех существующих файлов, то любой архив будет представлять собой список имен каталогов, файлов, дата+время изменения/создания и хеши этих файлов. А при распаковки архива достаточно будет просто скачать из интернета содержимое файла по его хешу, записать на диск и присвоить атрибуты (дата,время). Т.е. даже архив с полным сезоном какого-нибудь сериала из 20 серий будет занимать не больше нескольких килобайт (в независимости от качества видео).
Git for Windows: работа с параметром core.autocrlf
Одна из настроек программы (системы управления версиями) «Git» называется «core.autocrlf». В этой статье я на практическом примере описываю, что происходит при каждом из трех возможных значений этой настройки. После этого я делаю выводы о том, для чего эта настройка нужна и в каких ситуациях какие ее значения можно использовать.
Всё описанное происходит в операционной системе «Windows 10». Работу с «Git» я показываю на примере работы из командной строки в программе «PowerShell» версии 7. Используемый дистрибутив «Git» называется «Git for Windows».
Plastic SCM + Unreal Engine
Доброго времени суток! Меня зовут Евгений, я разработчик геймдев студии. Как и в любой разработке, мы используем системы контроля версий. Моей любимой является Plastic SCM, вместе с тем я почти не встречал команды её использующие. Обидно. Попробую исправить это недоразумение и познакомить вас с миром самой приятной SCM.
Git — сравнение Visual Studio 2022 с MeGit/EGit и SourceTree
В этой статье мы сравним функциональность Git в IDE Visual Studio 2022 и в других клиентах Git с GUI. Git внутри VS2022 имеет упрощённый интерфейс по сравнению с некоторыми другими GUI-клиентами наподобие MeGit/EGit и SourceTree. Это привлекает многих разработчиков к платформе VS2022/Git, однако опытным пользователям дополнительно потребуются и другие инструменты.
Почему спустя 5 лет код-ревью на Upsource мы перешли на GitLab
Наша команда мобильной разработки использовала Upsource с 2017 года: на тот момент он был одним из самых удобных инструментов для просмотра кода, комментирования и изучения правок. Мы использовали selfhosted-вариант сервиса.
Однако через некоторое время, по мере роста команды и изменения процессов, мы начали сталкиваться с рядом проблем, которые подтолкнули нас к пересмотру сервиса для код-ревью.
Рассказываю о нашем опыте работы с системами код-ревью, и почему через 5 лет работы на Upsource мы переехали на GitLab.
Вышел Git 2.37
27 июня вышел Git 2.37 с новым механизмом очистки файловой системы, её встроенным монитором и другими доработками. Подробности рассказываем к старту курса по Fullstack разработке на Python.
Как мы столкнулись с версионированием и осознали, что вариант «просто проставить цифры» не работает
Всем привет, я Алексей Некрасов - Lead направления Python в МТС и старший архитектор в MTS AI.
Хочу поделиться своим опытом внедрения версионирования и рассказать, как сделать первый шаг в реализации стратегии blue/green или канареечного развертывания, что для этого нужно и какие есть инструменты.
Если вы используете в docker-образах тег latest, или у вас недоступна система во время деплоя нового релиза, то эта статья — отправная точка для улучшения вашего продукта.
CI/CD для коммуникационной платформы Voximplant
Совсем недавно мы в Voximplant выпустили инструмент под названием VoxEngine CI. Для чего коммуникационной платформе нужна непрерывная интеграция и что можно сделать с её помощью, я расскажу в этой статье.
Если коротко, будем заливать изменения в приложениях на платформу удалённо с максимальным удобством для разработчиков.
Если нужно обновить программный билд — обсуждаем Wharf
Это — специализированный протокол для инкрементального обновления ПО с минимальными задержками. Расскажем, как он устроен, и кто его использует.
Ближайшие события
8 правил, которые пригодятся при описании Git-коммитов
Иногда системы контроля версий напоминают групповые чаты: вроде бы все тут собрались по какому-то поводу и пишут о чём-то одном, но что именно пишут ― разобраться порой просто невозможно. Как и в чате, где на одно грамотное и полное сообщение наберётся сотня «гыгы, лол» и «))))))», в Git-коммитах на несколько внятных описаний приходится втрое больше чего-то такого:
c63b59c ЛОГИКА РАБОТЫ File[] filesList; (ВНИМАНИЕ!)
3775079 Правки самые последние NEW
71acc53 Правка последняя
Особенно это становится заметно во времена крупных доработок. Когда у разработчика много задач и горящих дедлайнов, есть соблазн плюнуть на написание нормальных комментариев к коммитам (commit messages) и применить золотое антиправило экономии времени «Разберусь потом». Но когда наступает это «потом», комментарии типа «03.03 – 04.03» или «последняя правка» не дают ничего, кроме чувства досады на себя в прошлом.
В этой статье мы решили напомнить про правила хорошего тона при написании комментариев к коммитам, чтобы позаботиться о себе и своих коллегах.
Разработка архитектуры для чайников. Часть 3
Event system architecture (EDA)
Ещё одна из популярных архитектур — Event system architecture (EDA), что в переводе на русский означает “архитектура на основе событий”. Суть данной архитектуры состоит в том, что приложение работает с событиями (эвентами), которые генерируются пользователем или другими системами.
Предположим, у нас есть метод для обновления локации пользователей в нашей базе данных. В таком случае стандартный запрос будет выглядеть следующим образом:
Вышел релиз GitLab 14.8 с новыми типами ключей SSH и механизмом правил по безопасности
Мы рады сообщить о выходе релиза GitLab 14.8 с новыми типами ключей SSH, новым механизмом правил для подтверждения безопасности, автодополнением в редакторе конвейеров (в русской локализации GitLab «сборочные линии»), событиями аудита для действий администратора от имени пользователя и многим другим!
Вышел GitLab 14.7 с трансляцией событий аудита, соответствием GitLab Runner FIPS 140-2 и групповыми токенами доступа
Мы рады представить релиз GitLab 14.7 с трансляцией событий аудита, соответствием GitLab Runner стандарту FIPS 140-2, групповыми токенами доступа и многим другим!
Actions: как в GitHub, но в GitLab
Привет! Меня зовут Артемий Окулов, я lead центра компетенций CI/CD в X5 Group.
То, чем мы с командой занимаемся, можно отнести к области под названием Developer Experience. В какой-то момент ИТ в компании достигает такой зрелости, что появляются tools team, enabling team и инициативы, направленные на повышение developer experience. Одной из таких инициатив мы и занимаемся. Если вкратце, мы хотим упростить старт новых продуктов в компании за счет предоставления шаблонов.
В X5 Group много web-сервисов, и с переходом на продуктовый подход виден рост количества команд, которые все чаще прибегают к их созданию. Конечно, каждая команда должна быть кросс-функциональной, чтобы успех реализации продукта зависел в большей степени от самой команды. Но часто мы сталкиваемся с тем, что найти инженера с ролью devops в команду — это задача нескольких месяцев. А терять столько времени на старте — непозволительная роскошь. Поэтому в компании ведутся работы по созданию “стартовых наборов”, решающих задачу минимум — быстрого старта разработки и создания dev-окружения силами самих разработчиков.
В поставку такого “стартового набора” входит и CI/CD pipeline. В этой статье, в частности, мы бы хотели поделиться подходом шаблонизации GitLab Pipelines, который мы стараемся продвигать у себя в компании, и рассказать про инструмент, который для этого разработали.
Вышел Git 2.35. Самые важные подробности
Git и владение им — неотъемлемая часть профессионального программирования. К старту курса по Fullstack-разработке на Python делимся самыми важными деталями о новом релизе Git прямо из блога его разработчиков.
Вышел релиз GitLab 14.6 с улучшенной работой Geo и поддержкой .NET 6 в SAST
Мы рады рассказать вам о выходе релиза GitLab 14.6, последнего релиза 2021-го года. В этом релизе появились: упрощённая конфигурация Geo, которая помогает распределённым командам ускорить выполнение git clone или git pull за счёт автоматического использования ближайшего к ним сервера; список действий агента GitLab, который регистрирует в реальном времени такие события, как состояние соединения и токена; различные улучшения для SAST, включая правила выполнения SAST-сканирований и поддержку .NET 6.