[ANN] mod_cluster for Seaside

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] mod_cluster for Seaside

Philippe Marschall
Hi

Have you ever wished Apache and Seaside would know each other better?
That Apache could tell Seaside where it was and vice versa? That
Seaside could tell Apache the load of the image so intelligent load
balancing decisions can be made? That you can dynamically add and
remove Seaside images from a cluster without restarting Apache or
messing with configuration files? The guys at JBoss though the same
and wrote mod_cluster [1].

How does this actually work? There are two Apache modules involved.
mod_advertise sends UDP broadcasts about Apache's location, you might
have several on different hosts in the network. mod_cluster_manager
allows remote configuration of Apache. Seaside will connect to the
advertised Apache instances and tell them where it is (host, port,
protocol, urls). This is kind of schizophrenic because the backend
makes a request to the frontend but anyway.

What do you need to get started? First you need to set up the
Smalltalk parts (not the Apache config) of mod_proxy_balancer [2]. If
you're just using a single image mod_cluster is overkill and
clustering without sticky session doesn't get you very far (unless
you're on GemStone). Then you need to setup mod_cluster itself, the
easiest way is to grab the binaries from JBoss [3] and follow the
installation instructions [4]. And finally you need to load ModCluster
from [5]. You start the magic with:

JBPharoAdvertiseListener startOnHost: 'yourIp' jvmRoute: 'yourRoute'

I should note the code is in the state "barely works on my machine",
there are likely a ton of bugs left.

Here's some of the limitations I'm aware of:
 - does not work on Mac due to UDP network stack problems
 - host address has to be hardcoded because there's no way of finding
it out on Pharo on Unix
 - has never been run under Windows
 - not yet split into different packages, you always get the tests and
the Pharo implementation
 - no Metacello configuration yet
 - the load is always reported as 100%

 [1] http://www.jboss.org/mod_cluster
 [2] http://book.seaside.st/book/advanced/deployment/deployment-apache/mod-proxy-balancer
 [3] http://www.jboss.org/mod_cluster/downloads/1-1-0.html
 [4] http://docs.jboss.org/mod_cluster/1.1.0/html/Quick_Start_Guide.html#d0e264
 [5] http://www.squeaksource.com/ajp

Cheers
Philippe
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] mod_cluster for Seaside

Philippe Marschall
2010/10/5 Philippe Marschall <[hidden email]>:

> Hi
>
> Have you ever wished Apache and Seaside would know each other better?
> That Apache could tell Seaside where it was and vice versa? That
> Seaside could tell Apache the load of the image so intelligent load
> balancing decisions can be made? That you can dynamically add and
> remove Seaside images from a cluster without restarting Apache or
> messing with configuration files? The guys at JBoss though the same
> and wrote mod_cluster [1].
>
> How does this actually work? There are two Apache modules involved.
> mod_advertise sends UDP broadcasts about Apache's location, you might
> have several on different hosts in the network. mod_cluster_manager
> allows remote configuration of Apache. Seaside will connect to the
> advertised Apache instances and tell them where it is (host, port,
> protocol, urls). This is kind of schizophrenic because the backend
> makes a request to the frontend but anyway.
>
> What do you need to get started? First you need to set up the
> Smalltalk parts (not the Apache config) of mod_proxy_balancer [2]. If
> you're just using a single image mod_cluster is overkill and
> clustering without sticky session doesn't get you very far (unless
> you're on GemStone). Then you need to setup mod_cluster itself, the
> easiest way is to grab the binaries from JBoss [3] and follow the
> installation instructions [4]. And finally you need to load ModCluster
> from [5]. You start the magic with:
>
> JBPharoAdvertiseListener startOnHost: 'yourIp' jvmRoute: 'yourRoute'

I forgot to add you can check the cluster status under:

http://apache:6666/mod_cluster_manager

Cheers
Philippe
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] mod_cluster for Seaside

Julian Fitzell-2
In reply to this post by Philippe Marschall
Very cool Philippe. We really need more integration with this kind of
infrastructure...

Julian

On Tue, Oct 5, 2010 at 4:00 PM, Philippe Marschall
<[hidden email]> wrote:

