Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2017 10-12 月份工作/生活不涉密记录... #57

Closed
17 tasks done
cosven opened this issue Oct 10, 2017 · 10 comments
Closed
17 tasks done

2017 10-12 月份工作/生活不涉密记录... #57

cosven opened this issue Oct 10, 2017 · 10 comments

Comments

@cosven
Copy link
Owner

cosven commented Oct 10, 2017

第一个星期 10.9 ~ 10.15

2017-10-9 星期一

2017-10-10 星期二

上午

  • 自动回滚提 MR

下午

  • 研究新的部署方式下的自动回滚等概念
    • 新的销毁金丝雀容器的策略
  • 在开发机上试用 zae-cli
    • 在开发机上 安装 neovim
    • 在开发机上安装 docker-ce 并升级内核
    • 修复 zae-cli 两个小 bug...
    • 更新 zae-cli wiki

2017-10-11 星期三

上午

下午

  • 改进 mysql 自动回滚指标计算的问题 -> 等待 review
  • 金丝雀回滚策略...
    • 金丝雀是怎样进行部署的?-> 讨论了下,确定先把 v2 的回滚功能给上了
  • 排查 halo 报警创建有点问题...

2017-10-12 星期四

上午

  • 修了报警创建的 bug... 顺便把代码改了一发,不然不好修 bug..

下午

  • 实现 v2 的金丝雀回滚把...

2017-10-13 星期五

上午

  • 金丝雀自动回滚的实现...

金丝雀自动回滚实现遇到的一些困难记录

  1. strategy.bay_api_version == '1' 还是 1
  2. unit 是个 dict 还是个 object
  3. 怎样获取 app stage info 呢?我需要查看 app model 是否有类似字段,然后要确认 stage_info 的结构
    但其实是 unit 和 version 绑定的,而不是 app (why?)
  4. monitor 函数是放在 DeployTask 类下的...其它的 task 无法复用...
  5. 金丝雀回滚理论上也看做一次部署:但实现起来应该需要重构很多东西...
    • create_deploy 调用链太长了... 如果
    • context 传的太多...拼这个东西也没有对应的函数...比较痛苦
  6. EAFP ("it's easier to ask forgiveness than permission") vs LBYL ("look before you leap")
  7. 部署期间,人为 scale 会怎样?
  8. 部署最后让 production 版本可以扩容,并注册到 HA,难道测试环境不能?
    话说:如果之前已经设置过了,那回滚金丝雀的时候可以不设置?
  9. 一半旧的,一半新的,咋办...?
  10. 阻塞、非阻塞/同步、异步?
话说各项目里面为啥很少出现类似 use_newbay_firsttime 这种逻辑比较复杂的函数?

能否尝试总结下?

金丝雀回滚可不可以看做一次部署?

不方便...

2017-10-14 星期六

  • 看游戏比赛一天,舒服...

2017-10-15 星期天

关于写测试

