范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

企业微服务架构转型从技术平台到平台应用的建设模式

  在很多中台整体架构规划里面,提出了技术中台的概念,实际上这里叫技术平台更加合适。中台体现的是共性业务能力下沉,并将其形成可复用的API能力提供给上层应用使用。那么技术平台强调的就是共性技术支撑能力的统一建设和能力开放。技术平台概述
  微服务架构强调将传统的单体应用打散为从数据库到中间件到部署包(前端+后端)完全独立的多个松耦合的微服务模块。简单来说仍然是传统的业务系统要实现业务组件化拆分。而传统的单体应用往往包括了技术组件模块和业务组件模块共同组成。
  简单举例说明下:采购系统 = 采购技术平台 + 招投标模块 + 采购订单管理模块 + 供应商管理模块
  库存系统 = 库存技术平台 + 出入库管理模块 + 台账模块 + 配送模块
  这个时候采购技术平台和库存技术平台本身具有大量的重复内容,包括了常说的4A和工作流引擎,也包括了类似消息,缓存,日志处理,文件存储,短信邮件等各种技术模块。
  那么我们首先要考虑到的就是首先将传统业务系统中的技术平台部分剥离出去,统一下沉到公共的技术平台层构建,构建完成后再以能力开放接口的模式供上层业务模块调用。
  因此共性技术能力下沉到技术平台,使得传统业务系统只剩余和业务相关的功能模块,是后续进一步进行业务系统模块化和组件化的基础。否则每一个微服务模块都要带流程引擎,各个技术组件,这些大量重复的内容在后续运维中将是灾难性的。
  微服务架构中的平台包括:技术平台 + 业务平台
  业务平台中包括提供核心业务能力的组件,也包括了提供核心数据能力的组件,比如规则中心微服务重点是提供业务逻辑能力,而供应商微服务重点则是提供数据服务能力。
  在微服务架构里面也不再有主数据平台的概念,但是一定会有数据类微服务模块的概念,对于供应商中心,人员中心,用户中心,客户中心等,这些都是典型的数据组件,向外提供数据服务能力。
  技术平台 = 技术组件1(技术组件+技术服务开放) + 技术组件2 + ... + 技术组件N
  注意每一个技术组件都可以作为独立的微服务模块独立开发并部署,然后提供技术服务API能力接口出来。也就是说技术平台中的技术组件本身也是微服务模块化的,可完全实现分散部署和独立管理。
  对于技术服务由于具有很大的并发调用量,因此走传统的ESB总线集成模式是不合适的,更好地丰富还是走轻量的SOA总线或服务注册管理中心,能够实现统一的服务目录管理,鉴权和路由接口。
  同时对于技术服务类接口可以采用更加轻量的RestAPI 服务接口来实现并暴露。
  要注意到在技术平台下沉后,原有一个业务系统全部能完成的事情变化为了需要多个业务模块,多个技术模块相互配合和协同才能够搞定。
  可想而知,这个时候集成复杂度是指数级增加,同时对各个微服务模块本身的高可用,高可靠性要求更加高,任何一个微服务模块出现运行故障都可能影响到整体业务。
  如果一个业务系统有4个模块,在进行微服务架构拆分后,即使技术组件只有三个独立的技术服务模块,那么也是会有20个集成点,可能上100个服务接口交互才能够完全还原回原来完整的业务系统能力。同时对于平台层任何一个技术组件模块出现故障,都直接会影响到上层的业务组件模块。
  如果我们对技术组件建设的健壮性没有足够的信心,而轻易去实施上图这种转变,不仅仅是不能为最终的业务用户提供一个高可用性的业务系统,更重要的是在后续运维过程中仍然是灾难性的。
  当一个企业本身的技术能力成熟度没有到一定水平的时候不要轻易去尝试上述方法。即使技术能力下沉,也只是集中化共建4A和流程平台能力即可。最小化技术平台构建
  做软件开发的往往都清楚,对于新开始一个软件项目或软件开发,特别是从零开始组建软件开发团队到开发完成并交付,最开始一个重要的工作就是要搭建一个最小化的基础开发框架,基础平台和公共组件能力,这个步骤完成了才是拆分相关的功能模块,然后安排不同的开发人员进行开发和集成。
  能够完成这个基础支撑平台的搭建,并确定好标准的开发框架和模式,拆分好开发模块和组件,虽然说不一定能叫一个完整意义上的软件架构师,但是已经至少具备了开发组长的能力。一个公司如果从头开始做软件项目,那么最重要的就是要有能够完成上述工作的开发组长的角色。
  一个软件团队开发完成一个软件项目,哪怕是很小的项目后,一定会有这种公共组件和开发框架的积累,那么在后面接手新的项目的时候很多内容就可以复用原来已有的内容。同时在新的软件开发过程中进一步对基础支撑平台进行功能完善,能力增强。
  对于善于总结和复用的软件开发团队或架构师,你就会发现后续的新项目开发工作越来越简单,基本上对于标准的技术平台和共性能力你都不用考虑,而只需要考虑业务功能的实现即可。但是有时候也有糟糕的情况,就是一些架构师太痴迷于新技术,对于基础框架和架构总是不断地更换,只要有什么新的流行技术一出来就恨不得马上应用到项目里面去,只用最新的而不是用最合适的,这种思路也极大的增加了平台开发运维成本投入,同时也很难真正形成持续化的技术积累。
  记得09年做项目的时候,项目团队也是基本每年就换一个框架,类似Ext,传统的jsp,html,Flex,Tapstry5等各种框架都应用了一个遍,最终才最近几年基本固定在JQuery框架上面进行了进一步的封装和固化。里面也走了大量的弯路,投入了大量的重复开发工作量,而这些本身是在前期做好规划和选型完全可以避免的。
  其实对于最小化技术平台的搭建,我们从一个独立的单系统项目和组织级的大集成项目两种场景来进行分析和说明。
  独立的单个系统项目
  如果是构建单个业务系统的基础平台,那么相对来就简单了很多,但是实际上做起来细节的事情仍然是比较多,初步分析也应该包括如下几个方面的事情。1. 初步的UI/UE界面风格要确定下来 2. 采用的开发框架要确定下来,具体是几层架构,数据层,前端展现等各自用什么技术都要定下来 3. 提供最基本的核心系统管理模块能力(用户,角色,授权,组织,菜单,数据字典等) 4. 基础的登录功能实现,并整理提供完整的Session对象值 5. 对于有流程需求的需要提供基础的流程引擎能力,不一定完整,但是具备间的流程审批和流转能力 6. 公共技术组件模块(提供一些类似公共函数,缓存处理,日志封装,异常封装,安全等基础能力)
  实现上述内容后能够达到了一个效果就是,具体的业务需求可以划分为不同的业务功能模块,并将功能模块的开发安排给不同的开发人员去实现了,即基础底层能力已经具备,开发人员只需要实现功能并集成到整体框架里面来即可。
  在这个过程中,有复用意识的架构师或开发组长一定要多做CodeReview工作,即通过Code Review来发现有哪些需要进一步抽象的公共组件和方法,并将其统一提供到公共的组件模块里面,以减少整体项目里面的各种重复代码,并提升代码的可维护性。
  传统的软件开发团队做项目如何做?
  就是形成上面这个基础的开发框架和平台,然后再接到新项目后,将上面的这个集成平台和公共组件内容完整的拷贝一份出来(新拉一个分支),然后再来开发新的业务子系统。这个时候平台层还很难做到完整的黑盒级别的复用,但是基本可以实现新项目开发不需要再过多考虑这部分内容。
  由于会全部拷贝出来,容易引发的问题就是在新的项目中对基础组件又进行修改,导致后续基础平台存在多个维护中的版本。因为这个原因,最好的方法仍然是对于基础组件平台最终成型后,最好的方式是提供类似Jar包引入的方式进行黑盒级别的复用。以确保基础平台的版本唯一性。
  开发多个子系统的大型集成项目
  在这种情况下,基础平台就不是仅供一个项目使用,而是需要为多个项目提供服务,类似我们前面很多文章都谈到的平台+应用模式,企业私有云PaaS平台建设。在为多个业务子系统提供平台层能力支撑的时候,那么一个关键就是这个平台不会再内嵌在业务系统里面,而是应该独立进行建设和部署,并将平台层的能力通过接口的方式开放出来供上层应用使用。在这种模式下平台层的建设一般会包括如下内容:1. 独立的门户集成能力,提供门户,统一身份认证,单点登录能力。 2. 提供4A能力,特别是统一用户和统一授权,该能力可以集成在门户中统一提供。 3. 提供公共的流程平台和流程引擎能力,对流程建模,执行,监控数据全部集中在流程平台中管理。 4. 提供一些关键的技术服务能力(其中包括消息,缓存,日志,安全,文件处理等) 5. 整体的UI/UE标准规范制定,开发框架规范和技术制定。
  其中1到3基本是一个最简单的公共支撑平台必须提供的,而对于4一开始可以先不提供,由各个业务系统自己去提供和解决。由于上述内容已经抽象到公共平台进行统一提供,因此对于上层的业务子系统开发就更加简单,具体包括的内容为:1. 提供最基本的核心系统管理模块能力(用户,角色,授权,组织,菜单,数据字典等) 2. 公共技术组件模块(提供一些类似公共函数,缓存处理,日志封装,异常封装,安全等基础能力) 3. 使用统一平台和整体应用架构制定的UI规范和开发框架进行开发
  这也是我们常说的厚平台+轻应用的模式,即能够复用和共性的内容尽量下沉到平台统一提供,上层的业务应用开发只需要关注业务流程和业务逻辑实现,而不再需要关心技术的内容。如果再将SOA思路实现得更加彻底,就是上层进一步拆分为业务组件层,和业务组件组装和编排业务层。
  由于底层基础支撑平台的独立,上层门户的独立,那么中间就只剩下实现各个业务功能的业务组件模块,而这些业务组件模块拆分好后完全可以实现高度的松耦合的独立自治。而这也是传统架构转为理想的微服务架构的一个标准演进路线和趋势。平台+应用的构建模式
  在2013年开始写企业私有云PaaS平台建设,里面谈的最多的就是SOA+云计算,平台+应用的构建模式,同时在里面又涉及到组件化和服务化处理,技术服务提供,因此是一个厚平台+轻应用的构建方式。虽然大部分内容是在2013年写作完成,但是到现在来看这些建设和思路仍然是值得大部分企业在进行传统IT架构转型的时候考虑。
  对这本书内容感兴趣的可以网上书店搜索《SOA与大数据实战:企业私有云平台规划和建设》,里面对这部分内容有详细的介绍和说明。
  平台+应用的构建模式本质是云计算+SOA关键思路的最终体现,通过业务系统共性能力下沉形成云平台层的能力,同时通过SOA思想将平台层共性能力通过API或接口服务的方式开放出去供上层应用使用和组装。其次,对于当时我们谈得比较多的业务模块拆分,组件化思想则是当前主流的微服务架构思想的体现,即将传统的大单体应用拆分为松耦合的微服务模块。
  一个典型的平台应该包括技术平台,数据平台,中间件平台方面的内容。
  技术平台重点是提供各种典型的业务无相关的技术服务能力,其中包括了缓存,消息,日志,文件,任务,通知等,当然也可以包括我们常说的4A加流程引擎平台;而一个数据平台重点则是提供基础数据能力,如我们常说的MDM主数据平台,当然也可以是共享数据中心,提供静态+动态共享数据能力;而对于中间件平台才是传统说的PaaS技术平台,提供数据库和中间件资源池能力,提供应用托管和资源动态调度能力,从最传统的CloudFoundry等技术平台转变到当前以Docker容器+K8s为核心的轻量化容器调度平台。
  如果在大的应用架构里面,上面谈的平台更多的仍然是技术平台层面,在技术平台上面则是需要我们去构建的业务应用,只是当前对于业务应用部分我们进一步进行分层,即业务应用本身是有前端应用+业务中台构建成的完整应用。
  而业务中台我们完全可以理解为业务平台,你也可以理解为前面的数据平台内容没有,而都是在业务中台里面进行完整构建。中台由各个我们常见的中心组成,一般又分为两类,一类是以核心数据中心形成的中台模块,如产品中心,订单中心,客户中心等;另外一类是以业务逻辑处理为核心形成的中台模块,例如计费中心,结算中心,调度中心等。这两类中台模块提供完整的数据能力和业务规则逻辑处理能力,那么在这个业务中台上面构建的前端应用就更加轻量化。
  也就是说平台+应用构建模式可以分解为 技术平台+业务中台+前端应用。
  我们所有做的努力都是为了使前端应用尽可能的轻量,只有前端应用足够轻量,才能够快速地响应业务需求的变化,前端不实现具体的业务规则,不管理数据,而只是对各种中台层提供的API服务能力接口进行组装和编排,以满足完整的业务流程和需求。
  把这个想明白了后,传统企业IT应用和系统的架构方法将发生重大的转变,即我们先是构建完整的技术平台,提供最基础的共性技术能力,该技术平台既包括了设计态的技术开发框架和环境,又包括了运行态的技术服务能力提供,托管和运行环境提供等。在技术平台构建完成后再进行业务中台模块的构建,中台模块构建完成后进行前端应用模块的构建。中台模块可以订购技术平台的技术服务能力
  前端模块可以同时订购中台模块的业务服务能力,同时也订购技术平台技术服务能力
  在基础平台搭建完成后,我们在前面讲过最好是提供一个完整的门户类应用,在彻底微服务模块化后企业就只有一个门户应用,其它应用都应该是灵活组装出来的,因此我们只需要构建一个完整的门户,那么后续我们构建的各个中台模块,前端应用模块都可以很灵活地加入到这门户中,也就是说配合微服务DevOps持续集成能力,按道理最终发布的模块可以直接发布和集成到门户里面去。
  我们来举一个最简单的例子。
  一个企业原来已有采购管理模块并集成在门户里面,但是没有招投标模块,我们把招投标模块作为一个独立的微服务模块进行构建,在构建这个模块的时候我们完全不用做系统管理,流程引擎,技术组件等模块,只需要考虑业务需求的实现。
  同时我们首先申请需要构建一个新模块,分配独立的模块ID和账户,同时对该模块进行相关技术服务和业务服务的订购,在这些完成后进行该模块的开发和测试,在测试完成后直接对模块进行发布,发布完成后在门户上就应该形成一个新的招投标模块的人口链接。这就形成了一个完整闭环的模块动态发布和添加的过程。
  要完成上面这个理想化操作可以看到需要做的内容相当多1. 集中化的云门户能力,可以集成4A模块能力在里面 2. 公共流程平台能力,提供对流程设计,运行和监控的统一管理 3. 基于Dock容器+Kubernates的PaaS轻量平台,包括DevOps的支撑平台 4. 服务总线能力,可以是轻量的微服务网关,也可以类似OpenAPI能力开放平台 5. 微服务架构开发框架和开发环境 6. 实现各种技术服务能力提供的技术平台
  上面这些内容必须形成一个完整的整体,才能够形成初步的平台+应用的构建模式。

