Re: Ci automated deploy of seaside to Digital Ocean
Norbert Hartl <[email protected]>
| Newsgroups | gmane.comp.lang.smalltalk.squeak.seaside |
|---|---|
| Message-ID | <[email protected]> |
> Am 10.05.2018 um 23:55 schrieb Tim Mackinnon <[email protected]>: > > 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… > All of this can be done. It just depends on the learning curve you want to take. I successfully escaped the unix/linux hell (used daemontools, monti, systemd before) for my services and entered docker hell :P I use docker swarm and that has everything you describe above. I can deploy any number of images across all my machines with ease. There is a zero-downtime option so there is no service interruption. But the amount of time I had to put into there was massive. So while I would encourage the usage of docker I’m not sure it is for everyone. The medium heavy approach for you should be: 1. nginx as frontend server. This proxies all requests to a docker service traefik (https://traefik.io/ <https://traefik.io/>) 2. traefik listens on docker whenever a container is started and adds it to the load balancing routine. 3. You deploy any number of your application and they will automatically load balanced. Norbert > Still for hobby experiments - this and Digital Ocean seems ideal. > > Tim > >> On 10 May 2018, at 22:17, Tim Mackinnon <[email protected]> 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 <[email protected]> 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 >>> [email protected] >>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >> >> _______________________________________________ >> seaside mailing list >> [email protected] >> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > > _______________________________________________ > seaside mailing list > [email protected] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ seaside mailing list [email protected] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside