Deploying a big Squeak/Pharo Seaside application

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

Deploying a big Squeak/Pharo Seaside application

Mariano Martinez Peck
Hi folks: First of all, please if someone answers this mail do it to all as I have cc Gerardo.

After ESUG talks I was imagining a way to deploy big seaside applications. Something like this architecture:

SqueakNOS
SqueakVM
Image: The KernelImage that Pavel did. For Pharo it is something like 3MB I think. If you add morphic you can then use the VNC and I think it is 5MB. Then we should load there seaside, the dependencies and all of our code.

With this, I can have one real server with a host OS and use VMWare for example to have N number of SqueakNOS images. Each of the SqueakNOS image can have in addition, M number of images running at the same time.
Finally we can have a cluster of real pcs and just drag and drop our SqueakNOS VMWare images from one pc to another.

So...I wonder:

¿Is this a good idea?
¿Should this have better performance than just having several images running in the same pc?
¿Are there any advantages or disadvantages with this approach?

I don't have any big seaside application at all, but I was just thinking hahaha.

Best,

Mariano

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

Re: Deploying a big Squeak/Pharo Seaside application

Miguel Cobá
El mié, 16-09-2009 a las 19:29 -0100, Mariano Martinez Peck escribió:

> Hi folks: First of all, please if someone answers this mail do it to
> all as I have cc Gerardo.
>
> After ESUG talks I was imagining a way to deploy big seaside
> applications. Something like this architecture:
>
> SqueakNOS
> SqueakVM
> Image: The KernelImage that Pavel did. For Pharo it is something like
> 3MB I think. If you add morphic you can then use the VNC and I think
> it is 5MB. Then we should load there seaside, the dependencies and all
> of our code.
>
> With this, I can have one real server with a host OS and use VMWare
> for example to have N number of SqueakNOS images. Each of the
> SqueakNOS image can have in addition, M number of images running at
> the same time.
> Finally we can have a cluster of real pcs and just drag and drop our
> SqueakNOS VMWare images from one pc to another.
>
> So...I wonder:
>
> ¿Is this a good idea?
Maybe but must be refined.

> ¿Should this have better performance than just having several images
> running in the same pc?
Nope I would think.

- Unless you have a dedicated VMWare ESX server running in bare hardware
you will have other layer until the CPU.
- VMWare will be doing a lot of process swapping to give each vmware
virtual machine its cpu slice time if you have a lot of virtual machines
(that I think is your idea)
- SqueakNOS will be swaping also between squeakvm instances, also, doing
disk access for them.
- The squeakvm will be managing squeak processes that run your
application.

I don't know what is the performance and tuning that squeaknos has been
given to, but I don't think that can compete with the vmware and OS
memory and disk managers.

> ¿Are there any advantages or disadvantages with this approach?
>
> I don't have any big seaside application at all, but I was just
> thinking hahaha.

I think that the best approach is to have a couple of medium-big servers
with scsi disks and a several good cpus. This servers will run a lot of
squeakvm/pharo images pairs, on different ports. Lets say 8M from pharo
+ 1 MB from squeakvm + 13 MB from your app ~ 32 MB per pair, in a
machine with 6GB ram free for user processes you can host 6*1024/32 =
192 pairs per machine. Lets suppose that in a real situation you can
have 50 images running in each machine without swaping and a lot of
process swaping (a lot more can be made work of course, but lets stay
with 50). If you have 2 servers like this, you will have 100 images
running without problems.
Now you get a cisco router or a cheap pentium (even a 486 can do it)
with good ethernet cards and a bare bone linux install to proxy and load
balancing your app between the 100 images. If a linux server you can
use:
- iptables
- the linux kernel webserver
- nginx
- lighttpd
- apache

This:

1. avoids several layers of process swapping
2. uses a fine tuned filesystem to write to disk
3. uses a fine tuned os to do the process scheduling
4. is more easily administered/configured
5. could be grown/reduced anytime with a setup like the one Avi and
Ramon use

Believe me, the vmware stuff runs ok if you don't put a lot of virtual
machines on the same physical machine and sharing the same resources
(net, i/o, etc)

--
Miguel Cobá
http://miguel.leugim.com.mx

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

Re: Deploying a big Squeak/Pharo Seaside application

Gerardo Richarte
In reply to this post by Mariano Martinez Peck
Mariano Martinez Peck wrote:
> After ESUG talks I was imagining a way to deploy big seaside
> applications. Something like this architecture:
>
> SqueakNOS
> SqueakVM
> Image: The KernelImage that Pavel did. For Pharo it is something like
> 3MB I think. If you add morphic you can then use the VNC and I think
> it is 5MB. Then we should load there seaside, the dependencies and all
> of our code.
Heh, I love the idea, but saddly, I have to say, that if it's for
performance, this would not be my chosen option... not at all :(

Squeak: slow interpreted VM, at least until something better sees the light.
VMWare: adds an extra layer of resource management to the OS, inevitably
slows things down
SqueakNOS: Not the fastest OS you'll see out there, even if we had a fast VM

In any case, a better scenario would be just using SqueakNOS, no OS, no
VMWare, and serve multiple apps from the same seaside, however,
SqueakNOS is not ready for this, at all today, for it lacks support for
most network cards and hard disks, to start with.

For fast Seaside hosting I would recomend either VisualWorks or, of
course, Gemsstone/GLASS. You can find performance graphs for GLASS in
Dale's blog, and although I have not seen any VisualWorks graphs I guess
that's going to be good too. And probably the same goes for
VisualSmalltalk, although there is no supported Seaside for Visual
Smalltalk :)