全职妈妈的人生,成全还是较量都不必给别人看近日,一则采访的爆出点燃了全网对于全职妈妈这个老话题的新热议。曾获得全国先进工作者,全国五一劳动奖章,全国三八红旗手,中国十大女杰等称号的校长张桂梅,直指全职妈妈的话题痛点,发表了幼儿园让孩子学敬酒,网友从小就培养酒鬼?近日,有网友反映贵州省黔东南雷山县示范性幼儿园在举办活动时,老师让幼儿端起碗举杯敬酒。新闻一出,遭到了许多网友的炮轰,他们认为不应该这么早给孩子培养酒桌文化。网友A其实,这个蒙古敬人工智能对教育和就业的影响2017年7月8日,国务院印发新一代人工智能发展规划,明确了我国新一代人工智能发展的战略目标分三步走第一步,到2020年人工智能总体技术和应用与世界先进水平同步,人工智能产业成为新编程语言怎么选?学多久?孩子能学会么?你想知道的都在这这几年编程教育的火爆,相信大家也都能感受到。国家本身就对少儿编程以及人工智能领域人才很重视,使得它取代了前几年流行的奥数,成为名校敲门砖。可是编程毕竟是一门新兴学科,很多家长虽然想任正非不重视教育会返贫,因为社会最终要走向人工智能其实整个世界朝着人工智能发展是大势所趋,现在人工智能化的趋势的确已经深入到了我们的生活中,只不过我们还没有发现,比如说无人餐厅无人酒店机器人派送快递等等。5G的出现无人驾驶汽车的出人工智能专业大火,除了有钱途,更应该关心什么?2020年新学期开学已经过去一个多月了,在此之前高考结束到专业报考尘埃落定这一阶段出现了很多新的热潮,其中之一就是2018年才正式确立的人工智能专业,成为今年的热搜专业之一!201世界上最难的5种编程语言我们平时都在谈论CCJavaPython等编程语言,其实还有些语言不仅对于大多数软件开发人员来说都很难,而且几乎是不可理解的。这些语言被称为深奥难懂的编程语言(或晦涩语言)。晦涩语孩子出不出色,与母亲的性格关系太大了伟大教育家苏霍姆林斯基说过每瞬间,你看到孩子,也就看到了自己,你教育孩子,也是在教育自己,并检验自己的人格。不知大家是否留心过很多名人传记中是怎样描写母亲的母亲温柔贤淑善解人意,她又是一个长寒假,班主任制作的寒假作息时间表值得收藏又迎来一个长寒假,您和孩子做好准备了吗?假期作业鸡飞狗跳,孩子一个人在家又觉得无聊?如何帮助孩子在假期适当放松,同时结合实际调整学习状态?这是一位毕业于衡水中学,目前就读于北京大学认真脸,无广告少儿编程到底要不要学?每个新的领域都能给我们带来新的知识,装载着这些知识的我们自然也会在其中收获新的思维,新的能力以及看待世界的全新角度。编程领域也同样如此。外加人大审议通过了编程进入中小学课程,这也在孩子,为什么寒假还不让你玩游戏?这是我听到过最好的回答寒假就要来了,相信很多家长的内心已经开始担心了。娃回家了,不是玩手机,就是玩手机,偷偷玩躺着玩醒来第一时间就找手机。再想想那上不去的成绩,老母亲真是百爪挠心。却迟迟不知道该怎么办。
媳妇对婆婆说你不给我看孩子,我就不生小刘六年前结的婚,婚后第二年生了一个女儿。现在女儿都上幼儿园了,小刘也找了一份工作,每天上班下班,工作倒也轻松,日子过得很充实。小刘的婆婆近来愁眉苦脸的,原来她就这么一个儿子,眼下我要回故乡,故乡有爹娘离开家乡数载,家乡的脚步在一天天临近,梦境是那样的清晰,妈妈唤儿吃饭的声音是那样的亲切,离开的是家乡,离不开的是梦牵梦绕热烈的那份故土。抓一把故乡的泥土,您把我养大。曾经小溪的细细老公什么事都听父母的,从来不考虑我的心理感受,说他,他也不听我和老公结婚己有几年了,现在感觉他越来越像个孩子,什么事都听父母的,向来不考虑我的感受。因为这件事,我想和他离婚的心都有。我和现任老公是通过媒婆之约认识的,他在家里是老小,上面有两老公总嫌我丑,他越嫌我丑,他在外面工作,我越不放心他导语现在的男人为了家和事业努力的打拼,有的一出去就是几个月,甚至一年。很少与家人团聚。女人呢?最放心不下的是老公在外面拈花惹草移情别恋。有时候,男人的一句话会触动女人敏感的神经,久关于教育,学会这一点,孩子想不优秀都难一个人,对自己的父母总是发脾气,而对外人却很有礼貌,在现实生活中,这样的人大有人在。我认为这是父母的教育出了问题。有多少父母以爱的名义绑架他们的孩子,在孩子年幻的心灵中打下深深的烙丑妻家中宝还是美妻家中宝?常言道丑妻家中宝。这句话放在现如今还对不对呢,今天我们来探讨一下丑妻家中宝指家中妻子外貌虽然丑陋,但是贤惠能干,不被人惦记,使得生活幸福,家族兴旺。放在现如今,这句话看起来有些绝对一位48岁中年女人哭诉跳了半年广场舞,却毁了一个家导语随着人们生活质量的逐步提高,人们不再局限于到了晚上足不出门,呆在家里看电视。出门锻炼成了一种新的消遣方式。广场的路灯下,伴着节奏的音乐,或激烈或舒缓,大批的中老年人迈着欢欣的步人到中年,钱用好是福,用不好是祸人到中年,有了一定经济基础。那些曾经的打拼变现成了手中的资本。不用再为一碗米折腰,也不用再为省一元钱的公交车而走很远的路。你终于可以扬眉吐气对世界说不,也可以轻轻松松地对自己说我能退休后,在老家种了二亩地,开启了我的自由与梦想过了退休年龄,再也不用为上班奔波了,心一下子轻巧下来。我很早就有一个梦想,那就是回到乡下种上自己的二亩地,好好享受自己所喜爱的生活。现在,儿女们早己成家了,再也不用我操心了,他们有女子对丈夫说我是来好好和你过日子的,你却让我很失望导语幸福的生活是奋斗出来的,幸福的婚姻是两个人共同营造的。和你在一起吃苦受累都不怕,怕的是我对家庭一心一意,你却在外面花天酒地。女人对男人要求并不高,无非是夏天能为我撑把伞,冬天能老公是大车司机,一直在外面吃香喝辣住酒店,我一直不放心他导语婚姻是以相互信任为基础,以维护家庭幸福美满为目标。婚姻里缺乏了信任,以相互猜疑过生活,那这样的生活是很痛苦的,也很容易引起家庭的破裂。口述人苗苗,农村人,和老公生活己有七年。苗