Прокачайся в прохождении собеседований на Солвит: clck.ru/3C4EiT Вторая часть видео доступна только на Boosty: boosty.to/artemshumeiko/posts/e4fca0c7-d6ed-4c23-a13a-157cba05dfed Внутри: - Регистрация домена и поддомена - Получение SSL сертификатов - Настройка Nginx и поддомена
Гитхаб экшн и все такое) батник себе сделал который автоматом льет на гит и не сервер через ссх. Потому что гитхаб экшн не смог настроить. Не хочет подключаться и все тут.
Я: собираю свое первое react-приложение, привожу код в порядок не спеша перед деплоем, думаю выложить на хостинг за 1 час. Деплой: привет, как дела? как вовремя ты выложил этот ролик, спасибо большое!
Все оказалось гораздо проще, даже не пришлось так заморачиваться, просто забилдил приложение и выложил его в папку public_HTML на хостинге. Действительно, без бэка проще 😅
Артем, помимо того что ты талантливый молодой человек в программировании , так еще и прекрасная дикция и поставленная речь-это тоже дорогого стоит!!)) Удачи и процветания тебе, соратника я точно в твоем лице нашел!!!
это все для реального продакшена с большими нагрузками не подходит. На проде юзают docker swarm + portainer для управления + свой или чужой docker registry, а такое поднять уже не так просто и быстро :( То что показано в видео - это прям база, подходящая на время разработки проекта и для небольших проектов Артем в любом случае красаучег, пишу просто чтобы новички в курсе были)
После долгой работы с терминалом и чистым докер композ не могу никак начать работать с портейнер) бесит он меня))) люблю просто nano docker-compose.yml и погнали)
Спасибо, сам ломал голову как бэк и фронт соединить. А ранее деплоил написанный на Джанго сайт джинджой2, вот теперь попробую фронт на реакте раскатать.
Видос супер! И вовремя ) Как раз мне нужно делать деплой ТГ бота ) и я эту тему не очень люблю потому что не сильно понимаю ) Оформил ВМ машину на убунту, и хз к чему подступиться, а тут прям хоба и видос ) теперь знаю что буду делать )) Придется наверно и бусти подрубить, очень нужно https )
А как быть с БД? Её тоже нужно в докер запихивать? Если да, то как обеспечить целостность информации? И как рассчитать размер диска на хостинге, чтобы база внезапно не заполнила всё свободное пространство? Спасибо.
В целом изучил docker, сам и методом тыка, но если когда то у меня был этот видос, то процесс был бы без тех костылей которые я стукался. Го видос про k8s
Регулярные ошибки в терминологии в видосе (да есть и обычные фактические ошибки), слишком много деталей опущено, заявления про гитлаб вообще бомба Я давно в разработке и решил, что будет полезно глянуть (хотя в теме с контейнерами я варюсь очень давно) - в общем итоге четверть видео сидел с фейспалмом Зато рекламы, естественно, в достатке
@@artemshumeiko реверс-прокси терминология означающая перенаправление запросов там нет разницы поддомен это или URI. Про докерфайлы соглашусь, +как вариант можно хранить деплоить не через пуллы с гитхаба, а хранить готовые изображения кода в приватном dockerhub. +поэтри
Супер видео. Учил это сам по Chatgpt, он в принципе всё это умеет, хотя не с первого, мягко говоря, раза. Ну и конечно, не настолько оптимальные варианты даёт. Буду рад ответу на вопрос: нужен ли python, если пишется crud веб-приложение? Python ведь далеко не простой язык, если использовать его полноценно с тестированием и паттернами, простой он только для недо-программ. Может быть просто учить js, который это всё закрывает? Развернуть express сервер и не мучаться? Зато не нужно прокачивать два синтаксиса, спокойно использовать reduce вместо sum. Понимаю, что Вы преподаете Python и что с Вашей точки зрения это не так, был бы рад услышать аргументацию. В любом случае, огромное спасибо за Ваш труд.
Про reduce и sum не понял) Это разные функции и они встречаются во всех языках. В целом не особо важно, на чем писать crud - все языки подходят. Ваш вариант с разработкой бэка на js тоже хороший вариант
@@artemshumeiko let array = [1, 2, 3, 4, 5]; let sum = array.reduce((accumulator, currentValue) => accumulator + currentValue, 0); vs numbers = [10, 20, 30, 40] total = sum(numbers) на js нет простой суммы как в питоне, к этому трудно привыкнуть если уже набил руку.
Приятно слышать конструктивную приятную речь и видеть примеры, а то, что не видео чужие открываешь, там то картавый, что уши режет, либо воды столько что захлебываешься к середине. Тут мне все понравилось🎉
обязательно ли использовать докер? может будет версия видео с деплоем без докера?для лучшего понимания nginx. уже поднимал пару проектов на nginx пл инструкции, все вроде работает, но я не понимаю как, хотелось бы пробелы заполнить
О прикольно - єто то что я искал спасибо. я задеплоил приложение на vps хостинг без nginx и https - и без какой либо защиты от - его ломанули и увели базу. А кстати хорошая идея собирать сначала образы для прода - деплоить их в репозиторий а на проде только скачивать релизную версию (с релизным тегом) и ничего не пересобирать на проде?
Респект. Вопрос, правильно ли я понимаю что в докер файле фронта ты поднимаешь два контейнера, один с нодой, второй с нджинксом, а потом в докер композе ты поднимаешь ЕЩЕ один контейнер с нджинксом. Получается у тебя внешний запрос нджинкс из композа проксирует в сервис фронтенд, там его перехватывает ВТОРОЙ нджинкс и уже второй нджинкс отвечает файлами которые он получил из контейнера с нодой??
Привет! Спасибо за видео! Интересна тема SEO оптимизации реакта. Было бы интересно посмотреть видео от тебя. Я только разбираюсь -и как я понимаю - страницы рендерятся на стороне клиента использую js. И если поисковый бот не поддерживает js - то и читать ему нечего. Есть библиотеки для пререндеринга на стороне сервера, но в основном их используют для подготовки пререндеринга для поисковых ботов. Можно ли создавать готовые html страницы и хранить их в отдельной папке и обновлятт их при необходимости? Вообще есть ли такая практика или этот путь вникуда? Я имею ввиду сайт до 1000 страниц. У тебя есть видео про твой проект по подготовке к собеседованию и там затрагивается тема кеширования, но она не развернута. Естт ли смысл создавать готовые html страницы и хранить их в отдельной папке и отдавать клиенту готовый кешированный html прямо из статического файла? В этом естт определенные плюсы - заголовок last-modified будет корректен, файл кеширован, не нужен js для отображения контента. Сделай видео - какие варианты могут бытт для необходимости seo оптимизации. Спасибо
не, никто так html не хранит в сыром виде для этого используются ssr фреймворки типа Next (react), Nuxt (vue). Они отлично справляются с кэшированием, генерацией и отдачей HTML
Отличное, качественное видео! Все разжованно. Но вот мучает вопрос. В видео показан процесс деплоя исключительно при помощи docker и git. Вопрос, которому можно присудить "11/10 шапочек из фольги", адресован к докеру. А что если оно перестанет существовать? Во всякому случае docker hub. Как быть?
Так вместо Docker Hub можно использовать любой другой registry, например, с GitHub/GitLab или вообще свой развернуть на своём сервере. Тоже самое и с git, тот же GitLab можно поставить на свой сервер
А Docker сам по себе не исчезнет, он в open source. И даже если они удалят репозиторий, есть куча зеркал и форков. На крайняк есть podman со схожим CLI от Docker. А если серьёзно, то Docker уже настолько стал enterprise-решением и так проник во многие компании, что в ближайшее время точно не исчезнет
Ну вообще берём чистый линукс ставим докер, в докер caddy, в другой контейнер бэкэнд, биндим папку, заливаем файлы сайта и запускаем. Делов на минут 10 максимум
на зомро по темже конфигам 3,5 евро только оперативы 2 гига и постоянной памяти 20гигов nvme плюс сервер европейский, а если не нужен ipv4 то вообще 2,5 евро)))
@@artemshumeiko статика это статика. Node.js это полноценный язык программирования, а не статика. Нифига тут питон, вообще не понятно. В русском языке есть поле подходя слово, вместо билдить. 🤣
у девопсов потом всегда проблемы после того как разрабы сделают деплой) но лучше так чем разработка не будет этого знать а у разрабов наверное свои проблемы с девопсами)
@@skylinerdnbну в серьёзной разработке GitHub не используется. Если компания небольшая пилит какой-то несложный продукт, то можно и GitHub. Но в крупных компаниях никто не будет всё это гонять по интернету, там всё на локалке и на gitlab и тому подобных selfhost штуках.
я считаю, что компания не является большой/богатой/ответственной, если хранит код своих продуктов в GitHub, шаря свой код с другой компанией (в данном случае Microsoft)
Прокачайся в прохождении собеседований на Солвит: clck.ru/3C4EiT
Вторая часть видео доступна только на Boosty: boosty.to/artemshumeiko/posts/e4fca0c7-d6ed-4c23-a13a-157cba05dfed
Внутри:
- Регистрация домена и поддомена
- Получение SSL сертификатов
- Настройка Nginx и поддомена
Ждем больше видео по CI/Cd 😊
Гитхаб экшн и все такое) батник себе сделал который автоматом льет на гит и не сервер через ссх. Потому что гитхаб экшн не смог настроить. Не хочет подключаться и все тут.
Я: собираю свое первое react-приложение, привожу код в порядок не спеша перед деплоем, думаю выложить на хостинг за 1 час.
Деплой: привет, как дела?
как вовремя ты выложил этот ролик, спасибо большое!
фтафте фсвесточки )
если бэкенда нет, то и услояжнять всё так нет смысла. еще и дешевле на порядок будет
Все оказалось гораздо проще, даже не пришлось так заморачиваться, просто забилдил приложение и выложил его в папку public_HTML на хостинге. Действительно, без бэка проще 😅
Спасибо за разбор и объяснение. Полезное видео для понимания. Ждём CI/CD!
мне нравиться как Вы преподносите, темп,подход ,голос мне прям подходит! Очень интересно,приятно и спокойно,спасибо большое
Спасибо, отличное видео. Успехов в развитии!
Артем, помимо того что ты талантливый молодой человек в программировании , так еще и прекрасная дикция и поставленная речь-это тоже дорогого стоит!!)) Удачи и процветания тебе, соратника я точно в твоем лице нашел!!!
Ждем видео про работу с ci/cd, очень интересно увидеть и внедрить правильно автоматическую доставку кода на сервер и его сборку 🔥
Артём, мое почтение. Спасибо!
лайк поставил, теперь ждем видео про CI CD
Спасибо, очень познавательно!
БРО, я только смотрю видео по деплою django приложения. Вроде разобрался а вроде и нет, выхожу в реки и вижу это чудо..
Спасибо тебе, Артём,за все твои старания для нас. Ты очень крут!
Благодарю за видео. Я сам использую node/nuxt и vue, но ваше видео довольно полезно было посмотреть.
Очень интересно, грамотная подача, нет слов паразитов. Благодарю!
Thank a lot.Very usefull content.Good luck.
Do you practice your English?
СУПЕР!!!!!!! Спасибо! Жду еще видео!
Круто круто круто. Ничего лишнего. Быстро, без воды.
это все для реального продакшена с большими нагрузками не подходит. На проде юзают docker swarm + portainer для управления + свой или чужой docker registry, а такое поднять уже не так просто и быстро :(
То что показано в видео - это прям база, подходящая на время разработки проекта и для небольших проектов
Артем в любом случае красаучег, пишу просто чтобы новички в курсе были)
@@cyberianoidkubernetes это уже другой уровень)) и по времени ещё больше чем swarm
После долгой работы с терминалом и чистым докер композ не могу никак начать работать с портейнер) бесит он меня))) люблю просто nano docker-compose.yml и погнали)
Спасибо, за видео и ссылку на гитхаб😊, контент очень поучительный и полезный. Спасибо за проделанную работу.
Спасибо большое! Как всегда очень полезное видео. Хочется больший хронометраж с большим объяснением возможных проблем, предупрежден - значит вооружен
Самый понятный обзор который я когда-либо видел!!! Спасибо тебе, продолжай в том же духе)
Супер видео! Ждем cicd!
Очень редко пишу комментарии, но какой же у тебя полезный контент на канале, хоть я и не Python-разработчик. Спасибо)
где же ты был пару дней назад, мы ебались целый день с этим деплоем, видео безусловно очень полезное 👍
знакомо, надо деплоить, а мы ебемся всем офисом друг с другом
Супер! То что было нужно.
Спасибо за урок, научился копировать.
Спасибо, сам ломал голову как бэк и фронт соединить.
А ранее деплоил написанный на Джанго сайт джинджой2, вот теперь попробую фронт на реакте раскатать.
спасибо за информацию, ждем про ci/cd
12:24 Кстати, что бы быстро копировать кусок кода, можно выделить несколько строк, и нажать: Shift + Alt + Стрелочка вниз или вверх
Очень приятный и интуитивный мини-мастеркласс вышел :)
Лайк в поддержку! Смотрел с интересом) Единственное, я бы наверно зависимости ставил с npm ci. Чтобы внезапно не отпало ничего в один день)
Вчера я выяснил, что мне нужен, SSL и nginx, и вот сразу же видео от моего любимого Артёма! ❤🎉🎉
🔥 спасибо за полезный туториал
бро, ты лучший!
Спасибо. Видео отличное. Как база самое то.
Это на самом деле легче чем кажется... Цитирую аффтора: "Мы не будем вдаваться в подробности что здесь происходит, что здесь написано")))
Спасибо за Ваш труд! Коммент в поддержку канала.
хорошее видео. Всё что нужно в одном месте!
Отличное видео!
Я тоже больше люблю через поддомен деплоиться.
Видос супер! И вовремя ) Как раз мне нужно делать деплой ТГ бота ) и я эту тему не очень люблю потому что не сильно понимаю ) Оформил ВМ машину на убунту, и хз к чему подступиться, а тут прям хоба и видос ) теперь знаю что буду делать ))
Придется наверно и бусти подрубить, очень нужно https )
жду на бусти)
ChatGPT и пару вопросов решит твою проблему воин
@@dkushka Я знаю, но с его видосов норм заходит понимаете) а если в теме не совсем шаришь, то жпт испепелит твой комп
Хоть и не python разработчик, подпишусь
🔥🔥🔥
очень хорошо рассказываешь. как раз в голове не укладывалось что с этим делать. есть еще апач, походу это +- то же скмое
Апач раньше использовали вместо nginx, но последние лет 5 очень многие перешли на nginx
Невероятно, супер полезно!
А как быть с БД? Её тоже нужно в докер запихивать? Если да, то как обеспечить целостность информации? И как рассчитать размер диска на хостинге, чтобы база внезапно не заполнила всё свободное пространство?
Спасибо.
Там же volume минтишь. Если не нравится докер, можешь просто установить тот же psql прямиком на машину.
Спасибо за видео!
Очень качественное видео, спасибо!!
Отличное видео, но опаздал на год😅 самому пришлось всё это расгрести и запустить
Бодро! Круто
Классно видео! Объяснил все и простыми словами плюс рабочий пример. Я новичок в разработке, но, можно ли видео про работу с ssh?
Здравствуйте, возможно вам будет интересно сделать курс по Postgresql. Очень хотелось бы
В целом изучил docker, сам и методом тыка, но если когда то у меня был этот видос, то процесс был бы без тех костылей которые я стукался. Го видос про k8s
Классная подача 👍
Спасибо
Полезный видос, спасибо.
Регулярные ошибки в терминологии в видосе (да есть и обычные фактические ошибки), слишком много деталей опущено, заявления про гитлаб вообще бомба
Я давно в разработке и решил, что будет полезно глянуть (хотя в теме с контейнерами я варюсь очень давно) - в общем итоге четверть видео сидел с фейспалмом
Зато рекламы, естественно, в достатке
так какие ошибки то?)
@@artemshumeiko а я уже забил, подумав, что коммент не загрузился. А он в итоге аж задвоился…
P.s. Про ошибки я вернусь позже, пересмотрев
@@artemshumeiko реверс-прокси терминология означающая перенаправление запросов там нет разницы поддомен это или URI. Про докерфайлы соглашусь, +как вариант можно хранить деплоить не через пуллы с гитхаба, а хранить готовые изображения кода в приватном dockerhub. +поэтри
@@OriginalInconsistent Two weeks later....
Спасибо, очень полезно
Качественный контент! 👍
Приятная подача материала
👍
Привет, нетворк сам создается по стандарту, его не обязательно прописывать
топ!
Супер видео. Учил это сам по Chatgpt, он в принципе всё это умеет, хотя не с первого, мягко говоря, раза. Ну и конечно, не настолько оптимальные варианты даёт. Буду рад ответу на вопрос: нужен ли python, если пишется crud веб-приложение? Python ведь далеко не простой язык, если использовать его полноценно с тестированием и паттернами, простой он только для недо-программ. Может быть просто учить js, который это всё закрывает? Развернуть express сервер и не мучаться? Зато не нужно прокачивать два синтаксиса, спокойно использовать reduce вместо sum. Понимаю, что Вы преподаете Python и что с Вашей точки зрения это не так, был бы рад услышать аргументацию. В любом случае, огромное спасибо за Ваш труд.
Про reduce и sum не понял) Это разные функции и они встречаются во всех языках.
В целом не особо важно, на чем писать crud - все языки подходят. Ваш вариант с разработкой бэка на js тоже хороший вариант
@@artemshumeiko
let array = [1, 2, 3, 4, 5];
let sum = array.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
vs
numbers = [10, 20, 30, 40]
total = sum(numbers)
на js нет простой суммы как в питоне, к этому трудно привыкнуть если уже набил руку.
Приятно слышать конструктивную приятную речь и видеть примеры, а то, что не видео чужие открываешь, там то картавый, что уши режет, либо воды столько что захлебываешься к середине. Тут мне все понравилось🎉
CORS не должен быть проблемой (и не требует настройки), если фронт и бэк висят на одном домене.
Хотелось бы узнать об оптимизации такой nginx сборки
обязательно ли использовать докер? может будет версия видео с деплоем без докера?для лучшего понимания nginx. уже поднимал пару проектов на nginx пл инструкции, все вроде работает, но я не понимаю как, хотелось бы пробелы заполнить
Расскажи про ci/di
О прикольно - єто то что я искал спасибо. я задеплоил приложение на vps хостинг без nginx и https - и без какой либо защиты от - его ломанули и увели базу.
А кстати хорошая идея собирать сначала образы для прода - деплоить их в репозиторий а на проде только скачивать релизную версию (с релизным тегом) и ничего не пересобирать на проде?
👍
спасибо за видео! А что во 2й части на бусти? Чем отличается от этого видео? Там показан ci/cd и автоматизирована заливка на сервер изменений из гита?
Во второй части на Boosty рассмотрены
- Регистрация домена и поддомена
- Получение SSL сертификатов
- Настройка Nginx и поддомена
30-40 строчек кода это 3-4 покрашенных кнопки на фронтенде :D
А если ещё нужно привязать оьраз с бд postgres,как быть ?)
ну да, по CI/CD было бы интересно, без перерыва.
ждем видео по ci cd
Почему первый nginx направляет запрос на вторую? Нельзя чтобы первый сразу отдал статические файлы?
Можно, но в условиях деплоя через докер так легче
Респект.
Вопрос, правильно ли я понимаю что в докер файле фронта ты поднимаешь два контейнера, один с нодой, второй с нджинксом, а потом в докер композе ты поднимаешь ЕЩЕ один контейнер с нджинксом. Получается у тебя внешний запрос нджинкс из композа проксирует в сервис фронтенд, там его перехватывает ВТОРОЙ нджинкс и уже второй нджинкс отвечает файлами которые он получил из контейнера с нодой??
нода не поднимается, она используется только для сборки статики
ответ на ваш вопрос - да
@@artemshumeiko спасибо 👌
Так ведь reverse proxy будет в обоих случаях. Это же не зависит от способа обращения к api.
да, ошибся
Привет! Спасибо за видео! Интересна тема SEO оптимизации реакта. Было бы интересно посмотреть видео от тебя. Я только разбираюсь -и как я понимаю - страницы рендерятся на стороне клиента использую js. И если поисковый бот не поддерживает js - то и читать ему нечего. Есть библиотеки для пререндеринга на стороне сервера, но в основном их используют для подготовки пререндеринга для поисковых ботов. Можно ли создавать готовые html страницы и хранить их в отдельной папке и обновлятт их при необходимости? Вообще есть ли такая практика или этот путь вникуда? Я имею ввиду сайт до 1000 страниц. У тебя есть видео про твой проект по подготовке к собеседованию и там затрагивается тема кеширования, но она не развернута. Естт ли смысл создавать готовые html страницы и хранить их в отдельной папке и отдавать клиенту готовый кешированный html прямо из статического файла? В этом естт определенные плюсы - заголовок last-modified будет корректен, файл кеширован, не нужен js для отображения контента. Сделай видео - какие варианты могут бытт для необходимости seo оптимизации. Спасибо
не, никто так html не хранит в сыром виде
для этого используются ssr фреймворки типа Next (react), Nuxt (vue). Они отлично справляются с кэшированием, генерацией и отдачей HTML
чет дороговат сервер, у меня vpn крутиться на vps в Нидерландах за 199р в месяц, а тут 35р в день.
подскажи сервис где ты покупал этот впс ?
@@Agent_python меня тоже пните когда скажут
Это облачный сервер потому и дороже. У Selectel VPS тоже есть и они подешевле уже.
Отличное, качественное видео! Все разжованно. Но вот мучает вопрос. В видео показан процесс деплоя исключительно при помощи docker и git. Вопрос, которому можно присудить "11/10 шапочек из фольги", адресован к докеру. А что если оно перестанет существовать? Во всякому случае docker hub. Как быть?
Вопрос специально холеварный, ибо например я любитель деплоить руками/скриптами на хост. А также блокировку по гео-положению никто не отменял ;)
Так вместо Docker Hub можно использовать любой другой registry, например, с GitHub/GitLab или вообще свой развернуть на своём сервере. Тоже самое и с git, тот же GitLab можно поставить на свой сервер
А Docker сам по себе не исчезнет, он в open source. И даже если они удалят репозиторий, есть куча зеркал и форков. На крайняк есть podman со схожим CLI от Docker. А если серьёзно, то Docker уже настолько стал enterprise-решением и так проник во многие компании, что в ближайшее время точно не исчезнет
ДЕПЛОЙ
CI/CD оч актуально, особенно через Гитлаб
услышал, сделаю видео)
Ну вообще берём чистый линукс ставим докер, в докер caddy, в другой контейнер бэкэнд, биндим папку, заливаем файлы сайта и запускаем. Делов на минут 10 максимум
видео по CI/Cd
Ci/Cd video would be nice to have
Ждем видео по CI/CD 😀
маловато придыханий и вздохов ахов ))
У селектер 1 ядро 1 Г памяти 5Г диска стоит 1000 руб :) это что за жадность
на зомро по темже конфигам 3,5 евро только оперативы 2 гига и постоянной памяти 20гигов nvme плюс сервер европейский, а если не нужен ipv4 то вообще 2,5 евро)))
нод альпин ))
По моему кто то, неправильно использует ноду. Какие статичные файлы?
а как вы билдите свою статику?
@@artemshumeiko статика это статика. Node.js это полноценный язык программирования, а не статика. Нифига тут питон, вообще не понятно.
В русском языке есть поле подходя слово, вместо билдить. 🤣
а кроме бусти есть другие варианты для зарубежных подписчиков?
Можно криптой оплатить. Напишите в телеграм: t.me/artem_shumeiko_support
одно не понял почему самого Nginx не устоновили на сервер?
Установили. В docker compose он есть, значит и на сервере есть)
Давай теперь с терраформ
блин, я потратил недели 2 чтобы самому допетрить до примерно такого же. Вернитесь на 2 недели в прошлое и киньте мне это видео ктонибудь, плиз)
Хочу ci/cd
один гиг оперативки! за косарь! мы так все в трубу вылетим
у девопсов потом всегда проблемы после того как разрабы сделают деплой) но лучше так чем разработка не будет этого знать
а у разрабов наверное свои проблемы с девопсами)
Зачем репо если есть scp?
Ахахаха
В реальной разработке всегда используется Gitlab? Т.е. все проекты на гитхабе это не реальная разработка?
Я работал в компании, где гитхаб юзали
@@Chel1k7 я в такой же работаю. Просто он это с такой уверенностью сказал, что я аж в ступор попал
@@skylinerdnbну в серьёзной разработке GitHub не используется. Если компания небольшая пилит какой-то несложный продукт, то можно и GitHub. Но в крупных компаниях никто не будет всё это гонять по интернету, там всё на локалке и на gitlab и тому подобных selfhost штуках.
я считаю, что компания не является большой/богатой/ответственной, если хранит код своих продуктов в GitHub, шаря свой код с другой компанией (в данном случае Microsoft)
да, гитлаб можно развернуть локально, поэтому он и используется в большинстве своем