Pull to refresh

Онлайн-митап от руководителя практики Python Usetech

Usetech corporate blog Python *Programming *

В конце марта Мстислав Казаков, руководитель практики Python ГК Юзтех, провёл внешний Usetech Meetup на тему «Как писать Gitlab CI файлы которые легко понимать, расширять и поддерживать».  

С ростом проекта и увеличением количества автоматизированных операций содержимое Gitlab CI файла превращается в спагетти-код. 

На примере демо проекта Мстислав поделился подходами, которые помогли ему решить эти проблемы. Спойлер: проблема решалась при помощи include, reference, rules и манипуляций с Docker.

Демо проект (или эталонный проект) – это монорепозиторий (представлен на изображении ниже). Он содержит 10 сервисов, монолит с беком и фронтом и несколько внутренних библиотек. Если говорить о тестовых средах, обновлениях, релизных циклах, и т. д., то их 3. В первой среде находится актуальная develop версия проекта, во второй среде тестируется release candidate, а третья среда предназначена для end-to-end тестов.

Читать далее
Rating 0
Views 600
Comments 0

Встречайте: усовершенствованный курс «CI/CD на примере Gitlab CI»! Впервые в формате потока

Southbridge corporate blog

20 июня в Слёрм стартует усовершенствованный курс «CI/CD на примере Gitlab CI». Пройдём путь от создания самого простого пайплайна до настройки сложных вариантов CI/CD с возможностью отката на предыдущую версию.

Breaking news: мы не только доработали программу, но и добавили новый формат обучения! Помимо классического видеокурса вам доступно обучение в потоке, которое поможет усилить мотивацию и не сбавлять темп.  

Читать далее
Total votes 16: ↑10 and ↓6 +4
Views 2.7K
Comments 0

Jenkins: СI/CD для DevOps и разработчиков

Southbridge corporate blog

6 сентября стартует курс по Jenkins от Кирилла Борисова, Infrastructure Engineer технологического центра Deutsche Bank. В курсе будет много кейсов и примеров из практики спикера. 

Вы научитесь автоматизировать процесс интеграции и поставки, ускорять цикл разработки и внедрять полезные инструменты, настраивать плагины и создавать пайплайны Jenkins as a code, работать с Jenkins Shared Library и многое другое.

Читать далее
Total votes 12: ↑10 and ↓2 +8
Views 3.7K
Comments 0

Полностью обновленный видеокурс по CI/CD на примере Gitlab CI — всегда доступен в Слёрм

Southbridge corporate blog

1,5 месяца назад мы запустили первый поток по обновленному курсу CI/CD на примере Gitlab CI. Следующий поток стартанет в октябре, но зачем ждать, если видеокурс всегда доступен к изучению. В нем вам доступны 12 тем, в каждой из которых есть практические задания с автопроверкой на наших готовых стендах.

Читать далее
Total votes 9: ↑8 and ↓1 +7
Views 792
Comments 0

Инструменты DevOps: от Jenkins и Gitlab CI до Loki и Grafana

Southbridge corporate blog

13 октября у нас стартует новый практический курс по DevOps Tools. На нём пройдёмся по основным эксплуатационным инструментам — расскажем, как они связаны архитектурно и как выглядит инфраструктура в целом.  

Читать далее
Total votes 7: ↑6 and ↓1 +5
Views 942
Comments 0

Вебинар «CI/CD: как, зачем, для чего»

Southbridge corporate blog


Приходите к нам на открытый вебинар «CI/CD: как, зачем, для чего» от Lead DevOps в Naviteq (ex. Onesoil and EPAM) Александра Довнара 5 октября в 19:00 (мск).

На вебинаре расскажем, что это за зверь такой, кому и когда нужен CI/CD и зачем применять его в команде, а также обсудим текущие проблемы индустрии вокруг этой практики.

Читать далее
Total votes 11: ↑10 and ↓1 +9
Views 479
Comments 0

GitLab Container Registry

