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