11月28-29日,由中国社会科学院信息化研究中心和北京国脉互联信息顾问有限公司联合举办的“2018智慧中国年会”在北京隆重召开,以“数据赋能 智慧中国”为主题,共有来自全国部委、省、市、区县电子政务、智慧城市、大数据主管领导、行业专家、企业代表、主流媒体千余人参会。

  本文系国脉技术总监潘超巧于11月29日上午在“2018智慧中国年会”分论坛--“微服务与数据赋能平台构建与实践研讨会”上的演讲,内容通过现场速记整理,未经本人审核。

blob.png

【国脉技术总监 潘超巧】

  伴随着容器化的日臻成熟,微服务逐渐成为软件开发的主流形态,大量的分布式、领域驱动设计的微服务被快速开发和部署,服务间呈现出搭积木的能力,使不同的业务通过重新组合数个微服务,就能实现新的业务场景。被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务实践。阿里巴巴、华为、腾讯、360等很多互联网公司都采用了微服务开发实现业务场景。

  一、什么是微服务

  有些人认为微服务是“微信服务”的缩写,因为现在微信比较火,其实不是。微服务,是一种软件架构的形式。在这个架构中,微就是“微小”的意思,在这个架构中,复杂的应用程序是由多个小而独立的进程组成,每一个进程通过独立于语言的接口进行相互交流。这些服务较小、高度解耦且专注于完成一个小任务, 使得用模块化方法建设系统更容易,降低开发难度、增强扩展性、便于敏捷开发。

  下面我列了微服务的几个特点:①微服务有一套服务治理的解决方案,服务之间不耦合,可以随时加入和剔除服务。②拥有独立的基础组件,业务单一、易于维护。③安全机制,微服务系统有一个完整的安全机制,包括用户验证、权限验证、资源保护等。④每一个独立的微服务都能够集群化,且具有负载均衡的能力。⑤微服务的服务与服务之间,是通过HTTP协议或消息组件通信的,具有容错的能力。

  二、为什么使用微服务

  那么我们为什么要使用微服务呢?我们可以先看一下左边这个单体结构,一旦项目、功能变多,系统的耦合度也会逐渐增高,出现故障时无法隔离;系统复杂、错综交互,改一个功能,往往整个系统都需要修改;同时多套系统时,是重复地去制造各种轮子,比如软件系统、数据库、中间件等;是一个完全封闭的架构,升级和迁移的成本也非常高。

  微服务做到了一个解耦、故障降级熔断保护措施,就像保险丝一样;采用了模块化开发,开发运维一体化,通过持续集成、持续交付、全自动化地进行部署;具有扩展性、高可用,在升级扩展中可以做到不中断业务。

  简单来说,微服务在应用中有四个好处:①每个模块都是独立部署的,所以简单灵活。②每个服务专注和专业于它的内容,可以高效、可靠地去做到相应的服务;同时每个小模块、小服务都可以由一个小团队来负责。③微服务做到了单体的解耦,把耦合度降下来后,高内聚、更容易扩展。④采用微服务架构,开发语言没有限制,你可以在这个服务里采用Java语言,在另一个服务里采用PHP语言,或者Python等其他语言,且开发工具也不受限制。

  传统单体的开发模式,从计划到开发有许多个模块,在技术部门统一进行编译、测试、发布,采用微服务的开发模式后,编译可以由不同的小团队来进行,因而多个部门就会形成一个线条状的结构,可以走三条线,再加上持续交付的、自动部署的、多个环境的更新部署,从理想化的角度来说,十个团队每年可以做到十万次部署。

  三、微服务模块化开发的好处

  模块化到底有哪些好处呢?其实我们可以把模块化当作一个拼装的形式:①模块可插拔,就像USB接口一样,需要时插上,不需要时就拔除,不会产生相应的问题。②故障隔离,每个模块都可以用一个分支去创建,不会造成代码之间的冲突。③解耦,在模块中增加或修改功能,只会影响当前模块,不会影响整个应用。④动态部署,在运行时把模块部署到应用中,快速修复故障,提高发布效率。⑤平台系列,成为行业一流大数据平台,每个平台提供1-2项特色优势数据服务。⑥多版本部署,可以在运行时同时部署某个模块的新旧版本,进行AB TEST。⑦减少资源消耗,通过部署模块的方式减少应用数量和机器数量。

  原来分步式架构在部署时比较麻烦,随着科技的发展,Docker技术应运而生。Netflix云架构总监Adrian Cockcroft 说过“微服务和Docker的结合是一种颠覆”。通过Docker技术的独立性、颗粒度、快速创建和销毁及完善的管理工具,可以实现微服务的快速部署与扩容调度。我们现在做的项目,编程完成把JAR包打出来后,通过一个配置文件扔到Docker服务器上,阿里Docker云、有容云,丢上去运行,整个分布式会自动完成。微服务架构和Docker技术的结合,可以解决很多问题,譬如正在运行的一个项目,CPU和内存是正常的,突然用户访问量增大之后,通过容器技术,会自动响应,将两个容器扩容为三个,从而降低CPU的消耗量。

  我的建议是,政府数据体系平台架构可以采用微服务架构。当前政府系统/软件数量多、标准体系复杂,还有很多配套系统之间存在重复的功能,系统之间耦合度比较严重,升级迁移的时候成本非常高,应用场景、参与的角色非常多。所以,大平台、大系统需要采用微服务架构来解决这些问题。

  四、微服务开发框架

  我们可以看一下当前主流的微服务框架:第一个是我们国脉采用的Spring Cloud,它是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

  第二个就是Dubbo,阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成,但目前从社区的活跃度来说,Spring Cloud更活跃,阿里的一些公司也在用Spring Cloud。第三个是刚刚出来的一个微服务架构--LSTIO,是 Google、IBM、Lyft首个共同联合开源的项目,提供了统一的连接,安全,管理和监控微服务的方案。

  接下来讲一下典型的微服务架构,是通过轻量的http协议关联各个服务之间的关系,通过服务注册与发现的机制,加上消息队列,来访问各类型数据库,包括运维监控、实时认证等。这是基于K8S容器集群的微服务架构,是应对大系统的,包括自动部署服务、灰度发布服务、自动水平扩展服务、集群内负载均衡服务等,可以看到它采用多个数据库、多个缓存服务器等等。

  五、基于微服务架构的赋能平台实践

  (一)标准规范

  下面讲下我们当前在做的一个赋能平台实践中的一些针对技术采用的标准规范。标准规范这块我们分为六个层面:基础设施、数据采集、数据存储、数据处理、应用支撑、门户展现。基础设施包括了存储的设施、机房、计算机服务器等;数据采集,包括离线采集、实时采集、手工录入等;数据存储包括分步式数据库、内存数据库、关系数据库;数据处理包括数据交换、清洗转换、比对等,因为数据入库后要保证数据质量,需要相关平台支撑;最后到应用决策,通过手机端、web端把相关内容展示出来。

  (二)运维及安全管理保障

  运维安全管理保障方面,包括移动设备监控、移动应用管理、web应用监控和数据库中间件监控等。

  (三)技术路线

  我们走的技术路线的整体结构主要包括开发技术、模型标准、运行环境、开发管理:①开发技术,主要是J2EE,结合微服务的高效性;②模型标准,就是我们仓颉数源在做的元数据标准,保证字段内容标准,加上跨语言的XML技术标准;③运行环境,包括容器技术、HTTP服务器等;④开发管理,开发运营一体化、可视化开发等。从而保证我们赋能平台的稳定运营。

  (四)API网关接入-安全

  我们通过API网关来保证系统的安全,因为所用接口、访问、用户都是先通过API网关来访问我们的各个服务数据,API网关在我们整个架构中起到了非常重要的作用,包括统一接入、流量管控、业务隔离、安全防护等,其中它们各司其责。

  (五)功能结构

  最后是我们微服务赋能平台的功能结构,包括了数据源、数据汇集、数据分析、数据应用四个层面。数据源层,就是说数据从哪来,一个是外部采集,包括我们公司7大平台采集录入的数据,还有一个是数据交换,我们OA系统里存在的一些数据,通过接口打通进行获取,此外还有合作共享资源和其他数据;这些数据拿到后,我们进行质量检测,包括编目、转换、对比、清洗等;再到数据分析层,进行可视化、聚合统计、关联分析、全文检索、模型训练、DSL分析引擎等技术操作;最终到应用层,进行运维管控,可以给公司提供趋势预测、业务分析等服务。我们国脉已基于微服务开发完成或正在进行重构的产品有IEP(智慧赋能平台)、仓颉数源数据元公共服务平台、数据基因5.0版本、国策数据库等。

  最后我总结一下,微服务可以为平台整合提供强大的支撑;通过微服务的架构理念,可以为平台、组织、不同技术团队之间的融合,提供一个很好的技术框架基础;通过模块化的开放模式,大幅提高产品的可靠性、可拓展性;通过与Docker容器的结合,可以实现分布式项目的快速部署与搭建;通过一体化运维和持续集成、持续交互,可大大降低运维成本。我们国脉正在努力,应用微服务架构做出更多产品和解决方案。谢谢大家!

  附:国脉,是领先的大数据治理和数字政府专业提供商。创新提出“软件+咨询+平台+数据+创新业务”五位一体服务模型,拥有数据基因和水巢DIPS两大系列几十项软件产品,长期为中国智慧城市、智慧政府和智慧企业提供专业咨询规划和数据服务,广泛服务于信息中心、大数据局、行政服务中心等政府客户、中央企业和金融机构。自2004年成立以来,已在全国七大区域设立20余家分支机构、5大技术研发基地,服务客户2000余家,执行项目5000余个,连续多年开展中国政府网站、智慧城市、互联网+政务、营商环境等公益评估评选活动。被业界誉为中国信息化民间智库知名品牌、电子政务优选咨询机构,国内首倡智慧政府理念,首创智慧城市、数据治理、互联网+政务评价体系,首推数据资产普查、全口径数据资源目录、数据元标准化、数源确认与供需对接、最多跑一次事项梳理、营商通等产品,信息资源编目、公共数据普查等业务全国占有率和影响力名居榜首。

  福利大放送:《数字政府周刊》、《数字政府白皮书2.0》、《第八届(2018)中国智慧城市发展水平评估报告》、《第四届中国“互联网+政务”50强优秀实践案例评选研究报告》、《首届(2018)中国营商环境评估报告》可通过电子政务智库公众号及微店在线购买,欢迎订购。

blob.png

微信扫一扫即可购买!

责任编辑:hongqiong