Softmart corporate blog Website development *Git *
Translation

В мае этого года вышел релиз ГитЛаба 8.8. Частью этого релиза был запуск встроенного Docker Container Registry. Ниже перевод майской статьи, посвященной этому.


Недавно нами был выпущен GitLab версии 8.8, в которой поддержка CI стала еще лучше. Теперь в GitLab можно строить конвейеры (pipelines) для визуализации сборок, тестов, развертывания и любых других этапов жизненного цикла вашего ПО. Сегодня мы представляем вам следующий этап: GitLab Container Registry .


GitLab Container Registry — это безопасный приватный реестр для образов (images) Docker, разработанный с помощью ПО с открытым кодом. GitLab Container Registry полностью интегрирован в GitLab.


Ключевыми особенностями GitLab являются непрерывность процесса разработки и взаимная интеграция различных элементов; эти принципы сохраняются и при работе с нашим реестром. Теперь при помощи GitLab Container Registry вы можете использовать ваши Docker-образы для GitLab CI, создавать специальные образы для отдельных тегов и веток, а также многое другое.


Стоит отметить, что GitLab Container Registry является первым реестром Docker, полностью интегрированным в систему управления Git-репозиториями. Кроме того, GitLab Container Registry не требует отдельной установки, так как является частью GitLab 8.8; c его помощью можно легко скачивать и загружать образы на GitLab CI. И еще он бесплатный.


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


Читать дальше →
Total votes 24: ↑24 and ↓0 +24
Views 47K
Comments 26

Введение в GitLab CI

Softmart corporate blog IT systems testing *Git *Web services testing *Build automation *
Translation
Tutorial

Публикую перевод моей статьи из блога ГитЛаба про то как начать использовать CI. Остальные переводы гитлабовских постов можно найти в блоге компании Softmart.




Представим на секунду, что вы не знаете ничего о концепции непрерывной интеграции (Continuous Integration — CI) и для чего она нужна. Или вы всё это забыли. В любом случае, начнем с основ.


Представьте, что вы работаете над проектом, в котором вся кодовая база состоит из двух текстовых файлов. Более того, очень важно, чтобы при конкатенации этих файлов в результате всегда получалась фраза "Hello world." Если это условие не выполняется, вся команда лишается месячной зарплаты. Да, все настолько серьезно.


Hello wolrd


Читать дальше →
Total votes 45: ↑44 and ↓1 +43
Views 198K
Comments 21

Gitlab-CI и проверка корректности синтаксиса Ansible-lint

Southbridge corporate blog System administration *IT Infrastructure *DevOps *


Всем привет! Мы продолжаем серию статей про DevOps и ищем наиболее эффективные способы управлять конфигурацией, делясь с вами опытом. В прошлых статьях мы рассматривали, как выстроить управление конфигурацией Ansible с помощью Jenkins и Serverspec, а теперь по вашим просьбам рассмотрим, как организовать управление конфигурацией с помощью GitLab-CI.

Ansible-lint — это утилита для проверки корректности синтаксиса плейбука и стиля кода, которую можно интегрировать в CI-сервис. В нашем случае мы внедряем её в gitlab-ci для проверки плейбуков на этапе принятия Merge-Request и выставления статуса проверок.
GitLab (GitLab Community Edition) — это opensource-проект, менеджер git-репозиториев, изначально разрабатывающийся как альтернатива платной корпоративной версии Github.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Views 20K
Comments 3

GitLab CI: Учимся деплоить

Softmart corporate blog Open source *Git *Version control systems *Build automation *
Translation

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


Чтобы не привязываться к какой-либо конкретной технологии, предположим, что ваше приложение является простым набором HTML-файлов, никакого выполнения кода на сервере, никакой компиляции JS assets. Деплоить будем на Amazon S3.


У автора нет цели дать рецепты для конкретной технологии в этой статье. Наоборот, примеры кода максимально примитивны, чтобы слишком на них не зацикливаться. Смысл в том чтобы вы посмотрели на фичи и принципы работы GitLab CI в действии, а потом применили их для вашей технологии.



Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Views 107K
Comments 4

