Развитие веб-архитектур (путь от LAMP к SOA)

Я собираю информацию для написания статьи по развитию веб-проектов и эволюции веб-архитектур.
В часности, о переходе с централизованных LAMP-решений (конечно же не без CMS Drupal) на SOA.
Черновой вариант (на украинском языке) находится и обновляется здесь:
http://www.drupal.org.ua/blog/nick-fedchik/2008/aug/07/36
В статье анализируется проблема роста LAMP-проекта и возможный эволюционный путь изменения архитектуры на SOA.
Благодарю всем кто прочитает эту статью и добавит свой отзыв (либо здесь, либо там), либо поделится ссылками на другие подобные материалы.
Особенно интересуют отзывы как программистов, системных архитекторов, так и руководителей проектов, о мотивах и причинах, которые привели к эволюционному (или революционному) изменению архитектуры веб-проектов, к смене языков разработки веб-приложений (например с php на java).

top of hotblogs.org.ua

Комментарии

Де сенс?

Изображение пользователя Volodymyr Tsap.

SOA, як така, це прерогатива великомаштабних комплексних рішень, де необхідно інтегрувати купу різнорідного софта писаного на різних мовах і для різних платформ, наприклад CRM+ERP+WFM що йдуть від різних розробників.
Сенсу використовувати сервісну орієнтацію для дрібних платформ, як от фронтенди сайтів OpenSource CMS - якось складно знайти.
Єдине що зустрів - більш-менш пристойне у реалізації SOA для відкритих платформ це Opentaps - нарощений з джакартівського ofBiz, та Xaware - дуже потужнга платформа та middleware. Зрозуміло все на java - так як SOA дефакто для Java/.Net ріщень так як IBM+Microsoft.
PHP - для сайтів візіток:) та опенсорсу, комерційні платформи ніколи не підуть у вихідних кодах а одною з задач SOA - інтерфейсна. Для drupal'а цього не потрібно - відкрив сорци і пишеш собі інтерфейс :).

Изображение пользователя Nick Fedchik.

Сенс є. Це компроміс використання поточного рішення або перехід на зовсім інше.
Я навів ситуацію, коли проект розростається зі звичайної "візитки" або ж простенького сайту для обмеженої задачі, на щось більше, де додатком є "бекенд" - такий собі випадок купи різнорідних інтерфейсів.
Звісно що є "академічно правильний підхід" - зробити все на Java/.Net з нуля, але на практиці є щось, що вже працює, і його не можна викрестили. Я про такі випадки.
Доречі, не завжди можно знайти добре альтернативне рішення.
Щодо прерогативи SOA - не зовсім погоджусь, бо технічні рішення бувають подекуди дуже гнучкими ;)

Изображение пользователя anycolor.

Drupal - ужасная какашка. А Drupal, как SOA - ужасная какашка в квадрате.

накакав і побіг, аргументуй хоча б перше.

Изображение пользователя anycolor.

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

Категорично та жодних аргументів.

>Могу один раз провести мастер-класс на эту тему

Якраз є нагода:
http://webdev.org.ua/node/595

Изображение пользователя anycolor.

Я только 2 числа в Киев возращаюсь, так что уж без меня :)

Yahoo, Sun, Novell використовують Друпал (великий перелік тут http://buytaert.net/tag/drupal-sites)

anycolor не використовує друпал

Изображение пользователя anycolor.

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

:)

"Переход с LAMP на SOA" - звучит так же, как "Переход с TCP на HTTP". Вы сравниваете разные слои архитектуры. SOA может иметь под собой как *nix, так и win, sun, mac или какие вам угодно платформы.

Если автор имеет веб-проект, который "из обычной визитки" разросся до таких масштабов, что ему мало было, скажем, элементарного сервера с Core 2 Duo, ждем ссылку в студию :)

ps. согласен с anycolor, что друпал - какашка. Его прерогатива - хоумпейдж/личный блог, не более. Я не ставлю цель разразить холивар, это просто мое имхо.

Изображение пользователя Nick Fedchik.

