Для средних сервисов это - копипаст и лапшекод. Да, плохая абстракция хуже копипаста, но если она грамотная это ок, даже если можно и без нее.
Много классов, мало классов, это такое себе мерило. Я видел обратную сторону, написали в 10 строчек сервис, и потом заюзали его в 100 местах. А потом поняли, что получился бетон.
Осознанный нейминг + четкие границы контекстов + нормальная модульность
да, вариант, мне правда не нравится, т.к. он не так красиво ложится на связку с докером, + "числовые" домены тоже не очень понятны.
я так понял, вы предлагаете такую схему {PORT}.dev{X}.example.com -> 10.0.0.X:PORT какой проект, какой дев, не ясно. + тут с wildcard сертификатами сложнее становится
мне лучше понимать когда такой тип домена cms-vasiliy.example.com api-cms-vasily.example.com
proxy frp находится в связке контейнеров. Поднимая проект (docker-compose up) поднимаешь все сразу: тунель, nginx, php, sql. после того как поработал, сделал docker-compose down и убил и прокси и nginx и тд.
ненужно править nginx серверный, в той статье что вы поделились, проксирование на 10.99.0.2:8443; это совсем не гибко, пока ты один и у тебя всегда проект будет на 8443 то пойдет, но так не бывает, в моей реальности :)
открывать порты nginx (docker) ненужно, все проксируется внутри сети докер-проекта. Т.е. вообще нет открытых портов
я не писал, но у FRP можно создать любой тунель по tcp, ssh, + куча плагинов есть
самое главное, настройка не на сервере происходит, а на клиенте. На клиенте указываешь какой хост юзаешь, в какой контейнер проксируешь, на какой порт, какой тип проксирования.
В статье не писал, все это в репе есть, настройка на клиенте (внутри докер контейнера) proxy
Допустим у вас есть сервер, на нем Nginx + VPN. У вас два разработчика в команде. Вы решили, что
*.dev1.example.com будет проксировать запрос на 10.0.0.1
*.dev2.example.com будет проксировать запрос на 10.0.0.2
Когда придет новый дев, нужно будет в конфиге Nginx правки вносить. Не проблема, но зачем? если с FRP управление какой поддомен куда вести будет уходит на плечи клиента.
Хорошо, будем руками править на reverse nginx, но дальше, все запросы для dev1 идут на 10.0.0.1, у меня развернуто 2 проекта, допустим:
site, admin-site, static-site, api-site - это 1 docker-compose
site2, admin-site2, static-site2, api-site2 - это 2 docker-compose
теперь стоит задача, создать маршруты локально,
site.dev1.example.com -> 10.0.0.1 -> docker container site
эта статья, сработала для меня, как сеанс терапии :)
Становясь старше, я стал замечать, что мои утверждения часто бывают ложными или требующие корректировки. Когда я это осознал, утверждать стал меньше, тоже слушаю молча. Но смотря на окружающих стали появляться комплексы. Впрочем я объяснял себе это, но когда читаешь что это ок, немного легче :)
Прочел. Отличная книга. Для меня она больше была про стресс в разработке. Почему он приходит и что с этим делать. Так же что TDD это не про тесты, это про разработку.
Сколько гневных комментов… Ничего плохого в разделении на сервисы при такой не большой посещаемости нет. И то что два человека на сервис, в этом тоже есть свои плюсы. С узкой ответственностью можно глубже «нырнуть». Если процесс коммуникации хороший, то вероятно качество каждого сервиса будет выше и системы в целом выше.
Очень согласен с автором. Код мы должны писать для людей, хоть и использует его машина. Весь мир сейчас движется к упрощению подачи информации, особенно это хорошо знают маркетологи, которые понимают, что чем сложнее и продукт заходит в голову клиента, тем меньше конверсия!!! Ведь так же и с кодом. Если бы программист который получает легаси имел бы выбор, чаще он бы отказался ковыряться в говнокоде, где методы-контроллеры на 500 строк. И на языке маркетолога, это потерянный клиент.
Спасибо!
Интересно как сработало видео с Гейтсом…
Начал смореть,
Вижу 20 мин…
Да ну… не хочу…
прочел что цепляет с с 4 минуты, посмотрел…
досмотрел до конца))
Я о программировании, с музыкой немного по другому. Но есть параллели.
Это если конкретно про Гарвард говорить.
Речь о хорошем универе
Речь идет о том, что вы утверждаете, что самообразование, фактически, невозможно.
Я утверждаю что для большенства самообразование не даст системных знаний. И почти всегда это похоже будет на дворогого гитариста, который знает 3 аккорда и называет себя маестро.
И да, никто из перечисленных мной музыкантов (и композиторов) образования уровня Гарварда
В этом смысле сранивать музыку и точные науки не правильно
Т.е. контракт может использовать только абстрактный класс?
Может EntityManagerInterface создан потому что EntityManager можно задекорировать?
Это все верно только для микросервисов.
Для средних сервисов это - копипаст и лапшекод. Да, плохая абстракция хуже копипаста, но если она грамотная это ок, даже если можно и без нее.
Много классов, мало классов, это такое себе мерило. Я видел обратную сторону, написали в 10 строчек сервис, и потом заюзали его в 100 местах. А потом поняли, что получился бетон.
Осознанный нейминг + четкие границы контекстов + нормальная модульность
да, вариант, мне правда не нравится, т.к. он не так красиво ложится на связку с докером, + "числовые" домены тоже не очень понятны.
я так понял, вы предлагаете такую схему
{PORT}.dev{X}.example.com -> 10.0.0.X:PORT
какой проект, какой дев, не ясно.
+ тут с wildcard сертификатами сложнее становится
мне лучше понимать когда такой тип домена
cms-vasiliy.example.com
api-cms-vasily.example.com
да, писатель из меня еще тот)
да и не заметил что в 1 спойлер засунул два других, только сейчас понял, поправил. + дописал этот момент
Смотрите...
proxy frp находится в связке контейнеров. Поднимая проект (docker-compose up) поднимаешь все сразу: тунель, nginx, php, sql. после того как поработал, сделал docker-compose down и убил и прокси и nginx и тд.
ненужно править nginx серверный, в той статье что вы поделились, проксирование на 10.99.0.2:8443; это совсем не гибко, пока ты один и у тебя всегда проект будет на 8443 то пойдет, но так не бывает, в моей реальности :)
открывать порты nginx (docker) ненужно, все проксируется внутри сети докер-проекта. Т.е. вообще нет открытых портов
я не писал, но у FRP можно создать любой тунель по tcp, ssh, + куча плагинов есть
самое главное, настройка не на сервере происходит, а на клиенте. На клиенте указываешь какой хост юзаешь, в какой контейнер проксируешь, на какой порт, какой тип проксирования.
В статье не писал, все это в репе есть, настройка на клиенте (внутри докер контейнера) proxy
client.ini
и dockre-compose воображаемого проекта, в реальный проект перенести нужно только блок proxy и подсунуть ему нужные конфиги, см. выше
Клиентский docker-compose.yml
Возможно я не раскрыл мысль.
Допустим у вас есть сервер, на нем Nginx + VPN. У вас два разработчика в команде. Вы решили, что
*.dev1.example.com будет проксировать запрос на 10.0.0.1
*.dev2.example.com будет проксировать запрос на 10.0.0.2
Когда придет новый дев, нужно будет в конфиге Nginx правки вносить. Не проблема, но зачем? если с FRP управление какой поддомен куда вести будет уходит на плечи клиента.
Хорошо, будем руками править на reverse nginx, но дальше, все запросы для dev1 идут на 10.0.0.1, у меня развернуто 2 проекта, допустим:
site, admin-site, static-site, api-site - это 1 docker-compose
site2, admin-site2, static-site2, api-site2 - это 2 docker-compose
теперь стоит задача, создать маршруты локально,
site.dev1.example.com -> 10.0.0.1 -> docker container site
site-admin.dev1.example.com -> 10.0.0.1 -> docker container site-admin
....
когда разработка идет в докере, обычно это делаю так
Вы будете на клиенте в не докера еще 1 nginx ставить который будет роутить запросы? или на сервере будете указывать порты? которые откроете в докере?
И снова.... технически решаемо, но это ад становится с поддержкой.
С FRP всего этого геморроя нет.
Ngrok, кстати, на такой услуге зарабатывает, FRP 40т звезд на гитхабе, это как минимум намек на то что инструмент востребованный.
Могу предположить что вы ближе к администрированию, тогда вам возможно сложно понять понять взгляд программиста.
Это уже как минимум не проще.
А добавьте сюда вопросы менеджмента роутинга. Например появился новый дев, и теперь ему нужно тоже проксировать, добавлять правила в nginx?
И дальше, как локально роутить трафик по контейнерам? У нас докер, одновременно может работать несколько nginx
Да, технически это возможно. Но это совсем не проще. ИМХО.
Но если быть откровенным, такая мысль не приходила, возможно ее так же можно до ума довести. Спасибо
Ну опишите, что для этого нужно сделать. По шагам.
Когда запрос, к примеру от банка, прилетает к вам. Которым он уведомляет, что транзакция которую вы создали ранее, завершена успешно (или нет)
Как вы собрались проксировать запрос с nginx в локальную сеть?
получить callback от внешнего сервиса
посмотреть на приложение со смартфона
поделится ссылкой с коллегой для обсуждения
https не самоподписной
много причин можно найти
но не всем это нужно, мне долгое время так же ненужно было
Время покажет, а может и не покажет :)
Становясь старше, я стал замечать, что мои утверждения часто бывают ложными или требующие корректировки. Когда я это осознал, утверждать стал меньше, тоже слушаю молча. Но смотря на окружающих стали появляться комплексы. Впрочем я объяснял себе это, но когда читаешь что это ок, немного легче :)
Без поддержки докера, ценность данной фичи сомнительна
Интересно как сработало видео с Гейтсом…
Начал смореть,
Вижу 20 мин…
Да ну… не хочу…
прочел что цепляет с с 4 минуты, посмотрел…
досмотрел до конца))
Я наблюдаю за кандидатами в нашу компанию. И это заметно.
Да, конечно, «никому» — не значит 100% никто. Всегда есть ислючения. Но это значит что 99% будут «маэстро».
И что?
Я о программировании, с музыкой немного по другому. Но есть параллели.
Речь о хорошем универе
Я утверждаю что для большенства самообразование не даст системных знаний. И почти всегда это похоже будет на дворогого гитариста, который знает 3 аккорда и называет себя маестро.
В этом смысле сранивать музыку и точные науки не правильно