黄 炜, 高逸峰, 伏正伟
(1. 南通市建筑设计研究院有限公司,南通 226006; 2. 安科瑞电气股份有限公司,上海 201801)
根据公安部《公安云计算框架指南》的部署要求,目前县市级公安逐步在警务云基础上启动微服务建设。微服务架构将单一应用程序划分成若干小的服务,各子服务之间相互协调、相互配合,为用户提供最终可堆砌、复用的解决方案。在县市级公安面临业务快速变化、技术手段多样化的场景下,微服务架构模式可快速响应业务对IT的需求,保证业务串联的稳定性和一致性,为数据融合和应用上云提供支撑保障的同时,保障统一的自动化运维、动态监控和多层次安全。
图1为微服务平台技术架构。
图1 微服务平台技术架构
可以看到,基于微服务的开发架构的警务云PaaS平台提供了四大中心开发运行所需的基础平台能力。
(1)服务共享中心,为服务的发布者和使用者提供完整的服务集成管理和标准化使用管理。(2)服务管理中心,包括微服务引擎和容器引擎,提供微服务应用开发与管理相关的功能。(3)运维管理中心,以高效保障公安业务应用为目标,按照实现一体化运营服务和运维管理。(4)安全管理中心,通过安全策略、日志审计等保障应用安全,与网络安全体系、数据安全体系相结合,形成立体的多维度的安全保障体系。
图2为微服务平台业务架构。可以看到,桌面应用服务、移动应用服务等均基于微服务架构开发,或者已有应用改造成微服务,纳入警务云PaaS平台提供的微服务引擎的管理。通过云容器应用进行应用发放和管理。
图2 微服务平台业务架构
其中,业务请求通过负载均衡服务进行分发(微服务引擎提供或云服务提供),用户访问请求到达桌面(移动)应用后再进行相关操作,随后,调用业务微服务挂载在API网关的API接口,向后端提交业务请求。应用微服务可调用基础支撑的服务提供包括认证、授权、系统对接等通用能力。各类中间件为各应用提供通用的消息、缓存等服务能力。
新公安信息网需基于警务云PaaS平台,部署一套服务目录,提供对新公安信息网服务资源的管理能力。包括服务发布、服务订阅、服务收藏、服务变更、服务退订、服务审批、服务统计、服务质量评估等功能。
(1)微服务引擎:提供业务分布化,为微服务提供自动注册、发现、路由、治理、隔离、调用分析等一系列分布式/微服务管理能力,屏蔽分布式系统的复杂度,为新公安信息网应用提供微服务化开发和管理的支撑。
(2)微服务开发:提供微服务开发框架服务契约,包括契约文件、接口定义、框架代码自动生成,支持对于隐式服务契约的微服务支持服务契约的自动生成。
(3)微服务治理:在高负载场景下,资源不够用时对非核心业务主动降级,保证核心业务的资源供给。1)服务限流:服务提供端和消费端的流量控制,保障服务稳定运行;2)服务熔断:在服务访问量大出现大规模错误时自动检测并熔断服务,防止累积大量请求占用系统资源导致雪崩效应;3)服务容错:在服务多实例场景下,根据容错策略进行服务容错。
(4)应用调度:在微服务平台中,用户通过使用容器的调度策略,可以为容器运行选择最优节点;可支持对传统应用进行改造,对改造后的应用和新应用支持滚动升级。组件负载满足预先配置的平台组件自动伸缩策略,根据应用负载程度以及用户配置的伸缩策略,实现应用实例的自动扩缩容,并自动完成负载均衡的调整,过程中需确保业务会话不中断。
(1)资源监控管理:通过资源监控可以及时了解主机的资源使用情况,如CPU内核总量、CPU内核占用、CPU使用率、可用物理内存、可以虚拟内存以及物理内存使用率等指标,通过监控这些信息,快速响应,保证主机资源的流畅运行。
(2)应用监控管理:通过应用监控可以及时了解应用的状态是否正常,通过应用的启动或停止来上线或下线应用,同时支持应用的更新升级。
(3)集中告警管理:集中告警管理收集平台自身服务的各种异常情况下上报的信息,以可视化的方式提示运维人员进行处理,保障平台服务的正常运行,从而避免影响业务的运行。
(4)应用日志管理:应用日志管理收集应用产生的业务日志,支持应用日志按关键字、时间段等条件进行查询,可以查看日志的上下文详细信息进行问题的定位,同时支持日志的导出。
(5)故障处理管理:公安信息网服务在高负载场景下,资源不够用时,平台对非核心业务主动降级,保证核心业务的资源供给。通过对新公安信息网服务的提供端和消费端的流量控制,保障服务稳定运行;在新公安信息网服务访问量大出现大规模错误时,平台自动检测并熔断服务,防止累积大量请求占用系统资源导致雪崩效应。
(1)租户隔离:提供用户的统一身份认证管理,建立支持基于角色和基于属性的分布式授权检查,建立最终租户与服务租户的信任授权,并基于配额管理实现应用/服务部署的准入控制。
(2)密钥管理:平台中的服务和应用需要使用HTTPS的认证和通信安全机制,预置的内部证书方式已经不能满足多元的、动态化的服务需求,且缺少证书的统一管理机制。从数据安全的角度来看,各子系统都有敏感数据需要加密保护,如多个虚机需要共享密文的情况下,在各个虚机中拷贝密钥文件的方式不能满足安全管理的需求。
(3)容器安全:安全容器管理是指平台具有限制容器能够使用资源(CPU,Memory,Disk)数量的能力,保证容器与运行的宿主机之间明确的隔离,限制容器对基础设施或者其他容器造成不良影响的能力。