RailsClub 2016: подкасты с Иваном Немытченко и Ильей Зыкиным

RubyRussia corporate blog Ruby *Ruby on Rails *
Привет!

До RailsClub 2016 совсем немного! Пока мы готовим 600 пакетов раздатки, хотим напомнить вам, что пора голосовать за Героев Руби (все подробности тут) и познакомить поближе еще с двумя нашими спикерами — Ильей Зыкиным (Toptal) и Иваном Немытченко (Gitlab). Наши товарищи из RubyNoName подкаста записали с каждым из них по увлекательному выпуску-интервью.

Послушать можно на сайте подкаста (тут Иван, тут Илья). А ниже расшифровываем по фрагменту из каждого разговора.
Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Views 2K
Comments 0

Вышел GitLab 8.15

Softmart corporate blog Open source *Git *Version control systems *Build automation *
Translation

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



В GitLab 8.15 появилась фича Auto Deploy – автоматизированная настройка развертывания и приложений для ревью (Review Apps). Для проекта на Ruby on Rails такая настройка займёт меньше минуты. Посмотрите, как это работает, в видео на 1:42.


Вдобавок, доступ к вашим средам (environments) стал быстрее и проще: через терминал непосредственно в GitLab (там же на 5:18)


Мы хотим дать каждому возможность использовать всю мощь контейнеров (containers), непрерывной интеграции и развертывания (continuous integration and deployment, сокращенно CD/CI), приложений для ревью (review apps) и планировщиков контейнеров (container schedulers). В GitLab 8.15 мы взяли на себя всю сложную работу по настройке, и вся она происходит совершенно прозрачно. В демонстрационном видео мы настраиваем и разворачиваем Ruby-приложение с review apps, несколькими средами и чатопсом (chatops, управление инфраструктурой через интеграцию с чатом) на кластер Kubernetes примерно за 12 минут. Без GitLab такая задача обычно занимает дни, если не недели.


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


Total votes 29: ↑28 and ↓1 +27
Views 14K
Comments 13

Как тестировать контейнеры RoR с GitLab CI в контейнере

IT systems testing *Version control systems *Ruby on Rails *
Чем хорош GitLab, так это тем, что будучи по габаритам слоном в посудной лавке, он умеет аккуратно устанавливаться и почти всегда работает с коробки. Но плохо умеет восстанавливаться и заботиться о себе, когда очень прямые руки вроде моих нарушают привычное ему окружение. Не буду углубляться в то, как мне удавалось убить его до состояния, когда даже удаление и установка с нуля не помогает, но во избежания очередной бесконечной эпопеи с дебагом и переустановкой сервера я вынес все это дело в Docker контейнер. Удобно — на рабочей машине нет миллиона зависимостей, примонтировал директории для репозиториев, логов и базы данных и все работает. Восстановление — пересоздать контейнер и скормить бэкап (кстати, не забудьте проверить свои бэкапы, как говорит опыт GitLab, это не лишнее).

С другой стороны, есть разрабатываемое Rails приложение, которое на реальной машине держит только код; Rails, gems, и все остальное покоится в Docker контейнере. Для своей работы оно использует Redis и Postgres, каждый находится в своем контейнере. Для каждого контейнера примонтирована директория, чтобы важные для приложения данные не оставались внутри.



Задача в том, чтобы Gitlab CI нормально отработал. Вроде все просто, но — он сам находится в контейнере.
И как же нам быть?
Total votes 8: ↑8 and ↓0 +8
Views 4.7K
Comments 2

Версионирование артефактов сборки в Gradle используя git имена тегов, бранчей и коммитов

Programming *Java *Git *Build automation *Gradle *
С переездом из SVN на GIT и gitlab (плюс переезд из Jenkins на Gitlab-CI, но его использование также упомянём), встал вопрос версионирования получаемых артефактов сборки приложения.

