Size: a a a

2020 May 22

AO

Alexander Ovchinniko... in PiterPy Meetup
Alexander Ovchinnikov 🦁
вообще, есть как минимум желание разделить на 2 части - ядро и панель управления
ну вот в среднем стартапе как-то видишь эти 2 части сразу, мб это два монолита, но уже 2, а не 1

"ядро" находится внутри безопасного периметра, а "панелька" достаточно открыта и состоит из разных API для веб-версии, иногда API для мобильных клиентов, + мб API для сторонних интеграций, если такое есть, эти API обычно похожи

то есть в случае каких-либо ддосов/взломов и прочего, ядро имеет меньше шансов протечь и сломаться, бизнес-процессы в ядре продолжат работу даже в случае проблем с панелькой
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
это не микросервисы (ещё), но уже некоторое разделение, которое хочется сделать буквально сразу же (некоторая аналогия с разделением data plane и control plane, как у сетевиков)
источник

AZ

Andrey Zakharevich in PiterPy Meetup
Alexander Ovchinnikov 🦁
ну, то есть не получилось бы писать код так, чтобы не замечать код других
а как это можно писать код и не замечать изменения в коде, который ты вызываешь? или ты предлагаешь с первого дня всем версионировать свое недописанное внутреннее api и обеспечивать обратную совместимость? а кто потом будет это все обновлять? может проще одним коммитом во всем проекте поменять вызов и не городить все это?
источник

p

pragus in PiterPy Meetup
Andrey Zakharevich
а как это можно писать код и не замечать изменения в коде, который ты вызываешь? или ты предлагаешь с первого дня всем версионировать свое недописанное внутреннее api и обеспечивать обратную совместимость? а кто потом будет это все обновлять? может проще одним коммитом во всем проекте поменять вызов и не городить все это?
+много
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
Andrey Zakharevich
а как это можно писать код и не замечать изменения в коде, который ты вызываешь? или ты предлагаешь с первого дня всем версионировать свое недописанное внутреннее api и обеспечивать обратную совместимость? а кто потом будет это все обновлять? может проще одним коммитом во всем проекте поменять вызов и не городить все это?
микросервисы часто делают в монорепе
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
это вполне хорошая практика
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
(опять же, есть разные мнения)
источник

AZ

Andrey Zakharevich in PiterPy Meetup
так почему это должны быть отдельные сервисы, а не программные модули? если это сервисы, все равно у тебя будет история, что они не прямо все в одну миллисекунду перевыкатываются
источник

p

pragus in PiterPy Meetup
Alexander Ovchinnikov 🦁
микросервисы часто делают в монорепе
А что ты используешь для общения между сервисами?
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
так а о чём мы спорим? я сам в общем-то не против модульных монолитов, все мои проекты на джангах как раз такие) (подход называется Django API Domains)
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
просто, ну, если разные микросервисы, их можно масштабировать независимо друг от друга, для некоторых проектов так удобнее
источник

p

pragus in PiterPy Meetup
Alexander Ovchinnikov 🦁
просто, ну, если разные микросервисы, их можно масштабировать независимо друг от друга, для некоторых проектов так удобнее
Например как?
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
pragus
А что ты используешь для общения между сервисами?
есть разные подходы, один из них - через очереди, другой - через сервис меши (Kubernetes, Knative, Istio)
источник

p

pragus in PiterPy Meetup
Alexander Ovchinnikov 🦁
есть разные подходы, один из них - через очереди, другой - через сервис меши (Kubernetes, Knative, Istio)
Что из этого мы используешь ты?
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
pragus
Что из этого мы используешь ты?
я не очень понял вопрос, наверное)

конкретно я в своих проектах использую Google Cloud Pub/Sub и Google Cloud Run (что-то с gRPC недавно пробовал на тестовых стендах)
источник

AZ

Andrey Zakharevich in PiterPy Meetup
Alexander Ovchinnikov 🦁
так а о чём мы спорим? я сам в общем-то не против модульных монолитов, все мои проекты на джангах как раз такие) (подход называется Django API Domains)
мы спорим про то, что ты предлагаешь выбирать технологии исходя из их подходящести для микросервисной архитектуры, но не можешь точно сформулировать, какую проблему эта архитектура решает и в каких проектах эта проблема есть, а где нет. пока ты приводил только примеры решений задач, порождаемых самой этой архитектурой
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
Andrey Zakharevich
мы спорим про то, что ты предлагаешь выбирать технологии исходя из их подходящести для микросервисной архитектуры, но не можешь точно сформулировать, какую проблему эта архитектура решает и в каких проектах эта проблема есть, а где нет. пока ты приводил только примеры решений задач, порождаемых самой этой архитектурой
это не я предлагаю, я сказал, что есть разные мнения) достаточно много людей, которые сразу делают микросервисы)
источник

AZ

Andrey Zakharevich in PiterPy Meetup
Alexander Ovchinnikov 🦁
это не я предлагаю, я сказал, что есть разные мнения) достаточно много людей, которые сразу делают микросервисы)
достаточно много людей пишут на пхп
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
так да, особенно раньше их было много
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
если задача "быстро сделать тяп-ляп", то PHP подходит, а почему нет?
источник