Deploying Seaside: A tutorial

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

Deploying Seaside: A tutorial

Miguel Cobá
I have to written a tutorial about deploying Seaside applications to
production servers. The tutorial uses a simple application to test a
setup with following components:

Debian GNU/Linux
lighttpd
Magma server
Magma seasideHelper
Seaside 2.8
PharoCore

You can find the tutorial here:

http://miguel.leugim.com.mx/index.php/2009/09/18/deploying-seaside-applications/
http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-install-the-squeak-vm/
http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-prepare-the-images/
http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-populate-directories/
http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-configuring-the-webserver/

Hopefully this will add to the collective knowledge and will answer some
questions we all have had with respect to deploying Seaside.
There are a couple of post that I must write yet, the SeasideProxyTester
explanation and the load testing ones but you can have a fully
configured setup to try and adapt to your needs.

Critics and comments are welcome.

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


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Deploying Seaside: A tutorial

Stéphane Ducasse
Hi miguel

Excellent!
did you compare and check what we wrote on the seaside book?

Stef

On Sep 23, 2009, at 2:29 AM, Miguel Enrique Cobá Martinez wrote:

> I have to written a tutorial about deploying Seaside applications to
> production servers. The tutorial uses a simple application to test a
> setup with following components:
>
> Debian GNU/Linux
> lighttpd
> Magma server
> Magma seasideHelper
> Seaside 2.8
> PharoCore
>
> You can find the tutorial here:
>
> http://miguel.leugim.com.mx/index.php/2009/09/18/deploying-seaside-applications/
> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-install-the-squeak-vm/
> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-prepare-the-images/
> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-populate-directories/
> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-configuring-the-webserver/
>
> Hopefully this will add to the collective knowledge and will answer  
> some
> questions we all have had with respect to deploying Seaside.
> There are a couple of post that I must write yet, the  
> SeasideProxyTester
> explanation and the load testing ones but you can have a fully
> configured setup to try and adapt to your needs.
>
> Critics and comments are welcome.
>
> Cheers
> --
> Miguel Cobá
> http://miguel.leugim.com.mx
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Deploying Seaside: A tutorial

Mariano Martinez Peck
In reply to this post by Miguel Cobá


2009/9/22 Miguel Enrique Cobá Martinez <[hidden email]>
I have to written a tutorial about deploying Seaside applications to
production servers. The tutorial uses a simple application to test a
setup with following components:

Debian GNU/Linux
lighttpd
Magma server
Magma seasideHelper
Seaside 2.8
PharoCore

You can find the tutorial here:

http://miguel.leugim.com.mx/index.php/2009/09/18/deploying-seaside-applications/
http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-install-the-squeak-vm/
http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-prepare-the-images/
http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-populate-directories/
http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-configuring-the-webserver/

Hopefully this will add to the collective knowledge and will answer some
questions we all have had with respect to deploying Seaside.
There are a couple of post that I must write yet, the SeasideProxyTester
explanation and the load testing ones but you can have a fully
configured setup to try and adapt to your needs.

Critics and comments are welcome.


This is an excellent tutorial. Do you have some production webapps with this? How much RAM do you need to have something like the deployment architecture you used? (I am thinking in the VPSs)

Cheers,

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


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Deploying Seaside: A tutorial

Schwab,Wilhelm K
In reply to this post by Stéphane Ducasse
Sef, Miguel,

I am very pleased to see you tackling this problem.  Answers I received from elsewhere "oh, that's trivial..." were not at all helpful.  Some web sites were helpful, but it was not always clear whether or not they were complete solutions.  One comment (there might be more by now??) to the new book mentions complexity with newer Linux distributions or something.  I should review that, but I'm on a roll :)

I think we should build some tools to capture the details, and I have been working toward that.  The problem is complicated slightly by conflicting writings, and perhaps that the target moves over time.  Another wrinkle for me is that I want https connections.

Things I can offer, in varying stages of dis-repair:

(1) OpenSSLCertificateFactory.  I started this under Dolphin and was still thinking in Windows terms; I now consider Windows to be analogous to a draining wound in a part of my body I hope to keep.  I still do some Windows-specific things, but the factory itself is designed to run on Linux; it would probably also be workable on a Mac, given its unix roots.

