大华股份微服务实践:从统一服务中心到提升数字化竞争力

网易云社区2019-04-03 16:23

数字经济的浪潮席卷全球,科技已是产业升级的第一推动力。作为国家高新技术企业,浙江大华技术股份有限公司(以下简称大华股份)因需而变,以视频监控产品为核心,快速打造端到端的视频监控解决方案、系统及服务,促进全球城市运营、企业管理、个人消费者生活的升级,并取得了显著的效果。
大华股份为何能够实现这样的转变?其公司采用的前沿微服务理念如何重塑业务架构,实现高效创新?大华联合网易云进行的微服务化全面改造揭开了这一数字化升级的过程。



当瀑布式开发遇到数字经济
技术创新被大华股份视为公司发展的命脉,公司每年的研发投入占到了销售收入的10%左右,现有的16000多名员工中,研发人员占比超过了50%。近年来国内各行业数字化转型升级的强烈需求,为大华股份来了新的发展契机,公司基于视频业务,持续探索了机器视觉、视频会议系统、专业无人机、智慧消防、电子车牌、RFID及机器人等新兴视频物联业务,不断满足公安、交管、消防、金融、零售、能源等领域的需求,并将这些业务拓展到全球180个国家和地区。
随着业务的不断发展,以及集团多元业务的综合布局,特别是海外业务的拓展,大华股份对信息化先进程度以及响应速度要求越来越高,特别是跨产品线的结合,大型解决方案的输出,需要高效的跨部门合作。而在常年的IT建设过程中,大华内部的信息化系统已非常多,但系统之间相对独立,系统互通困难,导致跨部门之间协作效率较低;并且随着IT系统的逐渐增多,系统使用效率反而降低,导致用户体验较差。此外,大华股份还引入了多家外包商来补充一些产品能力的开发,这也带来了效率和成本的挑战。大华股份面临的矛盾集中体现在三个方面:
需求响应慢:此前在大华内部主要的开发模式还是传统的瀑布式,以项目制进行,业务的飞速发展,给后端的需求响应能力和平台的稳定支撑能力带来挑战;外包的合作,外包商开发完之后将源代码打成一个无法编译与修改的ZIP包交付,系统上线后,即使是一个很小的改动,哪怕像换行、添加列表这种简单的修改,也需要让外包商重新开发一遍。
信息互通难:在布局智慧交通、智慧园区等大型解决方案时,会涉及到多个产品线的多个产品,需要各个系统间信息和服务高效互通;外包方面,不同外包商的标准不一样,如果两个有重合的功能是分发给不同外包商做的,它们也无法复用,造成时间和资金的浪费。
用户体验差:随着业务的不断扩展,以及海外业务的扩张,前端用户对于信息系统的响应能力、移动化以及用户体验需求越来越高,需要从架构本质上解决系统体验问题。

微服务改造破局:构建统一服务中心

大华股份从多个维度综合考虑,整体规划,希望从架构层面解决这些长期的痛点。借助网易云轻舟微服务平台,大华股份构建了统一的产品服务中心,实现快速跨产品线整合信息,输出解决方案,跨部门、跨企业之间的协作,不同产品线的信息交互效率大幅提升。通过微服务中心的沉淀,以及敏捷研发流程的建立,加速了前端需求响应的速度。通过分布式部署以及标准的开放能力,提升平台用户体验。通过平台中对微服务治理的监控,构建统一的接口标准和运维体系,对通用服务的抽象,构建企业的软件服务资产体系。
当然,服务拆分需要结合经验和业务实际情况而定,大华股份对自身业务极为熟络,但缺乏足够的微服务实践经验,内部技术团队通过与网易云轻舟微服务团队合作,快速解决了这个问题,项目进行了两个月,统一的产品服务中心的第一个稳定版本就成功上线。

微服务打破系统集成障碍
在传统的烟囱式架构模式下,系统集成难度之高,很多企业都深有体会,而传统SOA的努力,并没有从根本上解决这个问题。大华股份采用采用微服务架构改造系统,在统一的微服务框架下,将各个系统按照业务边界拆分成不同的服务,每个服务都和文档一起注册到注册中心上。这样,登录到注册中心的每一个研发人员,都可以看到注册上来的应用提供了哪些接口,有需要的时候就可以直接调用这些接口,从而打破了系统集成的障碍,实现了不同系统数据的开放和共享。

