拷问传统企业CIO:微服务化值得吗?
所谓数字化转型升级,就是以数字技术优化传统资源,企业需要谨慎地选择合适的技术逐步完成自己的数字化战略。以推出轻舟微服务平台的网易云为代表,云计算公司正在微服务领域发力,促进企业数字化创新。那么,微服务对数字化转型意味着什么?传统企业数字化转型为什么一定要引入微服务?
微服务是什么
所谓微服务架构,根据微服务架构大神Martin Fowler的描述,就是以业务域或业务功能为边界,将一个大而全的应用拆分为可以独立开发、独立部署、独立测试、独立运行的一组小的应用,并且使用轻量级,通用的机制在这组应用间进行通信。简而言之,微服务就是把一个大型系统分割成多个小而自治的系统,这体现了一种化整为零的思想(分治),实现业务、数据和物理资源的分散化管理。“服务”与传统的“组件”很相似,都是构造软件的“零部件”。以传统软件研发的视角来看,微服务的就是传统组件技术在云端以插件化形式的自然映射。当然,微服务围绕业务分工的粒度更细,整个分布式系统的协作也更为复杂。
与微服务架构相对应的是单体架构,单体架构的特点是组件高度耦合导致开发部署效率低、单体结构导致可用性差、单体部署导致弹性缺失,微服务架构则具备迭代更快(各模块独立开发、部署)、质量更好(去雪崩效应,秒级恢复)、应对爆发(架构到资源全弹性伸缩)等优势,可以快速响应业务需求,灵活应对业务峰值,实现业务服务永不宕机。
微服务在互联网行业的作用
无论国内外,微服务技术在互联网公司快速发展的过程中已经发挥了重要的作用。国外早期的代表是Netflix公司,在2008年因为全站瘫痪被迫停业3天后,Netflix痛下决心进行服务化架构改造,经过将近10年的努力,该公司实现了从单体架构到微服务化的变迁,支撑了业务的千倍增长,并产生了一系列的最佳实践,开源了大量的微服务工具。
国内的如网易考拉,日活迅速增长到千万级,这项电商业务面临快速迭代和高并发的挑战,经过不断的服务化改造,拆分成了400多个工程,不仅实现了618、双11所需的弹性扩容,产品迭代次数也从每天2次变更到每天1000次变更的飞跃,并且轻舟微服务平台的服务治理、自动化测试、APM等工具的支持下,软件产品质量提升了52%。
传统行业CIO需要微服务吗
来自互联网的最佳实践,是否符合传统企业业务的需求,这是CIO思考的问题。一些传统企业核心业务上云动力不足,就在于这些业务在集中式架构上运行稳定,迁移到分布式架构没有价值,反而要承担迁移的风险。但微服务不同,从企业内部来看,采用不同技术建设的孤立的信息化系统需要有效整合,此前传统的基于ESB(企业服务总线)的SOA的尝试,本质上就是要解决企业内部异构系统集成的问题,只是粗粒度的服务和复杂低效的通信方式使得SOA难以大规模应用,而微服务架构采用轻量的API调用服务,经过了互联网公司大规模业务的验证,不存在类似的问题。
更好的机遇是,当前互联网公司已经在实践中形成了成熟的微服务工具平台,可以帮助传统企业解决微服务化的各种挑战。例如,网易云轻舟微服务平台是诞生于网易内部的一套面向微服务化架构的基础设施,重点解决微服务管理、注册发现、服务治理、应用性能监控和链路跟踪等问题,是网易考拉、网易云音乐、网易云课堂等各产品微服务化架构的基础,该平台已经产品化,应用于各个行业。
从外部因素来看,数字化的冲击和业务创新的需求是不可避免的,传统IT对创新支撑不足也无需争议,微服务架构支持更快的响应与上线速度、资源与应用的全面弹性伸缩、应用服务的高可用、细粒度的资源配置等能力,正是企业探索创新业务、应对需求不明确的挑战的必备能力。另一方面,大型互联网公司对产业互联网的探索,也倒逼传统行业重新思考敏捷迭代、DevOps的软件工程,对接到互联网业务,以维持企业的行业竞争优势。将应用拆分成多个很小的微服务之后,CIO可以让小团队在几周或者几天内开发、测试和部署一些新特性,并在测试结束后以最快的速度投入生产,加速创业业务孵化,而在传统单体架构下,新版本的发布是不可能这么容易实现的。
所以,当前CIO需要思考如何将微服务引入现有的IT体系。事实上,Gartner于2014年就提出了“双模IT”的理念,不少CIO虽然对于这个概念并不敏感,却出于业务发展需要,自然而然地形成了双模IT的部署,稳态面向核心业务,支撑企业业务稳定、可靠、低成本的运行,敏态面向互联网业务需求,解决增量的问题。根据Gartner的调研数据,目前私有云的应用方向之一是True Cloud,不同于用虚拟化+自动化的方式把传统应用迁移到私有云的Cloud-Inspired模式,使用True Cloud模式的用户主要利用开源与互联网相关的技术构建类公有云的私有云,特点是敏捷、快速交付、快速迭代,能够应对未知的需求。目前,这类私有云用户占到了15%。
微服务在传统行业的实践与效果
勇于探索微服务与自身业务相结合的行业先锋,已经从微服务技术应用中获益匪浅。以网易云轻舟微服务平台为例,该平台已经在物流、工业和金融等领域得到了深度应用。在物流行业,轻舟微服务平台帮助客户实现了服务化开发框架及容器化部署平台,以支撑更大的业务量,更快满足能业务灵活变动需要,使得项目从需求到交付周期缩短40%,并通过实时监控和调度,有效提升资源利用率,节约了大量的成本。
在工业领域,企业客户利用轻舟微服务平台,根据工业业务场景的实际需求,搭建了应用全生命周期管理的一站式工业互联网云平台,以落实其智能制造的战略目标。客户将传统工业业务抽象成一个个业务服务,形成业务中台,通过业务服务的总和以及数据的有效利用创造出新的价值。同时,客户基于工业互联网云平台建立统一的研发中心,将分散在多个厂区的开发人员集中利用起来,在同一架构上快速协作,改变了传统的沟通模式,大大降低了人力成本。
在金融领域,客户借助轻舟微服务平台,搭建了统一的容器云,提高了资源利用率和弹性伸缩能力,并通过容器的快速部署和启停能力,提高了产品的部署效率和迭代效率。同时,客户将业务系统进行微服务改造,简化了运维复杂度,提升了产品开发效率、应用性能和稳定性,并优化了开发、测试以及运维流程和工具,有效缩短了开发测试周期,并提高了IT运维水平。
综上所述,微服务架构可以为业务带来加快业务迭代速度、提升业务可用性、灵活应对业务峰值、促进业务系统互通等价值,这些价值对于传统行业实现数字化创新、获取竞争优势也是不可或缺的,而网易云轻舟微服务平台等经过大规模业务验证的微服务工具,可以帮助企业快速完成微服务化的改造,获得微服务带来的好处。
相关文章:
【推荐】 Lily-一个埋点管理工具
【推荐】 深入解析SQL Server高可用镜像实现原理
【推荐】 知物由学 | 见招拆招,Android应用破解及防护秘籍
拷问传统企业CIO:微服务化值得吗?的更多相关文章
- 传统企业IT为什么对微服务叶公好龙的心态?(转)
这两年来,“微服务”.“云计算”.“大数据”.“人工智能”的概念在IT界成了新的宠儿:珠联壁合.声名远播.势如破竹.如日中天!从实践落地的情况来看:微服务诞生于互联网,当然是首先在互联网界遍地开花,高 ...
- 上云、微服务化和DevOps,少走弯路的办法
本文由 网易云发布. 作者:张亮 如果说一个项目的发展历程就像一段未知的旅程,那<云原生应用架构实践>就像一张地图,基于前人的探索标明了在这段旅途中将会碰到的障碍,并注明了越过这些障碍的 ...
- [转载]DevOps在传统企业的落地实践及案例分享
内容来源:2017年6月10日,优维科技高级解决方案架构师黄星玲在“DevOps&SRE 超越传统运维之道”进行<DevOps在传统企业的落地实践及案例分享>演讲分享.IT 大咖说 ...
- 微服务化不同阶段 Kubernetes 的不同玩法
本文由 网易云发布. 作为容器集群管理技术竞争的大赢家,Kubernetes 已经和微服务紧密联系,采用 Kubernetes 的企业往往都开始了微服务架构的探索.然而不同企业不同阶段的微服务实践面 ...
- 微服务化的不同阶段 Kubernetes 的不同玩法
欢迎访问网易云社区,了解更多网易技术产品运营经验. 作为容器集群管理技术竞争的大赢家,Kubernetes已经和微服务紧密联系,采用Kubernetes的企业往往都开始了微服务架构的探索.然而不同企业 ...
- 039.[转] 基于 Kubernetes 和 Spring Cloud 的微服务化实践
http://dockone.io/article/2967 基于 Kubernetes 和 Spring Cloud 的微服务化实践 写在前面 网易云容器平台期望能给实施了微服务架构的团队提供完整的 ...
- 为什么游戏公司的server不愿意微服务化?
背景介绍 笔者最近去面试了家游戏公司(有上市).我问他,公司有没有做微服务架构的打算及考量?他很惊讶的,我没听说过微服务耶,你可以解释一下吗? 我大概说了,方便测试,方便维护,方便升级,服务之间松耦合 ...
- 传统企业,"哀兵必胜"的想法要不得
[文/ 任英杰]同事在内网上发了一篇文章『哀兵必胜』,思量数日,作文应对.文中表达的积极精神让人敬佩,但背后似乎隐含着一股莫名的“情绪”.对行业大格局的基本看法会影响公司转型的成败,觉得还是有必要讨论 ...
- 【转】【2015MIIC】迅雷CTO陈磊:互联网思维会害死很多传统企业
MIIC2015大会的“跨界与重构”论坛上,迅雷CTO.网心科技CEO陈磊的演讲引起众多共鸣——独家揭秘“互联网大忽悠”,给这群人画了像,互联网大忽悠通常有五招: 第1招,画大饼,给你一个宏伟的目标: ...
随机推荐
- python——字符串问题总结
转义符r/R使用: print (r'\n') print (R'\n') 输出: \n \n 不受转义符\n影响 python字符串格式化: print ("我叫 %s 今年 %d 岁!& ...
- Linux命令:mapfile
mapfile [-n 计数] [-O 起始序号] [-s 计数] [-t] [-u fd] [-C 回调] [-c 量子] [数组] 两个作用: 一是给index数组读取标准输入来赋值:二是文件描述 ...
- ide调试
F8: 程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行) F7: 程序向下执行一行.如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法) Alt + ...
- linux下配置redis4.0.2主从复制以及高可用
一.环境 三台服务器分别为: 172.28.18.75/172.28.18.103/172.28.18.104 在三台服务器上分别部署一个redis节点以及一个sentinel节点 二.主从复制配置 ...
- hive的常用操作
1.hive的数据类型 tinyint/smallint/int/bigint tinyint:从 0 到 255 的整型数据 smallint:从 0 到 65535 的整型数据 int:从 0 到 ...
- Hands-On Unity 2018 x 移动游戏开发教程
Hands-On Unity 2018 x Game Development for Mobile 使用Unity 2018.2创建具有出色游戏功能的精彩游戏 想学习在Unity制作游戏,但不知道 ...
- 算法练习LeetCode初级算法之字符串
反转字符串 我的解法比较low,利用集合的工具类Collections.reverse反转,用时过长 class Solution { public void reverseString(char[] ...
- 776. Split BST 按大小拆分二叉树
[抄题]: Given a Binary Search Tree (BST) with root node root, and a target value V, split the tree int ...
- Js学习(7)标准库-object对象
Js原生提供Object对象,O大写,所有的其他对象都继承自Object对象,都是Object的实例 Object对象的原生方法分为两类: 本身的方法:直接定义在Object对象的方法 实例方法:定义 ...
- ES6 Iterator
不同数据集合怎么用统一的方式读取 可以用for...of循环了