I found openssl.exe to be slightly uncooperative.  It would have been nice to have a library with entry points or at worst an executable willing to take arguments on the command line.  All I could think to do was to create a configuration file with easily-recognized tags (e.g. COMMON_NAME) and to write a customized version of the file into a specified location with values provided as arguments to the method that does the work.  I know I ran this on Linux at least once, but now I can't find all of the code (yet).  It looks like it was one of my earlier efforts with SIF, which does not do a very good job with Dolphin's virtual categories, turning them into things that severely confuse Monticello, effectively unpackaging methods.

The factory is really only of value to those wanting to self-sign a certificate.  Some object mightily to this concept, but it works and it's FREE.  I have no plans to make this work on Windows, because Linux shell scripting is remakably more rational than are Windows(TM) batch files.


(2) Apacheat.

(2a) This is something that I see as needing to work on Windows, since I do not (yet) expose Linux servers to the world.  However, I have also reduced it to creating a batch file and a .reg file to configure a service (interestingly, that has broken AGAIN, this time on win2k3).  It uses srvany (or whatever the correct name is) to run the vm as a service.  Have I mentioned that I am tiring of Windows?  

(2b) It also has some code that iterates the Seaside apps and writes virtual host entries suitable for copying into an apache configuration file.  The method in the new book might be simple enough to not bother with anything beyond a reference to where to find the relevant setup.


Parts of the above depend on being able to get a fully qualified name for the local machine, and NetNameResolver is more than slightly broken in that area.  I am convinced that it invokes primitives that are known to fail for IPv4 on IPv4 networks.  I have something that appears to work on both systems on xp (perhaps IPv6) and 2k3 (IPv4).  I need to try it again on Linux, and might soon have the ability to try Linux on another network - in fact my new discontinued $399.99 laptop is being delivered today.  Tux and I are very excited.  Having recently tried Vista for a few days, I plan to try to begin repartitioning this drive before Vista can so much as boot ;)  Ok, maybe I should let it boot just to see if everything works; I'll think about it.

Back to work.

Bill




 

-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Stéphane Ducasse
Sent: Wednesday, September 23, 2009 12:22 AM
To: [hidden email]
Subject: Re: [Pharo-project] Deploying Seaside: A tutorial

Hi miguel

Excellent!
did you compare and check what we wrote on the seaside book?

Stef

On Sep 23, 2009, at 2:29 AM, Miguel Enrique Cobá Martinez wrote:

> I have to written a tutorial about deploying Seaside applications to
> production servers. The tutorial uses a simple application to test a
> setup with following components:
>
> Debian GNU/Linux
> lighttpd
> Magma server
> Magma seasideHelper
> Seaside 2.8
> PharoCore
>
> You can find the tutorial here:
>
> http://miguel.leugim.com.mx/index.php/2009/09/18/deploying-seaside-app
> lications/
> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-ins
> tall-the-squeak-vm/
> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-pre
> pare-the-images/
> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-pop
> ulate-directories/
> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-con
> figuring-the-webserver/
>
> Hopefully this will add to the collective knowledge and will answer
> some questions we all have had with respect to deploying Seaside.
> There are a couple of post that I must write yet, the
> SeasideProxyTester explanation and the load testing ones but you can
> have a fully configured setup to try and adapt to your needs.
>
> Critics and comments are welcome.
>
> Cheers
> --
> Miguel Cobá
> http://miguel.leugim.com.mx
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Deploying Seaside: A tutorial

Miguel Cobá
In reply to this post by Stéphane Ducasse
El mié, 23-09-2009 a las 07:21 +0200, Stéphane Ducasse escribió:
> Hi miguel
>
> Excellent!
> did you compare and check what we wrote on the seaside book?
>

Yes of course, I have read it but the section on Scaling isn't done yet.
Also, the part of daemontools look interesting but didn't finish.
Anyway, a very good book.

I had the idea of a tutorial since long time but only now I had time to
write it. So I didn't want to use Squeak and have been waiting to
PharoCore to reach beta and Magma to support Pharo, and that happened a
pair of weeks ago.
Anyway, it is there for revision and improvement. If people find it
useful and you want add it (or want me to add it) as a section for the
book I would be more than pleased.