Again, I still like a lot the idea, and hopefully in the future we can
come back to it and make it real, but today, I'm totally sorry to be me
who has to say that SqueakNOS is not an option :(

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

Re: Re: Deploying a big Squeak/Pharo Seaside application

Mariano Martinez Peck
Ok. Thanks both of you for the comments and answers.
It was in my mind and I was needing to ask that to someone else haha.

Best,

Mariano

On Sat, Sep 19, 2009 at 1:37 PM, Gerardo Richarte <[hidden email]> wrote:
Mariano Martinez Peck wrote:
> After ESUG talks I was imagining a way to deploy big seaside
> applications. Something like this architecture:
>
> SqueakNOS
> SqueakVM
> Image: The KernelImage that Pavel did. For Pharo it is something like
> 3MB I think. If you add morphic you can then use the VNC and I think
> it is 5MB. Then we should load there seaside, the dependencies and all
> of our code.
Heh, I love the idea, but saddly, I have to say, that if it's for
performance, this would not be my chosen option... not at all :(

Squeak: slow interpreted VM, at least until something better sees the light.
VMWare: adds an extra layer of resource management to the OS, inevitably
slows things down
SqueakNOS: Not the fastest OS you'll see out there, even if we had a fast VM

In any case, a better scenario would be just using SqueakNOS, no OS, no
VMWare, and serve multiple apps from the same seaside, however,
SqueakNOS is not ready for this, at all today, for it lacks support for
most network cards and hard disks, to start with.

For fast Seaside hosting I would recomend either VisualWorks or, of
course, Gemsstone/GLASS. You can find performance graphs for GLASS in
Dale's blog, and although I have not seen any VisualWorks graphs I guess
that's going to be good too. And probably the same goes for
VisualSmalltalk, although there is no supported Seaside for Visual
Smalltalk :)

Again, I still like a lot the idea, and hopefully in the future we can
come back to it and make it real, but today, I'm totally sorry to be me
who has to say that SqueakNOS is not an option :(

   richie
_______________________________________________
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: Re: Deploying a big Squeak/Pharo Seaside application

Igor Stasenko
In reply to this post by Gerardo Richarte
2009/9/19 Gerardo Richarte <[hidden email]>:

> Mariano Martinez Peck wrote:
>> After ESUG talks I was imagining a way to deploy big seaside
>> applications. Something like this architecture:
>>
>> SqueakNOS
>> SqueakVM
>> Image: The KernelImage that Pavel did. For Pharo it is something like
>> 3MB I think. If you add morphic you can then use the VNC and I think
>> it is 5MB. Then we should load there seaside, the dependencies and all
>> of our code.
> Heh, I love the idea, but saddly, I have to say, that if it's for
> performance, this would not be my chosen option... not at all :(
>
> Squeak: slow interpreted VM, at least until something better sees the light.
> VMWare: adds an extra layer of resource management to the OS, inevitably
> slows things down
> SqueakNOS: Not the fastest OS you'll see out there, even if we had a fast VM
>
> In any case, a better scenario would be just using SqueakNOS, no OS, no
> VMWare, and serve multiple apps from the same seaside, however,
> SqueakNOS is not ready for this, at all today, for it lacks support for
> most network cards and hard disks, to start with.
>
> For fast Seaside hosting I would recomend either VisualWorks or, of
> course, Gemsstone/GLASS. You can find performance graphs for GLASS in
> Dale's blog, and although I have not seen any VisualWorks graphs I guess
> that's going to be good too. And probably the same goes for
> VisualSmalltalk, although there is no supported Seaside for Visual
> Smalltalk :)
>
> Again, I still like a lot the idea, and hopefully in the future we can
> come back to it and make it real, but today, I'm totally sorry to be me
> who has to say that SqueakNOS is not an option :(
>
Gera, no need for excuses. :) SqueakNOS is a great thing by itself, showing how
it easy to control the hardware using high level language (instead of
assembly), and its not some kind of black voodoo except if you don't
have any documentation.

P.S. I remember the QNX floppy demo disks, which is a bootable
diskette containing
the OS + net & graphics drivers + browser. So, basically you can boot
PC with it and it detects your network card (if you're lucky
and got right vendor), and then you can go & browse the internet.
All of it fits into 1.44 Mb diskette.
So, i don't think that making networking or IDE i/o is hard thing.
Just give it a time.


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


--
Best regards,
Igor Stasenko AKA sig.
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside