Yaws + OTP app

112 views
Skip to first unread message

Александр Иванов

unread,
Jun 25, 2013, 4:03:01 AM6/25/13
to erlang-...@googlegroups.com
Добрый день! Может, просто не нашел, тогда можете дать линк... Задача такая: использовать Yaws в качестве web-фронта к набору OTP приложений. При этом, приложения, конечно, ставятся посредством reltool. И поддерживают takeover - failover архитектуру. И кластеризуются. И не пересекаются по cookies. Вопрос. Как настроить взаимодействие с Yaws? На первый взгляд, подходит embedded. Но в таком случае, требуется общий фронт наподобие nginx, проксирующий запросы на yaws для поддержки работоспособности всех сервисов на 80 порту. Если же использовать appmods + rpc, то возникает проблема с cookies. Похоже, что yapps дают тот же эффект. Ну, есть, конечно, еще вариант не использовать yaws, но это совсем грустно :) Помогите, пожалуйста.

Alexander Dergachev

unread,
Jun 25, 2013, 4:18:34 AM6/25/13
to erlang-...@googlegroups.com
а приложения-то какой-нибудь интерфейс имеют? ну кроме вызовов API функций через RPC?

With Best Regards,
Alexander Dergachev


2013/6/25 Александр Иванов <aiv...@pruffi.ru>
Добрый день! Может, просто не нашел, тогда можете дать линк... Задача такая: использовать Yaws в качестве web-фронта к набору OTP приложений. При этом, приложения, конечно, ставятся посредством reltool. И поддерживают takeover - failover архитектуру. И кластеризуются. И не пересекаются по cookies. Вопрос. Как настроить взаимодействие с Yaws? На первый взгляд, подходит embedded. Но в таком случае, требуется общий фронт наподобие nginx, проксирующий запросы на yaws для поддержки работоспособности всех сервисов на 80 порту. Если же использовать appmods + rpc, то возникает проблема с cookies. Похоже, что yapps дают тот же эффект. Ну, есть, конечно, еще вариант не использовать yaws, но это совсем грустно :) Помогите, пожалуйста.

--
--
Страница рассылки: http://groups.google.com/group/erlang-russian
Новости: http://erlanger.ru
Чат: xmpp://erl...@conference.jabber.ru
Чат для оффтопа: xmpp://erlang...@conference.jabber.ru
Правила, действующие в чате и рассылке: http://erlanger.ru/ru/erlang-at-conference-jabber-ru
 
Написать письмо: erlang-...@googlegroups.com
Отписаться: erlang-russia...@googlegroups.com
---
Вы получили это сообщение, поскольку подписаны на группу Erlang по-русски.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес erlang-russia...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

Александр Иванов

unread,
Jun 25, 2013, 4:22:29 AM6/25/13
to erlang-...@googlegroups.com
Хотелось бы стандартными средствами обойтись. А так, можно и на сокетах интерфейс наваять, сложности нет. вопрос в том, как сделать правильнее.

вторник, 25 июня 2013 г., 12:03:01 UTC+4 пользователь Александр Иванов написал:

Alexander Dergachev

unread,
Jun 25, 2013, 4:23:30 AM6/25/13
to erlang-...@googlegroups.com
воткнуть ковбой в каждое, прокинуть через HTTP нужные интерфейсы, выкинуть к черту yaws, и настроить nginx.

With Best Regards,
Alexander Dergachev


2013/6/25 Александр Иванов <aiv...@pruffi.ru>
Хотелось бы стандартными средствами обойтись. А так, можно и на сокетах интерфейс наваять, сложности нет. вопрос в том, как сделать правильнее.


вторник, 25 июня 2013 г., 12:03:01 UTC+4 пользователь Александр Иванов написал:
Добрый день! Может, просто не нашел, тогда можете дать линк... Задача такая: использовать Yaws в качестве web-фронта к набору OTP приложений. При этом, приложения, конечно, ставятся посредством reltool. И поддерживают takeover - failover архитектуру. И кластеризуются. И не пересекаются по cookies. Вопрос. Как настроить взаимодействие с Yaws? На первый взгляд, подходит embedded. Но в таком случае, требуется общий фронт наподобие nginx, проксирующий запросы на yaws для поддержки работоспособности всех сервисов на 80 порту. Если же использовать appmods + rpc, то возникает проблема с cookies. Похоже, что yapps дают тот же эффект. Ну, есть, конечно, еще вариант не использовать yaws, но это совсем грустно :) Помогите, пожалуйста.

--

Александр Иванов

unread,
Jun 25, 2013, 4:30:22 AM6/25/13
to erlang-...@googlegroups.com
В контексте исследований вроде http://joeandmotorboat.com/2009/01/03/nginx-vs-yaws-vs-mochiweb-web-server-performance-deathmatch-part-2/ Yaws в качестве http-frontend предпочтительнее на высоких нагрузках. Но идею понял, спасибо.

вторник, 25 июня 2013 г., 12:23:30 UTC+4 пользователь Alexander Dergachev написал:

Alexander Dergachev

unread,
Jun 25, 2013, 4:31:47 AM6/25/13
to erlang-...@googlegroups.com
сначала неплохо бы посмотреть на год, когда проводилось это тестирование, за четыре года много воды утекло

Max Lapshin

unread,
Jun 25, 2013, 4:41:46 AM6/25/13
to erlang-...@googlegroups.com
Я понимаю, что это ответ не на ваш вопрос, но что у вас там за монстр
такой, что уже есть куча распределенных приложений к которым нужна
веб-морда?

