图说:一颗白菜的云原生之旅
序
有一天,女朋友突然问我:“能不能跟我讲讲,你每天在开发的这些“天合”云原生平台、容器引擎、微服务,都是做什么的呀?”
我说:“可以啊。简单来讲,我们的产品就是帮助客户实现云原生应用的上云和管理,通过Docker技术进行应用的标准化交付和部署,基于Kubernetes……¥%&**&……%%¥#@%&*”
“哈?……你可以说人话么”
“hmmmmm……那我换一个说法吧。在云上托管一个应用,其实就跟农民在一片公共的农场中种植白菜差不多。我们做的事情,就是提供各种先进的工具和种植方法,让客户在种植自己的‘白菜’时可以降低人力和资源成本,同时提升‘白菜’的产量和抗灾能力。我们把这些先进的方法和工具,统称为云原生。”
“哦,这样说我好像就能听懂了。不过你能讲一讲其中的细节么?”
“好的,那我就来给你详细讲讲。”
第一步,构建容器
假设你在一个叫做“百度智能云”的农场中买了一块土地,打算开始种植白菜。
传统的做法是将白菜苗直接栽种在你的土地里,但是这就意味着你种入土地的白菜只能在固定的位置生长,每一颗相邻白菜之间还会互相争夺肥料、水分,并且要面对很多其它的虫害威胁。
在云原生时代,我们通过一种叫做“容器(Container)”的技术解决这些问题,我们为你的每一颗白菜苗(应用程序)提供一个独立的容器,将白菜苗(应用程序)以及它所需的泥土、水分、养料(CPU、内存、磁盘等)都封装在这个容器里面,这样每棵白菜都能在与外界隔离的环境中独立生长,并且你可以随时移动这些容器。
为了让客户的白菜都可以通过容器方式种植,我们提供了一个叫做“容器镜像仓库”的产品。
在这个仓库中,客户只需要上传一个叫做Dockerfile的文件,Dockerfile描述了每个容器的基本信息,比如说里面要种什么品种的白菜苗、需要多少克泥土、多少养分等等。将Dockerfile提交到我们的仓库中之后,仓库就可以帮助客户快速在百度智能云这片农场里面复制出任意多个他所需的定制化容器,这就是云原生应用上云的第一步。
第二步,容器部署和编排
构建出大量种着白菜苗的容器之后,下一步就是怎么把它们合理放置在客户购买的土地上,需要考虑不同品种的白菜对阳光、温度、密度的需求各不相同,并且需要最大化提高土地利用率。我们把这个过程叫做容器部署与编排。
我们的产品“云容器引擎CCE”就是协助客户进行容器部署与编排的利器。CCE将客户购买的多块土地(云服务器)联结起来,形成一个称作“集群”的整体,然后自动化地完成容器在多块土地间的调度。比如当一块土地上出现虫害时,将容器调度到其它不受影响的土地上。
还有一些客户会有更加高级的需求,比如想搞一片实验田来验证某种特殊的肥料,等到结果得到验证后再逐步进行推广,这种需求被我们称为“灰度发布”。我们的产品支持客户在部署应用时设置多种灰度策略,针对一小部分容器进行升级,等到验证稳定之后再全量升级其它的所有容器。
使用容器进行应用部署,并在云服务器集群中进行容器的调度编排,这是云原生应用上云的第二步。
第三步,应用托管与治理
客户的白菜苗通过容器已经铺满了百度智能云上的土地,接下来我们就要帮助客户观察和维护它们,确保它们可以健康生长。所以应用上云的第三步,就是在云中托管和治理它们。
“百度云原生微服务应用平台CNAP”是百度智能云中的应用托管和微服务治理平台,应用托管很好理解,就是提供了多种工具帮助客户“照料”在云中的应用,而微服务是一个比较新的理念,可以理解为通过更细的粒度对整片“农场”进行管理,实现更加精细化的运营。
比如在监控方面,CNAP提供了资源层面的监控,监控容器运行的土质、水分等等;应用层面的监控,监控白菜本身的生长状态、是否健康;甚至还提供了服务和方法层面的监控,可以深入观察白菜的内部结构,当它状态不健康时可以帮助分析根本病因。
除监控以外,CNAP还提供了大量的工具,日志的采集和分析功能,让客户可以随时追溯白菜的生长轨迹,优化未来的运营;报警能力,可以在农场发生灾害时第一时间进行通知;跨区域的应用管理,让客户可以同时将白菜种植到全国多个农场,并且只在一处进行管理……
最后,还有无服务器技术和边缘计算
有了前面的构建容器、部署编排、托管治理,一个云原生应用的基本生命周期就已经完整了。在这个基础上,我们也一直在探索云原生当中的一些新的领域,比如说无服务器技术和边缘计算。
无服务器技术就像是无土栽培,客户甚至不需要购买土地,直接提供想要种的白菜苗,我们的“函数计算CFC”或者“容器实例BCI”产品就可以将其培育成可以食用的白菜。
而边缘计算与无服务器技术密不可分,有了无土栽培之后,我们甚至可以将种植白菜的容器通过“CDN”快递到你的家中,让你可以随时随地食用最新鲜的蔬菜。这个就是百度智能云上的“边缘计算BEC”产品。
所以综合来讲,百度智能云“天合”云原生平台,就是通过凝练百度内部和业界主流的云原生技术,提供丰富的产品工具和最佳实践,帮助客户用更加先进的架构和方法在云中构建、部署、运维自己的应用,让云原生转型变得像种白菜一样简单。
怎么样,你听懂了么?