powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Зачем все пилят монолит?
172 сообщений из 172, показаны все 7 страниц
Зачем все пилят монолит?
    #40061552
shurka22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, привет.

За последние 4 года работал в двух компаниях, где все "распиливают монолит". Что это значит: есть большая легаси оракловая база данных, где вся логика зашита в plsql процедуры. Скорость работы - почти на пределе возможности весьма недешёвой железки.
Набрана куча народу в разработку, они по-немногу весь функционал переделывают в микросервисы (на джаве).

У меня большой вопрос: какова цель этого действа?
Правильно я понимаю, что пока мы не распилим саму базу на кусочки (на несколько независимых баз), то мы не получим выигрыш в быстродействии?

Объясню тезис про распил базы.
Грубо говоря: если база крутится на одной машине, то чтобы получить ускорение существующией базы в 2 раза, нужно заплатить за железку в 4 раз больше денег.
Если же мы распилим одну базу на 2 независимых кусочка (с некоторой самопальной интеграцией, которая жрёт немного ресурсов), то чтобы ускорить работу, нам надо будет докупить железку такую же, как сейчас. Тратим денег в 2 раза меньше! Разумеется, не считая денег, потраченных на распил монолита.

Джава-разработчики, кого я спрашивал, не могут внятно ответить на этот вопрос. Типа: мне сказали копать, я и копаю.
Дополнительно говорят умные слова, мол:
1) простота установки
2) независимость (упал один сервис, но он не потянул за собой все остальные сервисы)
3) А вот про быстродействие никто внятно не ответил.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061560
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22
У меня большой вопрос: какова цель этого действа?

Большую кучу говна растаскивают на маленькие. Зачем? В большую надо нырять уходя с головой, а в мелкие достаточно погрузиться руками по локоть.
Ну и масштабирование вширь и пр. бла-бла-бла.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061566
shurka22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster

Большую кучу говна растаскивают на маленькие. Зачем? В большую надо нырять уходя с головой, а в мелкие достаточно погрузиться руками по локоть.

Это можно решить и в рамках одной базы: каждая кучка крутится в своей схеме.
Должно работать заметно быстрее, чем если логику вытащить наружу из базы.

Правильно я понимаю, что вынос логики из оракл-пакетов наружу в джаву - не даст прироста производительности без распила самой базы? А даже скорее наоборот - производительность просядет.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061568
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22
Это можно решить и в рамках одной базы

Не можно.

shurka22
Должно работать заметно быстрее

Кому должно и на каком основании? EAV будет работать херово. Графы будут работать херово.

shurka22
чем если логику вытащить наружу из базы.

В абсолютно любых случаях? Тут наша дискуссия из технической становится религиозной.

shurka22
Правильно я понимаю, что вынос логики из оракл-пакетов наружу в джаву - не даст прироста производительности без распила самой базы?

В общем случае нельзя сделать однозначного вывода.
Но если пилят, значит есть смысл пилить.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061572
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22
Коллеги, привет.

У меня большой вопрос: какова цель этого действа?


Очень просто и грубо говоря.
Решение проблем со сложностью проекта.
Перенос части сложности на "уровень вверх".
С уровня кода на архитектуру связей.


shurka22

Правильно я понимаю, что пока мы не распилим саму базу на кусочки (на несколько независимых баз), то мы не получим выигрыш в быстродействии?

Дополнительно говорят умные слова, мол:
1) простота установки
2) независимость (упал один сервис, но он не потянул за собой все остальные сервисы)
3) А вот про быстродействие никто внятно не ответил.


1) CI/CD (рядом где-то должен быть DevOps)
2) Горизонтальное масштабирование (см. kubernetes)
3) Массивное распаралелливание (см пункт 2)

На самом деле это просто "стильно, модно, молодежно". И позволяет раздуть штат программистов. ;-)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061576
shurka22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster
В абсолютно любых случаях? Тут наша дискуссия из технической становится религиозной.

Нет конечно, не в любых случаях. Но логика в нашей базе не сильно сложная: тут добавить, там отнять. Никаких квадратных уравнений мы в базе не рассчитываем, и уж тем более - не декодируем видео.
Насколько я понимаю, основаная нагрузка на базу - это работа связанная непосредственно с DML.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061581
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22,
я так понял все работает на пределе и вертикальное масштабирование уже или не помогает или невозможно. нужна возможность распределения нагрузки. это можно сделать по разному, но микросервисы сейчас модно
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061584
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а подскажите - в оркале можно сделать кластер, распределить данные и чтобы хранимки могли выполняться так будто есть только одна база?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061589
Фотография Aliona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22,
может просто нанять грамотного DBA?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061592
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
а подскажите - в оркале можно сделать кластер, распределить данные и чтобы хранимки могли выполняться так будто есть только одна база?


из анекдотаПетька ты прав, но есть нюансы...



Сделать можно, но:
1) RAC option, это +40% стоимости к Enterprise Edition
2) Требуется дополнительное недешевое оборудование
3) Настоятельно сразу рекомендуется проектировать систему учитывающую специфику RAC
4) не все задачи, (хотя и многие), дадут выигрыш в RAC среде

Есть конечно "волшебная таблетка" - ExaData, но см. пункт 4.
Если подготовите нагрузочное тестирование, есть шанс договорится попробовать как Ваша система поведет в окружении exadata.

p.s. вынос логики на middle layer, позволяет экономить "золотые" процессорные лицензии на RDBMS + позволяет отвязаться/(значительно снизить стоимость миграции) от выбора конкретной базы, что снижает глобальные бизнес риски.

p.s. родная Oracle OeBS, спроектированная на экстремальные нагрузки, практически не использует constraints.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061593
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aliona
shurka22,
может просто нанять грамотного DBA?


ЯТД, там еще и грамотный архитектор не помешает
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061611
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22
Коллеги, привет.

За последние 4 года работал в двух компаниях, где все "распиливают монолит". Что это значит: есть большая легаси оракловая база данных, где вся логика зашита в plsql процедуры. Скорость работы - почти на пределе возможности весьма недешёвой железки.
Набрана куча народу в разработку, они по-немногу весь функционал переделывают в микросервисы (на джаве).

У меня большой вопрос: какова цель этого действа?
Правильно я понимаю, что пока мы не распилим саму базу на кусочки (на несколько независимых баз), то мы не получим выигрыш в быстродействии?

Если в результате им удасться разделить систему например на онлайн-транзакции и
хранилище - то это хороший результат. Или на CQRS.

Но конечно надо зорко следить чтобы не понадобилось покупать еще более дорогую железку.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061613
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22

Джава-разработчики, кого я спрашивал, не могут внятно ответить на этот вопрос. Типа: мне сказали копать, я и копаю.
Дополнительно говорят умные слова, мол:
1) простота установки
2) независимость (упал один сервис, но он не потянул за собой все остальные сервисы)
3) А вот про быстродействие никто внятно не ответил.

А они и не смогут ответить потому что этот распил - не требование а архитектурная философия.
Эволюционный процесс, если можно так сказать. Фоном также идет задача упрощения понимания
сложной системы. Типа тут отсылка к закону Деметры. Но к Деметре они еще сбоку пришили кучу
умных слов типа простоты установки и отказоустойчивости каждого сервиса по отдельности.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061619
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22
Коллеги, привет.

За последние 4 года работал в двух компаниях, где все "распиливают монолит". Что это значит: есть большая легаси оракловая база данных, где вся логика зашита в plsql процедуры. Скорость работы - почти на пределе возможности весьма недешёвой железки.
Набрана куча народу в разработку, они по-немногу весь функционал переделывают в микросервисы (на джаве).

У меня большой вопрос: какова цель этого действа?
Правильно я понимаю, что пока мы не распилим саму базу на кусочки (на несколько независимых баз), то мы не получим выигрыш в быстродействии?

Объясню тезис про распил базы.
Грубо говоря: если база крутится на одной машине, то чтобы получить ускорение существующией базы в 2 раза, нужно заплатить за железку в 4 раз больше денег.
Если же мы распилим одну базу на 2 независимых кусочка (с некоторой самопальной интеграцией, которая жрёт немного ресурсов), то чтобы ускорить работу, нам надо будет докупить железку такую же, как сейчас. Тратим денег в 2 раза меньше! Разумеется, не считая денег, потраченных на распил монолита.

Джава-разработчики, кого я спрашивал, не могут внятно ответить на этот вопрос. Типа: мне сказали копать, я и копаю.
Дополнительно говорят умные слова, мол:
1) простота установки
2) независимость (упал один сервис, но он не потянул за собой все остальные сервисы)
3) А вот про быстродействие никто внятно не ответил.
Overview of Oracle Sharding
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061624
x0125
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin

ЯТД, там еще и грамотный архитектор не помешает


shurka22
...

Но конечно надо зорко следить чтобы не понадобилось покупать еще более дорогую железку.


Как же это выполнить если вся страна давно сидит на Красной или Белой таблэтке

-- Сервер 1.5 ТБ ОЗУ, 2 процессора по 36 ядер , SSD 30Тб 2Гб / сек запись
-- База с 2017 года - количество записей 50-70 млн записей В ДЕНЬ в этом году

#1# Сводные продажи по магазин + товар с 2017 года
2017-2018 год в среднем 3,5 млн записей в день 500 товаров * 7000 магазинов записей
2019-2021 год в среднем 7 млн записей в день 700 товаров * 10000 магазинов
Итого: 5 млрд записей
#2# Остатки на каждый день по магазин+ товар c 2019 года
2000 товаров * 10000 магазинов - 20 млн записей в день
Итого: 15 млрд записей


stdio

...
3) А вот про быстродействие никто внятно не ответил.



Overview of Oracle Sharding

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


Это же one way ticket нашего Бурана - всех с днем космона ф тики!
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061640
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22
Грубо говоря: если база крутится на одной машине, то чтобы получить ускорение существующией базы в 2 раза, нужно заплатить за железку в 4 раз больше денег.

а как вы пришли к такой экстраполяции?


ЗЫ: у миллсапа был пример
когда покупка дорогого железа привела к еще большим тормозам
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061646
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тяготеет к закону Амадала.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061650
Фотография Aliona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x0125

Это же one way ticket нашего Бурана

Про Буран вы ничего не путаете?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061671
Anti_Hacker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отвечу за разработчиков. При нормальном распиле монолита, каждый микро-сервис в результате которому нужна база получает свою базу. Чужие сервисы не лезут в чужую базу. Общение происходит либо через API либо Messaging (RabbitMQ, Serivce Bus...).

Для чего это делается? Ответ простой, чтобы сервисы были маленькие, легко заменяемые, тестируемые и можно было бы деплоить по отдельности.

К примеру у нас 100+ микро-сервисов. Не всем нужна база, иногда используем Blob Storage. Баз на порядок меньше, пул не большой 20-30.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061685
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я полностью понимаю сомнения Ораклиста. Он - видит проблемы например в самом факте внесения задержек
в части одной монолитной системы. Это всё равно что процессор разбить молотком на осколки а потом
их собрать с помощью медных проводов и разнести на 100 километров и заставить это все работать.
Разумеется латентность скушает весь перформанс.

Тоесть само по себе разбиение базы и PL/SQL кода должно быть переосмыслением системы. И разделением
ее на независимые базы со слабой связностью и слабой репликацией. И никаких JOINS между этими
базами не должно быть.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061686
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22

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

У меня большой вопрос: какова цель этого действа?.


Ментальные способности современных IT-специалистов совсем не факт, что высокие и адекватные.
Чаще всего (IMHO) это мода и подражание одной обезьянки другой обезьянки.

