Pensieve: 2102

2021-03-01 23:13

猫养了一个多月, 不像是刚上手时的慌乱和不安了. 猫还好, 两方相互磨合以后也都比较了解对方会怎么做不会怎么做. 我们比较幸运地领养了一只很温顺的猫, 即使被激怒也不会咬人(至少我上周日给他洗澡双方肉搏时他没拿爪子抓我也没咬我). 家里小姑娘经常违背猫的意愿把猫抱起来, 猫也只是挣扎着跑开. 当然, 这不是说这只猫完全不会咬人, 事实上, 在玩的时候他偶尔会轻轻地咬我, 有时候他觉得不舒服了也会轻轻咬我作为警告. 一开始我还尝试去改正他的这种行为, 他在玩的时候咬我我会停止和他的游戏, 后来发现他很有分寸, 从来不会用力咬, 就放心了.

读完了(Think like a cat)[https://www.amazon.com.au/dp/0143119796], 全文就感觉是一个老奶奶在念叨着各种和猫相关的事儿, 甭管有没有道理, 经验是很充足的, 听着顺耳.

route 53迁移Zone

这个月做了一下r53里面跨账号迁移zone, 踩了一些小坑, 总结了一些经验, 分享下.

我们的zone迁移比较随性, 想起来需要迁移就开动了, 但是实际上迁移这个zone应该有一些完整的计划, 尤其是那些直接生产环境中使用的zone, 需要区分好下面几个步骤:

  1. 计划. 这个阶段要厘清哪个zone要迁移到哪个账号, 这个zone里面有没有子zone, 如果有的话能不能迁移, 要不要迁移. 如果确认可以迁移的话, 还应该清理这个zone里面的DNS记录, 并将NS记录的TTL设到一小时左右.
  2. 迁移. 这个步骤实际上危险性不大, 要做的事情是在目标账号的r53里面新建一个zone, 并把所有的record全复制过去, 然后改域名那儿的设置使用新zone的NS记录. github上能找到一个很旧的迁移工具, 自己修一下凑合也能用. 这一步的要点是要做好备份, 每一步要改任何值之前先记录好之前的值.
  3. 清理. 在足够长时间(推荐至少两周)后, 删除老账号里面的旧zone, 避免产生误会. 一点经验是可以在老zone里面添加一些txt记录, 当作notes, 提示用户这个zone已经被删除, 并会在某年某日后删除.

Go私有模块打包的一个思路

我们单位内部有一个go库, 需要分享给内部项目使用, 但是我们所有的架构全部在AWS上, 没有任何内网可言, 所以如何存放这个库就比较棘手. 之前用过的办法包括:

  1. 给这个库的repo配一个deploy key, 然后把这个key作为一个docker构建时的命令行参数传进去, 再通过一个脚本来通过这个key拉到源代码, 然后用go build来创建二进制文件.
  2. 给这个库配一个pipeline, 每次build的时候上传到Jfrog的Artifactory, 然后把有Jfrog只读权限的cred传进docker, 再build二进制文件.

这两种办法都很丑, 虽然后一个办法相对更干净一点, 但仍然需要把一个cred传进docker.

我们最近的实践是修改这个库的pipeline, 每次build的时候从go:alpine开始打一个docker镜像出来, 把这个库的源码全放进去, 然后存进ECR. 需要使用这个库的项目需要使用这个ECR中的docker镜像来作为base image. 这样前面这个cred被docker login的cred代替, 而对于ecr而言, 我们还是很信任这个每次动态生成的几百个字符的cred的.

其它

玩了下火炬之光2, 刷到50级后发现要继续从第一章剧情开始重新刷, 于是放弃了, 这不是我心目中的arpg. 这个游戏的装备系统还不错, 但是技能系统和D3比就差了几条街了. 现在重新捡起市政规划游戏城市天际线开始玩.

这个月中重看了少林足球和功夫, 少林足球仍是延续了无厘头风格比较多, 但是功夫的确是甩了其它所有周星驰电影一条街.