Я сравниваю не разные слои архитектуры, а разные архитектуры.
Пример с платформами тут не уместен в принципе.
Если Вы решили, что я не знаю, какая прерогатива CMS Drupal, то Вы ошибаетесь. Если Вы решили, что целью статьи является раскрутка CMS Drupal, то тоже ошибаетесь. Просто для описания проблемы LAMP-проекта, для примера был взят CMS Drupal, но это не принципиально. Критика в адрес CMS Drupal здесь не умесна в принципе.
Принципиально я хочу рассмотреть проблему разрастания LAMP-проектов и условия изменения архитектуры на SOA к примеру (возможны ведь и другие архитектуры).
Если Вы считаете, что критерием (или причиной) разрастания проекта является недостаточность аппаратной платформы, то я сочту вас недальновидным системным архитектором, ибо причин много, и на мой взгляд аппаратные ресурсы далеко не первыми влияют на изменение архитектуры веб-проекта.

lamp - это уровень используемого софта
soa - это уровень архитектуры проекта
Чем же эти уровни не разные?

По поводу друпал - еще раз повторяю, я выразил свое мнение по поводу этой системы, не более того. Извините, если я Вас чем-то обидел.

По поводу оборудования - еще раз извиняюсь. Наверное, я не совсем правильно понял, что Вы имели в виду под разрастанием проекта.

Я считаю, что архитектура ради архитектуры - это зло. Если у Вас есть место, в котором вынесение какого-то компонента системы в сервис выгодно (с каких-то точек зрения) - пожалуйста, делайте это.

Вы говорите о "проблемах LAMP-проекта". Можно поинтересоваться, в чем состоят эти проблемы и как Вы с ними боретесь средствами SOA?

Успехов в Вашем исследовании!

Изображение пользователя Nick Fedchik.

Да, если быть точным, то сам по себе LAMP - это набор софта. Чтобы проще было понять типовую архитектуру веб-сайтов на LAMP, я использовал термин "LAMP-архитектура", как описание связки компонент из типичного веб-сервера, скриптовых языков типа PHP/Perl и базы данных (ах да, тут ещё и Linux - тогда корректнее будет назвать AMP-архитектура :) правда это не такой привычный термин). Поищу более подходящий термин, также буду рад другим предложениям по терминологии. Тогда софт будет отдельно, и архитектуры будут отдельно.

Сделал вывод, что описание критериев разрастания проекта сформулировано недостаточно понятно. Если кому-либо из собственной практики есть чем поделиться в качестве простого и легко понятного примера, то буду рад соавторам ;)
Думаю, что более готовый вариант статьи тогда можно будет опубликовать в каком-нибудь компьютерном журнале.

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

Что касается "проблема LAMP-проекта" - я же написал об этом в общих чертах, просмотрите ещё раз статью. Если я недостаточно понятно написал - пишите замечания, я исправлю. Если конечно Вам эта тема интересна.
Средствами SOA бороться? А что принимать за SOA-средства? XML-RPC? SOAP? JBI? JMS? Я думаю, лучше избежать такой формулировки, пусть средства останутся просто средствами, не привязанными к архитектурам, также, как и софт (см. выше).

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

Спасибо за пожелание успехов.

Без примеров будет сухо, описание средств xml-rpc или soap друпала можно найти в мануалах (мне так кажется, я не искал).
Возьмите конкретную возможность какого-нибудь проекта (не обязательно называть сам проект), перенесите ее на сервис и расскажите, что Вам это дало. Это будет интересно.

Чесно говоря, статья напомнила мне труды в университете, когда нужно было умнословно обыграть какую-то предметную область для курсовой работы. Сначала Вы говорите о проблематике (сайт тормозит, обрабатывает кучу разной информации извне). Приходится "виконати кластерізацію, а ще балансування навантаження між декількома серверами" (поэтому я и спрашивал по поводу оборудования, Вы осознаете при каких масштабах данных или запросов в сутки возникает такая необходимость и как часто "визитки на друпале" достигают таких масштабов?). Дальше Вы говорите толи о недостаточном тестировании, толи о правке на production версии (когда пользователь видит белый экран)... И в конце концов предлагаете все это решить, переделав архитектуру на сервисы ("... Зазначені проблеми потребують переходу від централізованої до багаторівневої розподіленої архітектури ..."). Гениально.