Да, монолитную БД трудно масштабировать, дорого содержать и всё такое.
Но если её распилить, у системы появляются совсем новые, другие свойства, и, главное -- исчезают старые,
а именно: монолитная БД хороша чем? Надо тебе из одного модуля взать данные от другого модуля - пожалуйста!
Нет проблем! Протянул руку (написал запрос) и взял -- они твои!
Лёгкость межмодульной интеграции неимоверная!

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

Ну и в чём преимущество?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061687
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22


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


Нет, неправильно. Может дать, а может не дать, а может вообще ничего не поменяется.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061689
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anti_Hacker
Отвечу за разработчиков. При нормальном распиле монолита, каждый микро-сервис в результате которому нужна база получает свою базу. Чужие сервисы не лезут в чужую базу. Общение происходит либо через API либо Messaging (RabbitMQ, Serivce Bus...).


Ну , так которое (общение) надо проектировать, администрировать, реализовывать, мониторить...
СМЫСЛ КАКОЙ?

Для чего это делается? Ответ простой, чтобы сервисы были маленькие, легко заменяемые, тестируемые и можно было бы деплоить по отдельности.


Нет ничего более просто тестируемого чем кусок SQL кода..
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061701
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv

Нет ничего более просто тестируемого чем кусок SQL кода..


и что, где-то в серьез существуют проекты где как полагается поднимается оракл с партишенами в докере, разворачиваются таблицы, заполняются и тестируется pl/sql код каждого пекеджа ?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061714
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
MasterZiv

Нет ничего более просто тестируемого чем кусок SQL кода..


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

При чем здесь тестирование? Тема топика-ж не про это.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061716
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Anti_Hacker
Отвечу за разработчиков. При нормальном распиле монолита, каждый микро-сервис в результате которому нужна база получает свою базу. Чужие сервисы не лезут в чужую базу. Общение происходит либо через API либо Messaging (RabbitMQ, Serivce Bus...).


Ну , так которое (общение) надо проектировать, администрировать, реализовывать, мониторить...
СМЫСЛ КАКОЙ?

Для чего это делается? Ответ простой, чтобы сервисы были маленькие, легко заменяемые, тестируемые и можно было бы деплоить по отдельности.


Нет ничего более просто тестируемого чем кусок SQL кода..

что вы тестируете в sql коде ?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061717
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anti_Hacker
Отвечу за разработчиков. При нормальном распиле монолита, каждый микро-сервис в результате которому нужна база получает свою базу. Чужие сервисы не лезут в чужую базу. Общение происходит либо через API либо Messaging (RabbitMQ, Serivce Bus...).


Ну , так которое (общение) надо проектировать, администрировать, реализовывать, мониторить...
СМЫСЛ КАКОЙ?

Для чего это делается? Ответ простой, чтобы сервисы были маленькие, легко заменяемые, тестируемые и можно было бы деплоить по отдельности.


Нет ничего более просто тестируемого чем кусок SQL кода..
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061726
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv

Нет ничего более просто тестируемого чем кусок SQL кода..


Тесты должны быть автоматическими.
А для тестирования SQL-кода нужно поднимать БД, причем именно ту, для которой пишется SQL-код.
Причем подниматься должна "с нуля" и для каждого теста свой инстанс.

В общем тестировать SQL как раз сложно.

<:o)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061730
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

Мне кажется, аналогично тестирование любого бизнес код для работы с данными/базой. Будь то SQL или Java Hibernate - фиолетово.

От замены SQL на микросервисы и java (как и наоборот) ничего особо не изменится. Другое дело, что возможно более мелкие програмные модули легче поддаются тестированию, но т.к. этих модулей больше - то совокупная стоимость останется той же. IMHO
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061732
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда говорит о тестирование SQL / бизнес системы - поразумевают скорее весь набор тестов одновременно: модульное, интеграционное, системное. Даже, скорее, обычно системное тестирование*

Когда говоря и Java и обязательных тестах, гордое "у нас 100% кода покрыто тестами", то обычно, почти всегда имеют в виду исключительно unit-тесты . Что для бизнес системы и данных - ни тепло, ни холодно. С остальными же тестами, все обстоит ровно так же, как и в PL/SQL монолите.

IMHO

* wiki данный термин определяет так:

Систе́мное тести́рование програ́ммного обеспече́ния — это тестирование программного обеспечения (ПО), выполняемое на полной, интегрированной системе, с целью проверки соответствия системы исходным требованиям. Системное тестирование относится к методам тестирования чёрного ящика, и, тем самым, не требует знаний о внутреннем устройстве системы .
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061733
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulА для тестирования SQL-кода нужно поднимать БД, причем именно ту, для которой пишется
SQL-код. Причем подниматься должна "с нуля" и для каждого теста свой инстанс.

А что в этом, собственно, сложного-то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061737
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
mad_nazgul,

Мне кажется, аналогично тестирование любого бизнес код для работы с данными/базой. Будь то SQL или Java Hibernate - фиолетово.


может для орма можно базу заменить файликом с мок данными?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061738
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
MasterZiv

Нет ничего более просто тестируемого чем кусок SQL кода..


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


бывает и такое, думаю не такая уж и редкость для продуктов в которых ключевая роль у базы данных.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061739
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы ведь настоящих целей не знаем верно? Автор увидел разбивание монолита на осколки. А бизнес может ставить
более сверх-задачу. Экспоненциальный рост. Разннообразие задач. Да мало-ли можно придумать...
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061743
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

mad_nazgulА для тестирования SQL-кода нужно поднимать БД, причем именно ту, для которой пишется
SQL-код. Причем подниматься должна "с нуля" и для каждого теста свой инстанс.

А что в этом, собственно, сложного-то?


Для каждого теста свой докер образ БД, со всеми тестовыми данными?!
И хранить образ докера на каждый тест. :-)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061744
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

mad_nazgulА для тестирования SQL-кода нужно поднимать БД, причем именно ту, для которой пишется
SQL-код. Причем подниматься должна "с нуля" и для каждого теста свой инстанс.

А что в этом, собственно, сложного-то?


Я тоже не понимаю...
Надо базу -- ну, подними...
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061746
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulДля каждого теста свой докер образ БД, со всеми тестовыми данными?!

Зачем для каждого свой и зачем докер? БД подымается из бэкапа на обычном тестовом сервере.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061748
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Когда говоря и Java и обязательных тестах, гордое "у нас 100% кода покрыто тестами", то обычно, почти всегда имеют в виду исключительно unit-тесты . Что для бизнес системы и данных - ни тепло, ни холодно. С остальными же тестами, все обстоит ровно так же, как и в PL/SQL монолите.


Тут же весь фокус в автоматическом тестировании.
unit-тесты относительно дёшевы, поэтому чем больше они тестируют, тем дешевле тесты.
А интеграционных тестов должно быть не много, т.к. при их тестировании поднимается весь контекст.
Они запускаются долго, работают то же долго.

:-)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061750
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbi
Leonid Kudryavtsev
mad_nazgul,

Мне кажется, аналогично тестирование любого бизнес код для работы с данными/базой. Будь то SQL или Java Hibernate - фиолетово.


может для орма можно базу заменить файликом с мок данными?


Проблема не "поднять базу", а проблема "со своими данными". Файлик с мок данными тут не сильно поможет.

Данные так же устаревают. Поддерживать актуальные "файлики с мок данными" для 100500 микросервисов еще та организационная задача (и нехилые трудозатраты/деньги). Поменялись справочники - данные во всех подсистемах нужно обновить и прогнать тесты.

Тестировать на старых данных / справочниках / нормативах - никакого интереса.

Проблема в том, что не только код должен быть покрыт тестами, но и все возможные комбинации входных данных.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061752
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shurka22,

что бы можно было программистов легко заменить в случае чего

>1) простота установки
- и с общей базой как понимаете таких проблем нет, поднял схему и всё
>2) независимость (упал один сервис, но он не потянул за собой все остальные сервисы)
- если они действительно независимы, то да, а вы где нить видели "коня в вакууме"?
а так обычно они красиво каскадом падать начинают
>3) А вот про быстродействие никто внятно не ответил
- зачем говорить о плохом?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061753
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня большой скепсис по поводу тестирования данных.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061756
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)

- если они действительно независимы, то да, а вы где нить видели "коня в вакууме"?
а так обычно они красиво каскадом падать начинают

Видел. Конь был не в вакууме. Но общение через HTTP и повтором после time out к другой ноде.

Например перезапуск критически важных микросервисов на прода - да и ради бога. То, что быстро поднялось, упавшим не считалось.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061759
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
У меня большой скепсис по поводу тестирования данных.

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

А нагрузочные, регрессионные и так далее - и на СУБД изобразить можно.

Для unit тестов бюджет на тестирование закладывается в разработку и "размазан" между задачами. Да и за целостностью / правильность / актуальностью данных для тестов врят ли кто следит.

А делать полноценное регрессионное тестирование (прогонять вменяемые и актуальные тестовые примеры) перед установкой обновления на систему - это нужно отдельный бюджет на тестирование выделять. А если есть тестировщики и объем не такой большой, то обходятся ручным тестирование.

Но что бы кто-то был готов поддерживать актуальные данные для автоматического тестирования (тестовые примеры) во время сопровождения/эксплуатации ИС - такого я не встречал.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061764
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если пропустить Нагрузочные и Регрессионные в необходимости которых мы не сомневаемся...

По поводу обычных тестов. Или тестов на Correcntess. Я в этом вижу дилемму. Т.к. протестировать
БЛ на Java + Mocks мы можем достаточно много и сам DSL описывающий данные будет лаконичным.

Но как простестировать сами данные? Кто сделает sign-off что данные которые лежат в базе ГОТОВЫ для
тестирования. Кто поручится что в них нет шума? Кто поручится что их достаточно? Эта задача вообще
выходит за рамки просто разработки. И я сомневаюсь что кто-то вообще закладывает бюджеты в такое.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061772
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

По поводу обычных тестов. Или тестов на Correcntess. Я в этом вижу дилемму. Т.к. протестировать
БЛ на Java + Mocks мы можем достаточно много и сам DSL описывающий данные будет лаконичным.

Но как простестировать сами данные? Кто сделает sign-off что данные которые лежат в базе ГОТОВЫ для
тестирования. Кто поручится что в них нет шума? Кто поручится что их достаточно? Эта задача вообще
выходит за рамки просто разработки. И я сомневаюсь что кто-то вообще закладывает бюджеты в такое.

ну у нас оракла уже не осталось почти, но вполне тестируем. интеграционные тесты из json-чиков генерируют данные (avro, parquet файлики) и гоняют тесты в spark. для рсубд обычно h2 прокатывает, но в том числе и embedded mariadb участвует. там тоже нет проблем данные на ходу генерить.

а вот с ораклом интересно, это же лицензии на каждого девлопера, на все гитлабы, потрбеуется.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061774
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простите за свои 5 копеек

у вас на одной БД 1000500 разных задач?
или у вас интегрированная система?
или вы хотите на каждого из 1000500 клиентов завести отдельный микросервис?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061775
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1

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


Вроде для целей development Oracle всегда был бесплатен. Т.ч. нет, не потребуется. AFAIK
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061792
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
распиливают потому, что это модно, стильно, молодёжно.
лёгкость разработки, поддёржки, развёртывания. Быстродествие можно и потом отладить. или не отладить. Помнится в одном проекте сначала раскидыли базки по сервисам. Потом стали нужные данные запрашивать из других серисов. потом всё стало тормозить - данные стали кешировать. потом всплыли проблемы синхронизации кешей...
но зато распилили.
вообще имхо - проблема моды в том, что многие последователи ей следуют бездумно. У ТС может есть смысл распиливать, может нет.. но микросервисы сечас серебрянная пуля. а в религиозные споры вступать- дело неблагодарное
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061799
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin
p.s. родная Oracle OeBS, спроектированная на экстремальные нагрузки...
Это спорное утверждение.

Vadim Lejnin
...практически не использует constraints.

