首页 资讯 招标 项目 展会 更多

位置:首页 > 新闻频道 > 技术动态


成果介绍: 一种基于微服务架构的新型云件PaaS平台

2015-12-14 09:14:53 安装信息网

相关链接: 中国安全网 中国质量网 中国论文网 中国资讯网

   作者:田英

  随着云计算技术的蓬勃发展,云计算逐渐深入到了人们的生活中,云计算技术不仅促进了计算机软硬件及体系结构的发展,也引发了软件使用方式上的变革。同时,IT资源服务化的思想日益普及,呈现出一切皆服务(X asa servlce,XaaS)的趋势,服务成为了云计算的本质和核心概念,以IaaS、PaaS和SaaS为代表的服务模型已经得到了广泛的使用和实践。随着虚拟化和容器技术发展的不断深入,以Docker技术为代表的容器化微服务技术逐渐渗透到云计算的各个层面,系统从开发、部署到运维整个过程都可以微服务化。微服务架构( microservicesarchitecture)成为一种架构风格和设计模式。该模式提倡将应用分割成一系列细小的服务,每个服务专注于单一业务功能,运行于独立的进程中,进而使得服务之间边界清晰,并可以采用轻量级通信机制(如HTTP/REST)相互沟通、配合来实现完整的应用,满足业务和用户的需求。微服务作为架构模式的变革,其诞生绝非偶然,它是当传统服务架构在互联网时代遭遇挑战时,人们对于架构模式、开发和运维方法论的一种反思。

    云计算技术和一切皆服务的理念改变了人们对传统软件的认识,利用云计算技术,传统软件可以很轻松实现服务化。随着网络环境的不断优化,传统软件逐渐向云计算平台进行迁移。而对用户来说,浏览器是通向互联网世界的主要入口,并且浏览器技术发展也在不断深入,从简单的HTML文件解析到新兴起的HTML 5、CSS 3和Web OS等技术,为软件在云端迁移和Web化的访问方式提供了坚实的基础。通过浏览器方式获取软件服务将是未来软件发展的重要方向,软件的Web化和云化也将成为未来软件的重要形态。

  综上所述,利用云计算提供的微服务环境构建软件的开发、部署和运行环境,同时利用先进的Web技术实现软件的Web化将是云计算环境下软件的发展方向和趋势。在当前云计算环境下,软件将不再是一个简单的代码实体,而是由一系列服务构成的服务综合体,通过网络交付给用户,本文将这样的软件形态称为云件( Cloudware),它将是未来云环境下软件的主要形态。

    为了更好地促进云件的发展,本文提出了一种新的云件PaaS平台,该平台基于微服务架构和容器技术,可以直接将传统软件部署到云端运行,并通过浏览器的方式提供给终端用户。

1云件——云环境下的新型软件形态

    随着云计算技术的不断成熟,以Amazon EC2、GoogleApp Engine等为代表的云服务平台得到蓬勃发展,越来越多的企业和个人通过使用云计算服务来降低成本。目前的云计算服务很大一部分是面向开发者的,而云计算服务又以IaaS和PaaS为主,SaaS层的用户只能通过使用运行在云计算平台上的软件间接地享受云服务。随着微服务、软件云化等概念的引入,云环境下的软件不再是一个简单的代码实体,而是由一系列微服务构成的服务综合体,通过互联网进行交付,体现为一种更加契合云环境的软件形态,即云件。

    云件并不是一个软件,而是一种云环境下的软件形态。传统的软件依赖于操作系统以及安装于操作系统上的库和中间件,然而随着云计算和网络的普及,软件应该以更加符合当前环境的形式去开发和部署,软件的整个生命流程也会随着云计算带来的变革而变革。接下来详细对云件的开发模式、部署模式和运行模式分别进行阐述。

