智能工厂的容器云实践

栏目: Java · 发布时间: 6年前

内容简介:分享人介绍:覃璐,中铝视拓智能科技有限公司PaaS平台架构师,负责公司PaaS平台的整体架构。分享摘要:随着国家对智能制造的大力推进,传统工业领域也在加快信息化转型。中铝视拓致力于有色金属领域的工业互联网平台的研发。本次分享,和大家一起讨论在传统工业领域中,基于Kubernetes的容器云如何帮助企业提高信息化效率。主要内容:

分享人介绍:覃璐,中铝视拓智能科技有限公司PaaS平台架构师,负责公司PaaS平台的整体架构。

分享摘要:随着国家对智能制造的大力推进,传统工业领域也在加快信息化转型。中铝视拓致力于有色金属领域的工业互联网平台的研发。本次分享,和大家一起讨论在传统工业领域中,基于Kubernetes的容器云如何帮助企业提高信息化效率。

主要内容:

* 一般工厂的信息化现状

* 基于Ansible的K8S离线部署方案

* DevOps实践

* 面向业务人员的开发运维平台

大家好,我是中铝视拓的PaaS平台架构师覃璐,今天和大家分享一下,我们在传统工业领域中,如何通过基于Kubernetes容器云,来帮助企业提高研发效率,降低运维成本。

现状

中铝是一家从事有色金属领域相关的企业,主要从事矿产资源开发、有色金属冶炼加工、相关贸易及工程技术服务等。除了本身工业领域的相关技术以外,也需要信息化系统的辅助。典型的场景就是工厂的生产管控系统和计量系统。

不同的工厂规模不一样,导致在信息化投入的力度上也不一样,所以现场的IT 资产的情况也不一样。有的工厂盈利不错,信息化水平会相对高一些,有独立的机房,有IaaS 相关的基础设施,有较为完善的IT 系统,有的工厂盈利不行,信息化水平就低一些,可能就只有老旧的几台低配服务器来运行所有的IT系统,系统也是比较传统的C/S 的.NET 应用。

一般工厂基于安全考虑,机房不会直接和互联网通信,因此主流的在线安装的形式不适合现场的情况。针对这种情况,我们基于Ansible 开发了一整套的全容器化离线安装工具,并以此为基础,提供了版本的概念,规范部署和升级。K8S的基础概念之前的很多分享都已经提到了,我就不再赘述。我更多的是分享一下,我们在易用性上所作的一些工作。

Ansible 部署

基于Ansible 的部署这个本身没有太多别的东西,就是按照Ansible 的规范,把K8S相应的组件分门别类的放好。在技术选型上,我们也基本是跟着主流走,这个看Ansible 的role 就能看出来。网络组件采用的是calico,日志体系采用的是典型的ELK,监控体系采用的是Prometheus,分布式存储采用的是Gluster。

智能工厂的容器云实践

在Kubernetes的版本上,我们经历了1.8,1.10,1.14 三个大版本,目前是使用的1.14.0版本。主要看中CSI 1.0和Windows 节点的能力。

在整体的部署上,采用全容器化的离线部署方式,这样能极大的降低部署过程中的复杂度,也方便日后的升级。对于一个典型的组网结构来说,我们采用3个管理节点和3个存储节点,计算节点则根据实际需求去进行分配。当然也有一些极端场景下,只提供3台甚至是只有1台虚拟机,脚本本身也是适配的,不需要做额外的改动。

面向业务人员的开发运维平台

这里主要介绍一下gpass 这个模块。

* cs-cloud,开发运维平台

* elk,日志体系,采集平台所有的日志,包括业务容器、平台容器、节点产生的日志

* monitor,监控体系,根据Prometheus 采集的度量数据,进行监控和告警

cs-cloud 是我们封装的面向开发人员和工厂信息科工作人员的开发运维平台,主要分三个模块

* auth,用户体系模块

* ccapi,后端服务模块

* dashboard,前端服务模块

我们主要做了这些工作:

* 封装了K8S 的Java SDK,方便开发

* 整合了平台所使用的各种组件,提供统一的访问UI

* 屏蔽了部分K8S 的底层概念,方便开发人员理解

通过使用我们提供的平台,开发人员可以很方便的部署出自己开发的服务,不需要了解底层的技术细节。

智能工厂的容器云实践

左上方是环境选择菜单,用户登录之后,只会看到和自己相关的环境,这个就是对标的namespace。

右上方是当前环境下的一些公共内容,这里比K8S多出来的就是应用商店。

对于用户来说,他主要关心自己部署的服务。平台中的服务是K8S 中多个概念的综合体,包含了deployment、service等概念。我们增加了一个服务组的逻辑概念,来方便用于对关联度较高的服务进行分组,方便展示和查看。

在部署一个新的服务的时候,我们提供了一个综合性的标签页,在大部分情况下,能够满足部署一个新服务所需的功能。这样用户不需要去关心K8S底层的那些概念,更多的是关心服务本身,降低了上手难度。

智能工厂的容器云实践

智能工厂的容器云实践

对于之前提到的应用商店,是我们对一些使用频率较高的公共服务做的一些封装,尤其是一些配置项较多,或者有相互关联的服务,方便部署。主要涉及的是Spring Cloud相关的服务。

智能工厂的容器云实践

因为一些遗留原因,部分服务会使用到Spring Cloud作为微服务框架进行开发。所以我们提供了一个全套的Spring Cloud应用,包括config、zuul、oauth2、eureka、hystrix dashboard,一键部署出整套环境。

DevOps 实践

为了方便管理代码到部署的整个生命周期,我们基于Jenkins 构建了整个DevOps 流水线。

在构建方式上,没有采用传统的每个项目单独构建的形式,而是根据项目类型的不同,通过一个公共项目进行构建。

Java 类型为例

智能工厂的容器云实践

项目根据实际情况填写参数就可以了,当然为了简化,也可以直接克隆一份,把参数固化。

智能工厂的容器云实践

质量分析目前是采用的SonarQube,除了对每次的构建进行分析,我们还专门对每次代码提交进行了自动触发质量分析,只要项目提交了代码,GitLab 就会通过webhook 通知Jenkins,对项目进行代码质量分析,并将分析结果通知给项目开发人员。

智能工厂的容器云实践

截止到目前是已经分析了8108次,质量部门会根据这个分析结果,对项目质量提出一些要求,从一定程度上提高项目代码质量。

最后,看一下我们最新上线的一个智能工厂案例,采用的是3个管理节点,3个存储节点,10个计算节点的配置。

这是节点的情况。

智能工厂的容器云实践

这是其中部分服务的部署情况。

智能工厂的容器云实践

智能工厂的容器云实践

智能工厂的容器云实践


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Two Scoops of Django

Two Scoops of Django

Daniel Greenfeld、Audrey M. Roy / CreateSpace Independent Publishing Platform / 2013-4-16 / USD 29.95

Two Scoops of Django: Best Practices For Django 1.5 is chock-full of material that will help you with your Django projects. We'll introduce you to various tips, tricks, patterns, code snippets, and......一起来看看 《Two Scoops of Django》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具