Это тяжелое наследие старых версий СУБД, не поддерживавших Constraints (до Oracle7).
Поэтому Constraints приходилось поддерживать на уровне клиента (Forms).
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061800
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
kealon(Ruslan)

- если они действительно независимы, то да, а вы где нить видели "коня в вакууме"?
а так обычно они красиво каскадом падать начинают

Видел. Конь был не в вакууме. Но общение через HTTP и повтором после time out к другой ноде.

Например перезапуск критически важных микросервисов на прода - да и ради бога. То, что быстро поднялось, упавшим не считалось.
хорошо если потом идёт анализ причин падения, а не "пашет же пока ..."
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061806
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xerxf
распиливают потому, что это модно, стильно, молодёжно.
лёгкость разработки, поддёржки, развёртывания. Быстродествие можно и потом отладить. или не отладить. Помнится в одном проекте сначала раскидыли базки по сервисам. Потом стали нужные данные запрашивать из других серисов. потом всё стало тормозить - данные стали кешировать. потом всплыли проблемы синхронизации кешей...
но зато распилили.
вообще имхо - проблема моды в том, что многие последователи ей следуют бездумно. У ТС может есть смысл распиливать, может нет.. но микросервисы сечас серебрянная пуля. а в религиозные споры вступать- дело неблагодарное

скорее всего вы текущий монолит заменили на монолит микросервисов когда один микросервис дергает другой.
в этом случае картина что получилась нормальная
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061807
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
ну у нас оракла уже не осталось почти, но вполне тестируем. интеграционные тесты из json-чиков генерируют данные (avro, parquet файлики) и гоняют тесты в spark. для рсубд обычно h2 прокатывает, но в том числе и embedded mariadb участвует. там тоже нет проблем данные на ходу генерить.

а вот с ораклом интересно, это же лицензии на каждого девлопера, на все гитлабы, потрбеуется.
это какой такой spark, из ада?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061809
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор поднял вопрос среди Ораклистов и получил Ораклячий отлуп. А что хотел? Хотел другого ответа?

Вот поди подними этот-же воспрос в форуме Java.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061813
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
H5N1

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


Вроде для целей development Oracle всегда был бесплатен. Т.ч. нет, не потребуется. AFAIK

Нет.
Конечный пользователь должен лицензировать все используемые им базы данных:
Production, Development, Test, Standby, Staging.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061814
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Автор поднял вопрос среди Ораклистов и получил Ораклячий отлуп. А что хотел? Хотел другого ответа?

Вот поди подними этот-же воспрос в форуме Java.
автор похож на гребца на галере
Который спрашивает, правильно ли кэп держит курс
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061816
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Вот поди подними этот-же воспрос в форуме Java.


Я помню "поднимателей вопросов" в форуме Java.... Там тип совсем недавно писал примерно следующее: я книжки читать не хочу, а хочу бомбить базу вставками и постоянными коммитами, а она отчего-то берет и тупит и поэтому у меня приложение тоже тупит, как правильно лить данные в БД я разбираться не буду, а буду-ка я лучше слать весь свой мусор не сразу в базу, а сначала в очередь (кафку) - вот пусть у того, кто очередь разгребает, все тупит.

В принципе, это все что нужно знать о микросервисах: если у вас что-то не работает в микросервисах, значит у вас слишком мало их.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061817
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну это помогло автору?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061819
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, вы обсуждаете абстрактные микросервисы в вакууме. Опишите задачу, чтобы можно было предметно обсуждать, из каких микро- или наносерсивов может состоять система, ее решающая.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061822
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
AmKad,

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

зы. слать кучу данных туда-сюда далеко не бесплатно и на пару порядков медленнее...
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061823
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор пишет - на "пределе возможностей".

Значит новый функционал бизнес уже туда впихнуть не может.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061828
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov,

Паттерн "микросвервисы", по крайней мере в моем понимании, не характеризует того, где должна быть логика: в БД или не в БД. Он подразумевает разбиение системы на множество подсистем, каждая из которых имеет свою четко очерченную зону ответственности и, возможно, отдельную команду, которая ее сопровождает.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061832
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
AmKad,

Ну при всей логике в единой базе это уже опять монолит с наносервисами :) а при разнесенной логике по разным базам, это уже не про оракл - дороговато выходит...
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061849
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле тема топика близка к вопросу на собеседовании по поводу - "бить или не бить базу на кусочки"
если микросервисы ее используют. Но это - еще дальше от Оракла.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061856
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Автор пишет - на "пределе возможностей".

Значит новый функционал бизнес уже туда впихнуть не может.
не путай бизнес и команду админов/разрабов/архитекторов/историю всех изменений за послдение 15 лет
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061858
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx
mayton
Автор пишет - на "пределе возможностей".

Значит новый функционал бизнес уже туда впихнуть не может.
не путай бизнес и команду админов/разрабов/архитекторов/историю всех изменений за послдение 15 лет

А что команда админов? Сама себе задачи продуцирует?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061859
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

А что команда админов? Сама себе задачи продуцирует?

а кто еще ? у вас цео мониторит базы и поднимает вопросы по капасити ?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061881
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
ох, да я вообще хотел бы увидеть хоть один реальный, не надуманный пример, когда вынос логики из базы на апп.сервер реально поможет снизить нагрузку

Вопрос религиозный. Если тебя ткнуть носом в реальный пример, всё равно будешь орать, "ви всё врёти!".
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061891
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
хотел бы увидеть хоть один реальный, не надуманный пример, когда вынос логики из базы на апп.сервер реально поможет снизить нагрузку...
Куча операторов, принимающих заказы.
Сервер приложений может самостоятельно грузить текущие остатки, вычитывать обновления и разрешать конфликты типа "этому клиенту не хватает товара". Т.е. вместо сотни конкурентных подключения от каждого оператора будут единичные подключения от одного или нескольких серверов приложений.
Задача сервера приложений - "заливать" в базу данные и вычитывать их оттуда максимально упорядоченным и бесконфликтным образом.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061894
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

mad_nazgulДля каждого теста свой докер образ БД, со всеми тестовыми данными?!

Зачем для каждого свой и зачем докер? БД подымается из бэкапа на обычном тестовом сервере.


Затем что один инстанс на все тесты не прокатит.
Т.к. тесты добавляются/убираются и т.д.
Кроме того они должны выполнятся параллельно.
Т.е. чтобы не иметь проблем на каждый тест должен быть свой инстанс БД.
Тут кроме докера ничего на ум не приходит.
Подняли докер с нужными данными, прогнали тест, убили докер.

Это если мы говорим про тестирование SQL, а не полноценное интеграционное тестирование.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061896
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Затем что один инстанс на все тесты не прокатит.
Т.к. тесты добавляются/убираются и т.д.
Кроме того они должны выполнятся параллельно.
Т.е. чтобы не иметь проблем на каждый тест должен быть свой инстанс БД.
Возможно вас это удивит, но один экземпляр СУБД умеет обслуживать несколько баз (схем) данных.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061901
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

Разработчики в курсе этих возможностей, используют схемы в хвост и гриву, поэтому простое переименование схем ради тестов - задача нетривиальная.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061920
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

Тут кроме докера ничего на ум не приходит.
Подняли докер с нужными данными, прогнали тест, убили докер.


ZFS Appliance - пили клоны БД
Можно и самому запилить, а не покупать - ZFS on linux+скрипты
Быстрое создание клона независимо от размера БД,
плюсом - экономия места, занимает как один инстанс на все клоны + дельта изменений
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061926
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
переименование схем ради тестов
Начиная с 12-ой версии в Oracle есть CDB + PDB.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061929
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Basil A. Sidorov,

Разработчики в курсе этих возможностей, используют схемы в хвост и гриву, поэтому простое переименование схем ради тестов - задача нетривиальная.
этот всё потому, что у вас архитектора/идеолога нет
или зама по производству
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061942
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad
crutchmaster
переименование схем ради тестов
Начиная с 12-ой версии в Oracle есть CDB + PDB.

+ 17,500 USD за процессор.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061969
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx
этот всё потому, что у вас архитектора/идеолога нет

Был. Уволился. Так-то используем отдельный сервак для такого. Никто не видел и не видит смысла плясать от схемы - много вопросов, много возможностей наделать дел.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061987
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Sayan Malakshinov
хотел бы увидеть хоть один реальный, не надуманный пример, когда вынос логики из базы на апп.сервер реально поможет снизить нагрузку...
Куча операторов, принимающих заказы.
Сервер приложений может самостоятельно грузить текущие остатки, вычитывать обновления и разрешать конфликты типа "этому клиенту не хватает товара". Т.е. вместо сотни конкурентных подключения от каждого оператора будут единичные подключения от одного или нескольких серверов приложений.
Задача сервера приложений - "заливать" в базу данные и вычитывать их оттуда максимально упорядоченным и бесконфликтным образом.


понятно что без коннекшн пуллинга никто не работает. спор о разнице - делает аппсервер это с помощью апи торчащего из базы(хранимки - получи/запиши/обработай) или у себя логика + prepared statements.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061988
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus
Leonid Kudryavtsev
пропущено...

Вроде для целей development Oracle всегда был бесплатен. Т.ч. нет, не потребуется. AFAIK

Нет.
Конечный пользователь должен лицензировать все используемые им базы данных:
Production, Development, Test, Standby, Staging.


По крайне мере в данном документе Development от Test отделяют.

https://www.oracle.com/assets/databaselicensing-070584.pdf

Вообще, вопрос спорный.

Но в крупных проектах я участвовал только во внедрениях OeBS, CC&B, а там действовал принцип "купившему OeBS, все остальное бесплатно" ( C )

Ну и совсем давно (в 2000-ом) ставили Oracle в very ))) small business, но было партнерское соглашение с Oracle, т.ч. так же, проблем с лицензиями не было. Ну если и были - то решались персональным разрешением от европейского офиса трактовать спорные моменты в свою пользу

AFAIK по опыту.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40061995
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbi
понятно что без коннекшн пуллинга
Речь не про пул подключений, а о возможности принципиально уменьшить конкуренцию запросов в базе. Пул подключений (сам по себе) конкуренцию не уменьшает - он уменьшает накладные расходы на создание потенциально конкурирующих подключений.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062006
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
mad_nazgul
Затем что один инстанс на все тесты не прокатит.
Т.к. тесты добавляются/убираются и т.д.
Кроме того они должны выполнятся параллельно.
Т.е. чтобы не иметь проблем на каждый тест должен быть свой инстанс БД.
Возможно вас это удивит, но один экземпляр СУБД умеет обслуживать несколько баз (схем) данных.


Возможно вас удивит, но входные тестовые данные должны быть не изменяемыми для теста.
В т.ч. название БД, схемы и пр. :-)
Т.е. в лучшем случае можно делать тесты последовательно.

Но всё равно, для unit-теста это большие накладные расходы.
Удаление/создание БД и заполнение тестовыми данными.

Для интеграционных это норм.

На одно "соседнем" проекте было 12 тестовых БД.
Потом у них было приключение "сводить" всё это в одну.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062009
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulВозможно вас удивит, но входные тестовые данные должны быть не изменяемыми для теста.
В т.ч. название БД, схемы и пр. :-)

У Вас название БД, используемой для тестов, захардкожено?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062022
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
AmKad
пропущено...
Начиная с 12-ой версии в Oracle есть CDB + PDB.

+ 17,500 USD за процессор.

Начиная с версии 19с, можно использовать не более трех PDB, не приобретая опцию Multitenant.

Если потребуется подключить / создать в контейнере четвертую PDB, тогда нужно будет купить опцию Multitenant.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062027
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
SQL*Plus
пропущено...

Нет.
Конечный пользователь должен лицензировать все используемые им базы данных:
Production, Development, Test, Standby, Staging.