> Hi
>
> Have you ever wished Apache and Seaside would know each other better?
> That Apache could tell Seaside where it was and vice versa? That
> Seaside could tell Apache the load of the image so intelligent load
> balancing decisions can be made? That you can dynamically add and
> remove Seaside images from a cluster without restarting Apache or
> messing with configuration files? The guys at JBoss though the same
> and wrote mod_cluster [1].
>
> How does this actually work? There are two Apache modules involved.
> mod_advertise sends UDP broadcasts about Apache's location, you might
> have several on different hosts in the network. mod_cluster_manager
> allows remote configuration of Apache. Seaside will connect to the
> advertised Apache instances and tell them where it is (host, port,
> protocol, urls). This is kind of schizophrenic because the backend
> makes a request to the frontend but anyway.
>
> What do you need to get started? First you need to set up the
> Smalltalk parts (not the Apache config) of mod_proxy_balancer [2]. If
> you're just using a single image mod_cluster is overkill and
> clustering without sticky session doesn't get you very far (unless
> you're on GemStone). Then you need to setup mod_cluster itself, the
> easiest way is to grab the binaries from JBoss [3] and follow the
> installation instructions [4]. And finally you need to load ModCluster
> from [5]. You start the magic with:
>
> JBPharoAdvertiseListener startOnHost: 'yourIp' jvmRoute: 'yourRoute'
>
> I should note the code is in the state "barely works on my machine",
> there are likely a ton of bugs left.
>
> Here's some of the limitations I'm aware of:
>  - does not work on Mac due to UDP network stack problems
>  - host address has to be hardcoded because there's no way of finding
> it out on Pharo on Unix
>  - has never been run under Windows
>  - not yet split into different packages, you always get the tests and
> the Pharo implementation
>  - no Metacello configuration yet
>  - the load is always reported as 100%
>
>  [1] http://www.jboss.org/mod_cluster
>  [2] http://book.seaside.st/book/advanced/deployment/deployment-apache/mod-proxy-balancer
>  [3] http://www.jboss.org/mod_cluster/downloads/1-1-0.html
>  [4] http://docs.jboss.org/mod_cluster/1.1.0/html/Quick_Start_Guide.html#d0e264
>  [5] http://www.squeaksource.com/ajp
>
> Cheers
> Philippe
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] mod_cluster for Seaside

Sven Van Caekenberghe
In reply to this post by Philippe Marschall
This is (again) great work, Philippe.
Thanks for sharing this with us all.
It is really good to know there are options when the need for scaling comes knocking at the door.
Is any of this in real world production use ?

Sven

On 05 Oct 2010, at 17:00, Philippe Marschall wrote:

> Hi
>
> Have you ever wished Apache and Seaside would know each other better?
> That Apache could tell Seaside where it was and vice versa? That
> Seaside could tell Apache the load of the image so intelligent load
> balancing decisions can be made? That you can dynamically add and
> remove Seaside images from a cluster without restarting Apache or
> messing with configuration files? The guys at JBoss though the same
> and wrote mod_cluster [1].
>
> How does this actually work? There are two Apache modules involved.
> mod_advertise sends UDP broadcasts about Apache's location, you might
> have several on different hosts in the network. mod_cluster_manager
> allows remote configuration of Apache. Seaside will connect to the
> advertised Apache instances and tell them where it is (host, port,
> protocol, urls). This is kind of schizophrenic because the backend
> makes a request to the frontend but anyway.
>
> What do you need to get started? First you need to set up the
> Smalltalk parts (not the Apache config) of mod_proxy_balancer [2]. If
> you're just using a single image mod_cluster is overkill and
> clustering without sticky session doesn't get you very far (unless
> you're on GemStone). Then you need to setup mod_cluster itself, the
> easiest way is to grab the binaries from JBoss [3] and follow the
> installation instructions [4]. And finally you need to load ModCluster
> from [5]. You start the magic with:
>
> JBPharoAdvertiseListener startOnHost: 'yourIp' jvmRoute: 'yourRoute'
>
> I should note the code is in the state "barely works on my machine",
> there are likely a ton of bugs left.
>
> Here's some of the limitations I'm aware of:
> - does not work on Mac due to UDP network stack problems
> - host address has to be hardcoded because there's no way of finding
> it out on Pharo on Unix
> - has never been run under Windows
> - not yet split into different packages, you always get the tests and
> the Pharo implementation
> - no Metacello configuration yet
> - the load is always reported as 100%
>
> [1] http://www.jboss.org/mod_cluster
> [2] http://book.seaside.st/book/advanced/deployment/deployment-apache/mod-proxy-balancer
> [3] http://www.jboss.org/mod_cluster/downloads/1-1-0.html
> [4] http://docs.jboss.org/mod_cluster/1.1.0/html/Quick_Start_Guide.html#d0e264
> [5] http://www.squeaksource.com/ajp
>
> Cheers
> Philippe
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] mod_cluster for Seaside

