Size: a a a

Архитектура ИТ-решений

2020 November 02

PD

Phil Delgyado in Архитектура ИТ-решений
Eugene Istomin
Через какое действие она будет возникать?
Сверка по батчу утреннему? Перезапись + TL из write-model?
Хм, а как батчи связаны с идемпотентностью? Это скорее про обеспечение "как минимум раз" (что та же кафка обеспечивает без проблем).
Мы вроде про то, что вместо "exactly once" проще реализовать идемпотентность+"at least once"
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Phil Delgyado
Хм, а как батчи связаны с идемпотентностью? Это скорее про обеспечение "как минимум раз" (что та же кафка обеспечивает без проблем).
Мы вроде про то, что вместо "exactly once" проще реализовать идемпотентность+"at least once"
Вот я тоже не понял кстати. Но комментировать не стал из-за усталости мозга
источник

EI

Eugene Istomin in Архитектура ИТ-решений
Phil Delgyado
Хм, а как батчи связаны с идемпотентностью? Это скорее про обеспечение "как минимум раз" (что та же кафка обеспечивает без проблем).
Мы вроде про то, что вместо "exactly once" проще реализовать идемпотентность+"at least once"
Я это кейс имел в виду. Вместо зон US/EU могут быть базы данных разных бизнес-доменов
источник

EI

Eugene Istomin in Архитектура ИТ-решений
Phil Delgyado
Хм, а как батчи связаны с идемпотентностью? Это скорее про обеспечение "как минимум раз" (что та же кафка обеспечивает без проблем).
Мы вроде про то, что вместо "exactly once" проще реализовать идемпотентность+"at least once"
Т.е. тут под батчем понимал фоновый процесс принудительного выравнивания (alignment) данных.
источник

p

pragus in Архитектура ИТ-решений
Вопрос странный и праздный: а есть тут такие кто проектировать свой датацентр?
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Eugene Istomin
Т.е. тут под батчем понимал фоновый процесс принудительного выравнивания (alignment) данных.
Ну это не идемпонетность, а принудительное приведение системы в консистинтное состояние. Это другой подход.

Ты можешь не реализовать идемпонетность, тогда у тебя будут биться данные. Их нужно будет выравнивать

При этом, данные могут рассинхронизироваться по-разным причинам, поэтому обеспечение идемпотентности и выравнивание данных, это разные задачи, они друг другу не противоречат.

Но если идемпонетность отсуствует, то данные точно будут дублироваться. Нужно будет не просто делать дедупликацию, но и устранять последствия такого дублирования, которые могут распространяться глубоко по бизнес-процессам и могут быть необратимыми
источник

EI

Eugene Istomin in Архитектура ИТ-решений
Gennadiy Kruglov
Ну это не идемпонетность, а принудительное приведение системы в консистинтное состояние. Это другой подход.

Ты можешь не реализовать идемпонетность, тогда у тебя будут биться данные. Их нужно будет выравнивать

При этом, данные могут рассинхронизироваться по-разным причинам, поэтому обеспечение идемпотентности и выравнивание данных, это разные задачи, они друг другу не противоречат.

Но если идемпонетность отсуствует, то данные точно будут дублироваться. Нужно будет не просто делать дедупликацию, но и устранять последствия такого дублирования, которые могут распространяться глубоко по бизнес-процессам и могут быть необратимыми
Да, спасибо что расписал
Давай так отвечу - для того, чтобы вспомнить все причины "про базы, консистенстность, allignment и нужны архитекторы. И сделать это не за месяц, а за пару дней :)

Например, при чтении https://jepsen.io/analyses/postgresql-12.3 нужные контексты (про уровни изоляций, про очерёдность, про сериализацию) всплывают сами.

Плотная работа над материалами в сочетании с дискуссией и даёт эффект "за пару дней", и это круто
источник

EI

Eugene Istomin in Архитектура ИТ-решений
Gennadiy Kruglov
Тизер - в последнее время получается (с трудом) строить решения на всём многообразии арх паттернов и технологий, где бизнес-логика (бизнес-сервисы) реализуются на микросервисах/модулях с соотв. тех зоопарком, а аналитика (аналитические сервисы) на стеке биг-даты, при этом данные бизнес-сервисов "сливаются" в озеро данных.

При построении таких решений возникают вопросы, в каком слое тот или иной сервис реализовать, как он должен работать, в реальном (близком к реальному) времени или в пакетном режиме, какие бд под ним лучше использовать и т.д. А ведь есть ещё и витрины и polyglot persistent.

