Container是史上第一个能将所有应用封装在标准化环境的技术,这是迈向无服务器架构的关键,Kubernetes就是为实现Container大规模部署而生,能让Container丛集建置标准化,分布式App的开发更容易
在NEXT云端大会前一周,Google先释出了Kubernetes 的1.2新版本,这个看似Google为了追赶Container及Docker热潮而生的开源平台,直到Next大会才揭开了它的真正面纱,其实这个项目源自Google已经用了10年的Container技术。
Alphabet执行董事长Eric Schmidt表示,2003年时,Google已经发展到第三代云端平台架构,开始使用Container技术来部署全球架构的云端服务,因此而能催生了如Gmail这类全球规模的云端服务。10年前,Google更发明了用来管理全球最大规模丛集的排程和服务管理工具Borg。
2008年,Google推出了App Engine,让开发者可以快速利用各种云端API来打造自己的应用,这个底层也是Container,但却没有受到开发者的青睐而使用率不佳。因为App Engine平台出现太早,Eric Schmidt表示,「因为这是我们以为开发者应该需要的地方,却不是当时开发者真正需要的地方。」后来Google在2010年推出了VM租用服务,这就是GCP云端平台的诞生。
不过,Google自家服务仍旧部署在可以提供更高弹性、以Container为主的第三代Google平台上,而非是采用较旧VM技术的GCP云端服务(对Google而言)。至今,Google每周启用的Container数量超过了20亿个。
直到现在,Google基础架构副总裁Eric Brewer表示,以Container封装应用、可动态维运、微服务架构导向的云端原生应用风潮开始兴起,Google遂将用来管理和部署大规模Container的Borg和Omega等管理平台的经验,重新开发成了一套开源容器丛集管理软件Kubernetes,并推出以Kubernetes打造的Google云端平台提供的GKE(Google Container Engine)云端服务。
不同于Docker要让Container可用,Eric Brewer表示,Kubernetes的目的是要让Container能用于Production环境,使Container丛集建置可以标准化,让分布式App的开发更容易。
在Kubernetes 1.2新版已可做到单一丛集提供3万个Container的管理能力,也具备了弹性自动化扩充能力。
不过,Eric Brewer认为,更重要的新功能是ConfigMap API。这提供了可程序化和高弹性的部署配置,可以在开发常见的应用部署阶段之前,提供一种新的组合式部署方法称为Construction,在部署阶段仍然可以实时变更Config配置,例如由程序自动依据部署环境在测试环境、Stage或Production阶段来调整不同数据库的配置参数,可以提供比脚本程控或是DSL配置语言更弹性的自动化配置方法。
如此一来,Google云端平台副总裁Brian Stevens表示,开发者只要将容器化后的应用丢上云端,就能自动部署成为全球架构的服务,甚至不需要管理丛集,也根本看不到服务器。Container是史上第一个能将所有应用封装在标准化环境的技术,这是迈向无服务器架构的关键。「尽管目前全球Container使用量不到VM用量的5%,但维运角色(Ops)终究会消失,这是正在发生的事。」
欢迎关注好雨云微信服务号(ID:goodrain-cloud),获取更多有价值的资讯
网友评论