存档
键盘坏,遂喵书。
民间传:写测试费时,亲有体会,但不以为然...
(马丹,你以为自己是文学家么...(然小小的随便写一写也不为过把...))傻...
(突然觉得这样子卖萌是不是太中二,虽然也不萌...

关于测试这东西,感觉书上有几个点说的挺在理...:

  1. 测试代码的质量应该 >= 生产代码的质量。维护测试和维护代码一样,都需要成本,试想,如果测试代码写得一塌糊涂...那之后修改起来势必耗时耗力,测试看不懂,那测试的作用也大大减小了
  2. 一个测试只测一个概念
    也就是说,平常有童鞋抱怨维护测试成本大,写测试不方便:有可能是测试代码没写好?2333

然后关于 TDD 的执行方法:先写测试,再写代码。有三个准则:

  1. 先写的测试,一定要让现有代码测试不通过
  2. 后写的代码,一定只能让测试刚好通过
  3. 忘记啥了(反正也是类似的思想把)
    不过执行起来真的可以方便么...

迪米特法则

存档
更准确地说,迪米特法则认为,类C的方法f只应该调用一下对象的方法:

  • C
  • 由f创建的对象
  • 作为参数传递给f的对象
  • 由C的实体变量持有的对象
  • 方法不应调用由任何函数返回的对象的方法。
@cosven
Copy link
Owner Author

cosven commented Oct 16, 2017

第二个星期 10.16 ~ 10.22

2017-10-16 星期一

  • 继续实现金丝雀自动回滚,马丹...都搞了几天了(写完提了 MR)
  • 无数 on-call,其中两个比较奇怪的问题 -> bay 升级导致的

2017-10-17 星期二

公司

  • 修改 newbay 自动回滚 MR
  • 修改 mysql slow query 自动回滚

个人

  • 整理星期一没记录的笔记
  • 折腾
    • IPython notebook。已经在开发机上搭建完毕
    • Typora 好用: markdown 编辑器

2017-10-18 星期三

上午

  • 改了下 fuo 的设计

下午

  • 上线 mysql slow query 自动回滚
  • 测试 mysql slow query 自动回滚
SHOW SESSION VARIABLES LIKE "long_query_time";
select sleep(1);

2017-10-19 星期四

上午

  • 补全一下多重继承的基础 ref

下午

  • 讨论 + 重构一下 BayGroupManager

晚上

  • 刷了一个 leetcode

2017-10-20 星期五

上午

  • za-app newbay 部署的问题

下午

  • 整理了 leetcode 笔记
  • BayGroupManager 重构

@cosven
Copy link
Owner Author

cosven commented Oct 23, 2017

第三个星期 10.16 ~ 10.22

总结:水水没意思的一个星期把...

2017-10-23 星期一

  • BayGroupManager 重构完,下午写测试,全部写完了
  • 世纪难题:BayGroupManager 要改个什么名字好呢?
    1. 这东西实际上都是一些计算或者 utils 函数
    2. manager 应该的有各种操作函数把,但是它其实并没有啊,都是计算性质的东西
    3. 断断续续思考 20 分钟,叫 UnitGroupHelper 把...

2017-10-24 星期二

  • 重构三步走
    • 完成两步...

看 Github Trending 没感

  1. 前端 - 技术 - 库
  2. 智能家居管理
  3. IOS - 库
  4. 机器学习 - 库

话说这次为啥要重构呢?

  1. 重复代码:BayGroupManager 和 BayAPIV2 重复
  2. 计算策略的重构

one-one

  1. 最近干什么?
    1. cli 也不需要干啥...
    2. newbay?
    3. socket or 机器学习
    4. celery 部署卡的问题..

2017-10-25 星期三

  • 熟悉下 MPD Protocol
    • mopidy
  • 理一理部署系统的逻辑
  • 今日 Github Trending:没啥新鲜的
  • 重构提 MR

2017-10-26 星期四

  • 看看人家的金丝雀部署的界面?
    1. Azure 进度条

金丝雀

  • 隐藏金丝雀 stage 这个概率

percent 是预设一个固定值还是每次动态值?

动态值的话:要求最少上过 10% 的测试,才能上 production; 10% 以上流量自动启用金丝雀自动回滚;比较好的弱化金丝雀 1,2 的概念,比值
固定值的话:改动小。

@cosven
Copy link
Owner Author

cosven commented Oct 30, 2017

第三个星期 10.30 ~ 11.4

星期一

  • newbay 部署灰度
  • newbay autorevert
    • 将 task 变小

release canary

  1. 创建 NewBayDeployTask 类
  2. 把 bay deploy task 拆成多给部分:缩放新版本和缩放旧版本

release_canary(self, deploy_id, app_name, units) -> for unit in units -> deploy_new_version()

星期二

  • 拆出一个 NewbayDeployTask 提 MR (继昨天)
  • 2:00-3:00 想等 MR review 完 -> 干点自己的活... 把书的第一章看了下
  • 3:00- 思考下 strategy 怎样体现在 ZAE 配置中 -> 可能最简单的方法比较好
  • 把 newbay canary autorevert 做了...

strategy 配置

如果按照老的概念进行

  1. 直接使用 nami strategy put 接口就行了,也不需要批量接口

按照新的概念来做

  1. 在 zae 里面存一个 percent - 每次部署的时候传给 nami
  2. newbay 和 oldbay 会有两个界面...(需要有是否使用 newbay 的判断)
  3. 然后在部署界面需要有小幅改动

unit 网络编程 第一章

读书笔记

星期三

  • 看 asyncio 文档
    文档粗略的看了下,说不出有啥感觉...
    但是这个视频看起来不错:https://www.youtube.com/watch?v=ZzfHjytDceU。讲了下 asyncio 的背景?看了这个,感觉得先手写个 socket client/server 来看看。
  • 手写 socket client/server 程序

星期四

  • address already in use 的问题,原理大概和 TIME_WAIT 有关,看能不能抓包看看连接建立和关闭的过程 抓包实验
  • socket blocking 和 nonblocking?

@cosven
Copy link
Owner Author

cosven commented Nov 6, 2017

第四个星期

星期一

  • 理论考试失败 - 2333
    • 3以上7年一下...没搞清楚过
    • 酒驾处理、酒驾 80ml/100ml
    • 报废车辆处理、改装车辆处理...
  • nami 部署自己的时候卡住 (吃饭的时候讨论下)
  • 部署界面,用 card 代替 list,信息显示更丰富...
    • 在 task 里面同步下实现计划...
  • canary 改进计划
    • 已经回复了 task
    • 看看大家怎么说

星期二

  • 金丝雀回滚... 作为 process 也有一些问题...

星期三

  • 上午,研究了下 beisen
  • 下午,看看回滚做成啥样...
  • 写了个豆瓣租房搜索小脚本...

@cosven
Copy link
Owner Author

cosven commented Nov 13, 2017

第五周

周报

  • [ZAE-276]
  • [PLAT-38]
  • nami-mr-710 bugfix
  • nami-mr-712 回收

星期一

TODO

  • 合并金丝雀 MR
  • 合并 oauth MR
    • 改了一波 MR...
  • oauth2 数据库建表..
  • bugfix: set_enable_scale

星期二

  • bay 测试环境不回收,已经提 MR...
  • 支持 leader 名字和产品线信息
  • mysql 事务相关
    • mysql 如果连接关闭了,事务是怎样处理的呢?
  • coroutines

星期三

  • 部署中断收集日志...

星期四

  • 部署日志改进 UI
  • 办公室关闭快速部署
  • python3 镜像
  • 测试环境资源不够,日志提示
    • 搞清楚了该怎么做...

星期五

  • jenkins master 定时重启的问题

@cosven
Copy link
Owner Author

cosven commented Nov 16, 2017

摘抄一个 BD
后端工程师
https://groups.google.com/forum/#!topic/python-cn/3rouaGJZm8s
工作职责:

  • 参与web项目架构的制定和优化,开拓和引入新的技术;
  • 负责web项目的后端业务逻辑开发,与技术团队交流协作;
  • 负责web项目的部署和升级,以及部分日常维护;
    职位要求:
  • 良好的编程习惯,追求极致的代码品质,熟悉常用设计模式和一般项目的开发流程;
  • 精通一门脚本语言,和一套成熟的后端框架;
  • 熟悉一种NoSQL缓存的使用,有阅读或理解源码更好;
  • (megdata)精通python者优先;
  • (megdata)熟悉mapreduce、hbase的优先;
  • 熟悉关系数据库的原理和使用,有数据库调优经验可以加分;
  • 开朗上进,积极沟通,善于团队协作;

@cosven
Copy link
Owner Author

cosven commented Nov 20, 2017

第六周

周一

  • python3 镜像

  • ELF 哈希算法(基本了解了下)

    1. 移位运算
    2. 负数的二进制表示
    3. base64 大法 原理
  • 给 Boring 和 FakeRedis 提 PR

  • 买护膝

周二

  • shouyu Oauth2
  • oauth2 提供 boss 列表
  • emacs 需要配置在项目内搜索当前光标下的单词
  • boring 发 alpha 版
  • 部署界面优化...

周三

  • 日常论坛
    对 Schema 有更深刻的理解
  • 看看 asyncio CancelledError 链接
  • 主攻部署日志 UI

周四

  • office 1 bugfix
  • 加更多日志
  • UI 修改

@cosven
Copy link
Owner Author

cosven commented Nov 27, 2017

第七周

周一

周二

  • 金丝雀的设计 + 第一个 MR 代码
  • 关于分享
  1. 要有互动

@cosven
Copy link
Owner Author

cosven commented Nov 28, 2017

CuadpeiHquS6uueUn+WHoOaAneiAg++8iOWkqe+8jOS6uueUn+WViu+8jOWPjeaAne+8ie+8mgrlpKnllYrvvIzmnIDlkI7ov5jmmK/ova7liLDkuIDkuIDliJflh7rmnaXmnYPooaHnmoTnu5PlsYAgLi4uCjEuIOacieeIseWQpiAtIHkgLSAqKui/meS4quWFtuWunui/mOihjO+8jOiEvuawlOWVpeeahOW5tuS4jeS8muW+iOW9seWTjeWQpy4uKioKMi4g5Zac5qyi6ZW/6L6I5oCn5qC85ZCmIC0gbiAtICoq6ZW/6L6I56iN5b6u6Zq+5Lul5o6l5Y+XKioKMy4g6IO95Lmw5oi/5ZCmIC0gee+8iOS9huW+iOiJsOmavuW+iOiJsOmavu+8iQo0LiDog73mjqXlj5flvLrlir/lkKYgLSB5L24gLSDlhbblrp7lpKfpg6jliIbkuovmg4XmsqHmnInpl67popjjgILmtonlj4rlrrbluq3liKnnm4rvvIzlj6/og73pl67popjovoPlpKcKNS4g5pyJ6LSj5Lu75b+D5ZCmIC0geS9uIC0g5Y+v5Lul5pS56L+b55qELi4u5bm25LiU6KaB5bC95Yqb5pS56L+b77yI6K665LiN6KaB5YGa5LiN5oOz5YGa55qE5LqL5oOFIHZzIOeuoeeUn+euoeatu++8iQo2LiDogIPomZHkuovmg4XnnLzlhYnnn63mtYXlkKYgLSB5L24KNy4g5b2S5qC557uT5bqV77ya5pyJ5rKh5pyJ5Li66L+Z5Liq5LqL5oOF5bC95YqbIC0geS9uCiAgICAxLiDlr7nniLbmr43lpb3vvIjpobrku47plb/ovojkuaDkv5fvvIkKICAgIDIuIOWvueS6uuWlve+8iOaXpeW4uOeUn+a0uyArIOWkmuaAneiAg+S4gOS6m+S6i+aDhe+8iQogICAgMy4g5Yqq5Yqb6LWa6ZKx77yI77yJCiAgICA0LiAyIOW5tOS7peWGheWPr+S7pee7k+S5iC4uLiB5L24g5YuJ5by65Y+v5Lul55qE77yM5L2G5LiA5bm06IKv5a6a5aSq55+tCjguIOaUuei/m+epuumXtOWcqOWTqu+8nwogICAgMS4g5oCO5qC36YCC5bqU6ZW/6L6IIC0g6ZW/6L6I5piv5LiN5Lya5YGa5Ye65pS55Y+Y55qELi4u5L2G5piv5Y+I5b+F6aG76KaB6YCC5bqUCiAgICAgICAgMS4g5a+M5oCBCiAgICAgICAgMi4g6IS+5rCU56WW5LygCiAgICAgICAgMy4g5aSn5LqL5oOF5oqK5o+h5LiN5LqG5pa55ZCRCiAgICAgICAgMy4g5Lq65ZOB6L+Y6KGMCgo=

@cosven
Copy link
Owner Author

cosven commented Dec 4, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant