|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
MasterZiv Anti_Hacker Отвечу за разработчиков. При нормальном распиле монолита, каждый микро-сервис в результате которому нужна база получает свою базу. Чужие сервисы не лезут в чужую базу. Общение происходит либо через API либо Messaging (RabbitMQ, Serivce Bus...). Ну , так которое (общение) надо проектировать, администрировать, реализовывать, мониторить... СМЫСЛ КАКОЙ? Для чего это делается? Ответ простой, чтобы сервисы были маленькие, легко заменяемые, тестируемые и можно было бы деплоить по отдельности. Нет ничего более просто тестируемого чем кусок SQL кода.. что вы тестируете в sql коде ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 13:50 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
Anti_Hacker Отвечу за разработчиков. При нормальном распиле монолита, каждый микро-сервис в результате которому нужна база получает свою базу. Чужие сервисы не лезут в чужую базу. Общение происходит либо через API либо Messaging (RabbitMQ, Serivce Bus...). Ну , так которое (общение) надо проектировать, администрировать, реализовывать, мониторить... СМЫСЛ КАКОЙ? Для чего это делается? Ответ простой, чтобы сервисы были маленькие, легко заменяемые, тестируемые и можно было бы деплоить по отдельности. Нет ничего более просто тестируемого чем кусок SQL кода.. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 13:54 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
MasterZiv Нет ничего более просто тестируемого чем кусок SQL кода.. Тесты должны быть автоматическими. А для тестирования SQL-кода нужно поднимать БД, причем именно ту, для которой пишется SQL-код. Причем подниматься должна "с нуля" и для каждого теста свой инстанс. В общем тестировать SQL как раз сложно. <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 14:50 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
mad_nazgul, Мне кажется, аналогично тестирование любого бизнес код для работы с данными/базой. Будь то SQL или Java Hibernate - фиолетово. От замены SQL на микросервисы и java (как и наоборот) ничего особо не изменится. Другое дело, что возможно более мелкие програмные модули легче поддаются тестированию, но т.к. этих модулей больше - то совокупная стоимость останется той же. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:02 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
Когда говорит о тестирование SQL / бизнес системы - поразумевают скорее весь набор тестов одновременно: модульное, интеграционное, системное. Даже, скорее, обычно системное тестирование* Когда говоря и Java и обязательных тестах, гордое "у нас 100% кода покрыто тестами", то обычно, почти всегда имеют в виду исключительно unit-тесты . Что для бизнес системы и данных - ни тепло, ни холодно. С остальными же тестами, все обстоит ровно так же, как и в PL/SQL монолите. IMHO * wiki данный термин определяет так: Систе́мное тести́рование програ́ммного обеспече́ния — это тестирование программного обеспечения (ПО), выполняемое на полной, интегрированной системе, с целью проверки соответствия системы исходным требованиям. Системное тестирование относится к методам тестирования чёрного ящика, и, тем самым, не требует знаний о внутреннем устройстве системы . ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:16 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
mad_nazgulА для тестирования SQL-кода нужно поднимать БД, причем именно ту, для которой пишется SQL-код. Причем подниматься должна "с нуля" и для каждого теста свой инстанс. А что в этом, собственно, сложного-то? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:17 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev mad_nazgul, Мне кажется, аналогично тестирование любого бизнес код для работы с данными/базой. Будь то SQL или Java Hibernate - фиолетово. может для орма можно базу заменить файликом с мок данными? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:28 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
H5N1 MasterZiv Нет ничего более просто тестируемого чем кусок SQL кода.. и что, где-то в серьез существуют проекты где как полагается поднимается оракл с партишенами в докере, разворачиваются таблицы, заполняются и тестируется pl/sql код каждого пекеджа ? бывает и такое, думаю не такая уж и редкость для продуктов в которых ключевая роль у базы данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:30 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
Мы ведь настоящих целей не знаем верно? Автор увидел разбивание монолита на осколки. А бизнес может ставить более сверх-задачу. Экспоненциальный рост. Разннообразие задач. Да мало-ли можно придумать... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:30 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov mad_nazgulА для тестирования SQL-кода нужно поднимать БД, причем именно ту, для которой пишется SQL-код. Причем подниматься должна "с нуля" и для каждого теста свой инстанс. А что в этом, собственно, сложного-то? Для каждого теста свой докер образ БД, со всеми тестовыми данными?! И хранить образ докера на каждый тест. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:39 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov mad_nazgulА для тестирования SQL-кода нужно поднимать БД, причем именно ту, для которой пишется SQL-код. Причем подниматься должна "с нуля" и для каждого теста свой инстанс. А что в этом, собственно, сложного-то? Я тоже не понимаю... Надо базу -- ну, подними... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:39 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
mad_nazgulДля каждого теста свой докер образ БД, со всеми тестовыми данными?! Зачем для каждого свой и зачем докер? БД подымается из бэкапа на обычном тестовом сервере. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:42 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Когда говоря и Java и обязательных тестах, гордое "у нас 100% кода покрыто тестами", то обычно, почти всегда имеют в виду исключительно unit-тесты . Что для бизнес системы и данных - ни тепло, ни холодно. С остальными же тестами, все обстоит ровно так же, как и в PL/SQL монолите. Тут же весь фокус в автоматическом тестировании. unit-тесты относительно дёшевы, поэтому чем больше они тестируют, тем дешевле тесты. А интеграционных тестов должно быть не много, т.к. при их тестировании поднимается весь контекст. Они запускаются долго, работают то же долго. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:45 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
Melkomyagkii_newbi Leonid Kudryavtsev mad_nazgul, Мне кажется, аналогично тестирование любого бизнес код для работы с данными/базой. Будь то SQL или Java Hibernate - фиолетово. может для орма можно базу заменить файликом с мок данными? Проблема не "поднять базу", а проблема "со своими данными". Файлик с мок данными тут не сильно поможет. Данные так же устаревают. Поддерживать актуальные "файлики с мок данными" для 100500 микросервисов еще та организационная задача (и нехилые трудозатраты/деньги). Поменялись справочники - данные во всех подсистемах нужно обновить и прогнать тесты. Тестировать на старых данных / справочниках / нормативах - никакого интереса. Проблема в том, что не только код должен быть покрыт тестами, но и все возможные комбинации входных данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:48 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
shurka22, что бы можно было программистов легко заменить в случае чего >1) простота установки - и с общей базой как понимаете таких проблем нет, поднял схему и всё >2) независимость (упал один сервис, но он не потянул за собой все остальные сервисы) - если они действительно независимы, то да, а вы где нить видели "коня в вакууме"? а так обычно они красиво каскадом падать начинают >3) А вот про быстродействие никто внятно не ответил - зачем говорить о плохом? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:49 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
У меня большой скепсис по поводу тестирования данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:51 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
kealon(Ruslan) - если они действительно независимы, то да, а вы где нить видели "коня в вакууме"? а так обычно они красиво каскадом падать начинают Видел. Конь был не в вакууме. Но общение через HTTP и повтором после time out к другой ноде. Например перезапуск критически важных микросервисов на прода - да и ради бога. То, что быстро поднялось, упавшим не считалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 15:58 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
mayton У меня большой скепсис по поводу тестирования данных. Ну как-то же тестируют. Просто те же самые интеграционные тесты, системные тесты, сквозной пример - вот ни разу не видел, что бы были автоматом. А нагрузочные, регрессионные и так далее - и на СУБД изобразить можно. Для unit тестов бюджет на тестирование закладывается в разработку и "размазан" между задачами. Да и за целостностью / правильность / актуальностью данных для тестов врят ли кто следит. А делать полноценное регрессионное тестирование (прогонять вменяемые и актуальные тестовые примеры) перед установкой обновления на систему - это нужно отдельный бюджет на тестирование выделять. А если есть тестировщики и объем не такой большой, то обходятся ручным тестирование. Но что бы кто-то был готов поддерживать актуальные данные для автоматического тестирования (тестовые примеры) во время сопровождения/эксплуатации ИС - такого я не встречал. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 16:09 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
Если пропустить Нагрузочные и Регрессионные в необходимости которых мы не сомневаемся... По поводу обычных тестов. Или тестов на Correcntess. Я в этом вижу дилемму. Т.к. протестировать БЛ на Java + Mocks мы можем достаточно много и сам DSL описывающий данные будет лаконичным. Но как простестировать сами данные? Кто сделает sign-off что данные которые лежат в базе ГОТОВЫ для тестирования. Кто поручится что в них нет шума? Кто поручится что их достаточно? Эта задача вообще выходит за рамки просто разработки. И я сомневаюсь что кто-то вообще закладывает бюджеты в такое. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 16:23 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
mayton По поводу обычных тестов. Или тестов на Correcntess. Я в этом вижу дилемму. Т.к. протестировать БЛ на Java + Mocks мы можем достаточно много и сам DSL описывающий данные будет лаконичным. Но как простестировать сами данные? Кто сделает sign-off что данные которые лежат в базе ГОТОВЫ для тестирования. Кто поручится что в них нет шума? Кто поручится что их достаточно? Эта задача вообще выходит за рамки просто разработки. И я сомневаюсь что кто-то вообще закладывает бюджеты в такое. ну у нас оракла уже не осталось почти, но вполне тестируем. интеграционные тесты из json-чиков генерируют данные (avro, parquet файлики) и гоняют тесты в spark. для рсубд обычно h2 прокатывает, но в том числе и embedded mariadb участвует. там тоже нет проблем данные на ходу генерить. а вот с ораклом интересно, это же лицензии на каждого девлопера, на все гитлабы, потрбеуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 16:44 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
простите за свои 5 копеек у вас на одной БД 1000500 разных задач? или у вас интегрированная система? или вы хотите на каждого из 1000500 клиентов завести отдельный микросервис? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 16:46 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
H5N1 а вот с ораклом интересно, это же лицензии на каждого девлопера, на все гитлабы, потрбеуется. Вроде для целей development Oracle всегда был бесплатен. Т.ч. нет, не потребуется. AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 16:50 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
распиливают потому, что это модно, стильно, молодёжно. лёгкость разработки, поддёржки, развёртывания. Быстродествие можно и потом отладить. или не отладить. Помнится в одном проекте сначала раскидыли базки по сервисам. Потом стали нужные данные запрашивать из других серисов. потом всё стало тормозить - данные стали кешировать. потом всплыли проблемы синхронизации кешей... но зато распилили. вообще имхо - проблема моды в том, что многие последователи ей следуют бездумно. У ТС может есть смысл распиливать, может нет.. но микросервисы сечас серебрянная пуля. а в религиозные споры вступать- дело неблагодарное ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 17:23 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
Vadim Lejnin p.s. родная Oracle OeBS, спроектированная на экстремальные нагрузки... Vadim Lejnin ...практически не использует constraints. Это тяжелое наследие старых версий СУБД, не поддерживавших Constraints (до Oracle7). Поэтому Constraints приходилось поддерживать на уровне клиента (Forms). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 17:44 |
|
Зачем все пилят монолит?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev kealon(Ruslan) - если они действительно независимы, то да, а вы где нить видели "коня в вакууме"? а так обычно они красиво каскадом падать начинают Видел. Конь был не в вакууме. Но общение через HTTP и повтором после time out к другой ноде. Например перезапуск критически важных микросервисов на прода - да и ради бога. То, что быстро поднялось, упавшим не считалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 17:46 |
|
|
start [/forum/topic.php?fid=52&msg=40061726&tid=1880263]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
129ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 251ms |
0 / 0 |