CN108566432A - PaaS平台的应用部署方法、装置、服务器及存储介质 - Google Patents
PaaS平台的应用部署方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN108566432A CN108566432A CN201810385571.XA CN201810385571A CN108566432A CN 108566432 A CN108566432 A CN 108566432A CN 201810385571 A CN201810385571 A CN 201810385571A CN 108566432 A CN108566432 A CN 108566432A
- Authority
- CN
- China
- Prior art keywords
- application
- account
- target
- server
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种PaaS平台的应用部署方法、装置、服务器及存储介质,属于PaaS平台领域。所述方法包括:接收管理服务器发送的应用部署指令,应用部署指令用于指示应用服务器部署目标应用;根据应用部署指令,为目标应用创建目标账号和目标数据目录,目标账号用于唯一标识目标应用,目标数据目录下包含目标应用产生的应用数据,且不同应用对应的数据目录不同;将目标应用与目标账号和目标数据目录进行绑定;在目标账号下部署目标应用。本申请实施例中,通过为不同应用分配不同的账号,实现了同一应用服务器中不同应用间的进程隔离,并实现了同一应用服务器中不同应用间的数据隔离,提高了PaaS平台中应用的安全性。
Description
技术领域
本申请实施例涉及PaaS平台技术领域,特别涉及一种PaaS平台的应用部署方法、装置、服务器及存储介质。
背景技术
平台即服务(Platform-as-a-Service,PaaS)是一种将服务器平台或开发环境作为服务提供给应用开发商的服务模式。
PssS平台提供了应用开发到上线过程中所涉及的一系列基础服务支持,降低了应用开发的难度,而如何保证PaaS平台中众多应用进程的安全性成为有待解决的问题之一。
发明内容
本申请实施例提供了一种PaaS平台的应用部署方法、装置、服务器及存储介质,可以用于解决如何提高PaaS平台中众多应用进程的安全性的问题。所述技术方案如下:
第一方面,提供了一种PaaS平台的应用部署方法,所述方法用于PaaS平台中的应用服务器,所述应用服务器运行有多个应用,所述方法包括:
接收管理服务器发送的应用部署指令,所述应用部署指令用于指示所述应用服务器部署目标应用;
根据所述应用部署指令,为所述目标应用创建目标账号和目标数据目录,所述目标账号用于唯一标识所述目标应用,所述目标数据目录下包含所述目标应用产生的应用数据,且不同应用对应的数据目录不同;
将所述目标应用与所述目标账号和所述目标数据目录进行绑定;
在所述目标账号下部署所述目标应用。
第二方面,提供了一种PaaS平台的应用部署装置,所述装置用于PaaS平台中的应用服务器,所述应用服务器运行有多个应用,所述装置包括:
第一接收模块,用于接收管理服务器发送的应用部署指令,所述应用部署指令用于指示所述应用服务器部署目标应用;
创建模块,用于根据所述应用部署指令,为所述目标应用创建目标账号和目标数据目录,所述目标账号用于唯一标识所述目标应用,所述目标数据目录下包含所述目标应用产生的应用数据,且不同应用对应的数据目录不同;
绑定模块,用于将所述目标应用与所述目标账号和所述目标数据目录进行绑定;
部署模块,用于在所述目标账号下部署所述目标应用。
第三方面,提供了一种服务器,所述服务器包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如第一方面所述的应用部署方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如第一方面所述的应用部署方法。
本申请实施例中,应用服务器接收到应用部署指令后,为目标应用创建唯一的目标账号以及唯一的目标数据目录,并将目标应用与目标账号和目标数据目录进行绑定,从而在目标账号下部署目标应用;通过为不同应用分配不同的账号,实现了同一应用服务器中不同应用间的进程隔离,并且,通过将不同应用的应用数据存储在不同的数据目录下,实现了同一应用服务器中不同应用间的数据隔离,进而提高了PaaS平台中应用的安全性。
附图说明
图1是本申请一个实施例提供的PaaS平台的架构图;
图2是PaaS平台中应用部署过程的实施示意图;
图3是应用服务器中Agent的结构示意图;
图4示出了本申请一个示例性实施例示出的应用部署方法的流程图;
图5示出了本申请另一个示例性实施例示出的应用部署方法的流程图;
图6是为应用对应的数据目录挂载虚拟逻辑卷的实施示意图;
图7示出了本申请一个实施例提供的应用部署装置的结构框图;
图8示出了本申请一个实施例提供的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
为了方便理解,下面对本申请实施例中涉及的名词进行解释。
虚拟逻辑卷(virtual logical volume,lv):由逻辑磁盘形成的虚拟盘,或称为磁盘分区。举个简单的例子,存在两个硬盘,容量分别为20G和30G,当需要划分出两个25G的存储空间时,采用物理分区的方式无法做到,此时则需要采用虚拟逻辑卷的方式,划分出两个25G的逻辑盘。
其中,不同虚拟逻辑卷可以位于同一磁盘,也可以位于不同的磁盘,且同一磁盘中不同虚拟逻辑卷之间相互独立,互不影响。
虚拟逻辑卷可以通过软件磁盘阵列(Software Disk Array,SDA)实现,且磁盘阵列(redundant arrays of independent disks,raid)可以采用raid0、raid1或raw,本申请实施例并不对此进行限定。
请参考图1,其示出了本申请一个实施例提供的PaaS平台的架构图。该PaaS平台包括若干个机房10,各个机房10设置在不同地理区域,且每个机房10中包含应用服务器11、管理服务器12、注册服务器13和存储服务器14。
在一种可能的配置方式中,每个机房中设置有两台管理服务器12、三台注册服务器13以及三台存储服务器14。本申请实施例并不对机房中各种服务器的配置数量进行限定。
应用服务器11是运行有应用进程的服务器。其中,不同的应用进程用于提供不同的服务,且应用进程直接运行在应用服务器11的操作系统上,或,应用进程运行在应用服务器11内部的容器中,以便进行资源(包括硬件资源和网络资源)和访问权限隔离,减少应用进程间的相互影响。
为了实现对应用进程的管理,本申请实施例中,应用服务器11中设置有代理(Agent),该Agent即用于对运行的各个应用进程进行管理。可选的,该Agent为应用服务器11中的独立进程,用于控制应用进程的启动和停止,并对应用进程健康检查,从而保证应用进程所提供服务的可用性。本申请各个实施例提供的应用部署方法可以由应用服务器(Agent)执行。
管理服务器12用于管理机房中各台服务器。可选的,管理服务器12负责应用部署、系统管理、消息队列管理、数据库管理、告警服务、搜索管理、分布式系统可靠协调管理等等。
在一种可能的实施方式中,消息队列管理包括RabbitMQ管理,数据库管理包括Redis和MongoDB管理,搜索管理包括ElasticSearch管理,分布式系统可靠协调管理包括Zookeeper管理。
为了保证管理的一致性,如图1所示,不同机房中的管理服务器12之间进行双向同步,并保持完全对等。比如,当机房A中管理服务器12的管理配置信息发生变更时,机房A中的管理服务器12即与机房B中的管理服务器12进行一次同步,以便机房B中的管理服务器12更新自身的管理配置信息。
注册服务器13是用于为应用进程注册服务端口的服务器,后续终端即通过该服务端口访问相应的应用进程,从而获取应用提供的相应服务。可选的,注册服务器13为全局命名(Global Naming Services,GNS)服务器,且注册的服务端口为传输控制协议(Transmission Control Protocol,TCP)端口。
为了保证同一应用进程在不同机房中命名注册的一致性,如图1所示,不同机房中的注册服务器13之间进行双向同步,并保持完全对等。比如,当机房A的注册服务器13为新增应用进程注册了服务端口后,该注册服务器13即与机房B中的注册服务器13进行一次同步,确保新增应用进程在机房B中的注册服务器13完成注册,并注册相同的服务端口。
存储服务器14是用于进行数据存储的服务器,可选的,该存储服务器14是分布式环境下高可用的键值(key-value)存储服务器,比如,存储服务器14为ETCD服务器或MySQL服务器。可选的,存储服务器14与注册服务器13相连,用于存储并维护应用进程与服务端口之间的对应关系;可选的,存储服务器14与管理服务器12相连,用于存储并维护不同应用进程对应的应用信息。
在一种可能的应用场景下,如图2所示,当需要部署新的应用进程时,管理员登陆管理服务器12后,通过管理服务器12向应用服务器11下发应用部署指令,管理服务器12根据该指令部署应用进程,并通过注册服务器13为应用进程注册服务端口。完成应用进程部署后,管理服务器12中的Agent启动应用进程,并在完成启动后,对应用进程进行健康检查,从而确保应用进程的可用性。并且,管理服务器12和注册服务器13通过数据更新的方式,分别将新增应用进程的应用信息及其服务端口更新至存储服务器14中,并与其它机房中的管理服务器12以及注册服务器13进行双向同步。
可选的,管理服务器12下发应用部署指令中包含应用规格、部署信息、环境变量、应用配置等信息。其中,应用规格包括中央处理(Central Procession Unit,CPU)规格、内存规格、存储容量规格以及网络上下行带宽规格中的至少一种;部署信息包括分配应用服务器标识、配置实例数量、文件目录、日志目录、部署脚本和回滚脚本中的至少一种;环境变量包括Java堆内存参数、垃圾回收(Garbage Collection,GC)参数、域名系统(Domain NameSystem,DNS)服务器信息、DNS生存周期(Time-To-Live,TTL)中的至少一种;应用配置包括应用进程标识、配置版本号等等。
可选的,应用服务器11中的Agent采用插件管理模式,利用插件实现对应用进程的管理,该Agent中包含若干实现不同功能的插件以及统一的插件管理模块,并支持插件的动态安装和卸载。
如图3所示,Agent中包括消息队列插件、数据库插件、应用部署插件、日志查看插件和健康检查插件。在实现插件动态安装时,插件通过管理服务器12调用应用程序编程接口(Application Programming Interface,API)进行插件注册,完成注册后,Agent的插件管理模块通过下载、编译、加载、校验等一系列操作,完成插件安装。当接收到管理服务器12下发的指令时,Agent中的插件管理模块即将指令分发至相应的插件来执行。比如,当接收到应用部署指令时,插件管理单元即将指令分发至应用部署插件,由应用部署插件完成应用部署;在应用完成部署并启动后,插件管理模块通过健康检查插件对应用进程进行健康检查,保证应用进程的可用性。
为了保证Agent的可靠性,避免因Agent宕机导致无法服务的问题,可选的,Agent在应用服务器11启动后,启动自检程序,从而通过自检程序定期检查Agent是否启动,并在检测到未启动的情况下实现重启,避免宕机。
可选的,如图3所示,Agent中还包括升级管理模块,用于根据管理服务器12下发的升级指令,完成Agent自升级。为了保证升级安全性,Agent接收到升级指令后,对拉取到的升级包进行合法性检测,并在检测到升级包合法时,对当前Agent程序进行备份后进行升级。若自检程序检测到升级失败,则使用备份对Agent进行恢复重启。
出于安全性考虑,管理服务器12向应用服务器11发送的指令使用私钥加密,应用服务器11接收到指令后,使用相应的公钥对指令进行解密,并在解密成功后执行指令并返回执行结果。可选的,针对不同类型的指令,管理服务器12加密时使用的私钥不同,相应的,应用服务器11进行解密时使用的公钥不同。其中,对于Agent操作指令,管理服务器12使用第一私钥对其进行加密,应用服务器11使用第一公钥对其进行解密,第一私钥和第一公钥分别存储在管理服务器12和应用服务器11本地;对于Agent升级指令,管理服务器12使用第二私钥对其进行加密,应用服务器11使用第二公钥对其进行解密,由于Agent操作指令会影响到Agent运行,因此,第二私钥由管理员保管,且不存储在管理服务器12中,而第二公钥则存储在应用服务器11本地。
需要说明的是,每个机房还可以包含其它必要组件,比如用于实现服务发现、请求分流以及负载均衡的接入网关,本申请实施例并不对此构成限定。
相关技术中,当应用服务器上同时运行有多个应用时,通常使用一个管理账号对多个应用部署及管理。举个简单的例子,应用服务器上运行有应用A、B、C、D、E、F、G和H。当管理员使用管理账号admin001和相应密码登陆后,即可对应用A、B、C和D进行管理;管理员使用管理账号admin002和相应密码登陆后,即可对应用E、F、G和H进行管理。采用这种管理方式,同一管理账号下各个应用之间相互可见,管理应用时存在越权风险。
比如,当管理员甲和管理员乙共同使用管理账号admin001对应应用进行管理,其中,管理员甲仅负责管理应用A和应用B,而管理员乙仅负责管理应用C和应用D。显然,采用这种管理方式,管理员甲和乙均存在越权管理应用的风险。
而本申请实施例中,为了避免上述风险,应用服务器部署应用时,为应用分配并绑定唯一的账号,并将应用运行在唯一账号下,确保各个应用仅能在其对应的目标账号下进行部署及管理,实现了应用权限隔离;并且,通过为应用分配唯一的目标数据目录,确保不同应用的应用数据存储在各自目录下,实现应用数据隔离。下面采用示意性的实施例进行说明。
请参考图4,其示出了本申请一个示例性实施例示出的应用部署方法的流程图。本实施例以该方法应用于图1所示的应用服务器11来举例说明。该方法包括:
步骤401,接收管理服务器发送的应用部署指令,应用部署指令用于指示应用服务器部署目标应用。
当需要在应用服务器中部署新的应用(即目标应用)时,管理员即可视化界面登录管理服务器,并通过管理服务器向应用服务器发送应用部署指令,指示应用服务器部署新的应用。可选的,该应用部署指令中至少包含目标应用的应用标识。
可选的,为了提高应用部署的安全性,管理服务器使用本地私钥对应用部署指令进行加密,应用服务器接收到应用部署指令后,即使用本地公钥对其进行解密,若解密成功,则确定应用部署指令安全,并进行应用部署;若解密失败,则确定应用部署指令存在风险,并对其进行丢弃。
步骤402,根据应用部署指令,为目标应用创建目标账号和目标数据目录,目标账号用于唯一标识目标应用,目标数据目录下包含目标应用产生的应用数据,且不同应用对应的数据目录不同。
与相关技术中,将目标应用与管理账号绑定不同,本实施例中,应用服务器为目标应用创建唯一的目标账号以及存储应用数据的目标数据目录,以便后续对目标账号与目标应用进行绑定。
其中,应用服务器中不同应用对应的账号不同,且不同应用对应的数据目录不同。可选的,应用对应的账号可以随机生成或者按照预设规律生成(比如递增规律),本实施例并不对生成账号的方式进行限定。
比如,当应用服务器按照递增规律为应用配置账号,且已部署应用对应的账号分别为appid001、appid002和appid003时,应用服务器则为目标应用创建的目标账号为appid004。
可选的,目标数据目录用于存储目标应用运行过程中产生的应用数据,比如,该应用数据包括缓存数据、应用日志数据等等。本实施例并不对应用数据的具体类型进行限定。
可选的,应用服务器基于目标账号创建目标数据目录,从而保证目标数据目录的唯一性。
步骤403,将目标应用与目标账号和目标数据目录进行绑定。
进一步的,应用服务器分别将创建的目标账号和目标数据目录与目标应用进行绑定,并对绑定关系进行存储。在一个示意性的例子时,应用服务器中存储的绑定关系如表一所示。
表一
应用标识 | 账号 | 数据目录 |
App001 | appid001 | /var/logs/appid001 |
App002 | appid002 | /var/logs/appid002 |
App003 | appid003 | /var/logs/appid003 |
步骤404,在目标账号下部署目标应用。
完成绑定后,应用服务器即可在目标账号下部署目标应用。
由于应用绑定了唯一且不可登录的账号(仅包含账号,无法采用现有的账号+密码方式进行登陆),因此普通管理员无法从当前的目标账号切换到其他账号,从而避免越权管理的风险。当需要对应用服务器中其他应用进行管理时,需要借助Linux的用户权限机制,使用最高权限(root权限)进行帐号切换。下述实施例将对账号切换机制进行详细说明。
综上所述,本申请实施例中,应用服务器接收到应用部署指令后,为目标应用创建唯一的目标账号以及唯一的目标数据目录,并将目标应用与目标账号和目标数据目录进行绑定,从而在目标账号下部署目标应用;通过为不同应用分配不同的账号,实现了同一应用服务器中不同应用间的进程隔离,并且,通过将不同应用的应用数据存储在不同的数据目录下,实现了同一应用服务器中不同应用间的数据隔离,进而提高了PaaS平台中应用的安全性。
采用图4所示的实施例实现应用部署时,虽然不同应用的应用数据被存储在各自的数据目录下,但是数据的读写权限并未进行明确划分,且即便划分了读写权限,由于不同数据目录被挂载在同一磁盘上,因此存在大型应用的应用数据将磁盘写满,导致小型应用的应用数据无法写入的问题。为了解决上述问题,实现真正意义上的应用数据隔离,本申请实施例中,应用服务器采用挂载虚拟逻辑卷的方式进行应用数据存储,下面采用示意性的实施例进行说明。
请参考图5,其示出了本申请另一个示例性实施例示出的应用部署方法的流程图。本实施例以该方法应用于图1所示的应用服务器11来举例说明。该方法包括:
步骤501,接收管理服务器发送的应用部署指令,应用部署指令用于指示应用服务器部署目标应用。
本步骤的实施方式与上述步骤401相似,本实施例在此不再赘述。
步骤502,随机生成目标账号,目标账号与应用服务器中其它应用对应的账号不同。
为了实现应用进程隔离,应用服务器需要为每个应用分配唯一的目标账号,在一种可能的实施方式中,应用服务器接收到应用部署指令后,为目标应用随机生成目标账号,并保证目标账号与应用服务器中其它应用对应的账号不同。
在其他可能的实施方式中,应用服务器还可以采用雪花算法(snowflake)或基于雪花算法的变种算法生成目标账号,凡是能够生成全局唯一标识的算法均可以用于生成目标账号,本申请实施例并不对具体算法进行限定。
示意性的,如图6所示,应用服务器为应用A生成的账号为“appid001”,为应用B生成的账号为“appid002”。
步骤503,根据数据根目录和目标账号生成目标数据目录,其中,应用服务器中各个应用对应的相同的数据根目录。
在实现不同应用间的数据隔离时,应用服务器首先需要为不同应用创建各自的数据目录,以便应用向各自的数据目录下写入应用数据。为了保证应用对应数据目录的唯一性,可选的,应用服务器基于生成的唯一账号,为应用创建数据目录。
在一种可能的实施方式中,不同应用对应相同的数据根目录,应用服务器即根据数据根目录和目标账号生成目标数据目录。由于不同应用对应的账号不同,因此最终生成的数据目录也互不相同。
可选的,生成目标数据目录后,应用服务器为不同目标数据目录设置相应的读写权限,使得仅目标应用具备读写目标数据目录下数据的权限。
示意性的,如图6所示,以应用数据为应用日志(logs)为例,应用服务器根据数据根目录/var/logs以及appid001,为应用A创建数据目录/var/logs/appid001(即图6中的/path1),根据目录/var/logs以及appid002,为应用B创建数据目录/var/logs/appid002(即图6中的/path2)。
步骤504,将虚拟逻辑卷挂载到目标数据目录下,虚拟逻辑卷用于存储应用数据,不同应用对应不同虚拟逻辑卷,且不同虚拟逻辑卷之间相互独立。
虽然为不同应用分配了不同的数据目录,但是由于数据目录都挂载在同一磁盘下,因此可能出现大型应用的应用数据将磁盘写满,导致小型应用的应用数据无法写入的问题。为了避免上述问题,本实施例中,在应用部署前,应用服务器预先创建虚拟逻辑卷,并为虚拟逻辑卷划分相应的容量;在应用部署时,应用服务器即将虚拟逻辑卷挂载到相应的数据目录下,从而借助虚拟逻辑卷实现数据隔离。
针对挂载虚拟逻辑卷的方式,在一种可能的实施方式中,应用服务器中预先创建有若干容量相同的虚拟逻辑卷(不同的虚拟逻辑卷对应相同的磁盘,也可以对应不同的磁盘),且管理服务器发送的应用部署指令中包含目标应用对应的目录容量,该目录容量为目标应用对应数据目录的最大数据容量。当接收到应用部署指令时,应用服务器即根据目录容量和各个虚拟逻辑卷的容量,计算为目标数据目录分配的虚拟逻辑卷的目标数量,从而将目标数量的虚拟逻辑卷挂载到目标数据目录下。
示意性的,如图6所示,应用服务器中预先创建4个容量为10G的虚拟逻辑卷lv1、lv2、lv3和lv4。当应用A对应的目录容量为20G时,应用服务器确定需要为应用A对应的数据目录分配两个虚拟逻辑卷,从而将虚拟逻辑卷lv1和lv2挂载在应用A的数据目录下。当应用B对应的目录容量为15G时,应用服务器确定需要为应用B对应的数据目录分配两个虚拟逻辑卷,由于虚拟逻辑卷lv1和lv2已挂载在应用A的数据目录下,因此,应用服务器将虚拟逻辑卷lv3和lv4已挂载在应用B的数据目录下。
在另一种虚拟逻辑卷挂载方式中,应用服务器中未预先创建虚拟逻辑卷,而是在应用部署前,根据应用部署指令中包含的目标容量创建虚拟逻辑卷,从而将目标容量的虚拟逻辑卷挂载到目标数据目录下。
比如,当应用A对应的目录容量为20G时,应用服务器即创建容量为20G的虚拟逻辑卷,并挂载在应用A的数据目录下;当应用B对应的目录容量为15G时,应用服务器即创建容量为15G的虚拟逻辑卷,并挂载在应用B的数据目录下。
在其他可能的实施方式中,应用服务器还可以为不同应用分配统一容量的虚拟逻辑卷并进行挂载,本申请实施例并不对挂载虚拟逻辑卷的具体方式进行限定。
步骤505,将目标应用与目标账号和目标数据目录进行绑定。
步骤506,在目标账号下部署目标应用。
上述步骤505至506的实施方式与步骤403至404相似,本实施例在此不再赘述。
步骤507,根据目标数据目录,将应用数据写入到虚拟逻辑卷中。
目标应用在应用服务器中完成部署后,即根据目标数据目录,将运行过程中产生的应用数据写入对应的虚拟逻辑卷中,并最终写入虚拟逻辑卷对应的底层磁盘中。
采用虚拟逻辑卷挂载目录的方式实现应用数据存储,不同应用只能将应用数据存储到指定虚拟逻辑卷中,且由于应用对应虚拟逻辑卷的容量固定,因此即便大应用的应用数据将自身虚拟逻辑卷写满,也不会占用小型应用的虚拟逻辑卷,进而避免小型应用的应用数据无法写入的问题。
步骤508,检测虚拟逻辑卷的已用容量是否达到容量阈值。
应用不断运行过程中,其虚拟逻辑卷的容量也将越来越小,为了避免应用数据无法写入,应用服务器检测虚拟逻辑卷的已用容量是否达到容量阈值,若达到,则启用告警机制进行告警,并执行步骤509;若未达到,则正常写入应用数据。其中,该容量阈值≤虚拟逻辑卷的最大容量。
比如,当虚拟逻辑卷的最大容量为10G时,该容量阈值可以为9G。
步骤509,若虚拟逻辑卷的已用容量达到容量阈值,则向管理服务器发送告警信息,告警信息用于提示虚拟逻辑卷容量不足。
当检测到虚拟逻辑卷的已用容量达到容量阈值时,应用服务器即向管理服务器发送告警信息,其中,该告警信息中至少包含应用的应用标识。
可选的,管理服务器中存储有不同应用对应的告警联系人,当接收到告警信息后,即采用预定方式向告警联系人发送告警提示,该预定方式包括短信、邮件、即时通信消息等等。
可选的,管理服务器接收到告警信息后,向应用服务器发送虚拟逻辑卷增加指令,以便应用服务器在应用对应的数据目录下挂载新的虚拟逻辑卷,提高数据目录的容量。
步骤510,接收管理服务器发送的账号切换指令,账号切换指令是管理服务器获取根权限后发送的,账号切换指令中包含切换应用对应的切换账号。
由于应用服务器仅为应用分配了不可登录账号,因此普通用户无法切换管理其他账号下的应用,而需要借助Linux的用户权限进行账号切换。
在一种可能的实施方式中,当需要切换管理应用时,管理服务器即切换至根(root)权限,再通过根权限向应用服务器发送包含切换账号的账号切换指令。由于根权限仅具有最高管理权限的高级管理员拥有,因此普通管理员切换管理应用时,首先需要经过高级管理员,提高了应用管理的安全性,避免越权管理。
比如,当需要切换至应用B进行管理时,管理服务器即在获取根权限后,向应用服务器发送应用B对应应用标识的账号切换指令。
步骤511,在切换账号下管理该切换应用。
应用服务器接收到账号切换指令后,即将当前账号切换为切换应用对应的切换账号,从而在切换账号下管理该切换应用。
本实施例中,应用服务器随机生成唯一账号后,根据该账号为应用生成数据目录,确保应用服务器中各应用对应数据目录的唯一性。
另外,通过将虚拟逻辑卷挂载到应用的数据目录上,并为虚拟逻辑卷设置固定容量,使得应用运行产生的应用数据仅能够写入自身的虚拟逻辑卷中,并避免大型应用占用小型应用数据存储空间的问题,达到了隔离应用数据的效果。
同时,采用上述方法,即便应用服务器内的某一应用被黑客攻破,其获取的权限也仅限于被攻破应用,无法获取其他应用的权限,从而保证了应用服务器内应用的安全性,避免应用服务器被攻破。
请参考图7,其示出了本申请一个实施例提供的应用部署装置的结构框图。该应用部署装置可以通过软件、硬件或者两者的结合实现成为图1中应用服务器11的全部或一部分。该装置包括:第一接收模块710、创建模块720、绑定模块730、部署模块740。
第一接收模块710,用于接收管理服务器发送的应用部署指令,所述应用部署指令用于指示所述应用服务器部署目标应用;
创建模块720,用于根据所述应用部署指令,为所述目标应用创建目标账号和目标数据目录,所述目标账号用于唯一标识所述目标应用,所述目标数据目录下包含所述目标应用产生的应用数据,且不同应用对应的数据目录不同;
绑定模块730,用于将所述目标应用与所述目标账号和所述目标数据目录进行绑定;
部署模块740,用于在所述目标账号下部署所述目标应用。
可选的,所述创建模块720,包括:
账号生成单元,用于随机生成所述目标账号,所述目标账号与所述应用服务器中其它应用对应的账号不同;
目录生成单元,根据数据根目录和所述目标账号生成所述目标数据目录,其中,所述应用服务器中各个应用对应的相同的所述数据根目录。
可选的呢,所述装置还包括:
第二接收模块,用于接收所述管理服务器发送的账号切换指令,所述账号切换指令是所述管理服务器获取根权限后发送的,所述账号切换指令中包含切换应用对应的切换账号;
管理模块,用于在所述切换账号下管理所述切换应用。
可选的,所述装置还包括:
挂载模块,用于将虚拟逻辑卷挂载到所述目标数据目录下,所述虚拟逻辑卷用于存储所述应用数据,不同应用对应不同虚拟逻辑卷,且不同虚拟逻辑卷之间相互独立;
所述装置还包括:
写入模块,用于根据所述目标数据目录,将所述应用数据写入到所述虚拟逻辑卷中。
可选的,所述应用部署指令中包含目录容量,所述挂载模块,包括:
第一挂载单元,用于根据所述目录容量和各个所述虚拟逻辑卷的容量,计算为所述目标数据目录分配的所述虚拟逻辑卷的目标数量;将所述目标数量的所述虚拟逻辑卷挂载到所述目标数据目录下;
或者,
第二挂载单元,用于根据所述目标容量创建所述虚拟逻辑卷;将所述目标容量的所述虚拟逻辑卷挂载到所述目标数据目录下。
可选的,所述装置还包括:
检测模块,用于检测所述虚拟逻辑卷的已用容量是否达到容量阈值;
告警模块,用于当所述虚拟逻辑卷的已用容量达到所述容量阈值时,向所述管理服务器发送告警信息,所述告警信息用于提示虚拟逻辑卷容量不足。
综上所述,本申请实施例中,应用服务器接收到应用部署指令后,为目标应用创建唯一的目标账号以及唯一的目标数据目录,并将目标应用与目标账号和目标数据目录进行绑定,从而在目标账号下部署目标应用;通过为不同应用分配不同的账号,实现了同一应用服务器中不同应用间的进程隔离,并且,通过将不同应用的应用数据存储在不同的数据目录下,实现了同一应用服务器中不同应用间的数据隔离,进而提高了PaaS平台中应用的安全性。
本实施例中,应用服务器随机生成唯一账号后,根据该账号为应用生成数据目录,确保应用服务器中各应用对应数据目录的唯一性。
另外,通过将虚拟逻辑卷挂载到应用的数据目录上,并为虚拟逻辑卷设置固定容量,使得应用运行产生的应用数据仅能够写入自身的虚拟逻辑卷中,并避免大型应用占用小型应用数据存储空间的问题,达到了隔离应用数据的效果。
同时,采用上述方法,即便应用服务器内的某一应用被黑客攻破,其获取的权限也仅限于被攻破应用,无法获取其他应用的权限,从而保证了应用服务器内应用的安全性,避免应用服务器被攻破。
请参考图8,其示出了本申请一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例提供的应用部署方法。具体来讲:
所述服务器800包括中央处理单元(CPU)801、包括随机存取存储器(RAM)802和只读存储器(ROM)803的系统存储器804,以及连接系统存储器804和中央处理单元801的系统总线805。所述服务器800还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)806,和用于存储操作系统813、应用程序814和其他程序模块815的大容量存储设备807。
所述基本输入/输出系统806包括有用于显示信息的显示器808和用于用户输入信息的诸如鼠标、键盘之类的输入设备809。其中所述显示器808和输入设备809都通过连接到系统总线805的输入输出控制器810连接到中央处理单元801。所述基本输入/输出系统806还可以包括输入输出控制器810以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器810还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备807通过连接到系统总线805的大容量存储控制器(未示出)连接到中央处理单元801。所述大容量存储设备807及其相关联的计算机可读介质为服务器800提供非易失性存储。也就是说,所述大容量存储设备807可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备807可以统称为存储器。
根据本发明的各种实施例,所述服务器800还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器800可以通过连接在所述系统总线805上的网络接口单元811连接到网络812,或者说,也可以使用网络接口单元811来连接到其他类型的网络或远程计算机系统。
所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集经配置以由一个或者一个以上处理器执行,以实现上述实施例中各个步骤的功能。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的应用部署方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的应用部署方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种PaaS平台的应用部署方法,其特征在于,所述方法用于PaaS平台中的应用服务器,所述应用服务器运行有多个应用,所述方法包括:
接收管理服务器发送的应用部署指令,所述应用部署指令用于指示所述应用服务器部署目标应用;
根据所述应用部署指令,为所述目标应用创建目标账号和目标数据目录,所述目标账号用于唯一标识所述目标应用,所述目标数据目录下包含所述目标应用产生的应用数据,且不同应用对应的数据目录不同;
将所述目标应用与所述目标账号和所述目标数据目录进行绑定;
在所述目标账号下部署所述目标应用。
2.根据权利要求1所述的方法,其特征在于,所述根据所述应用部署指令,为所述目标应用创建目标账号和目标数据目录,包括:
随机生成所述目标账号,所述目标账号与所述应用服务器中其它应用对应的账号不同;
根据数据根目录和所述目标账号生成所述目标数据目录,其中,所述应用服务器中各个应用对应的相同的所述数据根目录。
3.根据权利要求1所述的方法,其特征在于,所述在所述目标账号下部署所述目标应用之后,所述方法还包括:
接收所述管理服务器发送的账号切换指令,所述账号切换指令是所述管理服务器获取根权限后发送的,所述账号切换指令中包含切换应用对应的切换账号;
在所述切换账号下管理所述切换应用。
4.根据权利要求1至3任一所述的方法,其特征在于,所述根据所述应用部署指令,为所述目标应用创建目标账号和目标数据目录之后,所述方法还包括:
将虚拟逻辑卷挂载到所述目标数据目录下,所述虚拟逻辑卷用于存储所述应用数据,不同应用对应不同虚拟逻辑卷,且不同虚拟逻辑卷之间相互独立;
所述在所述目标账号下部署所述目标应用之后,所述方法还包括:
根据所述目标数据目录,将所述应用数据写入到所述虚拟逻辑卷中。
5.根据权利要求4所述的方法,其特征在于,所述应用部署指令中包含目录容量,所述将虚拟逻辑卷挂载到所述目标数据目录下,包括:
根据所述目录容量和各个所述虚拟逻辑卷的容量,计算为所述目标数据目录分配的所述虚拟逻辑卷的目标数量;将所述目标数量的所述虚拟逻辑卷挂载到所述目标数据目录下;
或者,
根据所述目标容量创建所述虚拟逻辑卷;将所述目标容量的所述虚拟逻辑卷挂载到所述目标数据目录下。
6.根据权利要求4所述的方法,其特征在于,所述将所述应用数据写入到所述虚拟逻辑卷中之后,所述方法还包括:
检测所述虚拟逻辑卷的已用容量是否达到容量阈值;
若所述虚拟逻辑卷的已用容量达到所述容量阈值,则向所述管理服务器发送告警信息,所述告警信息用于提示虚拟逻辑卷容量不足。
7.一种PaaS平台的应用部署装置,其特征在于,所述装置用于PaaS平台中的应用服务器,所述应用服务器运行有多个应用,所述装置包括:
第一接收模块,用于接收管理服务器发送的应用部署指令,所述应用部署指令用于指示所述应用服务器部署目标应用;
创建模块,用于根据所述应用部署指令,为所述目标应用创建目标账号和目标数据目录,所述目标账号用于唯一标识所述目标应用,所述目标数据目录下包含所述目标应用产生的应用数据,且不同应用对应的数据目录不同;
绑定模块,用于将所述目标应用与所述目标账号和所述目标数据目录进行绑定;
部署模块,用于在所述目标账号下部署所述目标应用。
8.根据权利要求7所述的装置,其特征在于,所述创建模块,包括:
账号生成单元,用于随机生成所述目标账号,所述目标账号与所述应用服务器中其它应用对应的账号不同;
目录生成单元,根据数据根目录和所述目标账号生成所述目标数据目录,其中,所述应用服务器中各个应用对应的相同的所述数据根目录。
9.一种服务器,其特征在于,所述服务器包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如权利要求1至6任一所述的应用部署方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如权利要求1至6任一所述的应用部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810385571.XA CN108566432B (zh) | 2018-04-26 | 2018-04-26 | PaaS平台的应用部署方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810385571.XA CN108566432B (zh) | 2018-04-26 | 2018-04-26 | PaaS平台的应用部署方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108566432A true CN108566432A (zh) | 2018-09-21 |
CN108566432B CN108566432B (zh) | 2021-02-09 |
Family
ID=63536907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810385571.XA Expired - Fee Related CN108566432B (zh) | 2018-04-26 | 2018-04-26 | PaaS平台的应用部署方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108566432B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111274004A (zh) * | 2020-02-27 | 2020-06-12 | 深圳市腾讯信息技术有限公司 | 进程实例管理方法、装置及计算机存储介质 |
CN113485713A (zh) * | 2021-07-20 | 2021-10-08 | 安超云软件有限公司 | 快速编译程序的方法及装置、电子设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103065081A (zh) * | 2013-01-11 | 2013-04-24 | 北京搜狐新媒体信息技术有限公司 | 一种PaaS平台的安全运行方法和PaaS平台 |
CN103501350A (zh) * | 2013-10-17 | 2014-01-08 | 中国联合网络通信集团有限公司 | 一种云计算平台中SaaS应用部署的方法及装置 |
CN103677983A (zh) * | 2012-09-20 | 2014-03-26 | 三亚中兴软件有限责任公司 | 应用的调度方法及装置 |
CN103701922A (zh) * | 2013-12-31 | 2014-04-02 | 曙光云计算技术有限公司 | Paas平台的应用安全部署的方法和系统 |
US20150242197A1 (en) * | 2014-02-25 | 2015-08-27 | Red Hat, Inc. | Automatic Installing and Scaling of Application Resources in a Multi-Tenant Platform-as-a-Service (PaaS) System |
CN105426250A (zh) * | 2015-11-30 | 2016-03-23 | 杭州数梦工场科技有限公司 | 一种资源管理的方法和装置 |
US9342299B2 (en) * | 2014-02-25 | 2016-05-17 | Red Hat, Inc. | Deployment optimization for activation of scaled applications in a multi-tenant platform-as-a-service (PaaS) system |
CN105824674A (zh) * | 2016-03-22 | 2016-08-03 | 乐视网信息技术(北京)股份有限公司 | 一种应用程序部署方法及装置 |
CN106445515A (zh) * | 2016-09-18 | 2017-02-22 | 深圳市华云中盛科技有限公司 | 一种基于容器的PaaS云的实现方法 |
-
2018
- 2018-04-26 CN CN201810385571.XA patent/CN108566432B/zh not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677983A (zh) * | 2012-09-20 | 2014-03-26 | 三亚中兴软件有限责任公司 | 应用的调度方法及装置 |
CN103065081A (zh) * | 2013-01-11 | 2013-04-24 | 北京搜狐新媒体信息技术有限公司 | 一种PaaS平台的安全运行方法和PaaS平台 |
CN103501350A (zh) * | 2013-10-17 | 2014-01-08 | 中国联合网络通信集团有限公司 | 一种云计算平台中SaaS应用部署的方法及装置 |
CN103701922A (zh) * | 2013-12-31 | 2014-04-02 | 曙光云计算技术有限公司 | Paas平台的应用安全部署的方法和系统 |
US20150242197A1 (en) * | 2014-02-25 | 2015-08-27 | Red Hat, Inc. | Automatic Installing and Scaling of Application Resources in a Multi-Tenant Platform-as-a-Service (PaaS) System |
US9342299B2 (en) * | 2014-02-25 | 2016-05-17 | Red Hat, Inc. | Deployment optimization for activation of scaled applications in a multi-tenant platform-as-a-service (PaaS) system |
CN105426250A (zh) * | 2015-11-30 | 2016-03-23 | 杭州数梦工场科技有限公司 | 一种资源管理的方法和装置 |
CN105824674A (zh) * | 2016-03-22 | 2016-08-03 | 乐视网信息技术(北京)股份有限公司 | 一种应用程序部署方法及装置 |
CN106445515A (zh) * | 2016-09-18 | 2017-02-22 | 深圳市华云中盛科技有限公司 | 一种基于容器的PaaS云的实现方法 |
Non-Patent Citations (1)
Title |
---|
杨莎莎: "《云平台PaaS层安全容器的设计与实现》", 《中国优秀硕士学位论文全文数据库-信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111274004A (zh) * | 2020-02-27 | 2020-06-12 | 深圳市腾讯信息技术有限公司 | 进程实例管理方法、装置及计算机存储介质 |
CN111274004B (zh) * | 2020-02-27 | 2023-06-20 | 深圳市腾讯信息技术有限公司 | 进程实例管理方法、装置及计算机存储介质 |
CN113485713A (zh) * | 2021-07-20 | 2021-10-08 | 安超云软件有限公司 | 快速编译程序的方法及装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108566432B (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113169952B (zh) | 一种基于区块链技术的容器云管理系统 | |
US10819701B2 (en) | Autonomous secrets management for a managed service identity | |
CN109478149B (zh) | 混合云计算系统中的访问服务 | |
CN103491144B (zh) | 一种广域网虚拟平台的构建方法 | |
US20220083643A1 (en) | Autonomous secrets renewal and distribution | |
KR102618665B1 (ko) | 블록체인을 사용한 버전 이력 관리 | |
CN108551487A (zh) | PaaS平台的应用部署方法、装置、服务器及存储介质 | |
CN109189334B (zh) | 一种区块链网络服务平台及其扩容方法、存储介质 | |
US10965457B2 (en) | Autonomous cross-scope secrets management | |
CN108595221A (zh) | PaaS平台的插件加载方法、装置、服务器及存储介质 | |
CN107690770B (zh) | 自主私钥恢复 | |
US8645240B1 (en) | System and method for usage billing of hosted applications | |
US9648084B2 (en) | System and method for providing an in-memory data grid application container | |
US10318747B1 (en) | Block chain based authentication | |
US8818886B1 (en) | System and method for usage billing of hosted applications | |
KR20180066148A (ko) | 네트워크 기능 가상화 아키텍처에서의 인증서 관리 방법 및 디바이스 | |
CN101309146B (zh) | 一种可自更新代理证书的网格安全系统的实现方法 | |
CN108566432A (zh) | PaaS平台的应用部署方法、装置、服务器及存储介质 | |
US10592942B1 (en) | System and method for usage billing of hosted applications | |
AU2020205090B2 (en) | Tracking tainted connection agents | |
JP2021039423A (ja) | システム、および制御方法 | |
US20240028376A1 (en) | Log forwarding for an agent platform appliance and software-defined data centers that are managed through the agent platform appliance | |
US20240007465A1 (en) | Controlling access to components of a software-defined data center in a hybrid environment | |
US11538078B1 (en) | System and method for usage billing of hosted applications | |
US20240007340A1 (en) | Executing on-demand workloads initiated from cloud services in a software-defined data center |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210209 |