По крайне мере в данном документе Development от Test отделяют.

https://www.oracle.com/assets/databaselicensing-070584.pdf

Вообще, вопрос спорный.

По-моему, в этом документе всё однозначно написано:
как только создаваемая система начинает обрабатывать реальные данные,
лицензия разработчика OTN не подходит и необходимо купить обычную лицензию.
https://www.oracle.com/assets/databaselicensing-070584.pdfSubject to the full terms of the
OTN License Agreement, this limited license allows the user to develop
applications using the licensed products as long as such applications have not
been used for any data processing, business, commercial, or production
purposes

И для Test нужно купить лицензию.
автор Test Environment: All programs used in a test environment must be licensed
under an OMA, OLSA, or other appropriate Oracle (or Oracle authorized reseller) license agreement.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062034
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Basil A. Sidorov
Sayan Malakshinov
хотел бы увидеть хоть один реальный, не надуманный пример, когда вынос логики из базы на апп.сервер реально поможет снизить нагрузку...
Куча операторов, принимающих заказы.
Сервер приложений может самостоятельно грузить текущие остатки , вычитывать обновления и разрешать конфликты типа "этому клиенту не хватает товара". Т.е. вместо сотни конкурентных подключения от каждого оператора будут единичные подключения от одного или нескольких серверов приложений.
Задача сервера приложений - "заливать" в базу данные и вычитывать их оттуда максимально упорядоченным и бесконфликтным образом.
где детали? Почему мы должны считать, что это эффективнее? Не вижу ничего о консистентности.

зы. Была давненько хорошая презентация, где действительно использовался правильный подход и для этого использовался Oracle Coherence, но это крайне сложно...
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062051
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
Basil A. Sidorov
пропущено...
Куча операторов, принимающих заказы.
Сервер приложений может самостоятельно грузить текущие остатки , вычитывать обновления и разрешать конфликты типа "этому клиенту не хватает товара". Т.е. вместо сотни конкурентных подключения от каждого оператора будут единичные подключения от одного или нескольких серверов приложений.
Задача сервера приложений - "заливать" в базу данные и вычитывать их оттуда максимально упорядоченным и бесконфликтным образом.
где детали? Почему мы должны считать, что это эффективнее? Не вижу ничего о консистентности.

зы. Была давненько хорошая презентация, где действительно использовался правильный подход и для этого использовался Oracle Coherence, но это крайне сложно...

Почему очень сложно? Кохеренс - это кеширующий слой для приложений. То-же самое что и Apache Ignite для Сбербанка.
Только Кохеренс делает Тони Старк а Игнайт - хороший православный чел.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062061
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
mayton
Почему очень сложно?
сложность в соблюдении всех буковок из ACID, и, особенно, для уже существующих больших систем с кучей подсистем, обвязок, различных приложений и интеграций.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062062
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Одно дело какой-нибудь сайт: потерялись изменения - ну и хрен с ним, пользователь не помрет - повторит все заново. Другое дело, перевод денег со счета на счет: с одного снялись, на другой не попали - звони в тп - ручками поправят
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062078
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
Одно дело какой-нибудь сайт: потерялись изменения - ну и хрен с ним, пользователь не помрет - повторит все заново. Другое дело, перевод денег со счета на счет: с одного снялись, на другой не попали - звони в тп - ручками поправят

вы там на периферии дикие какие-то. где же ты видел что бы банковские транзакции в рамкой одной бд происходили ? это всегда туча сервисов, начиная с VISA/Mastercard, заканчивая парой банков посредников.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062088
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Возможно вас удивит, но входные тестовые данные должны быть не изменяемыми для теста.
В т.ч. название БД, схемы и пр. :-)
Если вы прибиваете гвоздями названия схем, имена хостов и т.п. подобные "переменные окружения", то у меня для вас неприятные новости: ваши тесты - отстой.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062090
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
Одно дело какой-нибудь сайт: потерялись изменения - ну и хрен с ним, пользователь не помрет - повторит все заново. Другое дело, перевод денег со счета на счет: с одного снялись, на другой не попали - звони в тп - ручками поправят

Ты мобилу пополняешь когда-нибудь? Видел, сколько шагов такая операция занимает?
Это - тоже не в рамках одного закона ACID происходит. Не одним UPDATE-ом...
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062096
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Sayan Malakshinov
Одно дело какой-нибудь сайт: потерялись изменения - ну и хрен с ним, пользователь не помрет - повторит все заново. Другое дело, перевод денег со счета на счет: с одного снялись, на другой не попали - звони в тп - ручками поправят

Ты мобилу пополняешь когда-нибудь? Видел, сколько шагов такая операция занимает?
Это - тоже не в рамках одного закона ACID происходит. Не одним UPDATE-ом...


AFAIK
Visa транзакции к ACID вообще никаким боком.

По правилам Visa (которые наши банки явно нарушают), вообще любую транзакцию в течении месяца можно взат вернуть простым заявлением в банк (для Российских банков и Сбербанка в том числе правила разумеется не писаны, они на такую просьбу пошлют к участковому. "С Вашей карточки деньги украли, вот пусть участковый по месту вашего жительства и разбирается" ( C ) Сбербанк )
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062104
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Если вы прибиваете гвоздями названия схем, имена хостов и т.п. подобные "переменные окружения", то у меня для вас неприятные новости: ваши тесты - отстой.
так это же текущий тренд: у контейнеров свое пространство имен, поэтому хост с БД можно называть "db"
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062105
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Факт подтверждение оплаты по кредитным карточкам с деньгами связан крайне опосредовано.

В том же самом Сбербанке, сайте апрувметн на платеж (пользовать корректно авторизовался) вернет в режиме близком к реалтайм, а вот деньги все равно придут одним платежом через день за все операции в предыдущие сутки.

Никакой транзакции в рамках одной БД не будет.

Деньги списались, повисли в между-модульном-пространстве (где-то ходят по банкам), на следующие сутки дошли или не дошли ))) или дошли не полностью или дошли с ошибками /в Сбербанке - запросто AFAIK )))/, банковская выписка загрузилась /или вбита руками/ в систему клиента.

Дофига транзакций и никакого ACID.

AFAIK
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062109
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
H5N1
Sayan Malakshinov
Одно дело какой-нибудь сайт: потерялись изменения - ну и хрен с ним, пользователь не помрет - повторит все заново. Другое дело, перевод денег со счета на счет: с одного снялись, на другой не попали - звони в тп - ручками поправят

вы там на периферии дикие какие-то. где же ты видел что бы банковские транзакции в рамкой одной бд происходили ? это всегда туча сервисов, начиная с VISA/Mastercard, заканчивая парой банков посредников.
Охъ, ну и каша у тебя в голове...
Во-первых, почему сразу банки? А не Sony, не Амазон, ни Озон, например?
Во-вторых, а где это у вас "там" не периферия?
В-третьих, сразу видно, что даже о банках у тебя посредственные знания. Например, я могу в веллс фарго перевести со своего депозитного счета на депозитный счет жены, и, представь, они оба не картсчета :)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062111
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
mayton
Ты мобилу пополняешь когда-нибудь? Видел, сколько шагов такая операция занимает?
Это - тоже не в рамках одного закона ACID происходит. Не одним UPDATE-ом...
Причем тут один апдейт или одна операция? Речь про потерю кэша или его несогласованность. Верность и надежность кэшей одна из самых сложных вещей.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062114
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

mad_nazgulВозможно вас удивит, но входные тестовые данные должны быть не изменяемыми для теста.
В т.ч. название БД, схемы и пр. :-)

У Вас название БД, используемой для тестов, захардкожено?


Нет.
Но кто в автоматических тестах будет менять подключение к БД?
Да они хранятся вне приложения.
Но все равно кто-то должен передать строку подключения.
Я пока не видел, чтобы на лету можно было переподключаться к разным БД.

Ну или перед тестом автоматом создать БД, сохранить соответствующие настройки (желательно в git).
Потом запускать тесты.

Что-то слишком много телодвижений для unit-тестов.

Для интеграционных - это нормально.
Т.к. они могут долго выполнятся.

Но для unit-тестов это нафиг не надо.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062115
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
mad_nazgul
Возможно вас удивит, но входные тестовые данные должны быть не изменяемыми для теста.
В т.ч. название БД, схемы и пр. :-)
Если вы прибиваете гвоздями названия схем, имена хостов и т.п. подобные "переменные окружения", то у меня для вас неприятные новости: ваши тесты - отстой.


Они где-то всё равно должны лежать, например в настройках.
Пусть у нас 12 тестов SQL-скриптов.
Чтобы их запустить параллельно нужно 12 таких настроек.
Кто их будет делать?

<:o)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062117
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
джобы, которые что-то делают и рассылают почту
перевести на шедулеры, которые будут вызвать те же процедуры, но сами будут отсылать почту, но уже без БД
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062119
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Leonid Kudryavtsev
Дофига транзакций и никакого ACID.
Ну, почему, в большинстве таких примеров, все же есть ACID на уровне микротранзакций с их фиксацией в базе/базах (естественно, сложные многоступенчатые операции с возможностью отмены на каждом из шагов состоят из микротранзакций, с возможностью их повтора, но не потери).
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062120
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
Basil A. Sidorov
Если вы прибиваете гвоздями названия схем, имена хостов и т.п. подобные "переменные окружения", то у меня для вас неприятные новости: ваши тесты - отстой.
так это же текущий тренд: у контейнеров свое пространство имен, поэтому хост с БД можно называть "db"


Ну использовать на проде БД в docker - ИМХ такая себе идея.
А вот для части интеграционных тестов - почему бы и нет.
Как минимум получаем контролируемое окружение.

Но все равно. В настройках где-то прописаны настройки подключения к БД, в т.ч. хост, название БД, логин/пароль.

Если тестировать, то по хорошему нужно для каждой поднятой БД эти настройки писать и как-то передать приложению.
Желательно автоматом.

Поэтому docker - норм решение, чтобы протестировать какую-то логику работы с БД.

Т.к. это проще, чем поднимать на каждый тест БД на уже существующем хосте.
Как бы в docker - это уже будет сделано. Главное туда скрипты закинуть для инициализации данных.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062124
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
Leonid Kudryavtsev
Дофига транзакций и никакого ACID.
Ну, почему, в большинстве таких примеров, все же есть ACID на уровне микротранзакций с их фиксацией в базе/базах (естественно, сложные многоступенчатые операции с возможностью отмены на каждом из шагов состоят из микротранзакций, с возможностью их повтора, но не потери).


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

И какой тут ACID ? ))) Это Сбербанк )))
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062127
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
Охъ, ну и каша у тебя в голове...
Во-первых, почему сразу банки? А не Sony, не Амазон, ни Озон, например?
Во-вторых, а где это у вас "там" не периферия?
В-третьих, сразу видно, что даже о банках у тебя посредственные знания. Например, я могу в веллс фарго перевести со своего депозитного счета на депозитный счет жены, и, представь, они оба не картсчета :)

да, у меня каша. но ты давай не стесняйся, похвались, где конкретно ты видел фин транзакции в рамках одной бд, с acid ? Sony, Амазон, Озон ?
если ты не понял, то я над тобой потешаюсь. у того же веллс фарго это будет огромной длины сага, которая сформирует задачу ночному джобу на закрытие твоего счета, какие-нить запросы во внешние скоринг системы, проверки на фрод. если это не ларек с 1с, ничего похожего на acid транзакцию субд не будет. все устроено много сложней.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062128
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Leonid Kudryavtsev
Выгрузили через пару дней - код операции тот же, uid тот же, дата и время те же, сумма другая.
у меня такая хрень была, когда курс шикарно попрыгал в декабре 2014, а мы на рождество в египте были я так и не стал разбираться как он определяется
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062130
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1

да, у меня каша. но ты давай не стесняйся, похвались, где конкретно ты видел фин транзакции в рамках одной бд, с acid ?

