Пишем реальный CI/CD пайплайн | GITLAB CI/CD на практике

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии • 131

  • @artemshumeiko
    @artemshumeiko  2 месяца назад +2

    🔥 Забирай разбор production Python кода от меня бесплатно, напиши слово ПРОДАКШН в тг-боте: t.me/ArtemShumeikoBot
    🎓 Обучение самым современным и востребованным технологиям, которые нужны backend разработчику, на практике: artemshumeiko.ru

  • @ItSpecialist-on1bd
    @ItSpecialist-on1bd 2 месяца назад +15

    Удивительно, но для меня это было одно из самых полезных видео, ибо практика прекрвсная. Спасибо, буду ждать еще видео :)

  • @ЕвгенийБулатов-в1л
    @ЕвгенийБулатов-в1л 2 месяца назад +5

    Просто превосходно. За 20 мин понял больше чем читал.

  • @АртурДуйшеев
    @АртурДуйшеев 11 дней назад

    Артем, видео очень интересное и познавательное, спасибо за ваш труд, хотелось бы еще послушать про Jenkins и посмотреть, как его настраивать 🔥🔥🔥🔥

  • @testikarus
    @testikarus Месяц назад

    Спасибо за Ваш труд! Коммент в поддержку канала.

  • @ilyuhalive7724
    @ilyuhalive7724 2 месяца назад

    Огонь, спасибо! Выглядит лихо. Я пока только учусь. git + pycharm. Буду учиться вкручивать это все в ci cd

  • @Haskiken4370
    @Haskiken4370 Месяц назад

    Черт, ты объясняешь довольно просто и ясно. Жаль пока не выполнил это

  • @tenmaxim1904
    @tenmaxim1904 4 дня назад

    Ппц ты монстр!)) 👍👍👍

  • @agabekshamuratov4532
    @agabekshamuratov4532 2 месяца назад +6

    круто, теперь ждем k8s

  • @Anuar-fj6mt
    @Anuar-fj6mt 8 дней назад

    красава! коротко и четко! mvp!

  • @spirit3064
    @spirit3064 2 месяца назад

    Как всегда на высоте Артём.

  • @dogedoge6817
    @dogedoge6817 2 месяца назад

    Видео просто кайф, очень быстро и информативно

  • @ДмитрийДавыдов-т5з
    @ДмитрийДавыдов-т5з 2 месяца назад

    Лучший! Спасибо большое за знания!

  • @brazenoptimist
    @brazenoptimist 2 месяца назад

    Спасибо большое за такой крутой видос! Ждал этого очень!!! 🎉 Может покажусь ленивым, но было бы славно, если бы была сборочка материала по теме 🥹

  • @alexbulavin543
    @alexbulavin543 2 месяца назад

    Великолепно!
    👏👏👏👍🔥

  • @ПавелКарижский-ц3х
    @ПавелКарижский-ц3х 2 месяца назад

    Очень круто!

  • @ES-ng3el
    @ES-ng3el Месяц назад

    Спасибо. Полезно

  • @sergeyplotnikov4303
    @sergeyplotnikov4303 2 месяца назад

    Большое спасибо!

  • @developmentapp
    @developmentapp 5 дней назад

    Специалис😃😃т ..! )) зачем sudo пишешь в командах под рутом? Лайк!

  • @Katar1x
    @Katar1x 2 месяца назад +6

    Сделай еще сжатый обзор github actions, ибо для большинства начинающих будет большим плюсом, если в пет проекте для собеса будет ci\cd)
    Я думаю там есть некоторые различия, в частности по раннеру

    • @artemshumeiko
      @artemshumeiko  2 месяца назад +3

      Зачем? Кто использует GitHub actions в реальном мире?

    • @andreivasilevitsky3477
      @andreivasilevitsky3477 2 месяца назад

      @@artemshumeiko я) на самом деле много компаний используют github actions

    • @АнтонВитальевич-т7к
      @АнтонВитальевич-т7к 2 месяца назад

      ​@@artemshumeikoа что с ним не так? Как быть если проект изначально хранится на GitHub?

    • @LionKingheh
      @LionKingheh 2 месяца назад

      @@АнтонВитальевич-т7к перенеси на гитлаб

    • @АнтонВитальевич-т7к
      @АнтонВитальевич-т7к 2 месяца назад

      @@LionKingheh так а зачем всё-таки, если на GitHub есть все тоже самое? Чем он отличается или хуже?

  • @JohnSmith-z9m
    @JohnSmith-z9m 2 месяца назад

    Круто, спасибо!

  • @andreybudnikov5920
    @andreybudnikov5920 10 часов назад

    Зачем ставить Gitlab Runner на сервер если в итоге сборку образа делаете в облаке GitLab? Достаточно ведь просто прокинуть SSH подключение через переменные в настройках Gitlab, а на сервер просто Docker + compose. Или я чего-то не понимаю?

  • @Balda666
    @Balda666 2 месяца назад +5

    Ну с таким пайпом даже до тестового не доедешь )))

  • @breakz849
    @breakz849 Месяц назад +1

    "поняли" - ничего мы не поняли, но ознакомились.

  • @ILyaCyclone
    @ILyaCyclone 2 месяца назад +3

    Спасибо, хорошее видео.
    На мой взгляд, необходимо пояснять, по какой причине мы выбираем настройки: 11:50 runner executor, 12:08 docker:dind, 12:30 volumes. По крайней мере кратко, иначе это просто некий magic code.
    Репозиторий проекта где-то доступен?

    • @artemshumeiko
      @artemshumeiko  2 месяца назад

      Да, в описании есть ссылка на репозиторий

    • @ILyaCyclone
      @ILyaCyclone 2 месяца назад

      @@artemshumeiko Поясните указанные моменты?

    • @itheandrey
      @itheandrey 2 месяца назад

      Чувствую, ответа мы не дождёмся...

  • @Max_V-q1q
    @Max_V-q1q 2 дня назад

    А можешь показать реальный пример например с битбакетом, дженкинсом и powershell на винде пожалуйста

  • @fila7yt
    @fila7yt 2 месяца назад +11

    Давай видео про кубер

  • @Alsurnov
    @Alsurnov Месяц назад +1

    Интересно а как добавить .env при всем этом деплое?

  • @alexs7612
    @alexs7612 11 дней назад

    Подскажите, как раннер на этапе test видит образ my-backend-image, собранный на этапе build, если мы его никуда не выгружаем и в gitlab registry его тоже нет?

    • @Mahach2211
      @Mahach2211 2 часа назад

      Всё происходит на сервере, на котором запущен раннер. Там собирается образ, тестируется и деплоится

  • @hsqlk
    @hsqlk 2 месяца назад +2

    Selectel бесплатно дают белый IP адрес, что-то не видел его в общей стоимости?

  • @HelgaPolikova
    @HelgaPolikova 2 месяца назад

    несколько лет делала такие процессы - только сейчас узнала, что это оказывается CI/CD 😂

  • @dien0000
    @dien0000 14 дней назад

    после пуш, фикс сразу попадает в пайплайн и потом в дев или майн ветку для клиента, если пайплайн по ci/cd норм прошло?

  • @ЕгорАфанасьев-ш4ж
    @ЕгорАфанасьев-ш4ж 2 месяца назад

    Артём, спасибо вам. Отличный материал и подача. Где взять такую же классную футболку?😂

  • @Fair-Wez
    @Fair-Wez Месяц назад +1

    Хотелось бы больше видео по настройке ci/cd.
    Теги, ветки, конфигурационные файлы разных веток)
    Спасибо за ролик👍

  • @kirilltyupaev2447
    @kirilltyupaev2447 2 месяца назад +1

    А на сколько норм запускать gitlab-runer на проде? Если в более реальных условиях, если есть пользователи которые пользуются приложением, в этот момент билд докера и прогон тестов-линтеров создают повышенную нагрузку на сервер.

    • @MrMikhailDJ
      @MrMikhailDJ 2 месяца назад

      Решение: просто использовать отдельный сервер под сборку. Я в Gitlab CI плохо понимаю, но эти раннеры по своей сути аналог агентов в Jenkins. Обычно билд сервер с агентом отдельный используется, где происходит сборка и деплой на целевые сервера, например, продовский с приложением

    • @itheandrey
      @itheandrey 2 месяца назад +1

      Ни на сколько. Смысл запуска runner на своём сервере только в экономии средств и настройке окружения. Облачная версия со всем справляется, у неё есть только квота минут. Автор видео не осилил сборку образа в облаке и загрузку его в gitlab registry...

  • @stillenray
    @stillenray 2 месяца назад

    Сделай видео как добиться деплоймента без отключение или перезапуска сервиса

  • @maximkoltsov9833
    @maximkoltsov9833 2 месяца назад

    Прям согласен с тобой, тоже обожаю Docker compose)
    Без него проектов меня не бывает)
    В крайностях если только если ручками запускать с помощью systemctl
    Было бы интересно узнать, какие практики ты используешь для защиты сервера и уязвимостей докера

  • @oRiGiNaLMrInsaf
    @oRiGiNaLMrInsaf 2 месяца назад

    Спасибо за видео! У меня вопрос:
    Не проще ли запускать тесты до сборки (build)?
    Я смотрю на примера фронта, build-которого создаст бандл для отдачи клиенту, в нем (в бандле, который получился после build) тесты уже не прогонишь, т.е. тесты нужно прогонять все равно отдельно, вне бандла и, если тесты упадут, то build придется перегонять заново после внесения изменений.
    Как будто прогнав вначале тесты мы сэкономим время, или это только на фронте так работает?

    • @АлександрБорисов-з9е
      @АлександрБорисов-з9е Месяц назад +1

      Полагаю, так сделано просто для примера, как это работает.
      В рабочем проекте массив stages был бы примерно в таком порядке - prepare, cache, test, code-scan, migration, build, clean-up, appsec, deploy, release

  • @alisher.sabirov
    @alisher.sabirov 29 дней назад

    Спасибо большое за крутое видео, сделай пожалуйста ci/cd на проектах php (laravel/yii2)

    • @MrAlexidi
      @MrAlexidi 18 дней назад

      Артем Python разработчик. Вам к другому спецу надо обратиться😊

  • @dmitry9463
    @dmitry9463 2 месяца назад

    Подскажи, ты пользуешься мышкой или тачпадом? Если мышкой, то какой?

    • @Chel1k7
      @Chel1k7 2 месяца назад +1

      Допустим он скажет что x7, дальше что? Пойдешь в магазин за такой же?

    • @artemshumeiko
      @artemshumeiko  2 месяца назад

      мышкой logitech, покупал на озоне за 2к
      я не придаю значение клаве и мышке

  • @zaskilovan
    @zaskilovan 2 месяца назад

    Отличное видео! А будет такое же, но по настройке Github Actions ?

    • @artemshumeiko
      @artemshumeiko  2 месяца назад

      нет. А зачем?

    • @zaskilovan
      @zaskilovan 2 месяца назад

      @@artemshumeiko На сколько я знаю, там синтаксис отличается от гитлабовского. Просто если у тебя уже проект на GitHub, если ли смысл переходить ради CI CD на GitLab

    • @artemshumeiko
      @artemshumeiko  2 месяца назад

      @@zaskilovan у вас на работе GitHub используется для хранения кода?

    • @zaskilovan
      @zaskilovan 2 месяца назад

      @@artemshumeiko Я пока только учусь, по этому ещё не встречался с GitLab

    • @artemshumeiko
      @artemshumeiko  2 месяца назад +1

      лучше сразу с него начинать, чтобы на работе меньше учить)

  • @0limjon
    @0limjon 2 месяца назад

    Спасибо за ролик. Вопрос а как выбрать url на который я буду деплоить? Я просто не заметил Nginx конфига

    • @artemshumeiko
      @artemshumeiko  2 месяца назад

      в этом ролике мы не настраиваем домен и ssl сертификаты
      Об этом я рассказывал в видео про деплой: ruclips.net/video/uLp-zgset00/видео.html

  • @prepin
    @prepin 2 месяца назад

    Артём, а ты смотрел на Kamal? Выглядит очень хорошо.

  • @rudinandrey
    @rudinandrey 2 месяца назад +5

    в целом да, сам процесс описан, но блин Docker in docker это извращение какое то же, нет ?!?!
    и в целом все равно не понятно осталось, как он решает что тот сервис надо погасить, перебилдить и запустить, или это за счет того что там docker compose делается?

    • @DimaTiunov
      @DimaTiunov 2 месяца назад

      Он ничего не решает без твоей команды
      Как опишешь в конфиге так и будет

    • @_test_test
      @_test_test 2 месяца назад +2

      да, это через компоуз разруливается. контейнер то один и тот же, поэтому он один убивает, а другой запускает

    • @alexandrfominenkov8390
      @alexandrfominenkov8390 2 месяца назад +1

      DIND это хорошо

    • @rudinandrey
      @rudinandrey 2 месяца назад

      @@alexandrfominenkov8390 чем? докер в докере, это виртуалка в виртуалке, что хорошего?

  • @ВладОо-ю7п
    @ВладОо-ю7п Месяц назад

    а как в гитлаб подтвердить аккаунт ?там требует выбрать страну России нет

  • @1995taunus
    @1995taunus 2 месяца назад

    Что такое джоба? Имеете ввиду джоб (job)? Сорри, совсем сленг не знаю.

  • @rinovttcompilations
    @rinovttcompilations 2 месяца назад +7

    При запуске пайплайна просит верифицироваться. Я выбрал способ через мобильный телефон, через РФ причём нельзя это сделать, арендовал номер, ввёл, в итоге меня перекинуло на способ верификации через кредитную карту, которой у меня нет. И что делать!

    • @kyatskovskiywork
      @kyatskovskiywork 2 месяца назад

      Ты используешь облачные раннеры гитлаба, надо использовать specify раннер который автор устанавливал в уроке
      И отключить переключатель Enable instance runners for this project в настройках проекта/ci-cd
      Остальную настройку очень долго объяснять, дальше уже сам. Но проблема в этом

    • @Nick87rus
      @Nick87rus 2 месяца назад +1

      Дружище, ты смог решить эту проблему?

    • @slimo8783
      @slimo8783 4 дня назад

      @@Nick87rus я решил, но развертыванием своего инстанса гитлаба :)

  • @DavidCohen-ux8tz
    @DavidCohen-ux8tz 2 месяца назад

    У мире DevOps, какие дистры Linux часто используются ? .

    • @artemshumeiko
      @artemshumeiko  2 месяца назад +1

      Ubuntu

    • @andrewzh4660
      @andrewzh4660 Месяц назад

      ох, кидайтесь в меня какашками, но мне больше нравится на базе RHEL. Для серверов AlmaLinux, для компа Fedora

  • @_test_test
    @_test_test 2 месяца назад +5

    чет селектел какой то дорогой.
    та же вдсина с сервером в рф существенно интереснее
    1 core
    1 Gb
    10 Gb
    32 Tb *
    2 ₽ / день
    69 ₽ / месяц
    Заказать

    • @naivrick9782
      @naivrick9782 2 месяца назад

      69руб?)

    • @_test_test
      @_test_test 2 месяца назад

      @@naivrick9782 так специально для извращенцев, которые любят с таким возиться. но если без шуток, то арендую там европейский сервер и оно действительно так дешево. для каких нибудь тг ботов подойдет, но что то сурьезное там хостить я б конечно не стал:D

    • @hsqlk
      @hsqlk 2 месяца назад +1

      Чет слишком дешево

    • @pinfold3201
      @pinfold3201 2 месяца назад +1

      согласен, далеко не самый дешевый сервис

    • @mideks
      @mideks 2 месяца назад

      это где это ты за 70 нашёл? звучит не очень надёжно

  • @netsdevs6210
    @netsdevs6210 2 месяца назад

    Странно, что там Руби появился. Гитлаб работает на Руби штоле?

    • @raufhashimov241
      @raufhashimov241 2 месяца назад

      Ну как работает, Гитлаб написан на рубине

  • @IamCutePanda
    @IamCutePanda Месяц назад

    Docker не хочет работать из СНГ

  • @nixaristix1819
    @nixaristix1819 2 месяца назад

    как-то это все бесплатно можно сделать, чтобы за аренду не платить? Чисто в целях самообучения

    • @artemshumeiko
      @artemshumeiko  2 месяца назад

      на собственном ПК запустить gitlab runner
      а вообще, сервер можно купить за 300 рублей, оно того стоит

  • @Wander_Candy
    @Wander_Candy 2 месяца назад

    Давай теперь CircleCI

  • @Alex.Shalda
    @Alex.Shalda 2 месяца назад

    Давай что-нибудь посложнее
    Хотя бы как убрать downtime

    • @artemshumeiko
      @artemshumeiko  2 месяца назад

      кубер в помощь

    • @MrMikhailDJ
      @MrMikhailDJ 2 месяца назад +2

      Если без кубера, то можно использовать nginx/haproxy в качестве балансировщика нагрузки и применять сине-зелёные развёртывания. Дожидаться, когда контейнер с новой версией приложения установится и будет доступ и маршрутизировать трафик на новый, удаляя старый. Что кубер что этот способ подразумевает какие-то навыки в области администрирования. Но даже так без кубера будет быстрее реализовать, если вообще не шаришь

    • @Alex.Shalda
      @Alex.Shalda 2 месяца назад +1

      @@MrMikhailDJ спасибо за совет ))

    • @igorolikov1997
      @igorolikov1997 2 месяца назад +1

      @@Alex.Shalda docker swarm вроде умеет бесшовный деплой делать

  • @ЮрійЄвтушенко-л6е
    @ЮрійЄвтушенко-л6е 2 месяца назад +2

    Очень интересное видео, интересно как бы объединить frontend и backend такой схемой но чтобы они были в разных репозиториях ибо docker-compose один , а репозитория два

    • @mideks
      @mideks 2 месяца назад +1

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

    • @ЮрійЄвтушенко-л6е
      @ЮрійЄвтушенко-л6е 2 месяца назад +1

      @@mideks о да надо подумать

    • @mideks
      @mideks 2 месяца назад

      а надо ли фронт и бэк разделять на два репо? 🤔🤔🤔🤔🤔🤔

    • @ЮрійЄвтушенко-л6е
      @ЮрійЄвтушенко-л6е 2 месяца назад

      @@mideks Тоже вопрос интересный

    • @garbuzkarapuz
      @garbuzkarapuz 2 месяца назад

      Да нафиг он нам ваш компост и не нужон

  • @biLLie_wiLLie
    @biLLie_wiLLie 2 месяца назад

    К сожалению не заработало у меня. Может что-то не так делаю

  • @stereovictoryasmr
    @stereovictoryasmr 2 месяца назад

    Не хватило примера использования env файла на реальном примере

    • @artemshumeiko
      @artemshumeiko  2 месяца назад

      приходите на курс, там подробно изучаем CI/CD: artemshumeiko.ru

  • @loshok17
    @loshok17 Месяц назад

    docker build в 2024 лютий пон

  • @pinfold3201
    @pinfold3201 2 месяца назад

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

  • @DrDiVra
    @DrDiVra 7 дней назад

    А теперь весело попробуйте написать код для многоуровневого сервиса хотя-бы под балансировку, где один микросервис под windows, другая под linux с сегментацией сети между микросервисами и их взаимодействием через DNS, чтобы в браузере на IP на заходить. А то, что тут показывают это не CI/CD - это жонглирование поверхностной терминологией для кэлхер джунов. И вот таких, кто сразу льё фичу на прод окружение обычно выгоняют в конце спринта на мороз.

  • @faritavtakhov5115
    @faritavtakhov5115 2 месяца назад +1

    Спасибо за видео, не хватает видео про мониторинг сервисов. Healthcheck, графана

  • @methamorph
    @methamorph 2 месяца назад

    да елы палы :-( опять про гитлаб, а если его нет :-)

    • @artemshumeiko
      @artemshumeiko  2 месяца назад

      А что у вас?

    • @sergeishmelev8000
      @sergeishmelev8000 2 месяца назад

      @@artemshumeiko у меня github, на gitlab не зарегаться нынче....

  • @ФилиппБондарев
    @ФилиппБондарев 2 месяца назад

    Может у меня плохое настроение, но какого дьявола были добавлены эти субтитры внизу? (Чёрная плашка, жёлтые буквы) Раздражает очень сильно.

    • @nickouteen
      @nickouteen 2 месяца назад

      в настройках берешь и отключаешь. В чем проблема?

    • @ФилиппБондарев
      @ФилиппБондарев 2 месяца назад

      @@nickouteen А ещё больше раздражают такие комментаторы... Будьте добры, перечитайте ещё раз, что я написал и начните смотреть видео...

    • @dzentsetsu
      @dzentsetsu 2 месяца назад +7

      Явно дело в настроении😅