在CD/CI领域Buildbot是与Jenkins齐名的一款软件。Buildbot的用户众多,其中不乏知名大牌项目:Python、MongoDB、SVN、OpenVPN、GDB、Firefox、Chrome等等。在即将发布的Buildbot版本中,最显著的更新是”Serverless CI”。这项革命性的技术能够使传统CD/CI系统的维护成本极大降低,同时提高运行速度,还能大量减少成本,而这项关键功能是Hyper_容器云(hyper.sh)实现的。
“Buildbot已经正式完成与Hyper_的集成,并将在10月中正式发布,同时Buildbot项目自身的所有build负载,也将全部迁移到Hyper_上”。Buildbot的Tech Lead表示。通过使用Hyper_,他们的build速度提高了16倍,而费用只是原来的1/10
什么是Serverless CI
由于负载大的原因,CI系统一般会使用单独的build farm集群来进行处理。传统上build farm是使用物理服务器搭建的,而在云里由虚机组成的VM集群。使用物理服务器需要前期资金投入,并且后期维护量大,而在云里虽然VM能够按需扩展,但是由于VM启动速度慢,体积大(至少512mb内存),因此用户体验差,资源浪费严重。Serverless CI是新兴起的一种思路,它强调请求出现时动态启动所要运行的build job,用户完全不需要关心底层,这样一来可以完全免运维,而且费用极低。
Hyper_容器云
Hyper_(hyper.sh)是一种新型的容器云服务。它提供的是容器Container,而不是VM。相比IaaS而言,Hyper_有几个非常明显的有点:
启动快:IaaS启动虚机需要几十秒,而Hyper_启动一个容器只需要3-5秒
秒级计费:虽然有些IaaS平台也使用了秒级计费,但由于VM启动速度的原因,大家在真正使用时并不能真正享受到秒级计费的好处。而Hyper_里,用户可以花5秒启动个容器,运行30秒,关闭1秒,一共只花36秒的钱!
微型实例:很多IaaS提供的虚机最小是512mb内存,对于很多小型程序而言(blog,vpn),这个体积仍然太大了,而Hyper_提供最小64mb的容器,这种微型实例不仅客户节省费用,也使用户可以更灵活的使用云。
Buildbot与Hyper_容器云的集成
对于CD/CI这个细分场景而言,Hyper_容器云能够提供一些独特的优势。因为Buildbot本身是个开源项目,它会收到其他公司和个人提交的各种各样patch。对于Buildbot的团队来说,如果把所有第三方提交的patch都纳入到自动化CD/CI流水线中,他们会面临很大的风险。某一个黑客可以把木马伪装成patch提交给Buildbot,通过build过程实现攻击。
Buildbot的技术负责人Pierre Tardy表示:”Hyper_容器云帮助Buildbot解决了一切问题”。
在Serverless模式中,当一个新build任务提交后,Buildbot自动在Hyper_容器云里启动一个容器。由于Hyper_启动容器非常快,build任务能够不需要等待,立即开始运行。当任务结束后,Buildbot将生成的build结果传回到用户本地,关闭Hyper_中的容器。这一切都在秒级完成,并完全自动化,而用户只需为build任务运行的时长付费,非常精确,没有浪费。同时,Buildbot可以通过并发在Hyper_云中启动数百甚至上千个容器来并行build任务,提高build整体速度。
Pierre在谈到使用Hyper_的感受时提到Buildbot已经将自身的全部CD/CI任务全部迁移到Hyper_容器云中运行,他表示,”通过使用Hyper_,我们的build速度提高了16倍,而成本只有原来使用IaaS的1/10”。
Serverless的最佳搭档
除了这次与Buildbot联手打造的Serverless CI之外,还有很多其他Serverless应用在积极的与Hyper_进行合作。大家相信,容器云将成为Serverless的最佳平台,甚至取代IaaS成为未来云计算的主流。