Любая транзакция в рамках одной системы/одной организации ?

Правда не уверен, какое конкретное значение Вы вкладываете в слова "фин транзакция".
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062134
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Любая транзакция в рамках одной системы/одной организации ?

Правда не уверен, какое конкретное значение Вы вкладываете в слова "фин транзакция".


потешатся я начал вот с этой фразы
Sayan Malakshinov
Одно дело какой-нибудь сайт: потерялись изменения - ну и хрен с ним, пользователь не помрет - повторит все заново. Другое дело, перевод денег со счета на счет: с одного снялись, на другой не попали - звони в тп - ручками поправят

не знаю, что он имел ввиду потому и спрашиваю, где он видел, что бы свелось к примитивной acid транзакции
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062137
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
у меня такая хрень была, когда курс шикарно попрыгал в декабре 2014...

курс не при чем.

где-то сайт Сбербанка сглючил. Было две операции на разные суммы: одна отклонилась, вторая прошла. В эквайринге изначально отразилась отклоненная операция, в банковскую выписку (деньги) попала вторая (банковскую выписку у меня не сквитовалась, т.к. суммы не совпали). Через пару дней выписка эквайрига с сайта Сбера исправилась. Подозреваю, в Сбере сами обнаружил расхождение (или наш клиент им позвонил) и кто-то просто ручками в БД исправил.

Поскольку у меня операции удаления (или перезагрузки) уже загруженной выписки эквайринга не реализована, то так же пришлось ручками в БД удалять.

Удивительно, что id / uid при этом не изменилось. Если бы было две операции и изменился бы статус операции - это я бы еще понял, но изменение суммы при одном и том же id - за гранью добра и зла.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062144
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1

не знаю, что он имел ввиду потому и спрашиваю, где он видел, что бы свелось к примитивной acid транзакции

Про банки не знаю.

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

Поэтому делить единую систему "счета и платежи" на два микросервиса, задолженность по счетам отдельно + прием платежей отдельно - можно конечно, но головной боли и кол-во ошибок это явно добавит. Транзакции и ACID "из коробки" это удобно и убирает массу проблем.

Это не значит, что такого междуомодульного пространства найти нельзя. Например комисия Сбербанка за эквайринг - вполне таким междумодульным пространством является. У пользователя списывается с карточки одна сумма, а на счет продавца приходит уже другая. В рамках сбербанка происходит "усушка и утряска" на сумму комиссии. Лично я в законности такой усушки сомневаюсь, но это пусть у юристов Сбербанка голова болит.

С точки зрения отчетности, получается хрень. Счетов выставили на 100 рублей, денег пришло на 97 рублей, а еще 3 рубля приходится "рисовать" внутри системы. Понятно, что при должной ловкости и желании, такой учет отрывает "большие переспективы"

p.s.
другие "агрегаторы" платежей (например Почта России) работают по более прозрачной схеме. Они присылают полную сумму и выставляют отдельный счет за свои услуги на сумму комиссии.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062151
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
не знаю, что он имел ввиду потому и спрашиваю, где он видел, что бы свелось к примитивной acid транзакции


А как делать "не примитивную" транзакцию?

Вот например бизнес процесс эквайринга сбербанка.

Счет 100 рублей, человек оплатил 100 рублей со своей карточки, 3 рубля "усушилось" в Сбербанка, 97 руб дошло.

Ok.

Человек пишет заявление, что оплата была ошибочной. Ему нужно вернуть деньги. Сделать rollback. Кто и как будет возврашать?

Наша система, не против. Но нам пришло 97 рублей, мы и вернуть можем 97 рублей. А вот кто и на каком основании ему будет 3 рублей усушенных Сбербанком возврашать? То есть большой вопрос.

Это при том, что документация от Сбера около нуля. Типы транзакций возврат денег, вроде у эквайринга Сбера есть, но как они работают - не понятно совершенно. Но за > 3 года ни разу транзакций возвратов не было. Но пару раз было несовпадение сумм в выписках Сбербанка и реального поступление денег - приходилось руками подшаманивать/исправлять в базе. Подозреваю, это могло быть и по причине возвратов/технических ошибок процессинга карточек.

Была бы одна база и ACID - таких бы проблем не было как класс.

p.s.
Пример не выдуманный. Был случай, когда человек по ошибке вместо 2 тыс. рублей оплатил 20 000 рублей. Просил, что бы ему вернули ))) Чем закончилось не знаю, но через 3-х месяца после написания заявления фиг он получил, а не деньги )))

Россия. Все во имя человека, все во благо человека и многие даже догадываются, что это за человек (советский анекдот, своими словами)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062153
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
mayton
Ты мобилу пополняешь когда-нибудь? Видел, сколько шагов такая операция занимает?
Это - тоже не в рамках одного закона ACID происходит. Не одним UPDATE-ом...
Причем тут один апдейт или одна операция? Речь про потерю кэша или его несогласованность. Верность и надежность кэшей одна из самых сложных вещей.

Это интересная и сложная тема. И она - будоражит этот форум.

Вы сказали о потерях. Очевидно был печальный опыт.

Мне вспоминается кто-то известный из ... эээ короче он сказал дескыть что две темы актуальны
для разработки софта - 1) как назвать переменную и 2) как инвалидировать кеш.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062154
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbi
H5N1
пропущено...


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


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


Ну, вот у нас так сейчас. Правда, не оракл.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062155
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
H5N1
да, у меня каша
остановись на этом и прекрати фантазировать о том, чего не ведаешь.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062163
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Melkomyagkii_newbi
пропущено...


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


Ну, вот у нас так сейчас. Правда, не оракл.


тож, оракл. на каждый коммит собираются стенды и гоняются все тесты.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062164
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad
Господа, вы обсуждаете абстрактные микросервисы в вакууме. Опишите задачу, чтобы можно было предметно обсуждать, из каких микро- или наносерсивов может состоять система, ее решающая.


Вполне конкретно всё. Есть многозвенная система с одной центральной базой данных.
Люди испытывают проблемы с производительностью БД.
Начинают проетк по распиливанию системы и БД на микросервисы.
В ЧЁМ БУДЕТ В ТАКОЙ АРХИТЕКТУРЕ ПРОФИТ, ВЫГОДА?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062165
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Sayan Malakshinov
ох, да я вообще хотел бы увидеть хоть один реальный, не надуманный пример, когда вынос логики из базы на апп.сервер реально поможет снизить нагрузку

Вопрос религиозный. Если тебя ткнуть носом в реальный пример, всё равно будешь орать, "ви всё врёти!".


Ну так, ткни...
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062176
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класик-- Что такое! -- сказал вдруг Балаганов, переставая работать. -- Три часа уже пилю, а оно все еще не золотое.
Паниковский не ответил. Он уже все понял и последние полчаса водил ножовкой только для виду.
-- Ну-с, попилим еще! - бодро сказал рыжеволосый Шура.
-- Конечно, надо пилить, - заметил Паниковский, стараясь оттянуть страшный час расплаты.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062177
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Ну использовать на проде БД в docker - ИМХ такая себе идея.
Чем она "такая себе"? Кто-то в интернете чет ляпнул, поэтому так себе? Operations после появления миграции в vmware ссали кипятком наконец-то расслабились и стали устанавливать все что можно в vmware, и плевать они хотели на то что по этому поводу думали вендоры БД, что MS, что Oracle, что консерваторы с форма PostgreSQL. Если смотреть на докер, то у него все крутится вокруг специфичного драйвера ФС (который можно не использовать) и вызова nsenter , чем конкретно плох вызов nsenter?


mad_nazgul

А вот для части интеграционных тестов - почему бы и нет.
Как минимум получаем контролируемое окружение.

Но все равно. В настройках где-то прописаны настройки подключения к БД, в т.ч. хост, название БД, логин/пароль.

Если тестировать, то по хорошему нужно для каждой поднятой БД эти настройки писать и как-то передать приложению.
Желательно автоматом.

Поэтому docker - норм решение, чтобы протестировать какую-то логику работы с БД.

Т.к. это проще, чем поднимать на каждый тест БД на уже существующем хосте.
Как бы в docker - это уже будет сделано. Главное туда скрипты закинуть для инициализации данных.


есть мнение что кто-то что-то "не договаривает", вся эта история про пространства имен и пр. работает _только_ из линукса, больше нигде она не работает: в MS крутится линусковая виртуалка, в OS X - тоже виртуалка, поэтому с рабочего десктопа до докеровского окружения толком достучаться нельзя (попробуй-те ради развлечения запустить отладку PL/SQL в SQL Developer), а для меня "возможность запускать тесты на декстопе" - это в первую очередь возможность отладки, которая по сути в докере-то и отсутствует, т.е. или кто-то на самом деле никакие интеграционные тесты не пишет, либо эти интеграционные тесты никакие не интеграционные и не тесты.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062180
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
В ЧЁМ БУДЕТ В ТАКОЙ АРХИТЕКТУРЕ ПРОФИТ, ВЫГОДА?

у микросервисов есть эластичность (не путать с производительностью и масштабируемостью), а у немикросервисов - нет.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062182
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У микросервисов может отсутствовать SPOF.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062191
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

А как делать "не примитивную" транзакцию?

Вот например бизнес процесс эквайринга сбербанка.

Счет 100 рублей, человек оплатил 100 рублей со своей карточки, 3 рубля "усушилось" в Сбербанка, 97 руб дошло.

Ok.

Человек пишет заявление, что оплата была ошибочной. Ему нужно вернуть деньги. Сделать rollback. Кто и как будет возврашать?

вы реально ничего не слышали про патерн Saga ?

Sayan Malakshinov
остановись на этом и прекрати фантазировать о том, чего не ведаешь.

я не ведаю откуда такая серость. так давай, разрушь мой маленький и уютный мирок, где даже внутри организации, типа сбера вылазит "вот где карту открывали, туда и идите".
в котором ларьке у тебя опыт ? я не хочу фантазировать, я просто хочу понять где столь примитивный взгляд на вещи мог сохранится. ведь в моих краях даже ларек в рамках транзакции начислит всякие бонусные очки или запроцессит какую-нить подарочную карту.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062196
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1

вы реально ничего не слышали про патерн Saga ?

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

Бизнес кейс привел. 3-и рубля комиссии которые забрал себе Сбербанк, он врят ли отдаст. Что с Saga, что без Saga. Вот такие вот "фин транзакции" когда "это всегда туча сервисов, начиная с VISA/Mastercard, заканчивая парой банков посредников"

Если сможете объяснить, откуда при возврате средств брать 3-и рубля комиссии и как их показать бухгалтерии - буду рад.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062198
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Капец. Как вообще SWIFT-у после этого доверять можно.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062202
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
H5N1
я не хочу фантазировать
сев разок в лужу, ты все-таки настаиваешь и вылазить из нее не хочешь...
H5N1
ведь в моих краях
где ничего не слышал про нормальные банки и население страны меньше, чем округ в Москве? :)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062203
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

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

Бизнес кейс привел. 3-и рубля комиссии которые забрал себе Сбербанк, он врят ли отдаст. Что с Saga, что без Saga. Вот такие вот "фин транзакции" когда "это всегда туча сервисов, начиная с VISA/Mastercard, заканчивая парой банков посредников"

Если сможете объяснить, откуда при возврате средств брать 3-и рубля комиссии и как их показать бухгалтерии - буду рад.

