近日,2018第二届云原生技术大会(CNTC)在杭州召开,本次会议由浙江大学主办,中移在线服务有限公司、谐云科技、网新恒天、网易云及焱融云联合主办。网易云解决方案总架构师刘超在会上分享了容器、微服务、DevOps在传统行业的落地实践。
刘超认为微服务是一个演进的过程,是企业在发展过程中业务遭遇痛点、解决痛点的过程,同时这个过程非常复杂。在落地微服务的过程中,容器和DevOps也发挥着不可或缺的作用,不同企业在实践微服务过程中侧重要解决的问题也不同,刘超在演进中通过金融、物流和视频监控等几个行业的典型案例做了分享。
容器、微服务和DevOps之间的关系
微服务已经成为互联网化架构的明显特征,从大型互联网公司,比如从Hailo、Amazon、Netflix、网易考拉等企业的架构图中可以看出,服务已经拆得非常细了,服务间的调用关系基本上呈网状的状态。为什么一定要用微服务呢?据刘超介绍,“微服务是为了解决企业变化快、扛不住的痛点,变化快会带来开发独立、代码冲突等问题,扛不住就要简化扩容,优化容灾降级的策略。”
但随着微服务的拆分,也会带来版本多,服务多的问题,容器是解决标准化交付的不二选择;而有了微服务和容器之后,开发要帮助运维写Dockerfile,运维要帮助开发做微服务的治理,才能保证从开发、交付到运维的顺利进行,这就要求整个团队认可DevOps的理念和文化。所以,在企业实践微服务的过程中,容器、微服务和DevOps三者必然会相互交融,同时又有各自的分工。
容器平台+微服务框架打造完整解决方案
微服务真正实践起来是非常复杂的,在为多家内外部客户提供微服务解决方案的过程中,刘超总结了微服务设计的十二个要点,包括微服务的基石持续集成,静态资源分离与接入层设计,无状态化与容器化,服务拆分与服务发现,服务编排,数据库设计与横向扩展,服务的全链路压测,统一的日志中心,配置中心,服务的熔断、限流、降级,消息队列与异步化,缓存。
刘超说:“对比微服务设计的这些要点,容器编排平台Kubernetes在某些方面有很好的支持,某些方面做得并不好,所以网易云将Kubernetes作为微服务运行的平台,服务治理等工作交给微服务框架去做,将容器平台和开源的微服务框架做了很好的融合。”据悉,今年7月网易云正式发布了业界最完整的微服务解决方案“轻舟微服务”,提供可拆分的覆盖微服务应用生命周期的各种组件,目前已经应用于多家企业的生产环境中,帮助这些企业实现数字化转型升级。
微服务在传统行业的落地实践
刘超结合网易云的客户案例,分享了轻舟微服务在传统行业的落地实践。某金融客户希望上线一些互联网化的应用,由于每个单体承载的业务很有限,于是启动了微服务的拆分。据刘超介绍,经过多次交流和沟通,网易云为其梳理出了一个侧重于持续集成和容器化的解决方案,一方面因为微服务化不是一蹴而就的,应该有测试用例的覆盖,在不断地拆合过程中,保证功能还能像以前一样正常运行;另一方面服务增多后,上线给运维人员带来了很多压力,容器化比较完美的解决了这个问题。
物流行业和电商企业的业务模式非常接近,基于在网易考拉积累的实践经验,网易云也利用轻舟微服务为某物流行业做了一系列的微服务解决方案。据刘超介绍,这家企业更侧重于服务拆分和服务发现,数据库的横向扩展,熔断、限流、降级以及全链路的压测。网易云为这个客户做了可定制化的API网关,更细粒度的服务治理策略,可配置的路由,流量染色,以及分布式数据库等服务。
此外还有一个视频监控企业,其系统大部分是外包开发,更新时会遇到很大的麻烦,网易云微服务治理和持续集成的解决方案帮助这个客户很好地解决了这个问题。轻舟微服务帮助客户实现了接口统一,模板统一,注册API统一的交付流程,以及知识库,认证鉴权和账户审计等企业级特性,同时网易云还帮助其实现了IT资产沉淀和IT能力的复用。