难部署的taiga,难用的circus——从进程管理到容器管理,简单才是美

Posted 永远的幻想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了难部署的taiga,难用的circus——从进程管理到容器管理,简单才是美相关的知识,希望对你有一定的参考价值。

taiga是github上搜project management star最多的项目:

 

 

taiga的部署,总的来说非常难受。我没想到一个后端用django做api 前端coffee-script的玩意,竟然搞这么多配置文件,各种配置项互相引用。

它的官方部署教程, 完全没赶上容器化的趋势,读下来总体感觉就是乱:东1个配置文件,西1个配置文件,往下读后面还经常给出另外版本的配置文件。把http改成https,居然是多配置文件,每个给2个版本。TM有病啊。

越是难部署的过程,就越值得脚本化、容器化部署。但它复杂到搜taiga docker   项目好几个,但星级都不高,而且做法也都五花八门。

最不爽的地方集中在:

1 把git clone写在dockerfile里了,但是TM工程是会演进变化,有BUG的!这样看都不看直接打包进去,直接后果就是taiga配置项变化和小错误导致的部署失败,有些taiga docker 的作者都不知道怎么改。(其实老实把代码下载下来看看,都不难的)

2 因为难部署,所以为每个镜像再写点sh。本来就觉得配置复杂了啊,还要每个镜像再加点sh脚本。虽然一时配好了没问题,但是更增加了复杂度

总的来说——不满足:一处修改,多次执行的要求,而是到处修改,1次执行

 

以至于,我哪个都觉得别扭,参考它们之后,自己搞了一套。

总的原则是:

1代码和配置文件尽量都放在镜像外,启动时用-v挂进去。

2保证眼睛能看到到挂进去、COPY进去的都是什么东西.而且位置要集中,不要让我到处翻看(git clone 肯定得放外面)

3配置项太杂,配置文件太多,互相依赖(各端口号、主机名、本地路径、SERECT_KEY之类)需要脚本自动产生配置文件,自动添加配置文件

简单说:把所有值得配置的参数集中到唯一1个yml配置文件里,然后搞一套各种配置文件模板(包括全局的docker-compose, 和back front events db rabbitmq celery_work的dockerfile 以及需要COPY进各image的配置文件)。

运行的时候大致步骤:

读全局yml参数

用jinja2渲染出各配置文件

git clone下载好taiga各工程代码

执行docker-compose up(用它调用各镜像的build和容器启动)

——结果几天下来,一不留神就写成了1个工程。

 

 回头看,其实是taiga的开发、部署统统落伍了。

taiga是2014年开发的,2015年获各种奖。

 

 

它官方安装文档里 前后端进程管理工具,用是circus。星级不高,近期也不活跃了

 

它当年打出的卖点是:它1个取代 supervisor 和gunicorn 两个:

 

当年2013左右,还能搜到文章提到它,说它思路新,支持py3,是supervisor 的替代品。但是今天:

supervisor 

 

gunicorn 

 

直到今天,supervisor 官方还是说不要在生产环境用py3版的。

但是我照样用supervisor。为啥?因为gunicorn 有py3的版本就够了啊!

单机上的服务启动是 supervisor(py2)-> [ gunicorn(py3),  nginx

gunicorn(py3)再启动app 就OK了

为什么对进程的管理变得更简单了(或者说,保存简单就够了,不需要更复杂的管理工具)?

因为单机运行多个服务的方式变了,从多进程,变成了多容器。

所以,不再是进程管理工具之间的竞争,而是加入了docker,  k8s这些玩意。

监控、控制服务的启动停止  从使用进程管理工具,到在docker-compose里设置restart 就可以管起来,端口设置ports就管起来了。

这样就保证了每个容器内部,跑的进程都不复杂(甚至比原来还简单,种类还少),但还多少需要点管理工具,所以supervisor gunicorn仍然活的很好,而试图取代它两个的复杂的circus,却衰落了。

 

以上是关于难部署的taiga,难用的circus——从进程管理到容器管理,简单才是美的主要内容,如果未能解决你的问题,请参考以下文章

CSDN 蒋涛对话阿里达摩院周靖人:魔搭社区,让天下没有难用的 AI 模型

CSDN 蒋涛对话阿里达摩院周靖人:魔搭社区,让天下没有难用的 AI 模型

H3 BPM10.0让天下没有难用的流程之功能介绍

H3 BPM10.0让天下没有难用的流程之技术体系

让天下没有难用的搜索:阿里搜索如何成长为贴心“暖男”?

H3 BPM10.0让天下没有难用的流程之产品概述