1.1云件的开发模式

    在传统软件开发过程中,开发人员需要自己构建相应的软件开发环境,如IDE和编译工具链等。随着Git和任务管理系统的兴起,云件的开发应当体现为云端开发过程,利用云端IDE和编译微服务完成软件的整个开发任务,同时利用云端协作软件进行任务追踪,从代码编写和软件工程角度对软件开发过程进行云化。

    同时,云件的开发应当遵循微服务的理念,将软件尽可能分为不同的构件,分别以服务的形式封装,通过相应的API接口进行复用,实现软件模块的解耦.同时方便测试过程的持续集成。尤其在团队开发软件时,类似Docker这样的容器技术可以提供可复用的运行环境、灵活的资源配置和便捷的集成测试方法,在云件开发过程中,对功能的调用不再像传统软件那样对操作系统库的调用,而是对微服务的调用,云件的开发应当以面向微服务构件的形式进行,而不依赖于特定的操怍系统和硬件资源。

1.2云件的部署模式

    云件的部署其实就是微服务的部署。目前以Docker为代表的微服务容器技术发展越来越成熟。Docker提供了一系列容器部署工具,为开发者提供了一种新颖、便捷的软件集成测试与部署功能。

    云件的部署应当以服务发布的形式体现,不同的构件可以单独部署,也可以集成部署,提供向下兼容的服务部署形式,保证云件的不中断运行,这也是云服务的基本需求。

1.3云件的运行模式

    云件在设计时就以微服务的形式体现,云件的运行其实就是微服务的集成运行。云件与传统软件的不同点在于云件主体运行在云端,而传统软件主体运行在客户端。那么对云件来说,云端的服务如何与用户交互则是云件要解决的核心问题,尤其是桌面软件这样的交互式软件。

    由于云件的主体运行在云端,计算和存储都发生在云端服务器上,那么对客户端来说,只需要一个交互式的服务环境即可。近年来,软件的Web化是软件演化的一种趋势,云件可以将浏览器视为提供交互服务的构件,只不过其运行在客户端。这样,客户端就完全只依赖于浏览器,不需要安装如传统软件依赖的GL、JDK和.NET等类似的运行库,也就是一种客户端无依赖( client independent)的设计方法。

    浏览器的交互过程本质上是一个输入输出的可视化过程,只需要将客户端的鼠标和键盘等输入发送到云端服务器,将处理后的结果返回到客户端进行渲染,就可以实现类似本地软件的使用效果,具体交互过程如图l所示。

    云端服务主要由3个独立的微服务构成:X broker、Xserver和Application。Application也可以由多个另外的微服务构成。Applic,ation和Xserver通过Xll协议进行通信,将渲染请求发送给Xserver,Xserver将鼠标键盘事件等发送给Application,Xserver保持着Application的窗口状态,通过X broker代理同步到用户端的浏览器上,实现浏览器和Xserver的事件同步和渲染同步。这样,用户就可以像使用本地软件一样使用云件,浏览器作为窗口管理器,而且随时随地都能恢复到上次的工作运行状态,而不依赖于客户端的操作系统和运行状态。

2基于微服务架构的云件PaaS平台

    在明确了云件的概念后,为了验证云件的可实施性,本文开发T-套云件部署和应用的PaaS平台:CloudwareHub。它是云件开发、测试、部署和运维的集成平台,既面向开发者提供云件开发工具和云件运行环境,也面向用户提供云件服务。目前,CloudwareHub实现了主要的原型功能,以验证云件模式的可用性,并提供常用的办公云件和开发工具云件等服务。

2.1云件PaaS平台系统的架构

    CloudwareHub云件PaaS平台的系统整体架构如图2所示。

从图2中可以看到,CloudwareHub软件层设计主要由3个部分组成:Container Service、X Service和WebService。Container Service主要提供应用程序的运行环境服务,每个应用程序都封装为Docker镜像,在ContainerPool中分配一定的内存和存储空间,由C broker管理各个容器的生命周期,并与X Service通信;X Service提供Xserver服务,向下通过Xll协议与Container Service通信,向上以TCP协议与Web Service通信,Xserver的生命周期由X broker管理;Web Service提供Web方式的交互和数据服务,其本身可以分为Frontend Web和BackendAPI两个独立模块,Backend API提供Restful形式的接口,由Frontend Web调用,实际的数据则通过Backend API和数据库的交互完成。另外,由于应用程序的交互是实时有状态的,而HTTP协议是无状态的,Web Service中的WebSocket Server实现了从浏览器到X Service的实时通信。

