Day 15:目前 NOJ 的部署流程

本来今天是要讲完 Grafana 的部分,不过我发现我还是来不及做完...目前的进度只有下面这样,我认为还缺了点东西,看看明天能不能处理完吧。

所以今天我想来讲讲其他的主题,有关目前 NOJ 部署上,我认为的一些问题以及可能的改善方向。

目前的情况是我们会把整个 repo 放在 server 上面,每当需要更新的时候就上去 build docker image 以及把 container 跑起来。因为有些设定是无法公开的,像是 JWT 使用的 secret、沙盒使用的 token 等等,加上我们那时候对於这些 credential 的管理并不熟悉,所以我们是把这些东西直接写进 docker-compose.prod.yml 这个生产环境使用的设定档,并且避免它们进版控。(实际上还有一些其他档案也是啦...)

这样子的做法我想会有几个问题,首先第一个是这样的流程容易引入人为的变更,而导致我们不好确定目前运行的服务是什麽状态,以过去的经验来看,因为 code 就在那边嘛...所以有时候就会有直接在 server 上 hotfix 之後部署下去的状况,在这种情况下,就导致了这些修复不会即时的被 commit。虽然说这当然可以透过规范大家不要修改上面的 code 来解决,但若是可以从根本上杜绝,也就是不要在 server 上面放 code,而是在 CI 流程中 build image 再部署。

另外一个问题是,因为我们姑且也算是开源专案嘛(虽然我觉得还有许多问题要解决),若是要让其他人也可以正常的部署的话,那麽那些正式环境的设定也应该要可以进到版控里面才对,而 secret 的部分让不同的人可以去替换掉。可是以目前的设计来说它们是绑在一起的,并没有分开,所以暂时做不到。

其他多少还有一些小问题,都容易导致整个服务的状态变得不稳定,进而导致维运的困难,所以我的短期目标,应是要让正式环境的设定档也可以进版控吧。


<<:  Day29. Blue Prism斜杠好帮手 -BP自动收集股价

>>:  【Day16】数据展示元件 - Table

Day 18:广度优先搜寻(BFS)

上一回提到广度优先搜寻的步骤是检查图中节点,并将与其相连的节点放入伫列中,再一一检查。 光是这样的文...

CMoney第八届菁英软件工程师战斗营_Week 2

安安 过了一周我又来了 首先需要先为自己与同学鼓掌撑过第一周✌️ 第二周开始就是介面地狱 每周第一天...

[神经机器翻译理论与实作] 从头建立英中文翻译器 (IV)

前言 今天会将昨天训练好的翻译模型在测试资料集进行预测,若进度符合期待,将会使用 BLEU 分数来评...

Day 26:v-if 才做选择,v-show 全都秀

目前的版面配置是基本的瀑布流效果,而此模式较着重在显示书本封面图片,一列只能出现三本书单,RWD 的...

Android Studio初学笔记-Day2-LinearLayout介绍

对於初学着来说(像我本人),一开始如果没先了解布局的运作容易在布局的编排上产生问题,所以第一篇先来介...