🔥 Забирай разбор production Python кода от меня бесплатно, напиши слово ПРОДАКШН в тг-боте: t.me/ArtemShumeikoBot 🎓 Обучение самым современным и востребованным технологиям, которые нужны backend разработчику, на практике: artemshumeiko.ru
Подскажите, как раннер на этапе test видит образ my-backend-image, собранный на этапе build, если мы его никуда не выгружаем и в gitlab registry его тоже нет?
Сделай еще сжатый обзор github actions, ибо для большинства начинающих будет большим плюсом, если в пет проекте для собеса будет ci\cd) Я думаю там есть некоторые различия, в частности по раннеру
Спасибо, хорошее видео. На мой взгляд, необходимо пояснять, по какой причине мы выбираем настройки: 11:50 runner executor, 12:08 docker:dind, 12:30 volumes. По крайней мере кратко, иначе это просто некий magic code. Репозиторий проекта где-то доступен?
@@artemshumeiko На сколько я знаю, там синтаксис отличается от гитлабовского. Просто если у тебя уже проект на GitHub, если ли смысл переходить ради CI CD на GitLab
Спасибо за видео! У меня вопрос: Не проще ли запускать тесты до сборки (build)? Я смотрю на примера фронта, build-которого создаст бандл для отдачи клиенту, в нем (в бандле, который получился после build) тесты уже не прогонишь, т.е. тесты нужно прогонять все равно отдельно, вне бандла и, если тесты упадут, то build придется перегонять заново после внесения изменений. Как будто прогнав вначале тесты мы сэкономим время, или это только на фронте так работает?
Полагаю, так сделано просто для примера, как это работает. В рабочем проекте массив stages был бы примерно в таком порядке - prepare, cache, test, code-scan, migration, build, clean-up, appsec, deploy, release
А на сколько норм запускать gitlab-runer на проде? Если в более реальных условиях, если есть пользователи которые пользуются приложением, в этот момент билд докера и прогон тестов-линтеров создают повышенную нагрузку на сервер.
Решение: просто использовать отдельный сервер под сборку. Я в Gitlab CI плохо понимаю, но эти раннеры по своей сути аналог агентов в Jenkins. Обычно билд сервер с агентом отдельный используется, где происходит сборка и деплой на целевые сервера, например, продовский с приложением
Ни на сколько. Смысл запуска runner на своём сервере только в экономии средств и настройке окружения. Облачная версия со всем справляется, у неё есть только квота минут. Автор видео не осилил сборку образа в облаке и загрузку его в gitlab registry...
Прям согласен с тобой, тоже обожаю Docker compose) Без него проектов меня не бывает) В крайностях если только если ручками запускать с помощью systemctl Было бы интересно узнать, какие практики ты используешь для защиты сервера и уязвимостей докера
в целом да, сам процесс описан, но блин Docker in docker это извращение какое то же, нет ?!?! и в целом все равно не понятно осталось, как он решает что тот сервис надо погасить, перебилдить и запустить, или это за счет того что там docker compose делается?
При запуске пайплайна просит верифицироваться. Я выбрал способ через мобильный телефон, через РФ причём нельзя это сделать, арендовал номер, ввёл, в итоге меня перекинуло на способ верификации через кредитную карту, которой у меня нет. И что делать!
Ты используешь облачные раннеры гитлаба, надо использовать specify раннер который автор устанавливал в уроке И отключить переключатель Enable instance runners for this project в настройках проекта/ci-cd Остальную настройку очень долго объяснять, дальше уже сам. Но проблема в этом
@@naivrick9782 так специально для извращенцев, которые любят с таким возиться. но если без шуток, то арендую там европейский сервер и оно действительно так дешево. для каких нибудь тг ботов подойдет, но что то сурьезное там хостить я б конечно не стал:D
Если без кубера, то можно использовать nginx/haproxy в качестве балансировщика нагрузки и применять сине-зелёные развёртывания. Дожидаться, когда контейнер с новой версией приложения установится и будет доступ и маршрутизировать трафик на новый, удаляя старый. Что кубер что этот способ подразумевает какие-то навыки в области администрирования. Но даже так без кубера будет быстрее реализовать, если вообще не шаришь
Очень интересное видео, интересно как бы объединить frontend и backend такой схемой но чтобы они были в разных репозиториях ибо docker-compose один , а репозитория два
хм, ну по идеи можно собирать контейнеры отдельно друг от друга, и в докер композе уже подгружать с докерхаба или с другого сервиса с контейнерами. другой вопрос где тогда размещать композ... хз, может даже в отдельном репо?
А теперь весело попробуйте написать код для многоуровневого сервиса хотя-бы под балансировку, где один микросервис под windows, другая под linux с сегментацией сети между микросервисами и их взаимодействием через DNS, чтобы в браузере на IP на заходить. А то, что тут показывают это не CI/CD - это жонглирование поверхностной терминологией для кэлхер джунов. И вот таких, кто сразу льё фичу на прод окружение обычно выгоняют в конце спринта на мороз.
🔥 Забирай разбор production Python кода от меня бесплатно, напиши слово ПРОДАКШН в тг-боте: t.me/ArtemShumeikoBot
🎓 Обучение самым современным и востребованным технологиям, которые нужны backend разработчику, на практике: artemshumeiko.ru
Удивительно, но для меня это было одно из самых полезных видео, ибо практика прекрвсная. Спасибо, буду ждать еще видео :)
Просто превосходно. За 20 мин понял больше чем читал.
Артем, видео очень интересное и познавательное, спасибо за ваш труд, хотелось бы еще послушать про Jenkins и посмотреть, как его настраивать 🔥🔥🔥🔥
Черт, ты объясняешь довольно просто и ясно. Жаль пока не выполнил это
Спасибо за Ваш труд! Коммент в поддержку канала.
красава! коротко и четко! mvp!
круто, теперь ждем k8s
Ппц ты монстр!)) 👍👍👍
Огонь, спасибо! Выглядит лихо. Я пока только учусь. git + pycharm. Буду учиться вкручивать это все в ci cd
Видео просто кайф, очень быстро и информативно
Спасибо большое за такой крутой видос! Ждал этого очень!!! 🎉 Может покажусь ленивым, но было бы славно, если бы была сборочка материала по теме 🥹
Лучший! Спасибо большое за знания!
Подскажите, как раннер на этапе test видит образ my-backend-image, собранный на этапе build, если мы его никуда не выгружаем и в gitlab registry его тоже нет?
Специалис😃😃т ..! )) зачем sudo пишешь в командах под рутом? Лайк!
Великолепно!
👏👏👏👍🔥
несколько лет делала такие процессы - только сейчас узнала, что это оказывается CI/CD 😂
Как всегда на высоте Артём.
Интересно а как добавить .env при всем этом деплое?
Спасибо. Полезно
Ну с таким пайпом даже до тестового не доедешь )))
после пуш, фикс сразу попадает в пайплайн и потом в дев или майн ветку для клиента, если пайплайн по ci/cd норм прошло?
"поняли" - ничего мы не поняли, но ознакомились.
Сделай еще сжатый обзор github actions, ибо для большинства начинающих будет большим плюсом, если в пет проекте для собеса будет ci\cd)
Я думаю там есть некоторые различия, в частности по раннеру
Зачем? Кто использует GitHub actions в реальном мире?
@@artemshumeiko я) на самом деле много компаний используют github actions
@@artemshumeikoа что с ним не так? Как быть если проект изначально хранится на GitHub?
@@АнтонВитальевич-т7к перенеси на гитлаб
@@LionKingheh так а зачем всё-таки, если на GitHub есть все тоже самое? Чем он отличается или хуже?
Очень круто!
Большое спасибо!
Круто, спасибо!
Артём, спасибо вам. Отличный материал и подача. Где взять такую же классную футболку?😂
uniqlo :)
Давай видео про кубер
+++
+++
Спасибо, хорошее видео.
На мой взгляд, необходимо пояснять, по какой причине мы выбираем настройки: 11:50 runner executor, 12:08 docker:dind, 12:30 volumes. По крайней мере кратко, иначе это просто некий magic code.
Репозиторий проекта где-то доступен?
Да, в описании есть ссылка на репозиторий
@@artemshumeiko Поясните указанные моменты?
Чувствую, ответа мы не дождёмся...
Selectel бесплатно дают белый IP адрес, что-то не видел его в общей стоимости?
а как в гитлаб подтвердить аккаунт ?там требует выбрать страну России нет
Отличное видео! А будет такое же, но по настройке Github Actions ?
нет. А зачем?
@@artemshumeiko На сколько я знаю, там синтаксис отличается от гитлабовского. Просто если у тебя уже проект на GitHub, если ли смысл переходить ради CI CD на GitLab
@@zaskilovan у вас на работе GitHub используется для хранения кода?
@@artemshumeiko Я пока только учусь, по этому ещё не встречался с GitLab
лучше сразу с него начинать, чтобы на работе меньше учить)
Сделай видео как добиться деплоймента без отключение или перезапуска сервиса
Спасибо за видео! У меня вопрос:
Не проще ли запускать тесты до сборки (build)?
Я смотрю на примера фронта, build-которого создаст бандл для отдачи клиенту, в нем (в бандле, который получился после build) тесты уже не прогонишь, т.е. тесты нужно прогонять все равно отдельно, вне бандла и, если тесты упадут, то build придется перегонять заново после внесения изменений.
Как будто прогнав вначале тесты мы сэкономим время, или это только на фронте так работает?
Полагаю, так сделано просто для примера, как это работает.
В рабочем проекте массив stages был бы примерно в таком порядке - prepare, cache, test, code-scan, migration, build, clean-up, appsec, deploy, release
Спасибо большое за крутое видео, сделай пожалуйста ci/cd на проектах php (laravel/yii2)
Артем Python разработчик. Вам к другому спецу надо обратиться😊
А на сколько норм запускать gitlab-runer на проде? Если в более реальных условиях, если есть пользователи которые пользуются приложением, в этот момент билд докера и прогон тестов-линтеров создают повышенную нагрузку на сервер.
Решение: просто использовать отдельный сервер под сборку. Я в Gitlab CI плохо понимаю, но эти раннеры по своей сути аналог агентов в Jenkins. Обычно билд сервер с агентом отдельный используется, где происходит сборка и деплой на целевые сервера, например, продовский с приложением
Ни на сколько. Смысл запуска runner на своём сервере только в экономии средств и настройке окружения. Облачная версия со всем справляется, у неё есть только квота минут. Автор видео не осилил сборку образа в облаке и загрузку его в gitlab registry...
Прям согласен с тобой, тоже обожаю Docker compose)
Без него проектов меня не бывает)
В крайностях если только если ручками запускать с помощью systemctl
Было бы интересно узнать, какие практики ты используешь для защиты сервера и уязвимостей докера
Что такое джоба? Имеете ввиду джоб (job)? Сорри, совсем сленг не знаю.
да
У мире DevOps, какие дистры Linux часто используются ? .
Ubuntu
ох, кидайтесь в меня какашками, но мне больше нравится на базе RHEL. Для серверов AlmaLinux, для компа Fedora
Хотелось бы больше видео по настройке ci/cd.
Теги, ветки, конфигурационные файлы разных веток)
Спасибо за ролик👍
Спасибо за ролик. Вопрос а как выбрать url на который я буду деплоить? Я просто не заметил Nginx конфига
в этом ролике мы не настраиваем домен и ssl сертификаты
Об этом я рассказывал в видео про деплой: th-cam.com/video/uLp-zgset00/w-d-xo.html
Подскажи, ты пользуешься мышкой или тачпадом? Если мышкой, то какой?
Допустим он скажет что x7, дальше что? Пойдешь в магазин за такой же?
мышкой logitech, покупал на озоне за 2к
я не придаю значение клаве и мышке
Артём, а ты смотрел на Kamal? Выглядит очень хорошо.
как-то это все бесплатно можно сделать, чтобы за аренду не платить? Чисто в целях самообучения
на собственном ПК запустить gitlab runner
а вообще, сервер можно купить за 300 рублей, оно того стоит
в целом да, сам процесс описан, но блин Docker in docker это извращение какое то же, нет ?!?!
и в целом все равно не понятно осталось, как он решает что тот сервис надо погасить, перебилдить и запустить, или это за счет того что там docker compose делается?
Он ничего не решает без твоей команды
Как опишешь в конфиге так и будет
да, это через компоуз разруливается. контейнер то один и тот же, поэтому он один убивает, а другой запускает
DIND это хорошо
@@alexandrfominenkov8390 чем? докер в докере, это виртуалка в виртуалке, что хорошего?
При запуске пайплайна просит верифицироваться. Я выбрал способ через мобильный телефон, через РФ причём нельзя это сделать, арендовал номер, ввёл, в итоге меня перекинуло на способ верификации через кредитную карту, которой у меня нет. И что делать!
Ты используешь облачные раннеры гитлаба, надо использовать specify раннер который автор устанавливал в уроке
И отключить переключатель Enable instance runners for this project в настройках проекта/ci-cd
Остальную настройку очень долго объяснять, дальше уже сам. Но проблема в этом
Дружище, ты смог решить эту проблему?
@@Nick87rus я решил, но развертыванием своего инстанса гитлаба :)
Docker не хочет работать из СНГ
Странно, что там Руби появился. Гитлаб работает на Руби штоле?
Ну как работает, Гитлаб написан на рубине
чет селектел какой то дорогой.
та же вдсина с сервером в рф существенно интереснее
1 core
1 Gb
10 Gb
32 Tb *
2 ₽ / день
69 ₽ / месяц
Заказать
69руб?)
@@naivrick9782 так специально для извращенцев, которые любят с таким возиться. но если без шуток, то арендую там европейский сервер и оно действительно так дешево. для каких нибудь тг ботов подойдет, но что то сурьезное там хостить я б конечно не стал:D
Чет слишком дешево
согласен, далеко не самый дешевый сервис
это где это ты за 70 нашёл? звучит не очень надёжно
Давай теперь CircleCI
docker build в 2024 лютий пон
К сожалению не заработало у меня. Может что-то не так делаю
Давай что-нибудь посложнее
Хотя бы как убрать downtime
кубер в помощь
Если без кубера, то можно использовать nginx/haproxy в качестве балансировщика нагрузки и применять сине-зелёные развёртывания. Дожидаться, когда контейнер с новой версией приложения установится и будет доступ и маршрутизировать трафик на новый, удаляя старый. Что кубер что этот способ подразумевает какие-то навыки в области администрирования. Но даже так без кубера будет быстрее реализовать, если вообще не шаришь
@@MrMikhailDJ спасибо за совет ))
@@Alex.Shalda docker swarm вроде умеет бесшовный деплой делать
Не хватило примера использования env файла на реальном примере
приходите на курс, там подробно изучаем CI/CD: artemshumeiko.ru
а я всегда в кубере все разворачиваю, хоть и понимаю что в большинстве случаев это излишне. Хз почему
senior type shit :)
да елы палы :-( опять про гитлаб, а если его нет :-)
А что у вас?
@@artemshumeiko у меня github, на gitlab не зарегаться нынче....
Спасибо за видео, не хватает видео про мониторинг сервисов. Healthcheck, графана
Очень интересное видео, интересно как бы объединить frontend и backend такой схемой но чтобы они были в разных репозиториях ибо docker-compose один , а репозитория два
хм, ну по идеи можно собирать контейнеры отдельно друг от друга, и в докер композе уже подгружать с докерхаба или с другого сервиса с контейнерами. другой вопрос где тогда размещать композ... хз, может даже в отдельном репо?
@@mideks о да надо подумать
а надо ли фронт и бэк разделять на два репо? 🤔🤔🤔🤔🤔🤔
@@mideks Тоже вопрос интересный
Да нафиг он нам ваш компост и не нужон
Может у меня плохое настроение, но какого дьявола были добавлены эти субтитры внизу? (Чёрная плашка, жёлтые буквы) Раздражает очень сильно.
в настройках берешь и отключаешь. В чем проблема?
@@nickouteen А ещё больше раздражают такие комментаторы... Будьте добры, перечитайте ещё раз, что я написал и начните смотреть видео...
Явно дело в настроении😅
А теперь весело попробуйте написать код для многоуровневого сервиса хотя-бы под балансировку, где один микросервис под windows, другая под linux с сегментацией сети между микросервисами и их взаимодействием через DNS, чтобы в браузере на IP на заходить. А то, что тут показывают это не CI/CD - это жонглирование поверхностной терминологией для кэлхер джунов. И вот таких, кто сразу льё фичу на прод окружение обычно выгоняют в конце спринта на мороз.