2.2云件PaaS平台的控制平面和数据平面

    基于上述CloudwareHub软件结构,CloudwareHub的各服务之间的通信过程可以分为控制平面和数据平面,如图3所示。

    图3中cl~c5为控制平面通道,dl~d6为数据平面通道。控制平面主要实现云件的生命周期控制,如云件的运行、关闭和重启等,cl为用户通过浏览器调用Backend API的过程,基于HTTP Restful API将用户的请求发送到云端。对CloudwareHub来说,主要的请求包括X Service请求(分辨率调整、鼠标键盘事件等)和Container Service请求(应用程序运行、关闭和重启),分别通过c2和c3基于TCP协议与X manager和C manager通信。X manager利用Xorg'si提供的如Xlib和XCB等库对Xorg程序进行控制,C manager则通过Docker提供的API和相应的languagebinding实现对Docker的控制。

    数据平面主要关注交互层的数据流,dl为浏览器和Websocket Server的通信过程,通过Websocket协议将用户的鼠标和键盘等输入发送到Websocket Server,WebsocketServer实时将云件的输出显示图像传到浏览器;d2为Websocket Server和X service的数据交互,基于TCP协议,对上述的事件和图像进行转发,交由X transmitter进一步处理;d3为X transmitter和Xorg的交互过程,Xtransmitter利用XCB等库和Xtest扩展将鼠标键盘事件发送给Xorg,同时将Xorg的帧缓存中发生变化的图像压缩后发送给Websocket Server,Websocket Server将图像进一步发送到终端浏览器。为了能够快速获取变化图像,Xtransmitter采用了与Xorg共享内存的方式获取对应的渲染位图。d4为云件xll客户端应用程序和Xorg通信的数据通道,该过程完全基于Xll protocol实现;d5为剪贴板扩展的数据通道,以实现用户在客户端以及不同云件之间的数据复制过程,客户端数据可以通过d5发送到Clipboardbroker,然后通过d6的数据通道发送到对应云件应用程序的剪贴板缓冲区。

2.3云件PaaS平台的微服务运行环境

    CloudwareHub本身提供的是微服务容器运行环境,为了实现规模化部署、容灾和灵活配置,系统的部署和运行也以微服务形式架设在IaaS云计算系统上。CloudwareHub原型系统运行在2台云主机上,配置为1核、2 GB内存和20 GB硬盘。VVeb Service运行在其中一台云主机上,通过域名cloudwarehub.com访问,其环境部署架构如图4所示。

X Service和Container Service运行在另一台云主机上,之所以放在一台云主机上,是为了提高Container和Xorg的通信效率,降低网络延迟,其主要的运行环境架构如图5所示。

    Container Service构建在Linux环境下,基于UbuntuServer 14.04,安装Docker工具组和Xorg驱动以及编程库。Cloudware brokers部分主要包括C manager和X manager,对下层的Xorg和Docker进行管理,对外提供TCP通信端,透过防火墙对外提供服务。

