2022年2月第四周简报

Life’s a struggle, 日子还要过。数不清的喜怒哀乐背后,又是数不清的 trouble — 宋岳庭《Life’s a struggle》

生活

这周状态有点不太好,焦虑,失眠并存。感觉需要再去看看医生看看需不需要换药了

  1. 假面超人比奥特曼香,来打卖玩具还是比奥系列强
  2. 和女朋友开始看《甄嬛传》,感觉算是宫斗剧的巅峰。请叫我 Saka 大人!(画风不太对
  3. 和网友 F 叔开始约饭,发现互联网圈子真的小。
  4. 买了老人环,但是感觉画风有点不太适应。
  5. 我妈突然给我打电话问我是不是缺钱了(背景是我过年的时候先给了个小红包,大红包准等我回家的时候给她,然后我妈开始担心了),还是要为爱你的人好好的活着。
  6. 收到了 Piglei 大叔的 《Python工匠:案例、技巧与工程实践》,好书,有幸在草稿期就一睹真容,非常推荐。个人认为这应该是这两年里我最眼前一亮的 Python 中文书籍。
  7. 收到了 Nebula 的抱枕和 T ,我家猫很喜欢
  8. 在女朋友要求下带猫猫去看病,医生说没啥问题,就是胖的啦(小猫咪懂什么嘛

猫猫也想成为数据库开发者

我也想写书了.jpg

技术

一个标准的工作周(我啥时才能放假呜呜呜呜),还是一些奇奇怪怪的收获

老规矩,先聊聊工作里印象比较深的

  1. 本周里遇到一个容器里老生常谈的问题 CPU 资源隔离,我们有一个场景需要进行 H.264 视频编码这样的操作。属于是典型 CPU 计算密集型的应用。在 K8S 这种场景里,将 CPU 的资源的 request 转化为 cpu.shares, 将 limit 转化为 cpu.cfs_period_uscpu.cfs_quota_us。 这种分配对于大部分场景来说是 work 的,但是对于一些密集吃 CPU 的场景来说。将因为相关限制,频繁的触发 throttle,代价就是会导致用户的体感会有明显的波动。所以目前来说可能最好的方法还是尽可能用 cpu.shares 来做一些高性能场景的 CPU 策略,再极端一点的场景,可能就得修改 kubelet 的参数,让其支持绑核的操作。这里要夸一下 CMGS 他们做的 eru2 了,在容器资源隔离上面,我觉得做的还是比 K8S 有特色的。

继续聊聊自己的业余时间:

  1. 上周做的 nerdctl 自动分配 HostPort 的 PR824 这周有了新的进展。和维护者讨论后决定先不考虑 non-Linux 平台了。然后这周就是在不断的补测试与调测试之间徘徊。也借此机会学习了一下 QEMU 相关的的东西(因为做 integration test 需要这货)。以及写测试真头疼。这个 PR 后续的修复空间还不少,比如我目前走的是 Linux 下的 /proc 文件系统去拿的网络相关的数据,而内核已经明确表示网络相关的 /proc 不再推荐使用。可能要等 PR824 合并进去后找个机会重构到 netlink 的方案。
  2. KubernetesPR107531 这周犯了点傻逼的错误,要认真阅读 review 意见啊喂,给自己个教训。
  3. 这周为了提升自己每天刷题效率,开始定期复习之前刷过的比较经典的题,印象比较深的是 Leetcode-1675
  4. 这周吃了网友安利,入了 wezterm 的坑。体验下来,很戳我痛点。Lua 管理配置太爽了。以及提了一个不成功的 PR
    PR1670(我的第一个 Rust 的 PR),不过作者是对得,路径处理还是比我预估的要头疼一些(跨平台真恶心)
  5. 这周开始整理我自己的各种 dot file 的配置,扔进 Repo 统一管理
  6. 这周开始我的一个 Side Project: agul-init 的设计与开发了,和朋友讨论后觉得这个项目还是能解决一部分的痛点。主要针对于大部分没有 K8S 等容器编排机制的情况下,在提供一个比 tini 更完备的1号进程管理能力的同时,能提供一部分容器编排系统提供的功能,我会在下面列一个简单的第一期的功能清单。这个项目的取名是我很喜欢的一个奥特曼,中文名是阿古茹(外号逼王)。之前用 Python 写过一个 PoC,不过考虑到容器环境,准备用 Rust 重构一个小版本出来。下面是计划的功能清单:
    1. 完整的全功能的1号进程
      1. 能正确的实现信号的转发工作
      2. 能确保信号转发的可靠性,(比如孙进程跨 ProcessGroup 的信号转发)
      3. 在容器环境下,能承担起当前 pid namespace 范围内进程管理的工作
    2. 能整合一部分 container 生命周期的管理
      1. prestart 与 poststop 的 hook
      2. poststop 能透传对应的 exit code
    3. healthcheck 与 readiness check 的能力

阅读方面,这周复习了一下 2019 年一篇经典论文《Cloud Programming Simplified: A Berkeley View on Serverless Computing》以及看了下 Berkeley 2021 年新的观点 《What Serverless Computing Is and Should Become: The Next Phase of Cloud Computing》。

怎么说,Serverless 和传统的 SaaS 这样服务的概念边界并不清晰,感觉一个事物从概念归属上是有同时归属两者的可能性。不过我觉得判定一个事物是否属于 Serverless 范畴的一个核心要素是去判断算力是否是作为核心价值的一部分提供出来。改天水个文章继续聊聊

简单总结一下

这周各种不太好的状态奔涌而来,有点周报最开始提到的歌词的味道了。不过,日子还得过

但行好事,莫问前程。

Author

Manjusaka

Posted on

2022-12-05

Updated on

2022-12-05

Licensed under

Comments