Более-менее стало понятно, как системно строить такие решения и больше того, как увязать с продуктово-платформенным подходом.
Ага, я вот тут как раз и оказался :)
Думал, можно как-то хитро polyglot persistence обойти через свежие решения-уловки ))))
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Eugene Istomin
Ага, я вот тут как раз и оказался :)
Думал, можно как-то хитро polyglot persistence обойти через свежие решения-уловки ))))
Есть же законы физики, модели данных, математика соответствующая) polyglot persistence про это ведь)
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Вот зачем графовые базы нужны? Чтобы на экстремальных нагрузках выполнять специфичные для графов запросы. Потому что на средних нагрузках можно обойтись плагинами поверх других хранилищ.
источник

EI

Eugene Istomin in Архитектура ИТ-решений
Gennadiy Kruglov
Есть же законы физики, модели данных, математика соответствующая) polyglot persistence про это ведь)
Я вчера решил, что если у меня есть polyglot-решение для домена аналитики  (read model) - то почему бы не попробовать его напялить на бизнес-данные.
В прошлый раз так делал году в 2016, через это решая R&D задачу, сейчас аналогично.
источник

EI

Eugene Istomin in Архитектура ИТ-решений
Gennadiy Kruglov
Вот зачем графовые базы нужны? Чтобы на экстремальных нагрузках выполнять специфичные для графов запросы. Потому что на средних нагрузках можно обойтись плагинами поверх других хранилищ.
Или для того, чтобы создавать решения "про метаданные", так как у тебя source всегда доступен во внешних базах, и тебе нужна быстрая графовая математика и адекватные схемы данных в графе
источник

EI

Eugene Istomin in Архитектура ИТ-решений
Eugene Istomin
Я вчера решил, что если у меня есть polyglot-решение для домена аналитики  (read model) - то почему бы не попробовать его напялить на бизнес-данные.
В прошлый раз так делал году в 2016, через это решая R&D задачу, сейчас аналогично.
Market Clock для тех, кто выбирает подходы к хранению, находясь в polyglot-ситуации
источник

EI

Eugene Istomin in Архитектура ИТ-решений
Eugene Istomin
Market Clock для тех, кто выбирает подходы к хранению, находясь в polyglot-ситуации
+ тема с мультимодельностью, описано хорошо у Владислава из NitrosBase:

https://github.com/vladislavgolovkov/nbdocs/blob/master/multimodelnost.md
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Eugene Istomin
+ тема с мультимодельностью, описано хорошо у Владислава из NitrosBase:

https://github.com/vladislavgolovkov/nbdocs/blob/master/multimodelnost.md
Зечем мультимодельность? Вижу только одну причину - снижение нагрузки на эсплуатацию, то есть операционных костов.

Если говорить о MVP, то сейчас команды, например, мгновенно поднимут PG + Elastic в связке
источник

EI

Eugene Istomin in Архитектура ИТ-решений
Gennadiy Kruglov
Зечем мультимодельность? Вижу только одну причину - снижение нагрузки на эсплуатацию, то есть операционных костов.

Если говорить о MVP, то сейчас команды, например, мгновенно поднимут PG + Elastic в связке
Вот тут ответ - https://www.gartner.com/doc/reprints?id=1-24BVLCEI&ct=201007&st=sb

Если коротко - всё дело в том, что тебе нужно связывать и связывать данные.

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

Или достаточной степени адекватности federation/reflection слой
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Eugene Istomin
Вот тут ответ - https://www.gartner.com/doc/reprints?id=1-24BVLCEI&ct=201007&st=sb

Если коротко - всё дело в том, что тебе нужно связывать и связывать данные.

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

Или достаточной степени адекватности federation/reflection слой
Чем мультимодельность отличается от polyglot persistent? Или, например, от CQRS?
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Прочитал, волшебная структура, которые может с разными представлениями работать. Я в это не верю. Почему не верю? Потому что для оптимальной работы с разными моделями нужны разные структуры данных
источник

EI

Eugene Istomin in Архитектура ИТ-решений
Gennadiy Kruglov
Чем мультимодельность отличается от polyglot persistent? Или, например, от CQRS?
Это разное же
Одно дело - это озёра, другое - рефлексия по этим озёрам. Я не про море питона и spark )
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Не хочу сейчас книги цитировать, просто это так
источник