Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Есть задача организовать предрелизный сервер, на котором будут процедуры и код, которые надо будет после тестирования выкладывать на прод. Но он должен работать с реальными данными прод сервера. Поэтому надо разнести процедуры и таблицы. Единственный из вариантов, который пришел ко мне в голову, связать два сервера и по всем таблицам на предрелизном сервере создать вьюхи с именами таблиц, которые будут ссылаться на прод сервер. Может у кого-нибудь более интересные и простые варианты есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 11:24 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975, авторЕдинственный из вариантов, который пришел ко мне в голову, связать два сервера и по всем таблицам на предрелизном сервере создать вьюхи с именами таблиц, которые будут ссылаться на прод сервер. зачем такие сложности, сразу на прод и накатывайте чё уж черезь вьюхи всё ломать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 11:34 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
т.е. вы хотите не тестированным кодом лезть в прод? бэкап прода на "предрелиз" развернуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 11:36 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
На прод сейчас накатывается сразу, но опасно. Если что не учлось, то получается что мы тестим сейчас на живых клиентах. А они обижаются. Бэкап тоже не вариант, т.к. данные должны быть живыми и обновляемыми. Это не тестовый сервер разработчиков. И к нему будут подключены клиенты согласившиеся стать бета-тестерами. Но их результат должен менять боевую базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:19 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975, разворачивайте боевой бэкап на тестовом сервере. Но для чего это? Нагрузочное тестирование? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:20 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975Бэкап тоже не вариант, т.к. данные должны быть живыми и обновляемыми. Это не тестовый сервер разработчиков. И к нему будут подключены клиенты согласившиеся стать бета-тестерами. Но их результат должен менять боевую базу.На боевом сервере создаете отдельную БД, содержащую только код, вместо таблиц синонимы на таблицы основной БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:31 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовAlex1975, разворачивайте боевой бэкап на тестовом сервере. Но для чего это? Нагрузочное тестирование? Не вариант. Клиенты торгуют акциями. Все их результаты попадают в боевую. Задача выделить отдельный сервер, на котором бета тестеры (обычные клиенты, согласные за некие плюшки на возможные баги) будут работать, но все их результаты должны быть в боевой. Откуда бэк берет все данные, считает отчеты, меняет в обратку деньги и т.п. Задача этого предрелизного сервера, окончательно оттестить какие-то баги, которые прошли мимо разработчиков и отдела тестирования на тестовом сервере. Аналог мне показывали на Postgree. Там в базе только таблицы лежат, а весь код на PHP. И можно к боевой базе пробросить сколько угодно внешних сервисов, которые чем-то отличаются. Но исторически сложилось что вся бизнес-логика зашита в процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:35 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975, два отдельных сервера, но данные ездят репликацией? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:37 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975Задача выделить отдельный сервер, на котором бета тестеры (обычные клиенты, согласные за некие плюшки на возможные баги) будут работать, но все их результаты должны быть в боевой. Откуда бэк берет все данные, считает отчеты, меняет в обратку деньги и т.п. Задача этого предрелизного сервера, окончательно оттестить какие-то баги, которые прошли мимо разработчиков и отдела тестирования на тестовом сервереОтличная идея, хорошо придумали. Но зачем другой сервер? Можно сделать отдельную базу с процедурами, и синонимы на боевые таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:48 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
invm, Спасибо. Хороший вариант. А в плане производительности как синонимы себя ведут в сложных запросах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:53 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975invm, Спасибо. Хороший вариант. А в плане производительности как синонимы себя ведут в сложных запросах? пробросятся на оригиналы. При такой схеме можно как через синонимы, так и через представления (на них можно к оригиналам права вообще не давать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:55 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за советы. Буду копать в сторону внедрения синонимов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:56 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975Бэкап тоже не вариант, т.к. данные должны быть живыми и обновляемыми. Это не тестовый сервер разработчиков. И к нему будут подключены клиенты согласившиеся стать бета-тестерами. Но их результат должен менять боевую базу.если ваши клиенты не изолированны друг от друга, то что про это думают другие, не согласившиеся стать бета-тестерами? :) если же изолированны, то заведите этих бета-тестеров на копию системы и всё (а нагрузочное тестирование делается по другому). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 13:05 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Дедушкаесли ваши клиенты не изолированны друг от друга, то что про это думают другие, не согласившиеся стать бета-тестерами? :) если же изолированны, то заведите этих бета-тестеров на копию системы и всё (а нагрузочное тестирование делается по другому). Ничего не думают. Если не хотят напарываться на баги, работают в боевой системе. Если не против багов могут на бете поработать, найти баг, получить плюшку за это. Копия тянет за собой кучу проблем синхронизации данных. А так вариант что если предрелиз не рабочий по каким-то причинам, то могут перейти на боевую и спокойно работать до момента багфикса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:47 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975, выглядит как какая-то безумная экономия на QA c ещё более странными оправданиями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:52 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
TaPaKAlex1975, выглядит как какая-то безумная экономия на QA c ещё более странными оправданиямиВыглядит как стандартное решение для ответственных проектов, с большим количеством пользователей. После тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные. Тестовые системы не абсолютно адекватны боевым, вон, даже производители машин делают отзывы, а уж в софтостроении бета-версии вообще стандартная практика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 15:32 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
alexeyvgПосле тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные.ну, собственно это я и написал Дедушкато заведите этих бета-тестеров на копию системы но у ТСа Alex1975Копия тянет за собой кучу проблем синхронизации данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 15:37 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
alexeyvgTaPaKAlex1975, выглядит как какая-то безумная экономия на QA c ещё более странными оправданиямиВыглядит как стандартное решение для ответственных проектов, с большим количеством пользователей. После тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные. Тестовые системы не абсолютно адекватны боевым, вон, даже производители машин делают отзывы, а уж в софтостроении бета-версии вообще стандартная практика. всё звучит не плохо до того момента, что они всё это делают на одних и тех же объектах, что значить как минимум 1. Таблицы они никогда не меняют 2. Соотвественно триггеры/представления А что они тогда делают? Отчёты? Есть вариант что накатывают объекты сразу на прод, остальное на препрод, но тут ещё больше удивления, ну и так далее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 15:40 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975Копия тянет за собой кучу проблем синхронизации данных.т.е. у вас пользователи не изолированны и состояние системы для одних зависит от действий других. в таком случае у вас только один путь - эмулировать нагрузку на копии боевой системы где проводится финальное тестирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 15:42 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
TaPaKвсё звучит не плохо до того момента, что они всё это делают на одних и тех же объектах, что значить как минимум 1. Таблицы они никогда не меняют 2. Соотвественно триггеры/представления А что они тогда делают? Отчёты? Есть вариант что накатывают объекты сразу на прод, остальное на препрод, но тут ещё больше удивления, ну и так далее Структура таблиц меняется очень редко. И понятно что изменение таблиц после тестового сервера сразу попадут в бой без предрелизного сервера. Это минимальный риск. Триггеров тоже мало Представления также через синонимы использовать. Меняются постоянно процедуры в которых обрабатываются данные из таблиц. Их и надо через разные уровни тестирования провести. Дедушкат.е. у вас пользователи не изолированны и состояние системы для одних зависит от действий других. в таком случае у вас только один путь - эмулировать нагрузку на копии боевой системы где проводится финальное тестирование. А смысл? Это же обычные пользователи, которые работают как и на боевом и выйти за рамки и похерить данные никак не могут. И нагрузочное тестирование не нужно. Нужно вылавливание мелких багов, которые можно ловить вылизанным ТЗ, юнит тестами и хорошей и дорогой командой тестеров. Либо так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 16:09 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
какие синонимы?! а если у вас какой-нибудь delete/update будет над синонимом? только один вариант: поднимать копию каждый день, возможно, копию на "почти прямо сейчас", после чего накатывать туда релиз, заказчиков проинформировать о том, что на предрелизном сервере будет такая-то задержка относительно боевого, поэтому смотреть нужно не самые свежие данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 18:20 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Я с подобной задачей справлялся следующим образом: восстанавливал базу из боевого бэкапа, удалял скриптом весь программный код и накатывал его с помощью liquibase из соответствующей ветки в SVN. Получалось довольно быстро это делать. Тем более, что таковые манипуляции обычно не приходится проделывать каждый день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 20:18 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Очень лысыйЯ с подобной задачей справлялся следующим образом: восстанавливал базу из боевого бэкапа, удалял скриптом весь программный код и накатывал его с помощью liquibase из соответствующей ветки в SVN. Получалось довольно быстро это делать. Тем более, что таковые манипуляции обычно не приходится проделывать каждый день. Ах, да. Бэкап не канает, ибо данные должны быть живыми и тестеры ещё и менять их дожны иметь возможность. Или не должны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 20:24 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Но вообще сама схема тестирования выглядит как-то стрёмно. Я бы такое точно не разрешил делать. Хочешь работать на боевых данных - поднимай базу из бэкапов, или пользуй стендбай для чтения. Что за писание работы тестеров в боевую базу? Мало ли что там кодеры накодят, и, при доступе на прод, этот код там что-то похерит ненароком? Или, если есть доступ на чтение основных данных на проде, кодеры напишут неудачный запрос, который нагнёт прод на некоторое время? Кто будет убытки компенсировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 20:30 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
TaPaKalexeyvgпропущено... Выглядит как стандартное решение для ответственных проектов, с большим количеством пользователей. После тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные. Тестовые системы не абсолютно адекватны боевым, вон, даже производители машин делают отзывы, а уж в софтостроении бета-версии вообще стандартная практика. всё звучит не плохо до того момента, что они всё это делают на одних и тех же объектах, что значить как минимум 1. Таблицы они никогда не меняют 2. Соотвественно триггеры/представления А что они тогда делают? Отчёты? Есть вариант что накатывают объекты сразу на прод, остальное на препрод, но тут ещё больше удивления, ну и так далееТак ТС пишет - "только для процедур". Когда планируется менять модель, то действуют так, как предполагаете вы и Дедушка - то есть тестируют на тестовых системах, потом заливают на прод, минуя стадию бета-тестирования. Собственно, модель данных ведь намного стабильнее кода, так что в принципе это работающая, годная стратегия. Дедушкану, собственно это я и написал Дедушкато заведите этих бета-тестеров на копию системыНужно же на реальных данных тестировать. Иначе это не называют "бета-тестированием". Как могут часть пользователей работать в системе, вместе с остальными пользователями, но не на реальных данных? 10 кассиров из ста работают со своей базой??? Бета тестеры - это обычные работающие с продуктом люди, но работающие не с текущей стабильной версией, а с кандидатом на неё. Да, репликациями так можно сделать, но распределённая система сама по себе нетривиальна, слишком сложна, что бы делать её только для тестирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 00:46 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39634677&tid=1689813]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 399ms |

| 0 / 0 |
