如今,Kubernetes 是开源领域备受关注的项目,就好像曾经的 Hadoop 是大数据领域的事实标准一样。然而, 大多数互联网公司在Kubernetes上的探索并非想象中顺利,Kubernetes自带的复杂性足以让一批开发者望而却步,其本身也并不提供完整的应用管理体系,在大规模应用实践过程中会出现很多问题。在ArchSummit全球架构师峰会北京站即将召开之际,阿里巴巴技术专家孙健波在接受InfoQ采访时基于阿里 Kubernetes 应用管理实践过程提供了一些经验与建议,以期对开发者有所帮助。
在互联网时代,开发者更多是通过顶层架构设计,比如多集群部署和分布式架构的方式来实现出现资源相关问题时的快速切换,做了很多事情来让弹性变得更加简单,并通过混部计算任务来提高资源利用率,云计算的出现则解决了从CAPEX 到 OPEX 的转变问题。
云计算时代让开发可以聚焦在应用价值本身,相较于以前开发者除了业务模块还要投入大量精力在存储、网络等基础设施,如今这些基础设施都已经像水电煤一样便捷易用。云计算的基础设施具有稳定、高可用、弹性伸缩等一系列能力,除此之外还配套解决了一系列应用开发“最佳实践”的问题,比如监控、审计、日志分析、灰度发布等。原来,一个工程师需要非常全面才能做好一个高可靠的应用,现在只要了解足够多的基础设施产品,这些最佳实践就可以信手拈来了。但是,在面对天然复杂的Kubernetes时,很多开发者都无能为力。
作为 Jira 和代码库 Bitbucket 背后的公司,Atlassian 的 Kubernetes 团队首席工程师 Nick Young 在采访中表示: