代码发布平台的设计
代码上线如果采用人工方式,那就有点熬人了。尤其像咋这种粗心又大意的小伙伴,一不小心发个bug甚至直接把rm指令当mv的用,那妥妥的要挨打。所以我们需要一条途径让我们的代码上线很easy,而且只能在规定的范围内进行操作。于是乎我们就需要这样一个发布系统,市面上的发布系统也就是流水线了。当然这个流水线呐是定制化的过程,就像链表一样可以添加节点,删除节点这样子。现在的问题是咋也想自己搞这么一个发布系统拿出来卖钱,比如一套系统买个几百块钱,价钱低也架不住市场广泛呀。但是问题是我们如何设计这个一个发布系统呐,我们要用那些技术组件来做这样一个利人利己的事?
发布系统本质上就是替代人的因素。所以我们发布系统模拟的就是发布代码的程序员。所以大概的过程如下:
上述流程貌似一气呵成,实现了我们的需求,但是问题是我怎么知道项目启动的结果是什么样子的,启动过程中有没有报错。说的简单点就是,我想看到我项目启动的一些信息,再简单的来说我想收集的是日志,so,这样的话,又该怎么做?
尤其是像我们的项目是夸机器部署,具有多个机器,日志收集这块我们马上想到之前学redis的分布式文件分发的那块,我们完全可以采用list数据结构来记录目标机器的日志。将日志直接打入redis中,然后设置过期时间。发布者通过请求从redis中获取项目启动日志并展示给项目的发布者。这样我们的发布系统就如下图所示:
评论