近日,2018第二届云原生技术大会(CNTC)在杭州召开,网易云副总经理陈谔在会上介绍了微服务架构在企业数字化转型中发挥的作用,并基于网易微服务实践经验分享了实施微服务的挑战与对策。
陈谔表示,业务架构服务化是企业拥抱变化、实现数据资产化的必由之路,而实现业务架构服务化的技术基础是微服务架构,需要解决服务拆分、资源调度、工程化、系统鲁棒性、故障诊断、运维复杂性等挑战。目前,网易云已经基于开源技术栈很好地解决了这些问题。
业务架构服务化是数字化创新的必由之路
尽管互联网+、数字化转型已经上升为我国的国家战略,传统行业的企业纷纷尝试以数字化技术驱动企业数字化创新,实现数字化转型,然而我国的企业数字化转型升级还处在较为初级的阶段。根据权威市场研究报告显示,数字经济是世界经济创新发展的主流模式,发达国家数字经济占GDP比重已超过50%,我国数字经济目前占GDP比重为30%,还有巨大的发展空间,这也是企业进行数字化转型的动力之一。
IDC认为,数字经济的发展需要通过数字化知识和技术进行社会生产力的重塑。陈谔表示,IT架构云化是基础,数据也要资产化,成为关键生产要素,成为决策的依据。他分析了国内企业的数字化技术应用状况:IT架构云化和数字资产化近年来已经得到国内企业的重视,但业务架构的革新则往往被企业忽视。
然而陈旧业务架构对数字化创新具有危害性,既不利于响应业务变化,也不利于数据资产化。“烟囱式的业务数字化建设造成了大量的损耗,独立建设的系统成为信息的孤岛,阻碍了数据资产化的实现,进而影响到前瞻性或拥抱变化的决策,”陈谔说。
以网易的探索经验看来,拥抱变化是实现数字化创新的核心,服务化具有可迭代适应需求的变化、可重用、可组合等特征,业务架构服务化让企业能够更好地拥抱变化,因而是数字化创新的必由之路。
实施微服务的挑战与对策
实现业务架构服务化的技术基础是微服务架构,微服务架构具有细粒度、去中心化的特点,因而可以解决更新迭代的影响范围、代码腐化、服务局部弹性、沟通协作瓶颈等问题。这也是互联网企业普遍选择微服务架构的重要原因。
然而,要获得微服务的好处并不是一件轻松的事情。陈谔介绍,网易在实施微服务过程中遇到的主要挑战,包括服务拆分、资源调度、工程化、系统鲁棒性、故障诊断、运维复杂性等六个方面。
服务拆分。网易在2010年开始有微服务架构的探索,在服务拆分时遇到了各种问题,如服务间的高频依赖、数据访问模型的匹配、是否会引入大量分布式事务,这些都需要考虑,一次性的统一规划很可能留下隐患。对此,陈谔表示,一次性的拆分不如逐步拆分迭代,可从工程级别的拆分逐步过渡到服务拆分。
资源调度。由于网易业务类型众多,用户数量庞大,团队在实施微服务架构过程中遇到了QoS难以保障、服务器机型碎片化、资源需求无法及时得到响应等诸多难题,这些问题直到2012年网易云团队研发的私有云上线之后才彻底解决。因此,陈谔认为,实施微服务必须以IT资源的云化为基础。
工程化。实施微服务架构必然导致研发、测试环境的激增,从代码的版本控制到打包部署必须有完善的工程化支持。而IT资源的云化之后,服务粒度更细、规模更大成为了现实,此时甚至还需要做测试环境的重用。所以,陈谔认为,必须建立完善的CI/CD(持续集成/持续交付)支持,对应不同环境实现统一的配置中心。
系统鲁棒性。细粒度的服务难以进行静态的容量规划,复杂的依赖和较长的调用路径造成局部服务的故障或性能瓶颈可能引起系统雪崩。陈谔给出了对策:引入服务治理平台,解决服务的发现、熔断、降级等问题;引入弹性伸缩能力,能够按需伸缩,避免出现局部处理能力的瓶颈。
故障诊断。跨服务器复杂的调用链路,造成微服务架构的软件系统难以进行问题排查。陈谔的答案,是引入全链路跟踪平台,不仅支持服务的性能分析,同时支持调用链路的跟踪,结合日志服务能直接根据调用请求ID进行处理链路的问题排查。
运维复杂性。微服务架构的引入,不仅软件系统的架构发生变化,组织架构也往往随之变化,去中心化、小团队、高速迭代的特征加上微服务架构的高度复杂性使得难以设置一个中心化的运维团队负责所有运维工作。陈谔指出,要建立高度自动化的运维工具链,实施DevOps的工作模式,让开发人员面向承载服务的抽象资源,而不是服务器。
开源技术栈的优势
以上的解决方案,都已经有成熟的开源实现。陈谔认为,采用开源方案、拥抱社区标准能够让技术方案更具有生命力,因为开源意味着多数人的共同选择,开源持续演进,意味着没有厂商锁定,意味着良好的人才支持,也意味着更低的研发成本、更快的上线速度。
陈谔举例说,网易曾实践采用Agent+模版的方式初始化环境,配合CD系统部署软件,但由于基准镜像逐渐分化,产生了上千个初始化模版,大部分模版无法重用。直到Docker容器与Kubernetes编排系统先后出现,网易才找到了解决之道。所以,陈谔也认为,容器与编排系统是微服务的最佳载体。
事实上,除了开源容器技术,网易云微服务技术栈还支持Spring Cloud、Dubbo、OpenTracing、Prometheus等开源技术,并解决了微服务应用生命周期功能完整性、业务侵入性等核心问题,提供微服务框架、API网关、容器服务、DevOps、AIOps和全自动化测试等全栈能力。网易云将这套整合优化之后的微服务技术栈称为“轻舟微服务”,用以广泛支撑网易内部业务,包括网易考拉、网易云音乐等热门产品。
据了解,网易云轻舟微服务已经在今年7月31日正式发布,目前已经应用于德邦快递、大华等企业的生产环境中,帮助这些企业实现数字化转型升级。
上一篇:今日头条的电商探索之路
类型:办公商务 大小:23.75 MB
下载类型:系统工具 大小:101.57M
下载类型:办公商务 大小:101.57M
下载