所谓数字化转型升级,就是以数字技术优化传统资源,企业需要谨慎地选择合适的技术逐步完成自己的数字化战略。以IronCloud微服务云为代表,云计算公司正在微服务领域发力,促进企业数字化创新。那么,微服务对数字化转型意味着什么?传统企业数字化转型为什么一定要引入微服务?
微服务是什么?
所谓微服务架构,根据微服务架构大神Martin Fowler的描述,就是以业务域或业务功能为边界,将一个大而全的应用拆分为可以独立开发、独立部署、独立测试、独立运行的一组小的应用,并且使用轻量级,通用的机制在这组应用间进行通信。简而言之,微服务就是把一个大型系统分割成多个小而自治的系统,这体现了一种化整为零的思想(分治),实现业务、数据和物理资源的分散化管理。“服务”与传统的“组件”很相似,都是构造软件的“零部件”。以传统软件研发的视角来看,微服务的就是传统组件技术在云端以插件化形式的自然映射。当然,微服务围绕业务分工的粒度更细,整个分布式系统的协作也更为复杂。
与微服务架构相对应的是单体架构,单体架构的特点是组件高度耦合导致开发部署效率低、单体结构导致可用性差、单体部署导致弹性缺失,微服务架构则具备迭代更快(各模块独立开发、部署)、质量更好(去雪崩效应,秒级恢复)、应对爆发(架构到资源全弹性伸缩)等优势,可以快速响应业务需求,灵活应对业务峰值,实现业务服务永不宕机。
微服务在互联网行业的作用
无论国内外,微服务技术在互联网公司快速发展的过程中已经发挥了重要的作用。国外早期的代表是Netflix公司,在2008年因为全站瘫痪被迫停业3天后,Netflix痛下决心进行服务化架构改造,经过将近10年的努力,该公司实现了从单体架构到微服务化的变迁,支撑了业务的千倍增长,并产生了一系列的最佳实践,开源了大量的微服务工具。
国内的如随行付,日活迅速增长到千万级,这项电商业务面临快速迭代和高并发的挑战,经过不断的服务化改造,拆分成了400多个工程,不仅实现了618、双11所需的弹性扩容,产品迭代次数也从每天2次变更到每天1000次变更的飞跃,并且IronCloud微服务平台的服务治理、自动化测试、APM等工具的支持下,软件产品质量提升了52%。
传统行业CIO需要微服务吗
来自互联网的最佳实践,是否符合传统企业业务的需求,这是CIO思考的问题。一些传统企业核心业务上云动力不足,就在于这些业务在集中式架构上运行稳定,迁移到分布式架构没有价值,反而要承担迁移的风险。但微服务不同,从企业内部来看,采用不同技术建设的孤立的信息化系统需要有效整合,此前传统的基于ESB(企业服务总线)的SOA的尝试,本质上就是要解决企业内部异构系统集成的问题,只是粗粒度的服务和复杂低效的通信方式使得SOA难以大规模应用,而微服务架构采用轻量的API调用服务,经过了互联网公司大规模业务的验证,不存在类似的问题。
更好的机遇是,当前互联网公司已经在实践中形成了成熟的微服务工具平台,可以帮助传统企业解决微服务化的各种挑战。例如,IronCloud微服务云(ironz.com)是一套面向微服务化架构的基础设施,重点解决微服务管理、注册发现、服务治理、应用性能监控和链路跟踪等问题,是许多产品微服务化架构的基础,该平台已经产品化,应用于各个行业。
从外部因素来看,数字化的冲击和业务创新的需求是不可避免的,传统IT对创新支撑不足也无需争议,微服务架构支持更快的响应与上线速度、资源与应用的全面弹性伸缩、应用服务的高可用、细粒度的资源配置等能力,正是企业探索创新业务、应对需求不明确的挑战的必备能力。另一方面,大型互联网公司对产业互联网的探索,也倒逼传统行业重新思考敏捷迭代、DevOps的软件工程,对接到互联网业务,以维持企业的行业竞争优势。将应用拆分成多个很小的微服务之后,CIO可以让小团队在几周或者几天内开发、测试和部署一些新特性,并在测试结束后以最快的速度投入生产,加速创业业务孵化,而在传统单体架构下,新版本的发布是不可能这么容易实现的。
所以,当前CIO需要思考如何将微服务引入现有的IT体系。事实上,Gartner于2014年就提出了“双模IT”的理念,不少CIO虽然对于这个概念并不敏感,却出于业务发展需要,自然而然地形成了双模IT的部署,稳态面向核心业务,支撑企业业务稳定、可靠、低成本的运行,敏态面向互联网业务需求,解决增量的问题。根据Gartner的调研数据,目前私有云的应用方向之一是True Cloud,不同于用虚拟化+自动化的方式把传统应用迁移到私有云的Cloud-Inspired模式,使用True Cloud模式的用户主要利用开源与互联网相关的技术构建类公有云的私有云,特点是敏捷、快速交付、快速迭代,能够应对未知的需求。目前,这类私有云用户占到了15%。