ну известный патерн, на хабре наверно через день наверно о нем судачат. вкратце ты там описываешь, что надо сделать в рамках "транзакции" и что в рамках отката. что там в откате ты нарисуешь, тебе решать. надо вернуть включаю комиссию - рисуй включая.
суть то не в этом, суть в том, что все в современном мире длинные распределенные саги. от платежа за мороженого, до withdrawal с Binance биржи это распределенные транзакции цепляющие тучи сервисов.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062272
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
У микросервисов может отсутствовать SPOF.
это совершенно ниоткуда не следует, эта вера основывается исключительно на предположении, что инфраструктурные сервисы достаточно "тупы", чтобы там чему-то ломаться, т.е. те, кто организовывает обмен сообщениями через очереди, слепо верят, что очереди не падают (ага, очереди же не БД, поэтому не SPOF), те, кто гонит трафик через HTTP верят в то, что там не бывает таймаутов....
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062312
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
mayton
У микросервисов может отсутствовать SPOF.
это совершенно ниоткуда не следует, эта вера основывается исключительно на предположении, что инфраструктурные сервисы достаточно "тупы", чтобы там чему-то ломаться, т.е. те, кто организовывает обмен сообщениями через очереди, слепо верят, что очереди не падают (ага, очереди же не БД, поэтому не SPOF), те, кто гонит трафик через HTTP верят в то, что там не бывает таймаутов....

Давай смягчим это утверждение. Пускай будет не SPOF, но нечто, декларирующее устойчивость
бизнеса, в условиях когда часть сервисов находятся в down-time. Про БД мы такое сказать не можем.
Если датацентр упал (вследствие пожара или землетрясения) - то и все сервисы - недоступны.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062330
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Давай смягчим это утверждение. Пускай будет не SPOF, но нечто, декларирующее устойчивость
бизнеса, в условиях когда часть сервисов находятся в down-time. Про БД мы такое сказать не можем.
Если датацентр упал (вследствие пожара или землетрясения) - то и все сервисы - недоступны.

можем. особливо про оракл, где standby нода в соседнем здании вполне норма.
mysql так вообще очень давно без репликации не видел.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062334
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
mayton

Давай смягчим это утверждение. Пускай будет не SPOF, но нечто, декларирующее устойчивость
бизнеса, в условиях когда часть сервисов находятся в down-time. Про БД мы такое сказать не можем.
Если датацентр упал (вследствие пожара или землетрясения) - то и все сервисы - недоступны.

можем. особливо про оракл, где standby нода в соседнем здании вполне норма.
mysql так вообще очень давно без репликации не видел.

Standby - это справедливое замечание. Однако, я задам вопрос о практике этого применения.
Как говорят в физике - если явление редко - то этим можно пренебречь. Если там где стоит RAC - не ставят
Standby - то практика подобного применения не выражена. Соотв. мы говорим о том что существует
в теории но на практике не используется.

Про MySQL - ничего не скажу. Не знаком с их технологиями. Однако для MySQL я-бы задал вопрос
о том существует ли коробочная конфигурация для автоматического переключения БД на резервную?
Или должен сидеть индус который нажимает на кнопочку.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062341
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Давай смягчим это утверждение. Пускай будет не SPOF, но нечто, декларирующее устойчивость
бизнеса, в условиях когда часть сервисов находятся в down-time. Про БД мы такое сказать не можем.
Если датацентр упал (вследствие пожара или землетрясения) - то и все сервисы - недоступны.


Есть "книжка" такая, называется ITIL, я ее изучил в 2006 году и сдал экзамены, с тех пор там еще вышло несколько редакций, но в целом ничего не изменилось. "Датацентр упал" - это называется Continuity Management (не путать с Availability Management), так вот, Continuity Management - это уровень CIO и CEO, а не бичей, клепающих микросервисы на коленке - никто в здравом уме этим бичам такое не доверит, хотя текущая тенденция говорит о том, что в CIO поперли дебилы, которые даже книжку по профессии прочесть не в состоянии . Ну да хрен с ним, в случае нормального предприятия, когда внедряется новый сервис, идет оценка потенциальных угроз, влияния на бизнес, способов их устранения, требуемые бюджеты и прочее, и в итоге у сервиса фиксируется SLA/OLA, в случае же микросервисов получается так, что любое обновление может привести к полному и безоговорочному фиаско, просто потому, что ответственность по обеспечению непрерывности и доступности была делегирована какому-то бичу с улицы (условно разработчик решил что так делать лучше/проще, понаписал говнокода, оно тесты прошло и ушло в прод)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062342
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
существует ли коробочная конфигурация для автоматического переключения БД на резервную?
Или должен сидеть индус который нажимает на кнопочку.
Ну да, здесь у микросервисов есть бесспорное преимущество: там существует целая команда индусов, которая в случае сбоя синхронизирует данные между системами.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062344
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Как говорят в физике - если явление редко - то этим можно пренебречь
В физике говорят, что если практика опровергает теорию, то это заявка на нобелевку, а какими-либо явлениями в физике никто не пренебрегает.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062346
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов

Есть "книжка" такая, называется ITIL, я ее изучил в 2006 году и сдал экзамены, с тех пор там еще вышло несколько редакций, но в целом ничего не изменилось. "Датацентр упал" - это называется Continuity Management (не путать с Availability Management), так вот, Continuity Management - это уровень CIO и CEO, а не бичей, клепающих микросервисы на коленке - никто в здравом уме этим бичам такое не доверит, хотя текущая тенденция говорит о том, что в CIO поперли дебилы, которые даже книжку по профессии прочесть не в состоянии . Ну да хрен с ним, в случае нормального предприятия, когда внедряется новый сервис, идет оценка потенциальных угроз, влияния на бизнес, способов их устранения, требуемые бюджеты и прочее, и в итоге у сервиса фиксируется SLA/OLA, в случае же микросервисов получается так, что любое обновление может привести к полному и безоговорочному фиаско, просто потому, что ответственность по обеспечению непрерывности и доступности была делегирована какому-то бичу с улицы (условно разработчик решил что так делать лучше/проще, понаписал говнокода, оно тесты прошло и ушло в прод)

Наверное ты только что ответил на главный вопрос топика.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062348
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
mayton
существует ли коробочная конфигурация для автоматического переключения БД на резервную?
Или должен сидеть индус который нажимает на кнопочку.
Ну да, здесь у микросервисов есть бесспорное преимущество: там существует целая команда индусов, которая в случае сбоя синхронизирует данные между системами.

Это - тоже полезная синергия.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062372
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
H5N1
пропущено...

можем. особливо про оракл, где standby нода в соседнем здании вполне норма.
mysql так вообще очень давно без репликации не видел.

Standby - это справедливое замечание. Однако, я задам вопрос о практике этого применения.
Как говорят в физике - если явление редко - то этим можно пренебречь. Если там где стоит RAC - не ставят
Standby - то практика подобного применения не выражена. Соотв. мы говорим о том что существует
в теории но на практике не используется.


ни разу не видел RAC без Standby(или аналога на уровне дискового массива), т.к обычно если рак - то достаточно серьезно, а тогда и стендбаем никто пренебрегать не будет. часто даже не соседнее здание, а соседний город.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062390
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
в случае же микросервисов получается так, что любое обновление может привести к полному и безоговорочному фиаско, просто потому, что ответственность по обеспечению непрерывности и доступности была делегирована какому-то бичу с улицы (условно разработчик решил что так делать лучше/проще, понаписал говнокода, оно тесты прошло и ушло в прод)

вы ИТ где-то в Урюпенске изучали ? почему у микросервисы обязаны отменять продукт овнера и дробить ответсвенность ? а что с двухзвенкой oracle forms ? там две компоненты, в Урюпенске их тоже по отдельности в прод пускают без единого ответсвенного ?

mayton

Про MySQL - ничего не скажу. Не знаком с их технологиями. Однако для MySQL я-бы задал вопрос
о том существует ли коробочная конфигурация для автоматического переключения БД на резервную?
Или должен сидеть индус который нажимает на кнопочку.

у нас индусы как раз для переключения оракла нужны, из-за кастрации standard едишенов, коих в конторе десятки. у mysql у нас какой-то peacemaker переключает.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062409
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1

вы ИТ где-то в Урюпенске изучали ? почему у микросервисы обязаны отменять продукт овнера и дробить ответсвенность ?
В моем Урюпинске ситуация с IT куда получше чем в вашем Усть-Зажопинске, для сведения: у продакт-овнера в обязанностях нет никакой IT-стратегии, сюрприз, да, и у CIO нет обязанности посещать стендапы и делать ревью.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062449
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
у нас индусы как раз для переключения оракла нужны, из-за кастрации standard едишенов, коих в конторе десятки. у mysql у нас какой-то peacemaker переключает.

А. Нашел. Pacemaker называют. Читаю вики. Использует Corosync Cluster Engine.

Есть ли в нём кворумы и децентрализованное принятие решений?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062459
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне всегда была подозрительна концепция микросервисов применительно к statefull-объектам вообще и к БД в частности.
Я так вижу, что декларируемая микросервисной архитектурой легкость deployment и изолированность доработок хороши для stateless, но никак не для statefull, где требуется согласованность структур данных и всего завязанного на эти структуры прикладного кода.
С другой стороны, микросервисы для меня что-то из серии простоты, которая "хуже воровства" - избавляя разраба от тяжких размышлений о системе в целом этот подход просто выбрасывает за борт сложность взаимосвязей компонент системы.
Как избежать развала системы после микро-распила? В частности - как выявлять конфликтующие "изолированные" доработки разных "микро"?
Как обеспечить согласованность данных в слабо связанной системе?
Как быть с резервным копированием и согласованным восстановлением при сбоях сотен отдельных микробазулек?
В микросервисном подходе вообще возможно хоть как-то гарантировать целостность данных в масштабе системы?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062465
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Применительно к данному топику (к распливанию уже работающей БД) я тоже не согласен.
Скорее всего пострадают joins. А если не пилить базу тогда принцип low-coupling/high-cohession
не достигается. Зачем тогда вообще начинать?

Но если создавать новую систему - вроде туристического букинга билетов, гостиниц, шаровых
машин - то тогда получается вполне себе красиво. За каждую часть процесса отвечает свой
микро-сервис.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062482
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

А. Нашел. Pacemaker называют. Читаю вики. Использует Corosync Cluster Engine.

Есть ли в нём кворумы и децентрализованное принятие решений?


есть.

andrey_anonymous
Мне всегда была подозрительна концепция микросервисов применительно к statefull-объектам вообще и к БД в частности.
Я так вижу, что декларируемая микросервисной архитектурой легкость deployment и изолированность доработок хороши для stateless, но никак не для statefull, где требуется согласованность структур данных и всего завязанного на эти структуры прикладного кода.
С другой стороны, микросервисы для меня что-то из серии простоты, которая "хуже воровства" - избавляя разраба от тяжких размышлений о системе в целом этот подход просто выбрасывает за борт сложность взаимосвязей компонент системы.
Как избежать развала системы после микро-распила? В частности - как выявлять конфликтующие "изолированные" доработки разных "микро"?
Как обеспечить согласованность данных в слабо связанной системе?
Как быть с резервным копированием и согласованным восстановлением при сбоях сотен отдельных микробазулек?
В микросервисном подходе вообще возможно хоть как-то гарантировать целостность данных в масштабе системы?

примитивный взгляд. реально в бизнес системах лишь крошечная часть по настоящему требует абсолютной согласованности. я не видел тру микросервисов, но видел как избавлялись / выпиливали куски и ораклового монолита. например для веб-портала клиентов сделали solr индекс и mysql. получили профит, нагрузка на оракл в разы снизилась и угроза аппгрейда лицензий миновала. взять алиэкспрес и заказы, чё-то я сомневаюсь, что данные по заказам пользователь в риалтайме видит. сто балов такой-же асинхронный индекс.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062541
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
примитивный взгляд. реально в бизнес системах лишь крошечная часть по настоящему требует абсолютной согласованности. я не видел тру микросервисов, но видел как избавлялись / выпиливали куски и ораклового монолита. например для веб-портала клиентов сделали solr индекс и mysql. получили профит, нагрузка на оракл в разы снизилась и угроза аппгрейда лицензий миновала. взять алиэкспрес и заказы, чё-то я сомневаюсь, что данные по заказам пользователь в риалтайме видит. сто балов такой-же асинхронный индекс.
по сути это и есть основной профит переписывания - рефакторинг кода и появление экспертов в коде проекта

