[Seaside] Ci automated deploy of seaside to Digital Ocean

Tim Mackinnon tim at testit.works
Thu May 10 21:55:49 UTC 2018


I forgot to mention - you are correct that this isn’t a good solution for a widely use production system - as I think you would want to use a load balancer to stop traffic to one image while sessions complete before terminating it. OR - there must be some cloud based solution for this these days - presumably using docker…

Still for hobby experiments - this and Digital Ocean seems ideal.

Tim

> On 10 May 2018, at 22:17, Tim Mackinnon <tim at testit.works> wrote:
> 
> Ah - I see (hadn’t thought about having a configurable port number),
> 
> So if Ive understood correctly I could install supervisord with a config file like yours.
> 
> Then on completion of my build, I could sftp my new image up to DO, and then execute a command like: supervisorctl restart psworker?
> 
> Doing a check does seem to show lots of people use either it or monit (the latter being a bit more complicated).
> 
> Thanks for the help - this is my next learning step.
> 
> Tim
> 
>> On 10 May 2018, at 19:47, Esteban A. Maringolo <emaringolo at gmail.com> wrote:
>> 
>> 
>> 
>> On 10/05/2018 15:30, Esteban A. Maringolo wrote:
>>> How would you know when to kill the running vm+image? It might have
>>> active sessions.
>>> 
>>> If you don't care about that, what I used to manage a bunch of "worker
>>> images" (process groups) with supervisord [1], so in that case you'd
>>> stop all the related workers, copy the new image, and start the
>>> workers again.
>> My supervisord.conf entry for a pool of working images was:
>> 
>> [program:psworker]
>> command=/home/trentosur/perfectstore/pharo-vm/pharo --nodisplay
>> /home/trentosur/perfectstore/ps.image worker.st 818%(process_num)1d
>> process_name=%(program_name)s_%(process_num)02d ; process_name expr
>> (default %(program_name)s)
>> numprocs=2
>> directory=/home/trentosur/perfectstore
>> autostart=false
>> autorestart=true
>> user=trentosur
>> stopasgroup=true
>> killasgroup=true
>> 
>> 
>> Part of the worker.st file handling the port number was:
>> 
>> "Seaside server start"
>> Smalltalk isHeadless ifTrue: [
>> Smalltalk commandLine arguments
>>   ifEmpty: [
>>     Transcript show: 'No port parameter was specified.'; cr.
>>     Smalltalk quitPrimitive. ]
>>   ifNotEmpty: [:args |
>>     | port |
>>     port := args first asNumber asInteger.
>>     Transcript show: 'Starting worker image at port ', port asString; cr.
>>     ZnZincServerAdaptor  startOn: port.
>>     ZnZincServerAdaptor default server debugMode: false.
>>   ]
>> ]
>> ifFalse: [
>>     | port |
>>     port := 8080.
>>     Transcript show: 'Starting worker image at port ', port asString; cr.
>>     ZnZincServerAdaptor  startOn: port.
>>     ZnZincServerAdaptor default server debugMode: true.
>>   ].
>> 
>> 
>> I hope it helps.
>> 
>> Best regards,
>> 
>> 
>> 
>> -- 
>> Esteban A. Maringolo
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> 
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



More information about the seaside mailing list