В SVN был всем привычный номер ревизии, монотонно увеличивающийся с каждым коммитом. Его было удобно добавлять в номер версии, и это решало большинство проблем. Но git конечно предоставляет множество плюшек, и стоило убеждать руководство и всё команду перевести проект на него…
Зато пришлось отстроить заново процесс версионирования получаемых артефактов сборки.

В итоге остановились на очень хорошем Gradle плагине github.com/nemerosa/versioning, о его использовании я и собираюсь рассказать.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Views 9.4K
Comments 11

Вышел GitLab 9.1: Service Desk, Burndown Charts и канареечные развертывания

Softmart corporate blog Open source *Git *Version control systems *Build automation *
Translation

image


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


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


С новой фичей Service Desk ваши пользователи могут отправлять свои вопросы и сообщать о проблемах на специальный адрес электронной почты, отдельный для каждого проекта. По письму от пользователя Service Desk заводит конфиденциальную задачу (issue) в вашем проекте. Когда кто-либо комментирует задачу, пользователь получает этот комментарий в ответном письме. Это — встроенный непосредственно в GitLab канал обратной связи от пользователей.


Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views 8.1K
Comments 14

Вышел GitLab 9.2: Несколько исполнителей задачи, конвейеры по расписанию, локализация, альфа аварийного восстановления

Softmart corporate blog Open source *Git *Version control systems *Build automation *
Translation

КПДВ


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


Зачастую в процессе разработки продукта несколько человек работают над одной задачей: например, разработчики фронтэнда и бэкэнда, дизайнер интерфейса, тестировщик и менеджер продукта. С выходом GitLab 9.2 все они могут быть назначены исполнителями одной задачи, что упрощает процесс совместной разработки и позволяет наглядно отображать их общую область ответственности.


Также в версии 9.2 положено начало процесса локализации GitLab: аналитика цикла разработки (Cycle Analytics) теперь доступна на испанском и немецком языках. Локализация GitLab будет продолжена в последующих релизах, чтобы каждый мог вносить свой вклад независимо от родного языка.


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


Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Views 6.8K
Comments 7

Вышел GitLab 9.3: Code Quality и межпроектные графики конвейеров

Softmart corporate blog Open source *Git *Version control systems *Build automation *
Translation

Вышел GitLab 9.3: Code Quality и межпроектные графики конвейеров


image


В GitLab 9.3 мы представляем Code Quality, межпроектные графики конвейеров, индекс совместной разработки, улучшения локализации, описания сниппетов и многое другое!


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


Total votes 15: ↑15 and ↓0 +15
Views 7.6K
Comments 6

Вышел GitLab 9.4: Связанные задачи и веб-мониторинг приложений

Softmart corporate blog Open source *Git *Version control systems *Build automation *
Translation

Вышел GitLab 9.4: Связанные задачи и веб-мониторинг приложений


image


В GitLab 9.4 мы представляем связанные задачи, веб-мониторинг приложений, обновленную навигацию, групповые майлстоуны и многое другое!


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


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


Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Views 8.4K
Comments 7

Настраиваем автоматическую сборку проекта Unity3d в Gitlab CI

Unity3D *Build automation *
Tutorial
Update 17.02.2019 — эта статья устарела. Пользоваться ей в 2019 году не стоит.

Зачем нужна автоматическая сборка проекта никому объяснять не надо.
В случае со сборкой проектов под Unity это особенно актуально, так как средненький проект, например, под WebGL собирается на рабочей машине 5-7 минут, полностью её завешивая.

Не так давно вышла версия Unity под Linux, что дало принципиальную возможность настроить автоматическую сборку при помощи Gitlab CI (которая основана на docker образах).

Я хочу поделиться своим опытом такой настройки.
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Views 12K
Comments 2

Вышел GitLab 9.5: Верификация коммитов GPG и шаблоны проектов

Softmart corporate blog Open source *Git *Version control systems *Build automation *
Translation

image


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


Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Views 5.2K
Comments 0