Cheers

> Stef
>
> On Sep 23, 2009, at 2:29 AM, Miguel Enrique Cobá Martinez wrote:
>
> > I have to written a tutorial about deploying Seaside applications to
> > production servers. The tutorial uses a simple application to test a
> > setup with following components:
> >
> > Debian GNU/Linux
> > lighttpd
> > Magma server
> > Magma seasideHelper
> > Seaside 2.8
> > PharoCore
> >
> > You can find the tutorial here:
> >
> > http://miguel.leugim.com.mx/index.php/2009/09/18/deploying-seaside-applications/
> > http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-install-the-squeak-vm/
> > http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-prepare-the-images/
> > http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-populate-directories/
> > http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-configuring-the-webserver/
> >
> > Hopefully this will add to the collective knowledge and will answer  
> > some
> > questions we all have had with respect to deploying Seaside.
> > There are a couple of post that I must write yet, the  
> > SeasideProxyTester
> > explanation and the load testing ones but you can have a fully
> > configured setup to try and adapt to your needs.
> >
> > Critics and comments are welcome.
> >
> > Cheers
> > --
> > Miguel Cobá
> > http://miguel.leugim.com.mx
> >
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [hidden email]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
--
Miguel Cobá
http://miguel.leugim.com.mx


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Deploying Seaside: A tutorial

Miguel Cobá
In reply to this post by Mariano Martinez Peck
El mié, 23-09-2009 a las 13:18 -0100, Mariano Martinez Peck escribió:

>
>
> 2009/9/22 Miguel Enrique Cobá Martinez <[hidden email]>
>         I have to written a tutorial about deploying Seaside
>         applications to
>         production servers. The tutorial uses a simple application to
>         test a
>         setup with following components:
>        
>         Debian GNU/Linux
>         lighttpd
>         Magma server
>         Magma seasideHelper
>         Seaside 2.8
>         PharoCore
>        
>         You can find the tutorial here:
>        
>         http://miguel.leugim.com.mx/index.php/2009/09/18/deploying-seaside-applications/
>         http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-install-the-squeak-vm/
>         http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-prepare-the-images/
>         http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-populate-directories/
>         http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-configuring-the-webserver/
>        
>         Hopefully this will add to the collective knowledge and will
>         answer some
>         questions we all have had with respect to deploying Seaside.
>         There are a couple of post that I must write yet, the
>         SeasideProxyTester
>         explanation and the load testing ones but you can have a fully
>         configured setup to try and adapt to your needs.
>        
>         Critics and comments are welcome.
>        
>
> This is an excellent tutorial. Do you have some production webapps
> with this? How much RAM do you need to have something like the
> deployment architecture you used? (I am thinking in the VPSs)