Александр Иванов

unread,
Jun 25, 2013, 5:30:51 AM6/25/13
to erlang-...@googlegroups.com
Скажем так, пытаюсь понять, как организовать единую платформу для разработки различных приложений.

вторник, 25 июня 2013 г., 12:41:46 UTC+4 пользователь Max Lapshin написал:

Max Lapshin

unread,
Jun 25, 2013, 6:34:41 AM6/25/13
to erlang-...@googlegroups.com
Мне кажется, что вы решаете сложную и интересную метазадачу, плохо соотносящуюся с настоящей задачей.


Если вы обьясните, что вы делаете, будет проще.
--

Александр Иванов

unread,
Jun 25, 2013, 6:56:56 AM6/25/13
to erlang-...@googlegroups.com
Суть задачи в том, чтобы настроить платформу для разработки OTP приложений. Требования простые, в общем-то:
  • Наличие web-интерфейса
  • Возможность использования механизма релизов для установки OTP приложений
  • Управление каждым из OTP приложений (start/restart/stop) независимо
  • Возможность кластеризации
  • Возможность использования механизма failover/takeover
  • Группировка erlang-nodes по cookies (отсутствие interconnections, по умолчанию проистекающих из транзитивности соединений между нодами)
  • Возможность балансировки нагрузки на web

Вариантов, на самом деле, довольно много. Например, взять за основу реализацию кластера на RabbitMQ. Но хотелось бы использовать Yaws как web-сервер и по максимуму стандартные средства, благо из немало.


вторник, 25 июня 2013 г., 14:34:41 UTC+4 пользователь Max Lapshin написал:
Мне кажется, что вы решаете сложную и интересную метазадачу, плохо соотносящуюся с настоящей задачей.


Если вы обьясните, что вы делаете, будет проще.

On Tuesday, June 25, 2013, Александр Иванов wrote:
Скажем так, пытаюсь понять, как организовать единую платформу для разработки различных приложений.

вторник, 25 июня 2013 г., 12:41:46 UTC+4 пользователь Max Lapshin написал:
Я понимаю, что это ответ не на ваш вопрос, но что у вас там за монстр
такой, что уже есть куча распределенных приложений к которым нужна
веб-морда?

--
--
Страница рассылки: http://groups.google.com/group/erlang-russian
Новости: http://erlanger.ru
Чат: xmpp://erlang@conference.jabber.ru
Чат для оффтопа: xmpp://erlang-talks@conference.jabber.ru

Правила, действующие в чате и рассылке: http://erlanger.ru/ru/erlang-at-conference-jabber-ru
 
Написать письмо: erlang-russian@googlegroups.com
Отписаться: erlang-russian+unsubscribe@googlegroups.com

---
Вы получили это сообщение, поскольку подписаны на группу Erlang по-русски.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес erlang-russian+unsubscribe@googlegroups.com.

Max Lapshin

unread,
Jun 25, 2013, 7:34:10 AM6/25/13
to erlang-...@googlegroups.com
Простите, но я стал не понимать ещё больше чего вы делаете, чем раньше.

Я пока что вижу желание построить Universal Enterprise Control Data Bus

Александр Иванов

unread,
Jun 25, 2013, 7:43:53 AM6/25/13
to erlang-...@googlegroups.com
Если по-простому, то на текущий момент есть проблема: есть три erlang-ноды. Одна из них - Yaws, две другие - OTP приложения. Задача: настроить взаимодействие таким образом, чтобы каждое приложение было back-end, Yaws, соответственно, front-end. При этом, бэкэнды не должны коммуницировать друг с другом. Как эту схему можно реализовать стандартными средствами? И можно ли?

вторник, 25 июня 2013 г., 15:34:10 UTC+4 пользователь Max Lapshin написал:

Boris Timokhin

unread,
Jun 25, 2013, 8:00:35 AM6/25/13
to erlang-...@googlegroups.com
Вы хотите иметь веб-сервер, в который будете ходить браузером и к которому будут подсоединяться другие ноды, чтобы RPC?

На нодах установите websockets_client, напишите хендлер, который только и будет что принимать {binary, Data}, потом binary_to_term, где  {M, F, A}, выполнять это дело и отдавать обратно term_to_binary
На вебсервере пишите симметричный хендлер, который отправляет на клиенты {M, F, A}, регестрируете ws-подключения в какую-нибудь ets.
Ну и дальше у вас есть подключения - выполняйте что хотите.



25 июня 2013 г., 15:43 пользователь Александр Иванов <aiv...@pruffi.ru> написал:
--
--
Страница рассылки: http://groups.google.com/group/erlang-russian
Новости: http://erlanger.ru
Чат: xmpp://erl...@conference.jabber.ru
Чат для оффтопа: xmpp://erlang...@conference.jabber.ru
Правила, действующие в чате и рассылке: http://erlanger.ru/ru/erlang-at-conference-jabber-ru
 
Написать письмо: erlang-...@googlegroups.com
Отписаться: erlang-russia...@googlegroups.com

---
Вы получили это сообщение, поскольку подписаны на группу Erlang по-русски.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес erlang-russia...@googlegroups.com.

Александр Иванов

unread,
Jun 25, 2013, 8:12:29 AM6/25/13
to erlang-...@googlegroups.com
Спасибо, попробую.

вторник, 25 июня 2013 г., 16:00:35 UTC+4 пользователь Boris Timokhin написал:
Reply all
Reply to author
Forward
0 new messages