微服务是近期非常热门的话题,芸芸众生言必谈微服务。但是,在实践过程中,我们发现一些项目,貌似用着微服务的技术,但做出了非服务化的应用,非但没有达到目的,反而徒增了架构的复杂性,让人汗颜。因此,在微服务之前,有必要搞清楚什么是服务化。

1.      官僚不是服务化

河北省武邑县需要往返6次才能办一个护照,深圳小孩出生要跑社保局、街道办、派出所,这些都是服务化程度低的标志。官僚化的程度越高,服务化的程度就越低。买房子相对好些,在入伙的时候,水、电、煤气一站式搞定。

2.     烟囱不是服务化

最近一次出差,使用了 e系统、i系统、s系统 等好几个应用,经过长期的优化,这几个系统的体验都还算不错。但用起来总感觉怪怪的,问题在什么地方呢?很多时候,当你需要找一个想要的信息,比如航班信息时,你往往不知道要到那个系统去查。 e系统、i系统、s系统都是品牌和口碑很好的应用,但放在服务化场景下重新思考,我们很容易的发现:烟囱化的应用不是服务化。

3.     超链接不是服务化

既然烟囱不是服务化,那我用超链接把各个烟囱串联起来,是不是就是服务化了呢?显然不是,简单的超链接让事情变得更加糟糕,而不是更好了。超链接就如同单向的门,为了打通两个房间,我们需要安装两个单向的门,房间数更多的时候,门的数量也更多,最后组成了一个什么呢?对,一个迷宫。

服务化的系统,不是仅仅将相关功能连接在一起,而是有机的整合、简化成 One System,让基于当前场景的用户感觉可以流畅的处理端到端的业务,而不必到处在风格迥异的系统间跳转以致摸不着头脑。

4.     REST 不一定是服务化

我做了一个应用,有前台,有后台,前台通过REST(或者SOAP、RPC等)调用后台,是不是就服务化了呢?其实不然,这个还可能是一个烟囱,一个伪装了的烟囱。

5.     单体应用不一定不是服务化

服务化(SOA)是一种构建分布式应用的方法,本质上是实现能力在分布式环境中的重用。单体应用通常跟微服务应用对立起来,单体应用并没有跟SOA对立起来,单体应用也一样可以暴露足够的服务供其他的分布式应用来使用(与烟囱的区别),从而实现服务化的重用。

另外,单体架构并不一定不是好的架构,这取决于应用的复杂度。一个初创的公司,要在互联网-上开展业务,由于业务规模不大,业务复杂性有限,码农数量也不多,这个时候,单体架构就是最合适的。即使对于华为这样的大型公司,在某些独立的领域,如果一个单体应用能很好的覆盖完整业务场景,单体架构仍然是合适的。

6.     组织结构服务化才能实现服务化。

俗话说,组织架构决定技术架构。有烟囱式的组织架构,很容易导致烟囱式的系统。要实现服务化,必须打破原先一个团队搞定一个烟囱的组织架构,变为一种服务化的组织架构。应用的前端和后台应该采用完全不同的设计方法,前台UI的设计是完全以用户为中心的,而后台的服务设计则是以业务为中心的。前台和后台最好归属到不同的团队,以避免他们造烟囱的强烈生理冲动。

7.     针对完整场景的才是好的服务化。

割裂的场景导致割裂的体验,好的服务化设计都是针对完整的场景的。让用户在端到端的场景中拥有完整的、一致的、简单的、明确的体验。什么是端到端完整的场景呢?

o   差旅就是一个完整的端到端场景,从出差申请,到机票预定、酒店预定、签证申请,再到出差报告、报销整个一条*LONG*服务。

o   HIC也是一个完整的端到端场景,从应用注册,到应用开发、测试、资源申请、配置管理、持续集成、持续交付、运维自动化,整个链路覆盖。

如果割裂开来,针对部分场景设计一个应用,另外的场景设计另外一个应用,则很容易形成烟囱。即使只是针对完整场景中的任何一个遗漏,都会导致服务化体验的劣化。

8.     大型系统服务化的必然结果,是业务中台化。

前面提到过,前台UI的设计是完全以用户为中心的(我的任务、我的订单、我的合同),而后台的服务设计则是以业务为中心的(比如订单处理、合同处理、财务处理等)。用户通常希望一站式的体验,那如何将一站式的以用户为中心的前台和分散的以业务为中心的后台结合起来?答案是业务中台。业务中台承接前台的请求,并整合后端的服务,在这个过程中,可以进行特定的映射、整合、规则化处理、自动化处理、智能化处理,这里侧面印证了IT中台化战略,即前轻、中强、后稳的战略。

总体来说,服务化的目标,是通过更加服务化的组织和完整的服务化的实践,构建针对完整业务场景的一站式的ROADS用户体验(套用一句流行的话)、更加解耦的架构,从而实现全流程的在线处理、更高的业务作业效率,提升业务数字化转型效果。我们不能过度强调技术,而忽略体验,因此,理解什么是服务化比理解什么是微服务更加重要。
购买华为云请点击立即购买

