不积跬步,无以至千里;不积小流,无以成江海。
大家好,我是闲鹤,十多年开发、架构经验,先后在华为、迅雷服役过,也在高校从事教学3年;目前已创业了7年多,主要从事物联网/车联网相关领域和业务。
喜欢交友、骑行、写毛笔字、弹吉他、折腾硬件和写代码。
重复、简单的事务,不要交给人去处理,也不要相信人对这种事务处理的完成度。因为人性对简单重复的事务是有抗拒和惰性的,做的越多,时间越久,后面的惰性和“不负责性”就越强。
背景
我们使用的 https 证书是申请免费的,免费的有一定的到期时间,到期后需要再次重新申请证书。由于整个系统经历了5-6年的迭代,到目前为止,所使用的 https 域名就有28个之多,而且每个域名的到期时间都不一样,这样在到期续费的时候就比较麻烦了。
一开始,我们都是依赖 https 证书平台的到期提醒通知的,但是由于每个人的事务繁多,收到短信通知后,交给其他同事去处理,但是当同事正在处理的时候,又被其他事务打断了,导致了这件 https 续费事件的模棱两可(好像是续了,又好像没续),或者实际没续,但印象中却续了,又或者干脆把这件事就此遗忘了。所以关于 https 续费的事情,一直是困扰我的事。有些到期了的,没来得及及时申请导致一些功能不可用,然后又急急忙忙的去申请证书,后面又单独把所有的 https 域名都列出来,人为的天天检查到期时间,但是能维持的时间不长,过了几个月后,又把这类事情的严重性人为的进行降低了,甚至后面又出现同类的问题了。
总结经验,为了断绝这种简单而又重复的事情,我们决定把这种事务交给程序/机器去处理了。
实现逻辑
如下图:
- 把要检查的 https 入库
- 使用 crontab 每天执行一次检查:
- 从 db 中取出要检查的域名
- 去第三方平台查询域名的到期时间
- 如果30天内到期,则发告警消息通知到相应的负责人
- 更新数据库
- 另外在运维 web 页面上,也展示相应的域名列表出来,也可以单独对该域名进行检查,如下图:
如此,从某种程度上,就减少了人为犯的错。同时,我们也购买了一级域名下的泛域名,尽量把这种“看似不是问题”的问题的发生尽量降到最低。