2.4云件PaaS平台的优势

    从以上分析可以看出,云件PaaS平台由于采用了微服务架构,将原本单一的应用按照功能边界分解成一系列独立、专注的微服务。每个微服务对应传统应用中的一个组件,但是可以独立编译、部署和扩展。相对单块架构,云件PaaS平台具备以下优势。

    1)云件复杂度可控

    在将应用分解的同时,规避了原本复杂度无止境的积累。每一个微服务专注于单一功能(如单一的云件实例),并通过定义良好的接口清晰表述服务边界。由于云件体积小、复杂度低,每个微服务可由-个小规模开发团队完全掌控,易于保持高可维护性和开发效率。可以非常方便地支持开发人员开发各种丰富的云件实例。

    2)云件独立部署

    由于微服务具备独立的运行进程,所以每个微服务(如单个云件)也可以独立部署。当某个云件服务发生变更时无需编译、部署整个应用。由微服务组成的应用相当于具备一系列可并行的发布流程,使得发布更加高效,同时降低对生产环境所造成的风险,最终缩短云件交付周期。

    3)云件技术选型灵活

    微服务架构下,技术选型是去中心化的。每个团队可以根据自身服务的需求和行业发展的现状,自由选择最适合云件开发的技术栈。由于每个云件实例相对简单,当需要对技术栈进行升级时所面临的风险较低,甚至完全重构一个云件也是可行的。

    4)容错

    当某一组件发生故障时,在单一进程的传统架构下,故障很有可能在进程内扩散,形成应用全局性不可用。在微服务架构下,故障会被隔离在单个云件服务中。若设计良好,其他云件可通过重试、平稳退化等机制实现应用层面的容错。

    5)可扩展

    单块架构应用也可以实现横向扩展,就是将整个应用完整地复制到不同的节点。当云件的不同组件在扩展需求上存在差异时,微服务架构便体现出其灵活性,因为每个云件可以根据实际需求独立进行扩展。

    虽然微服务架构带来了诸多优势,但必须承认,构建、部署、维护分布式的微服务系统并不容易。本文所提出的基于微服务的云件PaaS平台,利用容器所提供的轻量级、面向应用的虚拟化运行环境为微服务提供了理想的载体。同样,基于容器技术的云服务将极大地简化容器化云件服务创建、集成、部署、运维的整个流程,从而推动云件在云端的大规模实践。

3 CloudwareHub云件平台的体验

    由于云件本身是基于网络的服务,其体验和网络环境有很大的关系,在局域网环境下网络延迟不太明显,但是在广域网环境中,网络的不稳定性可能导致云件的使用体验较差。为了测试云件的体验指数,本文在Ucloud上部署了CloudwareHub系统,并提供Eclipse等云件服务。系统的运行界面如图6和图7所示。

    为了评估CloudwareHub提供服务的体验性能,本文测试了在不同网络环境下从键盘按下到字符完全渲染到浏览器所用的平均交互时延。通过对交互时延的度量,可以定量地评估用户的体验,评估测量结果如图8所示。

  从图8的结果分析可知,通信的数据量并不大,但是时延基本是固定的,数据量和带宽并不是造成时延的主要原因,主要的时延由TCP通信过程和内存复制的过程造成。从用户感性体验角度观察,带宽在5 Mbps以上时基本感受不到时延带来的影响,带宽低于5 Mbps时,用户操作频繁时会感受到按键的黏滞感。如何解决网络的固有延时问题和在抖动网络的情况下保证云件的用户体验是未来云件研究的关键方向和问题。

4结束语

    云计算技术的发展和成熟不仅带来数据中心的变革,也会影响软件的开发、部署和运行,进而影响软件的使用方式。在这样的环境下,利用云件的方式去开发部署软件将是未来云环境下软件的主要形式。云件本身体现了一切皆服务的理念,其微服务的设计理念更容易应用

到云环境中,对用户来说云件也是软件使用上的新方向和趋势,能够让用户直接享受到云计算服务。软件云化将是未来云计算的主要应用手段,云件将成为软件云化的主要指导思想。5摘要:

随着微服务、容器等理念和技术的不断深入,云计算环境下的软件形态将进一步朝着云件( Cloudware)的方向发展。云件技术以服务为核心,以云平台为支撑,是实现传统软件云化的重要手段,是未来云环境下的软件开发、软件部署、软件运维和软件使用的重要手段,是软件在云计算平台下的新思想。文章基于轻量级容器技术和微服务架构,提出了一种新的云件PaaS平台,该平台可以在不修改传统软件的情况下,直接将软件部署到云端运行,并通过浏览器服务于终端用户。通过采用微服务架构设计,使得该云件平台具有较好的扩展性、规模化部署、容灾和灵活配置等特性。

关键字:

上一篇:成果介绍: 淀粉对蓝晶石矿物浮选行为影响及机理研究

下一篇:成果介绍:我国食品质量与安全专业的主干课程设置分析研究

行业资讯月点击排行

展会信息月点击排行

招商信息月点击排行

首页 资讯 招标 项目 展会
关于我们 | 广告服务 | 友情连接 | 联系我们
触屏版 电脑版
安装信息网 www.36qyk.cn.