[Seaside] Ci automated deploy of seaside to Digital Ocean

Norbert Hartl norbert at hartl.name
Fri May 11 15:17:50 UTC 2018



> Am 11.05.2018 um 15:54 schrieb Esteban A. Maringolo <emaringolo at gmail.com>:
> 
> On 11/05/2018 10:39, Norbert Hartl wrote:
> 
>> 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/)
>> 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.
> 
> Why nginx+traefik? Isn't the latter supposed to provide reverse proxying
> as well?
> 
Yes, maybe you don’t need nginx then. I use it because nginx is fine for caching content and rewriting requests and such. That isn’t so good with traefik. I also usually do SSL offloading in nginx so traefik does not need to handle SSL. 

> A blog post/tutorial about how this was made would save many from
> investing massive time into it. :)
> 
Yes I know. But I hardly find time to release all the stuff we do to the public. So writing a blog post is out of reach for me at the moment, sorry. Maybe Marcus and me give a session on that at ESUG. And one thing is sure… a single blog post won’t keep you from spending a lot of time on it. 

> I’m interested in how you implement the zero-downtime.
> 
docker swarm provides it. It starts a new container and let this do health check for about a minute. Then it takes that container online and slighty later it takes one of the old containers offline. I’m not sure it works 100% but I did not see any HTTP errors from the frontend server while upgrading.

Norbert

> Regards!
> 
> 
> -- 
> Esteban A. Maringolo
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



More information about the seaside mailing list