но это будет даже в обратку работать, если из микросервисов будут монолит делать - причём, даже с большим эффектом
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062567
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
ох, да я вообще хотел бы увидеть хоть один реальный, не надуманный пример, когда вынос логики из базы на апп.сервер реально поможет снизить нагрузку
Для OLTP вынос логики и более того всякие ORM это выстрел себе в ногу, гвоздь в крышку гроба масштабируемости, безопасноти и проч.
Но подавляющее большинство подобных JAVA клепателей ничего не знают что блокировки и уровни изоляций и тем не менее их сервисы работают и как-то даже удовлетворяют потребности какого-то бизнеса. Зачем тогда заморачиваться?
Я не говорю что у этого подхода есть плюсы в снижении нагрузки, но есть своя ниша говноподелок.

Другой вопрос - warehouse.

Во-первых для хранилищ оказывается иногда вообще выгоднее от Оракла уйти (и не только из-за стоимости). Здесь его ACID и прочие навороты не так уж критичны. Можно вспомнить, что идеал может быть слишком дорог и какие-то два из трех наиболее важны, а где-то можно пойти на компромисс - CAP theorem . И выбрать себе какую-то MPP .
!
Во-вторых даже если пока хранилище крутится на Оралке, и есть внешний мощный ETL движок, то может оказаться что логику в движке организовать дешевле (да, это означает что данные сначала фетчаться, потом трансформируются, потом заливаются обратно). Нет чудаковатых ограничений Оракла на 2GB *_area_size с последующим уходом в темп (не надо тут вспоминать про _ параметры плиз, все равно нормально не взлетает). Не надо генерить redo. Упал ETL - ну и фиг с ним. Логи работы остались, проанализируем и повторим снова. Не надо обеспечивать уйму прочих структур и процессов Оракла для того же ACID.

PS. Если чо, прямой ответ на вопрос после "!". До этого лирическое отступление.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062574
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
реально в бизнес системах лишь крошечная часть по настоящему требует абсолютной согласованности. ...видел как избавлялись / выпиливали куски и ораклового монолита. например для веб-портала клиентов сделали solr индекс и mysql. получили профит

Опасаюсь, что кэш веб-портала как раз и есть одна из тех крошечных частей, которая не требует согласованности в системах с "ответственным вистом", если понимаете о чем я.
А так да, взгляды у меня самые примитивные - не поспоришь
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062649
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
mad_nazgul
Ну использовать на проде БД в docker - ИМХ такая себе идея.
Чем она "такая себе"? Кто-то в интернете чет ляпнул, поэтому так себе? Operations после появления миграции в vmware ссали кипятком наконец-то расслабились и стали устанавливать все что можно в vmware, и плевать они хотели на то что по этому поводу думали вендоры БД, что MS, что Oracle, что консерваторы с форма PostgreSQL. Если смотреть на докер, то у него все крутится вокруг специфичного драйвера ФС (который можно не использовать) и вызова nsenter , чем конкретно плох вызов nsenter?


"Так себе", т.к. "чтобы что?!"
Принцип докера и микросервисов в том что "быстро поднятое не считается упавшим" и горизонтальное масштабирование.
Или грубо говоря нужно чтобы микросервис был стейтлесс.
А БД по определению стейтфулл.
А горизонтальное масштабирование решается через кластер.

В докер можно засунуть всё что угодно, но смысла я лично не вижу.
Может он есть, но для БД, пока меня никто не убедил, что это надо делать.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062650
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
есть мнение что кто-то что-то "не договаривает", вся эта история про пространства имен и пр. работает _только_ из линукса, больше нигде она не работает: в MS крутится линусковая виртуалка, в OS X - тоже виртуалка, поэтому с рабочего десктопа до докеровского окружения толком достучаться нельзя (попробуй-те ради развлечения запустить отладку PL/SQL в SQL Developer), а для меня "возможность запускать тесты на декстопе" - это в первую очередь возможность отладки, которая по сути в докере-то и отсутствует, т.е. или кто-то на самом деле никакие интеграционные тесты не пишет, либо эти интеграционные тесты никакие не интеграционные и не тесты.


Вот!
Поэтому я против использование ХП и триггеров. :-)
Т.к. нет на данный момент удобного инструментария для автоматического тестирования.
Почему докер удобен для тестирования для меня.
Я использую БД как хранилище данных.
А внутри докера легко поднять БД с нужным набором данных и конфигурацией.
При этом внутри докера лично мне ничего не надо тестировать/отлаживать и пр., т.к. считается что данные валидны и протестированы.

<:o)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062651
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Мне всегда была подозрительна концепция микросервисов применительно к statefull-объектам вообще и к БД в частности.
Я так вижу, что декларируемая микросервисной архитектурой легкость deployment и изолированность доработок хороши для stateless, но никак не для statefull, где требуется согласованность структур данных и всего завязанного на эти структуры прикладного кода.
С другой стороны, микросервисы для меня что-то из серии простоты, которая "хуже воровства" - избавляя разраба от тяжких размышлений о системе в целом этот подход просто выбрасывает за борт сложность взаимосвязей компонент системы.
Как избежать развала системы после микро-распила? В частности - как выявлять конфликтующие "изолированные" доработки разных "микро"?
Как обеспечить согласованность данных в слабо связанной системе?
Как быть с резервным копированием и согласованным восстановлением при сбоях сотен отдельных микробазулек?
В микросервисном подходе вообще возможно хоть как-то гарантировать целостность данных в масштабе системы?


Ну например сага или лямбда-архитектура

Ну а так. Микросервисная архитектура эта попытка перенести сложность на "уровень вверх".
Т.е. сами микросервисы внутри простые, а вот их взаимодействие между собой сложное.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062671
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

Ну например сага или лямбда-архитектура

Ну а так. Микросервисная архитектура эта попытка перенести сложность на "уровень вверх".
Т.е. сами микросервисы внутри простые, а вот их взаимодействие между собой сложное.

Спасибо за ссылки.

Что касается саги, то, пмсм, это шляпа.
- Не любое воздействие можно легко скомпенсировать (тривиальный пример - удаление, более сложные - разноообразная агрегатчина и прочие необратимые действия), что налагает ограничения на применимость.
- Объем разработки удваивается (по каждому кейсу dml требуется разработать два воздействия).
- в отсутствие координатора восстановление при сбое может стать забавной забавой.

Лямбда же у меня никогда с микросервисами не ассоциировалась - скорее с большими хранилищами. Возможно, не прав - почитаю.

Про сложность взаимодействий я отдельно переживаю - как управлять, на каком уровне?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062714
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous

Спасибо за ссылки.

Что касается саги, то, пмсм, это шляпа.
- Не любое воздействие можно легко скомпенсировать (тривиальный пример - удаление, более сложные - разноообразная агрегатчина и прочие необратимые действия), что налагает ограничения на применимость.
- Объем разработки удваивается (по каждому кейсу dml требуется разработать два воздействия).
- в отсутствие координатора восстановление при сбое может стать забавной забавой.

Лямбда же у меня никогда с микросервисами не ассоциировалась - скорее с большими хранилищами. Возможно, не прав - почитаю.

Про сложность взаимодействий я отдельно переживаю - как управлять, на каком уровне?


объем разработки удваивается, команды утраиваются, манагеры в проектах и между ними наверно по экспоненте приростают, но какое это имеет значение ? жрет то все это в итоге на порядок-два меньше, чем лицензировать оракл и пытаться процессить данные в самом дорогом и практически не умеющем параллелится ресурсе.
pl/sql застрял в 90х, за 15 лет почти не развивается, притока спецов нет, самые вменяемые уходят в более динамично развивающиеся платформы, где кстати все крутиться вокруг stateless и параллельности (ровной противоположности идеологии pl/sql).
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062724
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1

объем разработки удваивается, команды утраиваются, манагеры в проектах и между ними наверно по экспоненте приростают, но какое это имеет значение ?

И действительно, какое?
Микросервисы, если не изменяет склероз, завоевывали мир ровно по той же схеме, что и все предыдущие вундерконцепции, от разделяемых библиотек через ООП к СОАПу и далее - "облегчает разработку, снижает timetomarket, экономит деньги". Впрочем, как всегда :)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062773
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous

Спасибо за ссылки.

Что касается саги, то, пмсм, это шляпа.
- Не любое воздействие можно легко скомпенсировать (тривиальный пример - удаление, более сложные - разноообразная агрегатчина и прочие необратимые действия), что налагает ограничения на применимость.
- Объем разработки удваивается (по каждому кейсу dml требуется разработать два воздействия).
- в отсутствие координатора восстановление при сбое может стать забавной забавой.


А кто сказал, что будет легко?! :-)
На сколько я понял, с сагой, мы просто забиваем, что у нас данные должны быть согласованы.
Т.е. они будут согласованы и не противоречивы, но потом.
И передается не управляющее воздействие, а состояние(данные) той или иной сущности.

За агрегатчину, как раз отвечает лямбда-архитектрура


andrey_anonymous

Лямбда же у меня никогда с микросервисами не ассоциировалась - скорее с большими хранилищами. Возможно, не прав - почитаю.

Про сложность взаимодействий я отдельно переживаю - как управлять, на каком уровне?


Это как бы "второй вопрос", на который обычно "не отвечают".
А так. Проектируем микросервисы, которые как стейтлесс возвращают всегда одно и то же при одинаковом входе.
Ну а дальше из них формируем некую цепочку бизнес-логики.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062775
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous

И действительно, какое?
Микросервисы, если не изменяет склероз, завоевывали мир ровно по той же схеме, что и все предыдущие вундерконцепции, от разделяемых библиотек через ООП к СОАПу и далее - "облегчает разработку, снижает timetomarket, экономит деньги". Впрочем, как всегда :)


Ну как бы - да.

Микросервис написать гораздо легче, чем делать изменения в монолитном приложении.

Мое мнение, все что не делается за пару спринтов микросервисом называться не может. :-)

Т.е. "сила" в том, чтобы вместо изменять, можем просто "переписать всё нафиг".

С монолитом такой фокус проделать трудно. С микросервисами проще (читай дешевле).
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062776
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
в самом дорогом и практически не умеющем параллелится ресурсе.
pl/sql застрял в 90х, за 15 лет почти не развивается, притока спецов нет, самые
вменяемые уходят в более динамично развивающиеся платформы, где кстати все
крутиться вокруг stateless и параллельности (ровной противоположности идеологии pl/sql).

Параллелится то он как раз нормально. Сколько там.... до 100 штук нодов в RAC впихнуть можно.
Другое дело что если нужна какая-то интеграция с внешними системами - сам node не может
быть инициатором этого действия. Ну или практики такой нет.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062799
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Проектируем микросервисы, которые как стейтлесс возвращают всегда одно и то же при одинаковом входе.

Угу. Вот только к БД это сложно применить.

mad_nazgul
andrey_anonymous

Впрочем, как всегда :)


Ну как бы - да.

Микросервис написать гораздо легче, чем делать изменения в монолитном приложении.
...
Т.е. "сила" в том, чтобы вместо изменять, можем просто "переписать всё нафиг".
...
С монолитом такой фокус проделать трудно. С микросервисами проще (читай дешевле).


Мнэээ... Если абстрагироваться от уже упомянутых вопросов управления согласованностью изменений и проблем с согласованностью состояний statefull-объектов - то, наверное, так и есть.
Но как применить микросервисы в корпоративном приложении, выдерживая SLA - для меня всё еще загадочная загадка.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062814
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Параллелится то он как раз нормально. Сколько там.... до 100 штук нодов в RAC впихнуть можно.

