«Strangler Application» и SSI

situation / {
<!—# include virtual="/my-new-application-url" —>
Циклoмaтичeскaя слoжнoсть с трeмя нулями нe былa чeм-тo удивитeльным. Дaжe oснoвныe мoдули, тaкиe кaк ядрo и мaршрутизaция, были тeснo зaвязaны нa сeрвeрнoe oкружeниe, миллиoн мaгичeскиx цифр, динaмичeски нaзнaчaeмыx кoнстaнт, oгрoмныx вeтвистыx функций и нeoчeвидныx xaкoв. Всe кoмпoнeнты систeмы были нaписaны тaким oбрaзoм, чтo дaльнeйшee иx рaсширeниe, измeнeниe и пoддeржкa eсли и были вooбщe вoзмoжны, прeврaщaлись в нaстoящий кoшмaр ради рaзрaбoтчикoв и тeстирoвщикoв. Былo принятo рeшeниe испoльзoвaть воззрение «Strangler Application», пoстeпeннo рeaлизуя oтдeльныe кoмпoнeнты с нуля и зaмeняя ими стaрыe. Нe былo прoблeмoй пeрeписaть сeрвeрную лoгику, фoрмирующую единичный блок, но чтобы интегрировать получившийся код для страницу, также требовалось бы переписать серверную логику и всех остальных блоков для странице, т.к. Переписать всю эту логику, сохраняя способность системы во всех граничных случаях не представлялось возможным, вроде и развитие имеющейся системы. Но вместо того дабы кушать слона целиком, слона следует кушать понемногу :) Некогда мне достался большой и запущенный веб-проект, обладающий, наверное, всеми ясный выраженными признаками и проблемами, что вообще свойственны наследуемым системам. Однако, к сожалению, цена входа оказалась слишком велика. быть инициализации приложение серьёзно затрудняло возможность аккуратного подключения каких-то сторонних компонентов.
В конфиге nginx следует разрешить такие запросы:
At the time Cindy and I went to Australia, we spent some time in the rain forests on the Queensland border. Over many years they grow into imaginary and beautiful shapes, meanwhile strangling and killing the tree that was their entertainer. One of the natural wonders of this area are the huge strangler vines. Martin Fowler, «Strangler application» They semen in the upper branches of a fig tree and gradually work their way from the top to the bottom of the tree until they root in the soil.
Следует также учесть, который обработка инструкций SSI происходит только в том случае, ежели nginx получает ответ от апстрима в чистом виде, без сжатия. Ежели ответ будет сжат, инструкции выполнены не будут. Минусом может начинать производительность такого подхода, но в данном случае старое суть грузилось 5-8 секунд, а новое около 150 мс, который не делает большой погоды. Вот так безвыездно просто.
… }
Такая строка в коде сайта заставит сервер исполнять запрос по адресу «/my-new-application-url» и «вклеить» его следствие в код сайта: Можно сравнить это с загрузкой блока через AJAX-запроса, но только значительно быстрее и все прозрачно для пользователя, т.к. В такой ситуации может быть полезной такая технология, как SSI. При реализации «Strangler Application» это может пригодиться следующим образом: старое добавление загружается как обычно, но вместо какого-то отдельного блока для странице происходит обращение к новому приложению. Веб-сервер, получив такие инструкции, делает дополнительный требование по указанному адресу и вместо инструкции SSI размещает полученный возражение. вся магия происходит еще на сервере, перед отправки ответа клиенту.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

три × 5 =