华宇容器平台开发背景介绍
华宇主要面向的是正司法行业,在没有开发容器云平台前,在部署应用时总是面临很多问题:
在这个背景下,同时也基于容器本身的价值,华宇决定自研一套中心云平台。
容器的价值
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
高可用部署方案
网络方案
Calico
三层网络,性能良好
支持丰富的网络策略,能满足安全性要求高的场景
支持开源Volcano来扩展调度算法
案例展示
华宇集团内部公用研发环境拓扑
业务CI/CD流程
GitLab里的代码工程,每一个项目会写自己的jenkinsfile,jenkins创建流水线并在流水线里边进行编译构建、sonar检查、构建镜像,用容器云平台的工具将镜像推送到镜像仓库Harbor里边,同时也能够异步的触发容器云平台进行重新部署或升级,CI/CD流程完成。
人民法院律师服务平台
华宇智能审判流程系统——T3C
电子卷宗