ну так запрос то не параллелится на ноды, да и одну ноду загрузить работой хотя бы на половину особо шансов нет. чтение параллелится лишь партициями, на фоне новомодных трендов в области параллелизации это так себе.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40062838
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
ну так запрос то не параллелится на ноды, да и одну ноду загрузить работой хотя бы на половину особо шансов нет.

Это неверно.
В некоторых случаях приходится принимать специальные меры чтобы запрос по нодам не разлетался.
Ну и про чтение "по партициям"... Такая возможность есть. Но параллелить сканирование единственного сегмента оракель тоже никогда не отказывался.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063005
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous

Угу. Вот только к БД это сложно применить.


Поэтому БД рассматривается в рамках микросервисной архитектуры, как хранилище данных.

andrey_anonymous

Мнэээ... Если абстрагироваться от уже упомянутых вопросов управления согласованностью изменений и проблем с согласованностью состояний statefull-объектов - то, наверное, так и есть.
Но как применить микросервисы в корпоративном приложении, выдерживая SLA - для меня всё еще загадочная загадка.


Ну на самом деле всё сложно, но можно.
Там есть один "лафхак", когда "микросервисы" строятся вокруг монолита.
Постепенно "забирая" функции от монолита, и перенося их в "микросервисы".
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063027
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

Поэтому БД рассматривается в рамках микросервисной архитектуры, как хранилище данных.

Да как не рассматривай, а сервис, зависимый от данных (работающий с БД), перестаёт быть stateless.

mad_nazgul
andrey_anonymous

Но как применить микросервисы в корпоративном приложении, выдерживая SLA - для меня всё еще загадочная загадка.

Там есть один "лафхак", когда "микросервисы" строятся вокруг монолита.

Прям технология Имитации Бурной Деятельности в незамутнённом виде :)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063037
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
andrey_anonymous

Угу. Вот только к БД это сложно применить.


Поэтому БД рассматривается в рамках микросервисной архитектуры, как хранилище данных.

Очень дорогое хранилище, я-бы заметил.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063657
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

Принцип докера и микросервисов в том что "быстро поднятое не считается упавшим" и горизонтальное масштабирование.
Или грубо говоря нужно чтобы микросервис был стейтлесс.


Какие-то одни сплошные заблуждения, если не сказать хуже...

- горизонтальная масштабируемость (масштабирование - это когда изображение увеличивают) в микросервисах ровно точно такая же как и во всех остальных архитектурах - ее наличие нужно для начала доказать, а потом еще и регулярно проверять, чтобы обсер не случился в самый неподходящий момент, а чтобы за язык никто внезапно не поймал правильно говорить про эластичность (elasticity) и устойчивость (resilience), но никак не про масштабируемость (хотя в случае чего в любой момент времени можно сказать, что исполнитель не до конца понимает что такое микросервисы и поэтому не получилось, или что у заказчика требования оказались не вполне подходящими под модную архитектуру)

- когда пишут про всякие pets vs cattle, то в первую очередь подразумевают о различных моделях управления сервисами, а ваше "быстро поднятое не считается упавшим" - это какая-то несусветная дичь: когда в системе происходит сбой какого-то сервиса - это называется "аварией", которая должна тщательно расследоваться и предприниматься меры по недопущению ситуаций в будущем (это, конечно, когда инфраструктурой управляет тот кто нужно, а не продакт-оврер, разгребающий бэклоги )

- я конечно понимаю что каждая макака хочет потешить свое ЧСВ, возомнить себя гуглом и построить космолет, только большинству заказчиков все эти идеи про масштабируемость, связность и пр. нафиг не упали, заказчику нужно чтобы ПО работало и выполняло свои функции, а отдел макак, который будет сопровождать космолеты, заказчику не нужен

- микросервисы на самом деле про замкнутость предметной области, а каким образом там поддерживается персистентность данных уже дело десятое, уж тем более не имеет никакого значения используются там тригеры и хранимые процедуры в СУБД или нет: есть сервис, представляющий собой персистентное хранилище, он работает по определенным правилам, все, конец истории.

- докер (не контейнеры, а именно докер, контейнеры за 20 лет до докера появились) - это пример ПО, имеющего крайне отвратительное качество (совершенно непродуманное, с крайне ущербным API), но при этом сумевшего каким-то образом завоевать популярность, пользоваться им нужно крайне осторожно (хотя насколько я понимаю его в оркестраторах выставили на мороз, и теперь его ниша - это десктоп)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063910
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов

Какие-то одни сплошные заблуждения, если не сказать хуже...
...


Хорошо что упомянули, про " Pets vs Cattle ".
Как раз это одно из свойств микросервисной архитектуры, мы можем строить надежную систему из не надежных компонентов.

Совсем другой подход.

Ну докер не смотря на то что он плохой, показал, что он работает. ;-)

<:o)
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063928
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
mad_nazgul
мы можем строить надежную систему из не надежных компонентов
а вот это пофигистично-наплевательское отношение меня шокирует: что-то багует, падает - перезапустили, сделали вид, что что-то расследовали (на самом деле ничего не выяснили и не поняли, просто очередная отписка) и спокойно живут дальше. И этот пофигизм уже практически везде. Мой личный "любимчик" - RabbitMQ: всем пофиг (включая самих разработчиков раббита) какого хрена нода упала - автоматически перезапустилась же!
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063940
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
mad_nazgul
мы можем строить надежную систему из не надежных компонентов
а вот это пофигистично-наплевательское отношение меня шокирует: что-то багует, падает - перезапустили, сделали вид, что что-то расследовали (на самом деле ничего не выяснили и не поняли, просто очередная отписка) и спокойно живут дальше. И этот пофигизм уже практически везде. Мой личный "любимчик" - RabbitMQ: всем пофиг (включая самих разработчиков раббита) какого хрена нода упала - автоматически перезапустилась же!

Дело в том что этот кролик написан на технологиях Erlang. А у них - постулируется принцип
что если какой-то актор завис или сбойнул - то перезапуск всего стека решает проблему.
Благодаря такой философии Erlang приложения и работают годами. Хотя по статистике
сбоев и по оказываемому эффекту - там можно конечно поспорить. Но то что выбрасывает
С++ приложение в kernel-panic, в Erlang проходит незаметным. Почему никто не исследует - это
хороший вопрос. Вопрос к разработчикам Rabbit.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063941
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
mayton,

Автоматически перезапускается оно снаружи, целиком ноду, а не само внутри себя...
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063946
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
mad_nazgul
мы можем строить надежную систему из не надежных компонентов
а вот это пофигистично-наплевательское отношение меня шокирует: что-то багует, падает - перезапустили, сделали вид, что что-то расследовали (на самом деле ничего не выяснили и не поняли, просто очередная отписка) и спокойно живут дальше. И этот пофигизм уже практически везде. Мой личный "любимчик" - RabbitMQ: всем пофиг (включая самих разработчиков раббита) какого хрена нода упала - автоматически перезапустилась же!


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

И даже если есть сплошное логирование "вообще всего" - не факт, что поведение обязательно воспроизведется.
На сложности отладки в системах с очередями еще создатели SmalTalk указывали, а речь шла в целом о более простых конструкциях.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063950
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
mayton,

Автоматически перезапускается оно снаружи, целиком ноду, а не само внутри себя...

Ну очередь сообщений сохраняется после перезагрузки?
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063953
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
Мой личный "любимчик" - RabbitMQ: всем пофиг (включая самих разработчиков раббита) какого хрена нода упала - автоматически перезапустилась же!


Конкретно RabbitMQ - это такой пример невежества, из всех очередей RabbitMQ позиционируется как "самый простой в настройке кластера" (т.е. все остальное настраивать сложно), при этом у него есть явные проблемы с масштабируемостью и вендор рекомендует отключать режим HA и персистентность сообщений, чтобы оно хоть как-то работало.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063955
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Как раз это одно из свойств микросервисной архитектуры, мы можем строить надежную систему из не надежных компонентов.

Совсем другой подход.
могу предложить построить систему на каналах с 5% потерей пакетов
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063966
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,

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

Так, что падение любого из обработчиков, по вероятности, не приводит к пропускам/ложным извлечениям информации из очереди.
Очевидно, что такие системы сложнее в настройке, управлении, расходе железа, хотя в каком-то диапазоне можно получить более высокие скорости обработки.
Системы с потерями в канале и ненадёжной доставкой, или разделением содержимого очереди по обработчикам - обязаны быть сложнее в управлении.
И разбираться в них с тем, ба, почему упал обработчик, тем более, никто не будет.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40063979
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Андрей Панфилов
это такой пример невежества, из всех очередей RabbitMQ позиционируется как "самый простой в настройке кластера"
ой, в опенсорсе вообще все дико с кластерами - никакого автодискавери, никакой автонастройки... все костыльное до жути.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40064009
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

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

- идем в интернет и читаем страшные истории в духе:
-- СУБД ну совсем никак не масштабируется
-- давать "стороннему приложениюмодулю" работать с данными из нашей СУБД напрямую не хорошо (оно может данные попортить, появляется дополнительная связноть, и более другие страшные вещи)
- что же делать? нужно делать микросервис!
- как мы этот микросерис будем масштабировать и как к нему будут обращаться? идем опять в интернет читать рекомендации:
-- HTTP - это плохо, там хендшейки, таймауты, накладные расходы на балансировку и прочий ужас-ужас
-- нужно делать очередь.... и тут опять история про масштабируемость, устойчивость и пр...

В итоге приходим к тому что было изначально, только все сложнее на порядок, да еще инфраструктура и штат раздулись, так что если денег у заказчика не особо много, то можно в сторону микросервисов даже не смотреть. При этом все эти истории про масштабируемость никто не любит рассказывать до конца, потому что если копать глубже, то там масштабируемость довольно условная получается - почти все инфраструктурные сервисы с намеком на персистентность при перебалансировке требуют перезапуска клиентов, отсюда все истории про то что быстро поднялось не считается упавшим, при этом в сервисах даже graceful shutdown никто толком не реализовывает.

Последний раз меня elasticsearch особенно порадовал - у него история такая, что если в сайзинг не попал, то нужно перестраивать индекс, а чтобы его быстро перестраивать нужно исходные данные в нем же хранить, а там возникает история про безопасность и конские требования к I/O.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40064423
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
mad_nazgul
Как раз это одно из свойств микросервисной архитектуры, мы можем строить надежную систему из не надежных компонентов.

Совсем другой подход.
могу предложить построить систему на каналах с 5% потерей пакетов


Так весь интернет так и работает.
А при диалапе-то до 30% доходило потерь пакетов.
И норм, работало. Медленно правда.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40064427
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

Так весь интернет так и работает.
А при диалапе-то до 30% доходило потерь пакетов.
И норм, работало. Медленно правда.


Страшилки какие то, на любом вменяемом модеме был или MNP или HST (Курьеры онли). Достичь 30% потерь TCP/IP пакетов из-за dial up'а это нужно постараться.

AFAIK большинство потерь пакетов не из-за потерь/ошибок в каналах, а из-за недостаточной пропускной способностью где-то по дороге и, соответственно, просто выкидыванием пакетов в роутере которые ну никак через данный маршрут пролезть не могут.
...
Рейтинг: 0 / 0
Зачем все пилят монолит?
    #40064603
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Страшилки какие то, на любом вменяемом модеме был или MNP или HST (Курьеры онли). Достичь 30% потерь TCP/IP пакетов из-за dial up'а это нужно постараться.


Какую вменяемость можно ждать от Win-модема весной, при затопленных колодцах?
<:o)
...
Рейтинг: 0 / 0
172 сообщений из 172, показаны все 7 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Зачем все пилят монолит?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]