微服务架构这个概念出来也有2-3年的时间了,从最开始在互联网企业的普遍应用,到如今愈来愈多的企业开始关注和但愿尝试使用微服务架构。架构
对于企业从传统IT架构到微服务架构的转型,绝对不是盲目的跟风互联网企业,而是企业的业务规范,企业的信息化水平和IT成熟度发展到必定阶段后的好比诉求,那么这些关键的诉求究竟有哪些?并发
从系统规划建设期到IT管控治理和运维期运维
首先能够看到当企业的信息化和IT系统建设发展到必定阶段后,天然会从IT系统的规划和建设期发展到后期的IT系统管控治理和运维期。到了后期不会再有大量的新系统规划建设,而更多的都是为了业务流程优化进行的IT系统需求变动,优化和功能改造。那么关键的问题就变成了如何快速的响应业务需求变化并发布系统,同时如何又以最小的代价和影响来发布系统?微服务
传统的IT架构模式能够看到很难解决这个问题,每次需求或功能变动的发布周期至关长,同时因为是一个大单体应用所有发布,每每增长了一个新功能反而致使多个老功能出问题。这些都是咱们常常遇到的问题,其核心的缘由就是原来咱们管理的业务系统自己的颗粒度太大了,其次就是从需求到开发到测试到发布整个过程如何自动化衔接。第一点涉及到微服务架构,第二点涉及到PaaS和DevOps方面的内容。测试
在微服务架构下,咱们管理的单位从原来的大单体应用变化为了细粒度的微服务模块,天然在变动和发布的时候影响单位也相应变小到各个业务模块粒度。这将有效的解决子在后期运维变动功能发布的影响。优化
从业务组织和IT系统紧耦合到解耦需求云计算
其次,在传统IT系统规划和建设中,在企业架构规划设计中,咱们常常谈业务和流程驱动IT,强调端到端流程的贯通。可是系统规划设计和实现的过程当中,最广泛的现象就是否是业务驱动IT,而是业务部门驱动IT,致使咱们的IT系统和业务部门是紧耦合的。举例来讲,一个企业只有供应链部,那么建设的系统就是供应链系统;可是若是一个企业有采购部,有物流部,那么建设完成的系统就是采购系统和物流系统。设计
在这种状况下,带来的最大问题就是企业的业务组织架构一调整,每每带来IT系统巨大的调整工做量,在我原来的企业也常常遇到IT系统常常配合业务组织架构调整的事情。这类工做已经不是简单的HR系统组织结构调整,还包括了自己的业务系统中业务功能点的调整,已有的业务数据的调整,这些都须要进行动态切换和割接。接口
当企业建设的业务系统越多,和业务部门关系绑定的越紧密,这种调整带来的复杂度和工做量也就越大。资源
而真正的解决思路就是要将业务部门和业务系统解耦,如何解耦?仍然是从业务流程驱动的角度去考虑和拆分具体的业务单元,这些业务单元造成独立的业务组件(微服务架构中的微服务模块),因为这些业务组件粒度已经足够细,所以更加容易灵活的组装或组合去知足实际业务部门的平常业务需求。
举例来讲:若是是大的供应链部门,就配置供应商管理,物料管理,采购订单,招投标,库存管理,物流配送管理等多个微服务模块。若是是拆分为采购部门和物流部门,那么采购部门配置供应商管理,物料管理,采购订单,招投标管理,物流部门配置库存管理,物流配送管理等微服务模块。
在规划和拆分微服务模块的时候更可能是业务和流程角度出发,只要划分的足够合理,就可以最小化的减少业务组织架构调整对IT系统自己形成的影响。
从单打独斗信息孤岛到共享思路下的平台战略
企业信息化发展到必定阶段,本身都会意识到按照传统的一个个孤立的业务系统建设模式愈来愈行不通,这不只仅是业务系统不少功能重复建设的问题,同时还致使了业务系统中数据不一致性,集成困难,后续的运维和变动处理困难等一系列问题。即典型的钱花的更多,可是系统却愈来愈复杂和难用。
而解决这个问题的的关键就是平台战略,对于平台战略自己又有两个重要的核心,即不是简单的遗留系统能力直接服务化共享,而是首先要集中,其次才是共享。集中化是云的思路,而共享才是SOA的思路,两个关键点都解决了才是云计算+SOA的关键思路融合。
为啥要把这个问题在微服务架构里面谈,由于平台+应用构建模式自己也是微服务架构实施的一个基础条件,微服务模块更多都应该是独立承担某个业务域的业务组件模块,而不该该包括相似流程引擎,系统管理等共性底层组件,不然微服务模块又变成很重的单体应用,没有了任何价值。
要作好微服务架构,咱们就必须作好底层基础共性平台的建设,只是微服务架构里面会谈为共性的技术服务能力提供,都是一个道理,就是共性的东西或能力要下沉,而后再以标准的服务接口方式暴露或共享出来给上层的业务系统使用。
资源池的有效利用和资源动态调度
这是微服务架构结合PaaS容器化技术和动态调度技术后带来的一个新的亮点,便可以真正实现按照业务需求和业务并发量动态的申请和分配资源,以知足业务并发访问的需求。在整个过程当中不须要人为去干预,而只须要设置好相应的调度规则和资源动态扩展规则便可。
对于这个点实际当前并非很强企业的诉求,只是后续成熟度发展到必定阶段后带来的亮点功能,真正解决了IT系统的灵活资源分配,扩展和动态调度问题。