LC3开源盛会,网易云分享基于Kubernetes的高并发应用实践
6月25-27日,开源盛会LinuxCon+ContainerCon+CloudOpen(LC3)在北京召开,这也是LFAsia, LLC第二次将全球顶尖的开源专家聚集到北京,围绕云原生、无服务器、微服务、DevOps、人工智能、IOT、Linux系统与开发、网络编排、区块链、开源领导力等开源技术前沿话题,进行了全方位的探讨。
网易云作为Linux基金会和CNCF基金会会员,同时也是国内首批通过Kubernetes一致性认证的云服务商,也在本次大会中分享了在开源领域的积累和探索。网易云解决方案总架构师刘超分享了《基于Kubernetes的百万级QPS应用实践》。据刘超介绍,在网易内部有着包括网易云音乐、网易考拉等多个应用都运行在基于Kubernetes的网易云平台上。如何提高这些应用的扩展性,如何进行微服务的拆分等已经不只是业务方的问题,也是基础服务平台方需要一起解决的问题。
(网易云解决方案总架构师 刘超)
IT架构和应用架构的模糊化
刘超首先提到了IT架构和应用架构的一个趋势,首先业务方已经越来越清楚地意识到IT架构的扩展,并不能完全应对突发流量和应用的扩展问题。因为有了Docker和Kubernetes,IT架构和应用架构之间的分界线越来越模糊了:一方面开发要开始写Dockfile,要关注镜像环境的交付,开发要关心更多的问题;另一方面IT架构要关心服务发现、配置中心和熔断降级等问题,尽量让应用架构做的动心下沉到IT架构。这也是网易云在开始重视应用层改造的原因。
如何基于Kubernetes支持高并发应用
刘超结合高并发应用设计的10个要点,包括API网关;无状态化,区分有状态的和无状态的应用;数据库的横向扩展;缓存;服务拆分和服务发现;服务编排与弹性伸缩;统一配置中心;统一的日志中心;熔断,限流,降级;全方位的监控,分析了如何基于Kubernetes实现支持高并发应用。
针对以上10个要点,Kubernetes有的提供了相应的组件,有的没有提供或提供的不够好,刘超具体分析了哪些是应用架构层应该去做的,哪些是应该下沉到IT架构层面由Kubernetes去解决的。
比如,服务拆分是高并发应用实现过程中非常重要的问题,刘超根据网易考拉的实际经验,总结了服务拆分的最佳实践:服务拆分的前提是做好持续集成;服务拆分的时机是开发独立、上线独立、简化扩容和容灾降级;服务拆分的方法,针对复杂业务,业务过于庞大必须进行拆分,拆分出来的必须是相对独立和庞大的业务;针对重耦合业务,首先独立功能模块,形成服务内部的分离,逐步建立新的工程,替换老工程。
同时,网易云也在致力于对Service Mesh的支持,Service Mesh是处理服务间通讯的专用基础设施层,通过复杂的拓扑结构让请求传递的过程变得更可靠,Service Mesh已经成为继Kubernetes成为容器编排事实标准之后,云原生领域的又一新趋势。