微信|你可能不知道 微信的服务器今天才彻底搬到云上( 二 )


这种办法奏效了,Yard托住了微信的下一个爆发期 。2016年年底,微信和WeChat合并月活跃用户数达到8.89亿,那一年我国网民规模达只有7.31亿 。
但当微信走完了用户增长的最重要一程,开始把更多注意力放在业务宽度上时,Yard的劣势也开始出现 。
2014年初的微信离第一个小程序的上线还有三年,甚至还没有微信支付 。那扇接纳天下宾客的平台之门还未打开,Yard在研发时也并未过多考虑与外部技术工具的兼容性 。事实上,Yard出生所被赋予的目标非常具体,针对服务器的CPU和存储做虚拟化的灵活调度以降本增效,换句话说,Yard是为了解决一个指向性非常明确,与微信原有基础架构强关联的需求而诞生的 。
但随着更多业务的涌入,不开源的Yard像一个非标品,
微信的业务在几年内迅速拉开宽度,业务涉及的领域变多,每个团队所依赖的技术工具各有偏好,定制化的要求带来很多不必要的工作量 。大数据相关的业务主流上更偏向Hadoop或者Spark技术;做AI训练的团队则倾向于Tensorflow或者Pytorch,但这些框架在第一次接入Yard时都要人工重新进行适配,甚至在每一次框架升级后,同样的事情又要再做一遍 。越多新的技术工具引入,Yard在开放性上的局限就越暴露出来 。
【微信|你可能不知道 微信的服务器今天才彻底搬到云上】930变革后,剥离物理机成为上云的开始,但这只是第一步 。基础架构整体搬上云端,微信这次势必要走到一个开源的环境里,Kubernetes系统看起来是最合适的路 。
风向
Yard真正开始在微信内部落地是2013、2014年前后,这也是微信上云的开始 。这一年全球的开源潮流也终于开始向暖 。
彼时北半球的另一只企鹅Linux风头正劲,2014年当选微软新任CEO的纳德拉在上位后随即高举“微软爱Linux”;同一年,上线满六年已托管了超过1000万个存储库的GitHub逐渐成为微软、谷歌等硅谷巨头科技公司的码农客厅 。
微信|你可能不知道 微信的服务器今天才彻底搬到云上
文章图片

图源:The Verge
一切早有迹象,2013年中旬白宫的一份“公开数据政策”(Open Data Policy)草案被发布在GitHub上 。在此之前,将一份政府政策文件托管在在一家私人公司的服务器上从未有过 。虽然这份文档并不能被二次操作或者衍生出任何代码项目,但它仍然具有极重要的象征意义 。GitHub以及背后的开源思想,随着克里斯·万斯克拉斯而登堂入室 。
此前微软或者说整个科技主流声音直站在开源的反面,正如Windows与Linux长时间在安全性上的对峙立场一样 。但技术的迷人处也在这里,开源的优越性在这个一切场景都趋向于虚拟化的时代显露无疑,一旦达成了共识,转变在一瞬间 。
从巨头到独立开发者们,开源的思想显然热起来了 。让代码协作起来,甚至让写代码这件事本身社区化,正在成为信息世界新的项目管理方式 。
同样在2013年, Docker项目的第一个版本被上传到了GitHub,以Apache 2.0授权协议开源并在GitHub进行维护 。Docker拉开了容器作为一种虚拟化技术的历史,在此之前,随着硬件性能的发展,硬件性能过剩成为一种愈发显眼的问题,而硬件虚拟化成为最先出来的解决方法 。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统(Guest OS),在该系统上再运行所需应用进程 。但Guest OS本身就是一个非常占内存且需要在所有虚拟机上重复安装的系统,这种方式显得很重 。相比之下,打包进容器内的应用进程可以直接在宿主内核中运行,而容器内没有自己的内核,也不必要进行硬件虚拟,这种封装隔离的逻辑显得更轻,也有更好的扩容弹性 。
由于容器的出现,使得硬件虚拟化,也就是虚拟机与大内存的Guest OS,不再是实现资源有效配置的必要条件 。但容器更偏向一种技术方法,这种技术最终要解决应用程序端的问题,因此在庞大的容器基础架构集群之上,需要一种更高维度的调度工具 。
2017年10月的欧洲DockerCon大会上,Docker公司CTO Solomon Hykes宣布下一个版本的Docker除了支持自有的调度引擎Swarm外,将会首次支持一个外部的调度平台——谷歌的Kubernetes 。
Kubernetes也被叫做K8S(由于一共8个字母),是一个针对容器应用,进行自动部署,弹性伸缩,和管理的开源系统 。主要功能是生产环境的容器编排 。2014年6月谷歌云计算专家埃里克·布鲁尔(Eric Brewer)在旧金山的发布会为这款新的开源工具揭牌,2015年7月22日迭代到 v 1.0后,k8s正式对外公布 。


推荐阅读