基于Docker私有云的通讯协作平台设计与应用
2018-05-08龚向荣
龚向荣
摘要 互联网、移动终端技术极大地改变了人们的生活,对于通讯协作应用也提出了新的要求和挑战,考虑到企业通讯协作业务规模扩张的背景,要思考和探讨基于Docker私有云的通讯协作平台建构,充分利用Docker虚拟化技术,以私有云的方式进行通讯协作平台架构和部署,并设计动态、安全的密钥体系,形成安全便捷的通讯协作通道,较好地满足应用需求。
【关键词】Docker 私有云 虚拟化技术 通讯协作平台
移动办公成为发展的趋势,通用的即时通讯手段存在信息泄露的风险,无法确保企业之间机密信息的交流安全,为此,要运用Docker虚拟化技术,开发基于Docker私有云的通讯协作平台,进行合理的设计和部署,进行前后端分离的模式设计,在统一的开放接口条件下,设计和应用标准化的流程,较好地实现与企业各项业务的对接。并在信息传输的过程中采用动态的密钥体系,确保企业间跨域通讯的安全。
1
Docker私有云的通讯协作平台關键技术
1.1 Docker虚拟化技术
这是一种资源管理配置技术,以镜像、容器和仓库为核心组件,通过对实体资源的抽象、隔离,突破其结构上的束缚和约束,较好地提升资源管理配置效率。可以分为硬件虚拟化技术和软件虚拟化技术两种类型,其中:硬件虚拟化技术是在截取硬件平台指令的前提下,对其加以替换,以达到实现资源管理配置的效果。软件虚拟化技术是基于各种不同的软件工具,截取并模拟平台访问数据,进行资源的管理配置。
Dcoker虚拟化技术不同于以往基于虚拟机的虚拟化方式,而是一种基于容器的虚拟化技术,是在操作系统平台上运用Libcontainer提供的技术、通用接口标准,实现对资源的抽象和隔离,极大地优化了资源管理配置效率,体现出跨平台性、节约存储空间的优势特点。
Dcker云平台是一种基于容器的云平台,内含三个不同的调度框架,即:
(1)容器集群管理系统-Kubemetes。它集成了容器间网络通讯、负载均衡、服务发现等组件,体现出多样化的容器管理功能。
(2)开源的集群资源自动调度平台一Mesos。它是数据中心操作系统的内核,实现对各种应用管理平台、中间件的整合和调度管理。
(3)调度框架-Swarm。该调度框架包括管理节点和工作节点,利用过滤器的方式进行调度约束,能够较好地集成负载均衡和服务发现,体现出功能强大的便捷性应用特点。
1.2 XMPP协议
也即可扩展的消息和出席状态协议,能够借助于XML的载体,实时交换互联网终端的结构化数据,是一个类似于邮件服务的网络架构和云中心化的通讯体系,可以较好地支持安全认证和加密传输,并在内部网络实现私有化部署,具有较高的可扩展性。
XMPP体系结构的内部构件部分主要包括:
1.2.1 服务器
在不同域的服务器进行互联网相连的前提下,实现对用户账号管理、会话连接及消息转发等。
1.2.2 客户端
通过TCP协议的前提和环境,以XML流的方式实现与本域服务器的会话连接和管理。
1.2.3 网关
可以将接收的XMPP消息进行转译和解析,使之成为外部系统可用的协议,实现不同域服务器的互通。
1.3 Kafka架构及消息处理
它是开源的分布式流处理平台,其架构体系主要包括有以下部分:
1.3.1 生产者
将消息源推送到集群各主题分区。
1.3.2 消费者
主要是对Kafka集群中的消息进行处理,其消息处理模式主要为队列式和订阅发布式两种。
1.3.3 代理
Kafka集群中的各个Kafka就是消息的代理,实现消息的接收、分发等功能。
1.4 Redis缓存
它是基于内存的数据结构存储应用,支持不同的数据类型,内含备份机制,具有集群高可用性和读写性能,适用于保存短期内有效的信息,实现后台Web服务的横向扩展。
2 基于Docker私有云的通讯协作平台设计应用分析
2.1 系统需求分析
2.1.1 即时通讯功能需求
企业通讯要能够实时查看用户在线状态,进行跨域的群消息查询,支持不同类型的消息传送,可以较好地提高用户的交互体验。并采用加密手段,确保信息不被泄露。
2.1.2 组织架构管理功能需求
企业内部管理要求能够对人员、部门的信息进行及时更新和管理。如:个人联系方式的信息管理;好友信息的管理等。
2.2 搭建Docker私有云平台
搭建Docker私有云平台,主要从以下几个方面加以实现:
2.2.1 实现服务容器化
要对服务进行容器化操作,将服务打包装进镜像,采用Dockerfile为建构脚本,分层进行构建,并对建构过程进行标注,确保建构过程的可控性,以满足构件复用及版本控制的需求。建构镜像的流程和步骤为:由空白镜像或基础库镜像人手,选取适宜的基础镜像一一拷贝JDK安装文件并对其进行解压安装,进行JAVA运行环境的参数配置一一配置即时通讯子系统所依赖的Openfire服务一一设置用户及工作目录等运行环境一一运行容器的启动命令。
2.2.2 实现云平台容器调度
要运用Docker Swarm集群管理工具,依照如下流程实现Docker云平台容器的调度:初始化Swarm集群一一在swarm集群中加入管理节点和工作节点一一自动调度并运行服务容器。在真实的企业生产环境之中,云平台还可以根据人数的变化而实现动态的伸缩,实现弹性扩展,提升对不同负载情况下的实时有效应对和处理能力。
2.3 基于Docker私有云的通讯协作平台子系统模块设计与应用
2.3.1 即时通讯子系统
基于Docker私有云的通讯协作平台之中,该系统主要实现消息的传输、状态查询、用户在线状态查询,其主要模块包括有:
(1)消息传输模块。它是即时通讯子系统的关键内核,由以下部分构成:拦截器用于对时间戳、回执、多终端分发和超时重发等信息处理;消息处理器用于对辅助信息的描述和响应消息监听器对离线消息进行调用和处理转发组件在对XML节的类型辨析的前提下,进行消息的转发和密钥转换。
(2)离线消息推送模块。适用于用户尚未打开客户端条件下的信息推送服务,运用Kafka消息队列,使同步消息传输转换为异步的生产消费模式。
(3)消息加密模块。该模块主要是运用传输层中XMPP协议簇的TLS,对应用层的消息传输实现加密处理。
2.3.2 组织架构管理子系统
该子系统主要实现与企业OA系统的对接,实现对用户、部门信息的同步管理。其内部构成模块主要包括有:
(1)用户群组管理模块。该模块重点实现对企业内部员工群组的管理,利用HTTP协议的请求响应方式,实现对数据的增减、删除、修改、查询等操作。
(2)请求验签模块。该模块主要是对服务器接收的请求的合法性进行验证,主要是由过滤器依循一定的过滤规则对接收请求进行校验。
(3)报文体加解密模块。这是采用传输层和应用层双重加密的动态密钥体系,由服务器在过滤器中对预设的证书公钥进行加密,客户端则采用对应的私钥进行反向解密。
(4)定时任务调度模块。该模块以Quartz开源软件为框架,在固定的时间间隔内实现信息的同步操作,呈现出数据处理的动态性,可以定时清理过期失效的文件及用户密钥,使之與企业OA系统信息同步。
2.3.3 开放平台子系统
该系统实现与企业内部OA系统应用的对接操作,主要包括以下模块:
(1)认证管理模块。该模块用于检验认证接入应用的合法性,其实现途径是通过对校验码代码进行核对的方式进行验证。
(2)消息管理模块。该模块主要面向对接系统管理员,由对接系统管理员在权限内登录平台,采用JSON数据传输格式,通过用户管理模块和素材管理模块向用户或小组发送消息,进行REST接口的调用和处理,实现对用户或小组信息的增减、删除、修改和查询等功能,支持文字或图片等不同的消息类型。
3 小结
综上所述,传统的通讯软件难以满足移动办公快速发展的现实需求,要充分运用Docker虚拟化技术、容器调度技术、Redis缓存等关键性技术,搭建基于Docker私有云的通讯协作平台,在统一的跨平台接口及XMPP协议的支持和依托下,形成集群化、模块化的通讯协作平台子系统,使之具有高度的扩展性、移植性和集成能力。后续还要突破技术瓶颈,开发完整平台监控系统和运维一体化系统,提升系统的负载能力。
参考文献
[1]蔡云龙,基于Docker的私有云系统的设计[J].电子产品世界,2016 (04).
[2]王亚玲,李春阳,崔蔚,张晶,基于Docker的PaaS平台建设[J],计算机系统应用,2016 (03).
[3]田玉靖,张晨光,任女尔,基于Docker的Redis缓存架构的研究[J].电脑知识与技术,2015 (23).