Scaling Seaside

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

Scaling Seaside

Richard Eng
Just out of curiosity, if I should need to scale my Seaside app beyond  
my one Linux box, exactly how do I do that?

I am currently using Apache to load-balance over several Squeak VMs:

<Proxy balancer://seaside_cluster>
        BalancerMember  http://localhost:9090/seaside/go  route=GSN9090
        BalancerMember  http://localhost:9091/seaside/go  route=GSN9091
        BalancerMember  http://localhost:9092/seaside/go  route=GSN9092
        BalancerMember  http://localhost:9093/seaside/go  route=GSN9093
        ...

Do I add a second Linux box that runs additional Squeak VMs (but does  
not run Apache)? Say, the second Linux box is at IP 192.168.1.110.  
Then do I edit the above to:

<Proxy balancer://seaside_cluster>
        BalancerMember  http://localhost:9090/seaside/go  route=GSN9090
        BalancerMember  http://localhost:9091/seaside/go  route=GSN9091
        BalancerMember  http://localhost:9092/seaside/go  route=GSN9092
        BalancerMember  http://localhost:9093/seaside/go  route=GSN9093
        ...
        BalancerMember  http://192.168.1.110:9200/seaside/go  route=GSN9200
        BalancerMember  http://192.168.1.110:9201/seaside/go  route=GSN9201
        BalancerMember  http://192.168.1.110:9202/seaside/go  route=GSN9202
        ...
?

Is it really that simple and straightforward?

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

RE: Scaling Seaside

Ramon Leon-5

> Is it really that simple and straightforward?
>
> Thanks,
> Richard

Yup, assuming you're OK with one box doing all the routing and static
content serving.  If you get big enough to matter, you might have one box up
front doing all the routing and static content serving and multiple seaside
boxes doing just dynamic content.  We have a BigIP f5 up front doing our
load balancing.

Ramon Leon
http://onsmalltalk.com

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

Re: Scaling Seaside

Miguel Enrique Cobá Martínez
In reply to this post by Richard Eng


On Tue, Apr 29, 2008 at 9:16 AM, Richard Eng <[hidden email]> wrote:
Just out of curiosity, if I should need to scale my Seaside app beyond my one Linux box, exactly how do I do that?

I am currently using Apache to load-balance over several Squeak VMs:

<Proxy balancer://seaside_cluster>
       BalancerMember  http://localhost:9090/seaside/go  route=GSN9090
       BalancerMember  http://localhost:9091/seaside/go  route=GSN9091
       BalancerMember  http://localhost:9092/seaside/go  route=GSN9092
       BalancerMember  http://localhost:9093/seaside/go  route=GSN9093
       ...

Do I add a second Linux box that runs additional Squeak VMs (but does not run Apache)? Say, the second Linux box is at IP 192.168.1.110. Then do I edit the above to:

<Proxy balancer://seaside_cluster>
       BalancerMember  http://localhost:9090/seaside/go  route=GSN9090
       BalancerMember  http://localhost:9091/seaside/go  route=GSN9091
       BalancerMember  http://localhost:9092/seaside/go  route=GSN9092
       BalancerMember  http://localhost:9093/seaside/go  route=GSN9093
       ...
       BalancerMember  http://192.168.1.110:9200/seaside/go  route=GSN9200
       BalancerMember  http://192.168.1.110:9201/seaside/go  route=GSN9201
       BalancerMember  http://192.168.1.110:9202/seaside/go  route=GSN9202
       ...
?

Is it really that simple and straightforward?
Yes it is. What is more, you can setup a net like this:

     
(Internet) --> (dedicated proxy/balancer or hardware proxy/balancer) --> (a lot of boxes running a lot of images of your app)

This way you can push all your static content to the dedicated proxy so it can be cached in memory for faster serving. Also,
you can put your certificate in this box so all the content is served to the internet encrypted.
The lot of boxes are just normal servers without certificates or static content, just your simple and plain app. All the cpu cycles
available for your app.

Also, you can add/remove nodes in the farm of servers with the image, for example for adding or removing capacity (also it can be Amazon EC2 images added/removed on demand) and just configure your proxy (although most proxys/load balancers detect nodes lost and automatically avoid sending more sessions to them.

Also, have in mind that you need a sticky session capable load balancer. You need this as the callbacks live in the image and are not
capable of migrate to new servers, so the same session has to be routed to the same server where it was created.

Miguel Cobá
 

Thanks,
Richard
_______________________________________________
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