浅谈服务化和微服务化(上)相关推荐

  1. mysql cdc采集_浅谈CDC在微服务中的应用

    原标题:浅谈CDC在微服务中的应用 CDC(Change Data Capture)是一种通过监测数据变更(变更包括新增.修改.删除等)而对变更的数据进行进一步处理的一种设计模式,通常应用在数据仓库以 ...

  2. 计算机仿真在机械应用,浅谈计算机仿真在机械上的应用[精选].doc

    浅谈计算机仿真在机械上的应用[精选] 浅谈计算机仿真在机械上的应用 李思宏 (重庆交通大学,重庆402247) 摘要:如今计算机仿真技术在机械上有着广泛的应用,计算机仿真已然成为热门.本文用综述的形式 ...

  3. 浅谈WebAssmebly,在浏览器上进行图像处理

    浅谈WebAssmebly,在浏览器上进行图像处理 自从2008年各大浏览器为JavaScript执行引擎加入JIT(Just in Time, 即时编译器)以来,JavaScript在浏览器的执行性 ...

  4. 【华为云技术分享】浅谈服务化和微服务化(上)

    微服务是近期非常热门的话题,芸芸众生言必谈微服务.但是,在实践过程中,我们发现一些项目,貌似用着微服务的技术,但做出了非服务化的应用,非但没有达到目的,反而徒增了架构的复杂性,让人汗颜.因此,在微服务 ...

  5. 【华为云技术分享】浅谈服务化和微服务化(下)

    [摘要] 服务化来自于真实世界的映射.对于微服务,我们也要寻找真实世界的隐喻. 上篇主要讲服务化,下篇我们谈谈微服务.很显然,服务化来自于真实世界的映射.对于微服务,我们也要寻找真实世界的隐喻. 1. ...

  6. springcloud 相同服务名_浅谈分布式与微服务

    分布式和微服务是什么关系?简单来说,分布式和微服务的概念比较相似,分布式属于微服务.但是分布式和微服务在架构.作用和粒度上有所区别.因此,两者的关系是既相互联系又相互区别.本文主要带大家认识分布式和微 ...

  7. 浅谈缓冲区溢出之栈溢出上

    有段时间没有用windows了,刚一开机又是系统补丁更新.匆匆瞥了一眼看到了"内核缓冲区溢出漏洞补丁"几个字眼.靠,又是内核补丁.打完这个补丁后MD的内核符号文件又得更新了.于是抱 ...

  8. 浅谈游戏服务器---功能模块上来看

    游戏服务器在网游上的作用不容考虑,游戏能做大到什么程度,还是有很大的依靠的,这篇文章先从功能模块的角度来谈一个完善的游戏服务器需要实现哪.     一:游戏服务器的作用:连接各个网游客户端,实现各客户 ...

  9. 浅谈分布式和微服务架构

    文章目录 一.微服务简介 1.微服务的诞生 2.微服务架构与SOA架构的区别 二.CAP理论 三.分布式事务 四.服务拆分 总结 一.微服务简介 1.微服务的诞生   在微服务概念出现之前还有一个概念 ...

最新文章

  1. 内核函数输出怎么看到_谈谈如何学习Linux内核
  2. 新闻通稿 | 2021年世界互联网大会乌镇峰会网络法治分论坛圆满举行
  3. Gson:如何从没有注释的序列化中排除特定字段
  4. NOI2006 最大获利
  5. image pil 图像保存_如何利用python中的PIL库做图像处理?
  6. MongoDB的使用技巧(转)
  7. 为什么感觉农村人在城里工作后,大部分都变了?
  8. spring boot 下使用@ConponentScan注解遇到的问题
  9. Android GPS模块总结
  10. 系统工程师 运维工程师区别
  11. 论巴西世界杯带给移动互联网产品的契机!
  12. 前后端分离与耦合架构
  13. (2019春)软件构造:雨课堂试卷(第3章)
  14. 汉字转拼音 java_Java汉字转拼音工具类完整代码实例
  15. 未来教育计算机三级数据库演示大题,2019年计算机三级数据库考试强化试题及答案003...
  16. 微服务注册中心:Consul——服务注册
  17. 第四周铁人战队学习总结
  18. java scp 传文件乱码_转-linux 打开移动硬盘中的文本文件显示为乱码
  19. c++项目,制作GIF动态图
  20. 前端学习笔记02--CSS快速了解

热门文章

  1. react入口文件_React项目文件结构解析
  2. linux中查看进程命令ps aux和ps -ef
  3. Java对象数组根据字段来进行排序的方法
  4. python中使用yaml作配置文件
  5. Java设计模式:23种设计模式全面解析,墙都不扶就服你
  6. 传感器在车辆变速箱上的应用
  7. 企业如何构建高效的用户标签体系?
  8. 什么样的品牌设计公司比较好?
  9. Linux-audit
  10. 在ros下对py文件进行编译执行及遇到的一些问题