sebastianconcept@gmail.co
Hey Sven,

even if it's young to produce, the effort is valuable.
In order to attract investors, you'll need simple ways to scale seaside apps confidently.

sebastian

On Oct 6, 2010, at 7:33 AM, Sven Van Caekenberghe wrote:

> This is (again) great work, Philippe.
> Thanks for sharing this with us all.
> It is really good to know there are options when the need for scaling comes knocking at the door.
> Is any of this in real world production use ?
>
> Sven
>
> On 05 Oct 2010, at 17:00, Philippe Marschall wrote:
>
>> Hi
>>
>> Have you ever wished Apache and Seaside would know each other better?
>> That Apache could tell Seaside where it was and vice versa? That
>> Seaside could tell Apache the load of the image so intelligent load
>> balancing decisions can be made? That you can dynamically add and
>> remove Seaside images from a cluster without restarting Apache or
>> messing with configuration files? The guys at JBoss though the same
>> and wrote mod_cluster [1].
>>
>> How does this actually work? There are two Apache modules involved.
>> mod_advertise sends UDP broadcasts about Apache's location, you might
>> have several on different hosts in the network. mod_cluster_manager
>> allows remote configuration of Apache. Seaside will connect to the
>> advertised Apache instances and tell them where it is (host, port,
>> protocol, urls). This is kind of schizophrenic because the backend
>> makes a request to the frontend but anyway.
>>
>> What do you need to get started? First you need to set up the
>> Smalltalk parts (not the Apache config) of mod_proxy_balancer [2]. If
>> you're just using a single image mod_cluster is overkill and
>> clustering without sticky session doesn't get you very far (unless
>> you're on GemStone). Then you need to setup mod_cluster itself, the
>> easiest way is to grab the binaries from JBoss [3] and follow the
>> installation instructions [4]. And finally you need to load ModCluster
>> from [5]. You start the magic with:
>>
>> JBPharoAdvertiseListener startOnHost: 'yourIp' jvmRoute: 'yourRoute'
>>
>> I should note the code is in the state "barely works on my machine",
>> there are likely a ton of bugs left.
>>
>> Here's some of the limitations I'm aware of:
>> - does not work on Mac due to UDP network stack problems
>> - host address has to be hardcoded because there's no way of finding
>> it out on Pharo on Unix
>> - has never been run under Windows
>> - not yet split into different packages, you always get the tests and
>> the Pharo implementation
>> - no Metacello configuration yet
>> - the load is always reported as 100%
>>
>> [1] http://www.jboss.org/mod_cluster
>> [2] http://book.seaside.st/book/advanced/deployment/deployment-apache/mod-proxy-balancer
>> [3] http://www.jboss.org/mod_cluster/downloads/1-1-0.html
>> [4] http://docs.jboss.org/mod_cluster/1.1.0/html/Quick_Start_Guide.html#d0e264
>> [5] http://www.squeaksource.com/ajp
>>
>> Cheers
>> Philippe
>> _______________________________________________
>> seaside mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] mod_cluster for Seaside

Philippe Marschall
In reply to this post by Sven Van Caekenberghe
2010/10/6 Sven Van Caekenberghe <[hidden email]>:
> This is (again) great work, Philippe.
> Thanks for sharing this with us all.
> It is really good to know there are options when the need for scaling comes knocking at the door.
> Is any of this in real world production use ?

Not yet.

Cheers
Philippe
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside