华宇容器平台开发背景介绍

华宇主要面向的是正司法行业,在没有开发容器云平台前,在部署应用时总是面临很多问题: 

容器云平台在法律科技领域的落地实践_java

在这个背景下,同时也基于容器本身的价值,华宇决定自研一套中心云平台。


容器的价值

1)提高产品研发效率

• 环境一致

• 环境可移植

• 技术下沉,项目组更多关注业务逻辑


2)提高现场运维效率

• 部署简单、操作方便


3)提高资源利用率

• 由容器云平台来管理、调度物理资源,提升资源利用率。

• 容器是内核级虚拟化技术,可以比虚拟机实现更高的性能及效率。


但是容器本身并没有直接解决掉这些问题,因为容器还是要手动启动,并且不能自动恢复,不能自动伸缩,存储挂载能力也很单一,基本就是本地圈。


因此,我们尝试使用Kubernetes,Kubernetes 有如下优点:

• 批量执行

• 自动恢复

• HPA

• 存储编排

• 丰富的调度算法

• 服务发现、负载均衡


但是在部署过程中,我们也遇到了很多问题:

1)部署困难

  • 华宇法律软件的客户现场无法连接互联网。

  • 客户现场基础设施不统一。

  • 客户现场资源不足,无单独的负载均衡集群,网络配置固定,不提供浮动ip。


2)Kubernetes概念复杂,学习曲线陡峭

  • 开发团队无法快速掌握K8S的使用方法

  • 运维团队无法合理的运维K8S(部署、升级、监控)


3)现场应用部署复杂,容器化与非容器化应用混合使用,需要打通容器内外网络


容器云平台介绍


华宇容器云平台,是以Docker及Kubernetes为底层,以应用为发布单元的企业级容器云平台;主要用于对容器化应用的生命周期管理,主要涵盖了应用的自动伸缩、滚动升 级、配置管理、资源管理、数据卷管理等功能;华宇容器云平台还提供命令行工具及丰富的API,能够与Jenkins、gitlab等多种平台联动,快速 将代码构建为镜像并部署到开发测试环境中。


容器云平台功能

1)离线部署docker + K8S

2)界面化K8S管理与运维

3)基础设施管理与监控

4)多维度鉴权管理

5)精细的容器化应用管理与监控

6)丰富的扩展插件——Charts包设计工具、数据卷看板等


华宇容器云平台的功能拓扑


华宇容器云平台架构设计


技术方案细节:华宇是如何做离线部署的?


离线部署方案


  • 制作适配各种操作系统的离线apt源/yum源,离线部署docker

  • 现场部署Harbor,导入并上传K8S及各种插件镜像

  • 部署容器云平台

  • 用容器云平台部署K8S


高可用部署方案

容器云平台在法律科技领域的落地实践_java_02


网络方案

  • Calico

  • 三层网络,性能良好

  • 支持丰富的网络策略,能满足安全性要求高的场景

  • 支持开源Volcano来扩展调度算法


案例展示

华宇集团内部公用研发环境拓扑

容器云平台在法律科技领域的落地实践_java_03


业务CI/CD流程

容器云平台在法律科技领域的落地实践_java_04

GitLab里的代码工程,每一个项目会写自己的jenkinsfile,jenkins创建流水线并在流水线里边进行编译构建、sonar检查、构建镜像,用容器云平台的工具将镜像推送到镜像仓库Harbor里边,同时也能够异步的触发容器云平台进行重新部署或升级,CI/CD流程完成。


人民法院律师服务平台

容器云平台在法律科技领域的落地实践_java_05

华宇智能审判流程系统——T3C

容器云平台在法律科技领域的落地实践_java_06

电子卷宗

容器云平台在法律科技领域的落地实践_java_07