Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Зачем все пилят монолит? / 25 сообщений из 172, страница 1 из 7
12.04.2021, 06:13
    #40061552
shurka22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем все пилят монолит?
Коллеги, привет.

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

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

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

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

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

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

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

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

Не можно.

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

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

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

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

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

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

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


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


shurka22

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

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


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

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

Нет конечно, не в любых случаях. Но логика в нашей базе не сильно сложная: тут добавить, там отнять. Никаких квадратных уравнений мы в базе не рассчитываем, и уж тем более - не декодируем видео.
Насколько я понимаю, основаная нагрузка на базу - это работа связанная непосредственно с DML.
...
Рейтинг: 0 / 0
12.04.2021, 09:29
    #40061581
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем все пилят монолит?
shurka22,
я так понял все работает на пределе и вертикальное масштабирование уже или не помогает или невозможно. нужна возможность распределения нагрузки. это можно сделать по разному, но микросервисы сейчас модно
...
Рейтинг: 0 / 0
12.04.2021, 09:35
    #40061584
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем все пилят монолит?
а подскажите - в оркале можно сделать кластер, распределить данные и чтобы хранимки могли выполняться так будто есть только одна база?
...
Рейтинг: 0 / 0
12.04.2021, 09:48
    #40061589
Aliona
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем все пилят монолит?
shurka22,
может просто нанять грамотного DBA?
...
Рейтинг: 0 / 0
12.04.2021, 09:56
    #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
12.04.2021, 09:58
    #40061593
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем все пилят монолит?
Aliona
shurka22,
может просто нанять грамотного DBA?


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

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

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

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

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

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

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

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

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

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

Джава-разработчики, кого я спрашивал, не могут внятно ответить на этот вопрос. Типа: мне сказали копать, я и копаю.
Дополнительно говорят умные слова, мол:
1) простота установки
2) независимость (упал один сервис, но он не потянул за собой все остальные сервисы)
3) А вот про быстродействие никто внятно не ответил.
Overview of Oracle Sharding
...
Рейтинг: 0 / 0
12.04.2021, 10:58
    #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
12.04.2021, 11:48
    #40061640
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем все пилят монолит?
shurka22
Грубо говоря: если база крутится на одной машине, то чтобы получить ускорение существующией базы в 2 раза, нужно заплатить за железку в 4 раз больше денег.

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


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

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

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

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

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

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

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

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


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

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

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

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


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


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


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

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


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

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


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

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


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

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


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