Yes I have one but isn't announced yet. I'm using vpslink.com (is not an
endorsement but it is cheap and stable and you get full root control of
the server. I don't like that they use openvz or virtuozzo for the
virtualization and that the machines can't have swap space in case tha
ram isn't enough for your process, you must upgrade to a bigger ram
plan, but hey, I don't have a lot of users yet :)) but you can also use
slicehost.com that is as cheap as vpslink but they give you 64 bit
architectures.
My server has 1 GB ram, x86 CPU and only the bare bones OS installed. I
use it also for other things as my other sites and several blogs, a
virtual domain mail server over mysql and antispam. Anyway this left me
with 570 MB free for my application. Using the exact setup shown, I can
launch 1 Magma image, and 3 Seaside images.
In the following posts I will put the results of load testing on my
development machine (Core 2 Duo, 4 GB ram) vs this production server but
earlier results show in my development machine until 200 request/sec
with 20 Seaside images without using magma. Using magma I got 20 req/sec
in my development machine. In the production server I got a lot less, as
the machine is less powerfull and has less Seaside images, just
20req/sec without magma and 6 req/sec with magma. In any case, wait for
the post about the exact results and the scripts to replicate it on your
own setup.
This should give a way to reliable (well, a little more) replicate and
compare stress loading results with Seaside alone and with Seaside and
Magma.

Cheers

>
> Cheers,
>
> Mariano
>  
>         Cheers
>         --
>         Miguel Cobá
>         http://miguel.leugim.com.mx
>        
>        
>         _______________________________________________
>         Pharo-project mailing list
>         [hidden email]
>         http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
--
Miguel Cobá
http://miguel.leugim.com.mx


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Deploying Seaside: A tutorial

Miguel Cobá
In reply to this post by Schwab,Wilhelm K
El mié, 23-09-2009 a las 10:43 -0400, Schwab,Wilhelm K escribió:
> Sef, Miguel,
>
> I am very pleased to see you tackling this problem.  Answers I received from elsewhere "oh, that's trivial..." were not at all helpful.  Some web sites were helpful, but it was not always clear whether or not they were complete solutions.  One comment (there might be more by now??) to the new book mentions complexity with newer Linux distributions or something.  I should review that, but I'm on a roll :)
>

What type of complexity. My setup just use a bare bones OS install with
the security configs applied and then just Squeak VM, Seaside and Magma.
Nothing else.

> I think we should build some tools to capture the details, and I have been working toward that.  The problem is complicated slightly by conflicting writings, and perhaps that the target moves over time.  Another wrinkle for me is that I want https connections.
>

My production server use https for all the site. It is going to be the
last post, after the load testing one. Modify the lighttpd.conf config
to add https to the mix. By the way this is a responsibility for the
webwerver/proxy not for seaside. Don't do it on Seaside. The requests
arrive encrypted to the webserver and then the webserver pass them
unencrypted to the Seaside images that are behind. In fact the Seaside
code doesn't know anything about ssl, just it asks Seaside to add the
#https protocol in all the urls that it generates. But that is a
one-liner in the initializacion code of the application. Give me a
couple more of days and I will explain it on the blog.

> Things I can offer, in varying stages of dis-repair:
>
> (1) OpenSSLCertificateFactory.  I started this under Dolphin and was still thinking in Windows terms; I now consider Windows to be analogous to a draining wound in a part of my body I hope to keep.  I still do some Windows-specific things, but the factory itself is designed to run on Linux; it would probably also be workable on a Mac, given its unix roots.
>
> I found openssl.exe to be slightly uncooperative.  It would have been nice to have a library with entry points or at worst an executable willing to take arguments on the command line.  All I could think to do was to create a configuration file with easily-recognized tags (e.g. COMMON_NAME) and to write a customized version of the file into a specified location with values provided as arguments to the method that does the work.  I know I ran this on Linux at least once, but now I can't find all of the code (yet).  It looks like it was one of my earlier efforts with SIF, which does not do a very good job with Dolphin's virtual categories, turning them into things that severely confuse Monticello, effectively unpackaging methods.
>
> The factory is really only of value to those wanting to self-sign a certificate.  Some object mightily to this concept, but it works and it's FREE.  I have no plans to make this work on Windows, because Linux shell scripting is remakably more rational than are Windows(TM) batch files.
>
>
> (2) Apacheat.
>
> (2a) This is something that I see as needing to work on Windows, since I do not (yet) expose Linux servers to the world.  However, I have also reduced it to creating a batch file and a .reg file to configure a service (interestingly, that has broken AGAIN, this time on win2k3).  It uses srvany (or whatever the correct name is) to run the vm as a service.  Have I mentioned that I am tiring of Windows?  
>

I understand the part of tiring of windows. I don't understand why you
have fear of exposing Linux to the internet and not Windows. I have the
exact opposite fears ;)

> (2b) It also has some code that iterates the Seaside apps and writes virtual host entries suitable for copying into an apache configuration file.  The method in the new book might be simple enough to not bother with anything beyond a reference to where to find the relevant setup.
>
>
> Parts of the above depend on being able to get a fully qualified name for the local machine, and NetNameResolver is more than slightly broken in that area.  I am convinced that it invokes primitives that are known to fail for IPv4 on IPv4 networks.  I have something that appears to work on both systems on xp (perhaps IPv6) and 2k3 (IPv4).  I need to try it again on Linux, and might soon have the ability to try Linux on another network - in fact my new discontinued $399.99 laptop is being delivered today.  Tux and I are very excited.  Having recently tried Vista for a few days, I plan to try to begin repartitioning this drive before Vista can so much as boot ;)  Ok, maybe I should let it boot just to see if everything works; I'll think about it.
>

