坡县工作

我完成了东南亚9国环游之后亚洲基本已经不剩下几个国家了,儿子带来的焦虑感和某位不愿意透露姓名的豆瓣红人勾搭后拿了头条和坡县这个公司的 offer,完成了对头条的 double kill 后决定来坡县开始了新工作。过去的半年中说是说不想做平台了,但似乎所有的人的身体都很诚实的把我安排到了平台这边,唉平台就平台吧。

不得不说的是,即便是横跨7国电商市场NO.1的纳斯达克上市东南亚独角兽,造核弹的面试方法让我做出了几乎和国内二线互联网公司一个水平的预判,实际工作了半年后这个落差感还是蛮大的,一言难尽。准确的来说,我不知道怎么去评价这家公司的技术,只能说工程师真的很拼。往好的说作为干活会很爽,毕竟爆发式的增长(你看今年国内互联网公司基本都搞海外战场了)。什么都没有的好处就是你什么都能做,一旦抓住一两个开天辟地的机会,再造 DAE 也不是没有可能。但另一方面无论是技术选型还是工程实现上都充满着槽点,吃过肉的喝汤还能勉强接受,吃敏感词……

当然了吐槽就算了,资本主义公司的时薪还是很好的。做平台又不想做重复的事情,PaaS 啊 CaaS 都写烂了,于是这半年时间我主要还是在整合和重构以前的东西,技术前沿很少碰了也没精力碰了,主要还是考虑产品形态,看能不能在坡县这些公司里面第一个把私有云产品化整出来。

技术产品化是当年愿意透露姓名的 flex 在 ENJOY 想得最多的东西,自动化爽的是底层工程师,但作为业务工程师而言,你还让他(她)去了解一些底层细节其实是不太合适的。就比如我做过的几版 Redis Cluster 解决方案,一开始在芒果 TV 中连槽位,migration 过程都暴露给业务对他们心智负担太重了。又比如到了 ENJOY 后我们虽然有个看上去牛逼哄哄的自动化云平台,但或多或少都暴露了不少有关于容器的逻辑在外面。对于 ENJOY 巅峰期的工程师来说问题也不大,而且团队小。但现在这动不动几万人懂技术的不懂技术的都可能会用,搞太多概念就推不动了。

至于底层平台选型上我最开始是特别特别想用 k8s 的,不想自己写了,然后吧在我司这是个禁忌的话题,这个说来又话长了。机缘巧合之下,还是选了自己的 Eru 做最下面的资源调度编排工具,没办法,需要对裸资源进行全局控制。还好去年大规模重构了一番,加上今年这么一搞又有不愿意透露姓名的UC史上第一前端的创业团队催更,作为一个纯的编排调度中立核心我还是有信心的。

比如曾经在 ENJOY 失败的把容器当虚拟机使用,又是搞 ssh proxy 又是搞特殊的用户名规则。现在在这边的云上直接抹去了这种差异性,路由表直接下发。对强隔离调度的需求,在 Core 里面我抽离了 Engine 具体实现,只要符合 docker engine APIClient 的实现都可以拿来用,混合调度和编排 docker/hyper/kata/bare VM/各种公有云服务器甚至未来的 linuxd 都统一在了同样的 API 下。至于用到的是什么,用户完全透明。资源控制,彻底统一。再比如关于容器更新,以前要么留 50% 的资源冗余,要么忍受先下老的再上新的带来的风险,现在直接提供原子化的 in-place replacement 从 API 层面完全解决这种风险和资源浪费,用户只管无脑用就行了。我们自己测试环境前前后后也上万容器的生生死死了,还没见着一例不一致。还有什么自举啊,完全模块化就不说了,这轮子和测试写到我自闭。

每个模块都可以替换

当然了,只有 Eru 还是不够的,好在勾搭我的那个豆瓣红人还是个前端。我活着么大,哪有过前端给我造 UI 啊,只会用 Bootstrap 的后端要什么自行车。那么抄 UI 这活,抄就要抄最好的 Qingcloud 啦,于是我们搞了个看上去性冷淡的界面。

Redis Cluster

Virtualdev

加上一个不愿意透露姓名的酒仙桥 C 语言第一人,随便搞了个 280W QPS 的 Redis Proxy,现在又再写全新的 KV 存储服务。全云化之后,作为一个穷人版的 PaaS 应该是堪用了,余下的就是磨产品和正儿八经工作流了(如果给机会的话)。明年的话不出意外我司应该能有豆瓣巅峰期4位 Tech 2+ 级别的工程师,但一想到曾经看过头条内部云产品,差距还是太大,毕竟他们有 300 人干这个活。我要是能有 300 人的做这件事,不对一半就行了,踏平整个东南亚反攻大陆好吗……

总之吧,抛开钱啊生活啊,没想到我在一家「大」公司里面竟然找到了……码代码的宁静感,也许真的是人到中年了吧 = =