微服务架构这个概念出来也有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系统的灵活资源分配,扩展和动态调度问题。
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