Don't even follow that path. The seaside application don't ever be
exposed to the world. Just the webserver doing proxy to them. So is the
webserver that must know about fqdn and ssl and virtualhosting and other
websites on the same install, etc.
Seaside just do what it does better, run "applications".

> Back to work.
>
> Bill
Cheers
--
Miguel Cobá
http://miguel.leugim.com.mx


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Deploying Seaside: A tutorial

Stéphane Ducasse
In reply to this post by Miguel Cobá

On Sep 23, 2009, at 6:10 PM, Miguel Enrique Cobá Martinez wrote:

> El mié, 23-09-2009 a las 07:21 +0200, Stéphane Ducasse escribió:
>> Hi miguel
>>
>> Excellent!
>> did you compare and check what we wrote on the seaside book?
>>
>
> Yes of course, I have read it but the section on Scaling isn't done  
> yet.
> Also, the part of daemontools look interesting but didn't finish.
> Anyway, a very good book.

if you want to contribute please add comments

> I had the idea of a tutorial since long time but only now I had time  
> to
> write it. So I didn't want to use Squeak and have been waiting to
> PharoCore to reach beta and Magma to support Pharo, and that  
> happened a
> pair of weeks ago.

excellent.

> Anyway, it is there for revision and improvement. If people find it
> useful and you want add it (or want me to add it) as a section for the
> book I would be more than pleased.


would be cool!
The idea of the book is to gather and grow knowledge.

Stef

>
> Cheers
>
>> Stef
>>
>> On Sep 23, 2009, at 2:29 AM, Miguel Enrique Cobá Martinez wrote:
>>
>>> I have to written a tutorial about deploying Seaside applications to
>>> production servers. The tutorial uses a simple application to test a
>>> setup with following components:
>>>
>>> Debian GNU/Linux
>>> lighttpd
>>> Magma server
>>> Magma seasideHelper
>>> Seaside 2.8
>>> PharoCore
>>>
>>> You can find the tutorial here:
>>>
>>> http://miguel.leugim.com.mx/index.php/2009/09/18/deploying-seaside-applications/
>>> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-install-the-squeak-vm/
>>> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-prepare-the-images/
>>> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-populate-directories/
>>> http://miguel.leugim.com.mx/index.php/2009/09/22/deploying-seaside-configuring-the-webserver/
>>>
>>> Hopefully this will add to the collective knowledge and will answer
>>> some
>>> questions we all have had with respect to deploying Seaside.
>>> There are a couple of post that I must write yet, the
>>> SeasideProxyTester
>>> explanation and the load testing ones but you can have a fully
>>> configured setup to try and adapt to your needs.
>>>
>>> Critics and comments are welcome.
>>>
>>> Cheers
>>> --
>>> Miguel Cobá
>>> http://miguel.leugim.com.mx
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> --
> Miguel Cobá
> http://miguel.leugim.com.mx
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Deploying Seaside: A tutorial

Schwab,Wilhelm K
In reply to this post by Miguel Cobá
Miguel,

I maintain it is not as trivial as some in the Seaside world keep suggesting, and sice I'm not alone in finding new ways that things fail to "just work," I stand by it.

You appear to have completely missed my comments on ipv4/6.  There are defects in Pharo's NetNameResolver, and they need to be fixed.  It has nothing to do with Seaside, other than the defects prevent some of the finer points of customizing the certificate and possibly (depending on what is actually required) hints for apache configuration.

I look forward to your blog.  Hopefully it can be as simple as you suggest.  Part of my interest in things like Apacheat is to capture the details to remove (to the extent possible) any human error components.

BTW, it is not *me* who is afraid of Linux.  I agree that Windows is much more to be feared.  There are still a few things that keep me tied to it, and my interest in Pharo is to cut the few remaining chains.  One of them will require a LOT of sawing, I'm afraid.

Bill



-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Miguel Enrique Cobá Martinez
Sent: Wednesday, September 23, 2009 11:29 AM
To: [hidden email]
Subject: Re: [Pharo-project] Deploying Seaside: A tutorial

El mié, 23-09-2009 a las 10:43 -0400, Schwab,Wilhelm K escribió:

