微服务,我们如何与你相处

本文为《架构探险-轻量级微服务架构》(黄勇 著)序

微服务来了,有了“服务”这两个字,这注定又是个一说就明白、一举例就糊涂、一讨论就吵架的概念。微服务的出现有其必然的商业背景和架构哲学,如何更好的认识微服务的内涵、如臂使指的应用微服务架构,还是有着很多挑战的,这也许就是本书被命名为“架构探险”的原因。

企业数字化转型驱动架构升级

互联网经济深刻改变了我们身边的商业环境,消费者的生活方式日益数字化,人们可以在任何时间、任何地点利用线上、线下渠道体验无缝购物,运用社交媒体表达自我,企业也在运用多种技术手段,发挥数字化潜力,改善客户联系,促进企业业务模式的转型。Gartner认为,数字化就是把人、事、物和商业联系起来,建立新的商业模式。未来的企业都将是IT企业,IT将从后台走向前台,从ERP、CRM等内部流程优化为主的业务,逐步转向内外兼修的模式,从而实现商业创新。这一变化要求IT架构更加灵活的与上下游企业协作,更加快速的响应客户的个性化需求,更加弹性的应对无时不在的客户请求并提供良好的客户体验,同时云计算、大数据等技术的出现也为上述改变提供了新的技术选择,我们正面临B/S多层架构出现后新的一次架构升级,而微服务架构就在这个架构升级过程中应运而生。

分而治之的哲学是微服务的理论基础

把大的问题分解为容易解决的小问题,找到小问题的解决办法,再来解决大问题,就是分而治之的哲学。正如万事万物由分子、原子组成一样,软件也可以分解为基本单元,以这样的基本单元进行开发、测试、维护,是解决大规模系统建设的思路。分而治之首先要解决如何分的问题,企业软件的分法应该是以业务驱动的,而不是技术驱动的,也就是分解为独立的业务逻辑,而这样的不可再分的业务逻辑就是微服务。

凡事有一利必有一弊,细分为微服务后,势必带来部署、测试、信息集成难度的提高,分而治之除了“分”之外,还需要“治”。传统恐龙型ERP是一个面向组织的软件,完备、复杂、响应变化慢,适合业务稳定的情况,而数字化时代客户个性化的要求让我们从这种面向组织的软件,逐渐演变为面向个体的软件。例如从前的EHR软件是为人力资源部门服务的,整体开发、整体实施,而现在我们会从个体的角度规划软件,可以先从招聘专员开始做一个面试管理的流程,逐步推出新的流程,完善现有的流程。这些面向个体的流程就是微应用,企业应用将由无数个微应用组成。微服务则是一个技术概念,能更好解决微应用的技术实现问题,是一个事物的不同侧面,所谓“横看成岭侧成峰,远近高低各不同”,微服务和微应用是事物的一体两面。正因为微服务实际就是一个业务逻辑,因此做好微服务需要从微应用的维度考虑,将分解开的逻辑形成一个整体,要从多渠道接入、客户体验、数据管理、应用交付、运维全方位的视角考虑,这就是分而治之中实现“治”的体验,也是微服务架构需要解决的问题。

站在SOA的肩膀上践行微服务

微服务是一个新概念,但这绝不是一个全新架构,更不是一个包治百病的架构。由于有服务二字,很容易让人联想到面向服务架构(SOA),其实微服务架构属于应用技术架构,和以B/S 为代表的三层架构相对应,强调将巨石型应用拆分为由微服务组成的应用,在数据上也视情况从集中的存储拆解为更小的存储单元。而SOA属于企业架构的范畴,从企业架构出发把业务分解为不同领域的服务,不同物理系统提供不同服务,注重系统之间通过服务互联互通的规范,对服务如何实现并不关注。因此,面向服务架构的服务应该是一个业务意义的服务,而微服务是系统中的技术服务,更关注服务的实现,虽然提供了业务意义的服务,但是不能混为一谈。微服务使用也不是无限度的,事实上由于数据一致性等问题的限制,不能无限度拆分微服务,可以把微服务分为系统对外提供的远程服务、系统内部的远程服务和系统内部的本地服务,显式声明、明确职责。事实上,在企业架构上使用SOA支撑业务,而在应用技术架构上使用微服务架构,是一个合适的选择。

