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