微服务沉淀IT外包资产
针对IT外包的三个痛点:迭代缓慢、代码混乱和难以复用,微服务也提供了解决方案。大华股份采用轻舟微服务的持续集成/持续交付(CI/CD)能力,很好地解决了“迭代缓慢”的问题。公司要求外包团队在CI/CD流程上将做好的程序跑起来,一旦跑起来,程序在自动编译后就可以自动部署了。这样,大华股份需要改任何一个东西,都可以在Git上查看情况并进行修改,然后再次启动流程,打出Docker镜像。这种方式很好地解决了工作效率以及成本问题,不需要进行二次开发,只需少许的修改就可以了。
对于每家外包公司的开发模式都不一样的问题,大华股份通过微服务框架和统一的模板,让外包商都按该模板来写代码,代码结构就可控多了。
此外,外包商开发的每个服务也同样和文档一起注册到注册中心中,其他的服务开发者,包括大华股份内部团队和其他外包商,如果需要复用这些功能,都可以直接调用这些接口,从而使得不同外包公司的开发成果能够沉淀下来进行复用。

微服务知识库降低团队沟通成本
在内部系统和外包能力都服务化的背景下,微服务间的互相调用十分复杂,不同微服务团队之间的沟通也比较繁琐,这对微服务改造的推进造成了一定的困惑。针对这一点,大华股份采用了轻舟微服务提供的“服务知识库与发布”统一管理API,将文档和运行保持一致。该特性来自轻舟微服务API网关,基于网易云OpenAPI的微服务规范流程控制,提供了标准化API管理、导入/导出、Swagger/Markdown文档、发布/下线等功能,使得微服务团队无需专门沟通即可快速调用所需的服务。包括外包商开发的能力,复用成本也可以降低。

服务认证鉴权保障调用安全
作为一家高科技企业,大华股份既鼓励能力共享,也为每种能力制定了规范的流程,这意味着统一的产品服务中心需要相应的机制——服务必须认证了才能调用,故而服务的认证鉴权和审计成为了公司的刚需。
大华股份采用轻舟微服务,每次服务注册/发现/调用时都可以认证鉴权。Spring Cloud Eureka组件不支持服务实例按自定义条件过滤,对注册/发现鉴权只提供了特定的方式(OAuth),对自定义权限模型亲和度不够,也难以满足多租户等隔离需求,轻舟微服务做了专门的优化:基于Eureka中Metadata携带版本等标签,按标签过滤的方式,解决按自定义条件灵活注册/发现/过滤;扩展了Eureka鉴权方式,支持了平台整体基于RBAC权限模型;基于标签+自研方式满足平台多租户隔离需求。
此外,轻舟微服务在API网关层也支持对服务请求进行异步审计与统计分析,并提供多维度审计查询、统计图表、依赖拓扑展示等功能。这些特性,使得大华股份在审计方面对于各种权限、各种作用域(分平台、租户、项目)都有精细的规划。

高可靠微服务体系提升用户体验
在服务上线之前,大华股份通过轻舟微服务平台的GoAPI接口测试,自动化地提升服务代码质量,GoAPI支持HTTP\Dubbo\Thrit协议,集成了接口管理、接口测试、持续集成、线上监控等功能,能够无缝接入项目到已有CI/CD流程中,将接口测试变成产品质量把控的重要一环,同时加快开发迭代的速度。GoAPI还支持租户隔离,以及多产品的资源隔离,这对大华股份而言也很重要。
对于运行中的服务,大华股份通过轻舟微服务平台的服务路由、负载均衡,以及熔断、降级、线程隔离保护等与业务解耦的治理能力,保证系统的健康;同时,通过轻舟微服务的全链路监控能力,实时发现服务调用中存在的异常,例如自动化拓扑发现可以展示服务间的调用关系、访问次数、错误率、响应时间等指标,包括各种数据库和中间件信息,可以根据节点状态和外部事件确定拓扑中服务的健康情况。
此外,基于分布式部署的微服务,可以为大华股份带来更好的扩展能力,进一步提升系统的可靠性和用户体验。

微服务提升数字化竞争力
通过引入轻舟微服务平台,大华股份建成了统一的产品服务中心,提升了跨部门、快外包商协作效率,并构建了软件研发流水线,有效提升了整体研发效率。而通过平台化的管理,大华股份也统一了企业信息化标准,降低了运维难度,并提升了平台的稳定性和可扩展性,提升了用户体验。

伴随着服务的不断沉淀,大华股份的解决方案、系统和服务日益完善。目前,大华股份的解决方案已经覆盖了智能楼宇、智慧交通、平安城市、文教卫、智慧交管、金融、司法、政府、运营商、专业等领域,在全球知名市场研究机构IHS发布的2018年全球视频监控设备市场占有率报告中,大华股份的排名雄踞榜眼。
大华股份的实践表明,技术创新的速度关系着企业在数字经济时代生存与发展的核心竞争力,微服务平台的引入与产品服务中心的构建,对于企业核心竞争力的提升至关重要。