黄柳青博士是我和黄勇共同的导师,他在2004年所著《软件的涅槃》一书中指出:“互联网时代的企业应用定义,正发生革命性的变化… 横向的部门互动、实时的企业间互动、多样的交互渠道、灵活的业务规则,使得原有意义上的独立应用不复存在…… 对软件设计者来说,能直观地分割,并具有最小内部耦合的软件结构是简约之美……美的软件是软件企业与软件开发者的终极目标”,那时候他把这种全新的软件生产模式称为“面向构件”。回头看来,微服务正是“面向构件”在数字化时代的解读,用微服务架构实现软件之美,加速企业数字化转型。

作者部分往期文章

让我们遇见未来——新一代数字化企业云平台缘起

数字化时代下研发模式的变革

面向微服务的企业云计算架构转型

关于作者

焦烈焱

EAII-企业架构创新研究院 常务理事

2001年加入普元信息,现任CTO,全面负责普元信息技术与产品的运营工作,公司技术发展战略的重要决策人。焦烈焱在企业技术架构研究方面有二十余年的经验,长期致力于分布式环境的企业计算、 SOA与云计算技术研究与实践。加入普元信息后组织完成一系列核心产品的研发工作,包括SOA应用平台、以BPM &/ESB为核心的业务集成平台、以复杂事件处理/数据治理/作业调度为核心的大数据平台,期间主持了中国工商银行、中国建设银行等多家大型企业技术平台的规划与研发。著有《SOA中国路线图—实施版》一书。

原文发布于微信公众号 - EAWorld(eaworld)

原文发表时间:2016-08-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构

普通程序员,三年成为年薪70w架构师,只因做到了这些总结:

每个程序员、或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来。今天给大家分享的是一篇来自阿里J...

881
来自专栏云计算D1net

避免云混淆:成本控制的5个误区

经过初步的较量之后,云计算基础设施和服务的采用已经成为主流。短短的几年,绝大多数的科技支出将与云计算相关。这并不意味着云计算的路径是没有障碍。现在是时候制定出必...

2779
来自专栏zhisheng

微信之父张小龙首次公开演讲全文:希望用户合理用微信

可能会有一些朋友觉得比较突然,我也是比较突然进来参加这样一个会议,很高兴在这里跟大家碰面。平时我很少参加会议,可能很多人都搞不懂,其实我们同事都知道,我一直有...

3766
来自专栏企鹅号快讯

物联网是如何驱动网络变革的?——上

---导读--- 软件定义网络( SDN)已成为管理和维护企业网络安全的新途径。这是自互联网引入以来,企业网络最重大的变化。它不是一种单一的技术,而是一种涵盖各...

19210
来自专栏腾讯开源的专栏

腾讯刘昕:如何自下而上在腾讯做开源

本文为腾讯移动互联网事业群总经理刘昕,作为腾讯开源顾问和Linux基金会董事,在LC3 国际开源盛会上,介绍的腾讯部分开源成果。

9.3K5
来自专栏顶级程序员

那些优秀程序员身上的共同特质

源 / 菜鸟教程 1. 发展全面 深入了解一门技术虽然很好,但是现实世界中的问题从来都无法仅靠一种技术就能够解决。即使别人雇佣你为专业技术人员,你仍然需要明白你...

3709
来自专栏BestSDK

物联网智能时代的风口——边缘计算

什么是边缘计算? 为了定义的缘故,当边缘服务器是指内容传送网络(CDN)中的服务器的术语时,广义的边缘计算似乎起源于近20年前。它最近出现在处理,分析和应用网络...

2974
来自专栏腾讯云TStack专栏

如何自下而上在腾讯做开源?

1582
来自专栏云计算D1net

如何安全地集成混合云?

几乎十分之九的IT决策者认为,对于想要实现数字化业务转型的企业组织来说,混合云能力“很重要”或“很关键”。 ? 2015年,新互联网用户的数量增长了8%,增加0...

2818
来自专栏腾讯大讲堂的专栏

别逗了,写个脚本那真不叫自动化运维!

近年来,互联网产品迭代速度非常快,业务监控建设随之不断完善,调度系统也随之不停地迭代更新。如何减少产品变更发布故障带来的损失,如何解决海量实时监控的痛点,是企...

2161

扫码关注云+社区

领取腾讯云代金券