> Sef, Miguel,
>
> I am very pleased to see you tackling this problem.  Answers I
> received from elsewhere "oh, that's trivial..." were not at all
> helpful.  Some web sites were helpful, but it was not always clear
> whether or not they were complete solutions.  One comment (there might
> be more by now??) to the new book mentions complexity with newer Linux
> distributions or something.  I should review that, but I'm on a roll
> :)
>

What type of complexity. My setup just use a bare bones OS install with the security configs applied and then just Squeak VM, Seaside and Magma.
Nothing else.

> I think we should build some tools to capture the details, and I have been working toward that.  The problem is complicated slightly by conflicting writings, and perhaps that the target moves over time.  Another wrinkle for me is that I want https connections.
>

My production server use https for all the site. It is going to be the last post, after the load testing one. Modify the lighttpd.conf config to add https to the mix. By the way this is a responsibility for the webwerver/proxy not for seaside. Don't do it on Seaside. The requests arrive encrypted to the webserver and then the webserver pass them unencrypted to the Seaside images that are behind. In fact the Seaside code doesn't know anything about ssl, just it asks Seaside to add the #https protocol in all the urls that it generates. But that is a one-liner in the initializacion code of the application. Give me a couple more of days and I will explain it on the blog.

> Things I can offer, in varying stages of dis-repair:
>
> (1) OpenSSLCertificateFactory.  I started this under Dolphin and was still thinking in Windows terms; I now consider Windows to be analogous to a draining wound in a part of my body I hope to keep.  I still do some Windows-specific things, but the factory itself is designed to run on Linux; it would probably also be workable on a Mac, given its unix roots.
>
> I found openssl.exe to be slightly uncooperative.  It would have been nice to have a library with entry points or at worst an executable willing to take arguments on the command line.  All I could think to do was to create a configuration file with easily-recognized tags (e.g. COMMON_NAME) and to write a customized version of the file into a specified location with values provided as arguments to the method that does the work.  I know I ran this on Linux at least once, but now I can't find all of the code (yet).  It looks like it was one of my earlier efforts with SIF, which does not do a very good job with Dolphin's virtual categories, turning them into things that severely confuse Monticello, effectively unpackaging methods.
>
> The factory is really only of value to those wanting to self-sign a certificate.  Some object mightily to this concept, but it works and it's FREE.  I have no plans to make this work on Windows, because Linux shell scripting is remakably more rational than are Windows(TM) batch files.
>
>
> (2) Apacheat.
>
> (2a) This is something that I see as needing to work on Windows, since I do not (yet) expose Linux servers to the world.  However, I have also reduced it to creating a batch file and a .reg file to configure a service (interestingly, that has broken AGAIN, this time on win2k3).  It uses srvany (or whatever the correct name is) to run the vm as a service.  Have I mentioned that I am tiring of Windows?  
>

I understand the part of tiring of windows. I don't understand why you have fear of exposing Linux to the internet and not Windows. I have the exact opposite fears ;)

> (2b) It also has some code that iterates the Seaside apps and writes virtual host entries suitable for copying into an apache configuration file.  The method in the new book might be simple enough to not bother with anything beyond a reference to where to find the relevant setup.
>
>
> Parts of the above depend on being able to get a fully qualified name for the local machine, and NetNameResolver is more than slightly broken in that area.  I am convinced that it invokes primitives that are known to fail for IPv4 on IPv4 networks.  I have something that appears to work on both systems on xp (perhaps IPv6) and 2k3 (IPv4).  I need to try it again on Linux, and might soon have the ability to try Linux on another network - in fact my new discontinued $399.99 laptop is being delivered today.  Tux and I are very excited.  Having recently tried Vista for a few days, I plan to try to begin repartitioning this drive before Vista can so much as boot ;)  Ok, maybe I should let it boot just to see if everything works; I'll think about it.
>

Don't even follow that path. The seaside application don't ever be exposed to the world. Just the webserver doing proxy to them. So is the webserver that must know about fqdn and ssl and virtualhosting and other websites on the same install, etc.
Seaside just do what it does better, run "applications".

> Back to work.
>
> Bill
Cheers
--
Miguel Cobá
http://miguel.leugim.com.mx


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project