背景技术:
许多公司和其它组织操作互连众多计算系统以支持其操作的计算机网络,例如其中计算系统位于同一地点(例如,作为本地网络的一部分)或替代地位于多个不同的地理位置(例如,经由一个或多个专用或公用中间网络连接)。例如,容纳大量互连的计算系统的数据中心已变得常见,例如通过单一组织操作且代表单一组织操作的专用数据中心,以及通过企业实体操作以向客户提供计算资源的公用数据中心。一些公用数据中心运营商为各种客户所拥有的硬件提供网络接入、电源以及安全安装设施,而其它公用数据中心运营商提供“全方位服务”设施,所述设施还包含可供其客户使用的硬件资源。
一些较大的基于云的提供商网络实施多个网络可访问服务,包含可用于实施多种应用程序的虚拟计算服务。例如,虚拟计算服务的客户可请求具有指定性能容量的某一数目的客虚拟机(也称为计算实例)的分配,并将所述客虚拟机配置为web服务器、应用程序服务器、数据库服务器及类似者以建立多层基于web的应用程序。提供商网络的多个另外的服务可用于复杂应用程序的各种部件,例如数据库服务、存储服务及类似者。
提供商网络的一些服务可利用其它服务的部件来实现常用任务模式或序列。例如,对于某些类型的应用程序(例如,以例如ruby、php或javatm等流行语言编写的基于web的应用程序),应用程序部署工作流可使用提供商网络的部署服务来较大程度地或完全地自动化。如果部署服务的客户提供足够的配置元数据和一系列源文件或可执行文件,那么部署服务可能能够分配并配置使所述应用程序联网所需的计算、存储以及联网服务的合适的资源。在一些情况下,所述服务还可能能够监控应用程序的性能,并基于工作量变化而按需要添加或去除资源。然而,从应用程序开发者的角度来看,通常可用于与应用程序部署服务通信的机制中的一些可为略繁琐的。尤其是在具有较快的代码开发速率和大量开发者的敏捷软件开发组织中,开发服务的通信机制有时可限制生产力。
附图说明
图1示出根据至少一些实施方案的示例系统环境,其中可针对应用程序部署服务按需要建立自定义通信信道。
图2示出根据至少一些实施方案的在客户端与应用程序部署服务的控制平面部件之间的示例交互。
图3示出根据至少一些实施方案的可被存储用于应用程序部署服务的自定义通信信道的示例元数据元素。
图4a至图4e共同地示出根据至少一些实施方案的可经由应用程序部署服务的自定义通信信道端点提交的请求的示例。
图5示出根据至少一些实施方案的可用于实施应用程序部署工作流的提供商网络服务的示例。
图6是示出根据至少一些实施方案的可经执行以配置并使用自定义通信信道以用于发送部署相关的工件的操作的方面的流程图。
图7是示出可在至少一些实施方案中使用的示例计算装置的方框图。
虽然在本文中通过若干实施方案和说明性图式的示例描述实施方案,但所属领域的技术人员应认识到,实施方案并不限于所描述的实施方案或图式。应理解,图式及其详细描述并不意图将实施方案限制为所公开的特定形式,相反,意图是涵盖落入如通过随附的权利要求书所界定的精神和范围内的所有修改、等效物以及替代方案。在本文中使用的标题是仅出于组织目的,而非意图用于限制说明书或权利要求书的范围。如贯穿此申请所使用,词语“可”以许可性意义使用(即,意味着具有做某事的可能),而非以强制性意义是使用(即,意味着必须)。类似地,词语“包括”、“包含”以及“含有”意指包括但不限于。
具体实施方式
本发明描述用于支持用于在客户端与提供商网络的应用程序部署服务之间的通信的自定义安全通信信道的方法和设备的各种实施方案。通过例如公司或公共部门组织等实体建立以将可经由互联网和/或其它网络访问的一个或多个服务(例如各种类型的多租户和/或单租户的基于云的计算或存储装置)提供到某一集合的分布式客户端或客户的网络可在此文档中被称为提供商网络。提供商网络还可被称为“公共云”环境。提供商网络的服务中的至少一些(以及因此,用于应用程序开发和部署的资源中的一些)可在一些实施方案中依赖于虚拟化,例如,可用作指配给计算服务的客户端的计算单元的虚拟机,且虚拟化存储装置可被提供到存储装置的客户端。提供商网络的一些服务可使用其它服务的部件来构建,例如,数据库服务可将虚拟计算服务的虚拟机用作底层处理引擎,并将数据库内容存储在一个或多个存储相关的服务的存储装置处。
根据至少一些实施方案,提供商网络可包含应用程序部署服务(ads),所述应用程序部署服务意图简化并自动化某些类型的应用程序的多个不同类别的部署任务。ads的客户端可例如根据指定规则上传给定应用程序的可执行版本,且ads随后可处理容量分配、负载均衡、扩展、应用程序健康监控及类似者的细节,而不必使客户端关注正被使用的资源的细节。在一些实施方案中,ads可使用提供商网络的多个其它服务,包含例如虚拟计算服务、一个或多个存储装置、一个或多个数据库服务、通知服务、健康监测服务、负载均衡服务、自动扩展服务以及一个或多个数据高速缓存服务。在至少一些实施方案中,ads可实施或支持一个或多个编程接口以作为默认机制,例如基于web的控制台,应用程序开发者或管理者可通过所述默认机制上传预打包的应用程序(例如,以用于基于javatm的应用程序的.jar文件或.war文件的形式)以用于开发。
在各种实施方案中,ads还可支持自定义(例如,应用程序特定的或客户特定的)安全通信信道的创建,例如电子邮件信道或消息传送应用程序信道,所述信道使得选定群组的开发者或应用程序管理员能够将部署工件提交到ads。依据给定自定义信道的所请求性质,所述信道可用于发送一个或多个类别的部署工件,例如单独的源代码文件、编译后的可执行文件、可解译脚本文件、应用程序的打包版本或配置文件。在至少一些实施方案中,ads可提供编程接口,所述编程接口使得客户端能够提交针对创建自定义通信信道的请求。请求(所述请求可例如通过例如软件开发团队的管理者或管理员等授权方提交)可指示所请求的通信的类型(例如,电子邮件、ftp(文件传输协议)或类似的数据传输应用程序的一个或多个变化型式、sms(短消息服务)或其它消息传送应用程序)、将被准许使用信道的客户端侧实体或装置的集合、安全细节,以及信道的各种其它特性,如下文进一步详细描述。
响应于接收到建立用于应用程序的自定义信道的请求,ads的部件可首先验证所述请求是来自授权方且应被满足,例如,通过查找客户数据库中的请求者的记录。如果请求为可接受的,那么ads可在提供商网络内在内部与一个或多个其它服务通信,例如电子邮件服务、消息传送服务或文件传输服务,和/或与外部通信服务通信,以针对所请求的信道建立通信端点集。在其中请求电子邮件通信的一个实施方案中,例如,可建立电子邮件地址集以作为专门用于应用程序的端点,而在其中sms为优选通信机制的情境下,可创建sms目的地号码集以作为端点。可将端点的列表提供给自定义信道的请求者,例如,用于分布在某一群组的软件开发者或将被准许使用端点的其它客户端当中。在一些实施方案中,ads或请求者可将端点集分成子群组,例如,其中一个子群组将用于源代码文件提交,另一子群组用于配置变化提交,且第三子群组用于可执行文件提交。在至少一个实施方案中,不同的端点可具有另外的安全性验证需要的相应集合(所述集合经建立以例如确保工件通过授权的提交者发送),可使用多步骤和/或多方认证协议,或可需要提交者的身份的某一其它证明。在多步骤认证协议中,ads可直到接收到一个或多个另外的验证消息(例如,响应于来自ads的挑战而从提交者接收),才基于接收到的工件的特定集合来实施对应用程序部署的任何改变。在多步骤多方认证协议中,可必须在ads处从某一其它受信任方获得以下确认:工件的发送者经授权以提交使用自定义信道接收到的至少所述类型的消息,例如,以响应于由ads发送的验证查询。在一些实施方案中,预批准的发送者端点(和/或接收方端点)的相应的“白名单”可通过ads维持,且验证从白名单发送者端点中的一个接收到包含部署工件的给定消息对于安全性验证而言可为足够的。在一个实施方案中,受信任的第三方的白名单还可或替代地维持在ads处(或存储在其它地方且从ads访问)以用于多方认证目的。
在端点信息已被传播到开发者和/或ads的其它客户端时,客户端可起始提交其工件。当在针对给定应用程序建立的自定义信道端点中的一个处接收到消息时,ads的部件可解析消息的内容并提取部署相关的有效负载。依据包含在有效负载中的工件的性质和/或依据先前针对信道或端点建立的安全性规则,ads首先可必须执行一个或多个另外的安全性验证操作。如果需要任何此类另外的验证,且成功地完成对应的操作,那么ads可使用工件实施一个或多个部署任务。例如,如果工件是可执行包,那么所述包可被发送到执行平台的合适的集合,并根据正被使用的编程环境的规则来部署,例如,应用服务器进程或web服务器进程在一些情况下可重新开始。如果工件是源代码文件或源代码文件集,那么在一些实施方案中,ads可精确地确定源代码将被置于源代码层次中的何处,使用接收到的源代码来编译应用程序的新版本,并部署应用程序的新版本。如果工件包含配置变化,那么在一些实施方案中,ads可确定将如何施加变化,且随后在所请求的变化被认为可行时施加变化,例如,通过用另一配置文件替换一个配置文件,通过获取另外的资源以作为应用程序的部署目标队,通过从所述队去除一个或多个资源,或通过某一其它手段。因此,ads可通过执行不同的动作集合来对不同的提交做出响应。在至少一些实施方案中,ads可在修改应用程序的状态之前确保,应用程序的全功能状态的快照(例如,源文件和/或可执行文件)存储在存储库中。所保存的状态可在新近提交的变化不成功时通过ads恢复。
如先前所提及,ads的客户端的不同集合(例如,从事于应用程序代码的不同部分的软件开发者、应用程序配置专家及类似者)可在一些实施方案中被批准使用自定义信道端点的相应集合,其中相应的安全性相关的规则正被实行。通过建立易于使用的机制,例如电子邮件或sms,客户端可比在所有客户端必须使用ads的默认接口集时容易得多地将变化提交到应用程序。因此,至少在一些情况下,软件开发过程可针对对应的应用程序加速。在各种实施方案中,自定义信道可在用于某些客户端的开发过程的某些阶段期间被终止或关闭,例如,ads可支持选择退出接口,所述选择退出接口可按需要用于停用自定义信道或信道端点的子集。在一些实施方案中,所创建的每一端点可具有相关联的到期时间,在所述到期时间后,除非端点被更新,否则所述端点可不再被使用。下文进一步详细描述可在应用程序部署服务处建立并使用自定义通信信道所用的方式的各种其它方面。
示例系统环境
图1示出根据至少一些实施方案的示例系统环境,其中可针对应用程序部署服务按需要建立自定义通信信道。如图所示,系统100包含提供商网络102,在所述提供商网络处实施应用程序部署服务(ads)110。ads110可使得客户端能够简化部署和管理各种应用程序的过程。例如,使用默认通信信道或由ads110支持的自定义通信信道,客户端可提供应用程序内容和配置设置,且ads随后可接管获取、配置并管理应用程序所需的资源的状态的责任。在所描绘的实施方案中,ads110的部署控制器部件120已将一个应用程序(“app1”)部署到第一资源集152a,且将第二应用程序(“app2”)部署到第二资源集152b。在所描绘的示例中,每一资源集152包括计算平台的集合153(例如,分别用于app1和app2的计算平台153a和153b)以及存储平台的集合154(例如,分别用于app1和app2的154a和154b)。用于不同的应用程序的资源集152可由于提供商网络的服务的多租户性质而在一些实施方案中重叠。
如图所示,ads110包括应用程序配置元数据存储库112和应用程序源存储库114。应用程序配置元数据存储库112可包括每一管理的应用程序(例如app1和app2)的相应记录,所述记录指示所需用于所述应用程序的资源的种类,资源互连所用的方式,资源在应用程序中扮演的角色(例如,“web服务器”对“应用程序服务器”对“数据库服务器”),将用于从应用程序的资源集添加或去除资源的规则等等。在所描绘的实施方案中,应用程序源存储库114可包含每一管理的应用程序的一个或多个源代码层次(和/或对应的可执行代码模块)。在至少一些实施方案中,源代码和/或配置元数据可物理地存储在提供商网络的一个或多个存储服务处,且ads可包括指向源代码和配置元数据所位于的位置的指针。
ads可在所描绘的实施方案中实施一个或多个控制平面或管理编程接口124,从而使得授权客户端能够提交各种类型的请求,包含对建立自定义通信信道以用于提交部署相关的工件的请求,所述工件例如源文件或可执行文件、全部可执行程序和/或各种类型的配置设置。响应于经由接口124接收到的对建立自定义通信信道的请求,ads可起始一个或多个自定义通信信道端点122(例如,ep1至epn)的建立。例如,ep1至epn可包括相应的电子邮件地址、sms/文本传送目的地地址、将用于类ftp传输的ip(互联网协议)地址和端口,或此类不同类型的端点的组合。ep的细节可已由ads提供给请求方,以用于进一步传播到应用程序开发者和/或其它类型的客户端。在所描绘的实施方案中,例如,ep1已被建立用于app1开发者,而epn已被建立用于app2开发者(例如,响应于从app1和app2管理员或所有者接收到的相应的信道建立请求)。在一些实施方案中,给定应用程序可具有为其建立的多种不同的自定义信道端点,例如,某一数目的电子邮件地址,某一数目的文本传送目的地等等。在一些实施方案中,自定义信道端点可在ads的请求处通过一个或多个其它实体创建,所述实体例如电子邮件服务部件、消息传送服务部件及类似者。在缺少自定义信道的情况下或除自定义信道外,ads的客户端可使用默认通信信道端点123(例如基于web的管理控制台、应用程序编程接口、自定义gui接口、命令行工具及类似者)来提交各种类型的部署相关的工件。在至少一个实施方案中,自定义信道创建请求还可经由默认通信信道端点123提交。
在已建立所请求的用于例如app1或app2等给定应用程序的自定义信道端点之后,包含应用程序的各种类型的部署工件的消息可被提交到端点,例如,从例如170a或170b等应用程序开发者装置170提交。在不同的实施方案中,多种计算装置可用作应用程序开发者装置170,包含例如服务器,工作站,例如台式个人计算机、膝上型计算机、平板计算机、智能手机及类似者。在所描绘的实施方案中,每一开发者装置170示出为包括可用于ads的默认通信信道的相应的电子邮件客户端155(例如,155a和155b)、相应的sms/文本传送应用程序客户端156(例如,156a和156b),以及相应的控制台应用程序(例如,web浏览器)157。装置170a的电子邮件客户端155a可用于将app1的部署工件提交到ep1,而sms/文本传送应用程序156b可用于将app2的部署工件提交到epn。在一些实施方案中,例如电子邮件客户端、sms/文本传送应用程序及类似者的客户端侧部件中的一些或全部可实施为集成开发环境(ide)和/或其它软件开发工具的插件或附加件。
当在端点122处接收到来自装置170的特定消息时,所述消息可被解析(例如,通过部署控制器120或为了所述部署控制器)以提取所包含的部署工件。在端点处接收到的消息的内容可在本文中被称为“有效负载”。在一些实施方案中,包含在消息中的部署工件的种类可指示或用于推断出将起始的部署动作或任务。例如,如果与javatm的版本兼容的.war或.jar文件被包含在消息中,那么部署控制器120可推断出,所述文件将被复制到资源集150中的一个或多个目的地资源以用于部署(例如,app1的资源集152a或app2的资源集152b),且如果配置文件被包含在消息中,那么部署控制器可将配置设置保存在存储库112中且随后应用配置设置。在一些情况下,依据用于app1和/或app2的应用程序执行环境的种类,经由ep1或epn的给定提交可引起在代码存储库114处和在执行资源集152处的变化。在至少一些实施方案中,依据各种因素,例如应用程序的安全性设置、所使用的通信信道或端点,可在进行任何改变之前通过部署控制器120执行或起始另外的安全性验证步骤。验证步骤可例如包含多步骤认证过程,其中第二消息被发送回到提交者,且对第二消息的及时响应被用于认证发送者的身份。在另一方法中,可使用多方验证机制,其中对于经由自定义信道端点接收到的至少一些类型的提交,可将批准的针对所提交的变化的请求发送到与发送者不同的某一方(例如,“同等”开发者或受信任授权方),且所请求的变化直到被批准时才可被接受。如果此类验证步骤失败,那么包含对应的工件的消息可在各种实施方案中被丢弃,例如,默默地丢弃或在将错误的指示提供给发送者之后丢弃。
自定义信道建立的概述
图2示出根据至少一些实施方案的在客户端与应用程序部署服务的控制平面部件之间的示例交互。如图所示,特定管理的应用程序“appk”的受信任信道请求者210可将针对自定义通信信道的建立请求230发送到应用程序部署服务(ads)的控制平面部件220。受信任请求者可例如具有用户识别符,关于appk部署的管理权限已通过ads授予。建立请求可指示所需的通信信道的种类(例如,电子邮件对sms)以及信道的各种期望性质,例如在ads处经由自定义信道接收的通信所需的多个不同端点和/或所需的另外的安全性验证步骤(如果存在)。在各种实施方案中,可支持多个不同的编程接口以用于建立请求230和/或与ads相关联的其它类型的管理请求,所述编程接口例如一个或多个基于web的控制台、应用程序编程接口(api)、命令行工具、单独的图形用户界面及类似者。
在认证建立请求之后,验证所述请求是来自授权且受信任方,ads部件220可在所描绘的实施方案中将内部请求232发送到提供商网络的通信服务225的部件,指示将为请求者210创建具有指定性质集的自定义信道。通信服务225可执行必要的操作以建立端点集272(appk-ep1、appk-ep2、appk-ep3、appk-ep4等),以用于appk的自定义通信信道,例如可创建电子邮件地址或sms目的地地址的新集合,可选择来自预分配的地址池的地址集以用于端点集272,可分配计算和/或联网资源以处理经由新信道预期的消息,等等。在所描绘的实施方案中,通信服务225可将指示端点集272的响应234a发送到ads部件220。在一些实施方案中,ads部件可必须将针对自定义信道的配置的请求发送到例如在提供商网络外部的第三方通信服务等实体,例如,替代于将内部请求232发送到提供商网络的通信服务225或除所述操作外。例如,在一个实施方案中,可联系电信服务提供商和/或外部dns服务器以有助于自定义信道的配置。
在所描绘的实施方案中,指示关于端点集272的信息的响应234b随后可被传递到受信任信道请求者210。端点信息的相应子集可被提供到在appk的准备或测试中所涉及的各种开发者或其它客户端,例如,经由分别发送到客户端装置252a和252b的消息235a和235b。在一些实施方案中,例如,端点集272可基于对应的客户端的角色而划分,一些开发者可被授权访问端点的一个子集,而其它开发者可被授权访问不同的子集。在各种实施方案中,一些端点可被专门地指定用于源代码或可执行代码,而其它端点可被指定用于配置改变请求。在所描绘的示例中,源于客户端装置252a的源代码或可执行包240a可被引导到appk-ep1,而源于客户端装置252b的源代码或可执行包240b可被引导到appk-ep3。指示appk部署的相应配置改变的配置文件集241a和241b可被发送到appk-ep2(从客户端装置252a)和appk-ep4(从客户端装置252b)。
在每一情况下,在于集合272中的某一端点处从客户端装置接收到消息之后,ads可确定另外的安全性验证步骤(例如先前描述的安全性验证步骤)是否将在包含于消息中的部署工件应用或使用于对应的任务或工作流中之前被应用。在一些情况下,依据所请求的通信信道的配置,可不需要另外的安全检查。在至少一个实施方案中,建立自定义通信信道的请求可从客户端装置252发送,而非从单独的受信任信道请求者发送。在一个实施方案中,针对自定义信道的请求可被包含在发送到ads的关于appk的部署的初始配置消息中,在此情况下,稍后可不需要单独的建立请求。在一些实施方案中,端点可在不同的应用程序当中共享,例如,如果ads的给定客户具有通过ads管理的两个单独的应用程序appk和appj,那么可针对appj和appk两者建立单个电子邮件地址。
在至少一些实施方案中,例如受信任信道请求者等授权方还可使用与用于建立请求230的编程接口类似的编程接口来请求一个或多个自定义信道的停用或去除。接口还可用于撤销一个或多个客户端实体使用自定义信道或使用自定义信道的特定端点集的权利。例如,在特定应用程序已部署在生产环境中之后,各种开发者和测试者的经由先前建立的一个或多个自定义信道来提交部署工件的权利可被剥夺。如果在客户端的提交权利已被撤销之后在端点中的一个处接收到消息,那么在一些实施方案中,ads可丢弃消息和/或产生错误消息。当然,在端点或信道整体被停用之后,对提交消息的尝试可不成功。
自定义信道元数据
图3示出根据至少一些实施方案的可被存储用于应用程序部署服务的自定义通信信道的示例元数据元素。如图所示,在各种实施方案中,为应用程序部署服务的一个或多个客户建立的自定义通信信道的元数据记录310可包含(除其它元素外)以下各项的某一组合:信道类型元素312、管理的应用程序集指示器313、白名单提交者识别符元素314、多方认证的受信任方的列表315、提交者角色元素316、接收者端点集318、接收者角色元素320、增强的安全性验证规则集322、时间约束集324,和/或数据传输约束元素326。信道类型312可指示将用于信道的特定通信机制,例如电子邮件、文本传送/sms、ftp及类似者。管理的应用程序集313可指示信道将用于的应用程序集。如先前所提及,在一些情况下,其部署通过ads管理的多个应用程序可指配有共享自定义通信信道,而在其它实施方案中,给定的自定义通信信道可用于不超过一个受管理的应用程序。
在一些实施方案中,批准的提交者识别符(例如,电子邮件地址、从其可接受电子邮件或文件传输的ip地址、文本传送源地址或类似者)的白名单314可被包含在存储用于自定义通信信道的元数据中。此白名单可用于在一些实施方案中执行至少第一安全性验证,例如,如果从不在白名单中的来源接收到源代码文件,那么所述源代码文件的提交可被ads拒绝。在一些实施方案中,对应于白名单的相应的提交者角色315还可包含在信道元数据记录310中,所述记录指示例如可从每一白名单提交者接受的提交的种类。一些提交者可例如被允许改变管理的应用程序的配置文件,而其它提交者不可,且角色信息可限制可由各种提交者准许的部署相关的提交的种类。在一个实施方案中,还可包含受信任方316的列表,所述列表将出于多方认证目的被查询。
在各种实施方案中,元数据记录310还可包含针对自定义信道建立的接收者端点集318,以及与相应的接收者端点相关联的特定角色(如果存在)320。例如,在一个实施方案中,一个电子邮件地址可建立为端点以从管理的应用程序的开发者接收源代码文件,而第二电子邮件地址可被建立以接收配置改变。在其中将相应的角色指配给接收者端点的实施方案中,所述角色可用于验证部署工件仅被提交到指定用于所述部署工件的那些端点,例如,发送到指定用于配置改变文件的端点的源代码文件可被拒绝。
多个增强的安全性验证规则322中的任何规则可被指定用于自定义通信信道。一些规则可适用于经由信道接收的所有消息,而其它规则可仅适用于特定类型的消息、提交者的子集和/或端点的子集。在一个实施方案中,至少对于一些类型的提交的部署工件,可遵循多步骤认证协议。在此情境中,ads可发送针对提交的第一响应,请求发送者以通过ads先前提供的安全令牌或以发送者的身份中某一另外证明做出响应。在一些实施方案中,ads可关于在解析并分析特定消息的内容之后是否需要另外的安全性验证步骤来做决定。根据规则322,如果消息指示不重要的改变(例如,对源代码文件的注释的添加),那么ads可接受所提交的工件,而对于更加明显的改变,可执行另外的安全性验证操作。在一些实施方案中,给定自定义通信信道可具有与其相关联的一个或多个时间约束324,例如,信道可具有到期时间,在所述到期时间之后所述信道将被关闭;或信道可仅在工作日期间的特定时段处可用。例如,在一个组织中,可期望开发者在正常工作时间期间使用特定的通信信道,且在正常工作时间之后使用不同的通信信道。在一个实施方案中,数据传输约束326可被指定用于自定义通信信道,例如,限制用于部署工件的提交的带宽或在给定时间段期间准许的提交的次数。如果给定消息违反数据传输约束,或包含其部署任务将引起对数据传输约束的违反的工件,那么在至少一些实施方案中,所述消息可被拒绝。在一些情况下,在提供商网络处实施的应用程序部署服务可利用提供商网络的其它服务(例如,与图5中示出的服务类似的服务),或在提供商网络外部的服务,以实行数据传输约束326、时间约束324和/或安全性规则322。图3中示出的元数据元素中的至少一些的内容可从针对信道的建立请求得到,例如,所建立的接收者端点的数目、提交者的白名单和/或安全性验证规则等可在建立请求中指示。在各种实施方案中,可不使用图3中示出的元数据元素的种类中的一个或多个,且在其它实施方案中,替代地或除图3中示出的元素外,可存储图3中未示出的另外元素。
使用自定义信道执行的部署任务的示例
图4a至图4e共同地示出根据至少一些实施方案的可经由应用程序部署服务(ads)的自定义通信信道端点提交的请求的示例。根据一些实施方案,在使用ads部署特定管理的应用程序之前,配置和环境信息的集合可必须被提供到ads。如图4a中示出,在一些实施方案中,针对应用程序创建的自定义信道可用于将所需的配置信息作为先决条件提交到应用程序appk的第一部署。appk配置文件435可从客户端装置452a发送到自定义信道的端点appk-ep。ads部件420(所述部件可包含可选的安全性验证器部件444)可接收配置文件435、执行所需的任何安全性检查,并在安全性检查成功的情况下在所描绘的实施方案中将配置文件435作为appk的条目437存储在应用程序配置元数据存储库112中。条目437可在appk实际上部署在所描绘的实施方案中时使用;也就是说,appk的资源只是因为配置文件435被提交而不需要被分配。(在图4a中示出的实施方案中,自定义信道可已响应于经由不需要使用appk-ep的编程接口接收到的单独的请求而建立。)
在图4b中,初始的appk部署包447可从不同的客户端装置452b提交到appk-ep。依据appk的编程语言和执行环境,部署包447可包含仅单一可执行文件、一系列可执行文件、或源文件和可执行文件的某一组合。源文件在一些情况下可必须被编译,而在其它情况下,所述文件可被解译而非编译。响应于接收到部署包447,在图4b的示例情境中,ads部件420可从存储库112检索appk配置条目437,并获取资源集,appk的子部件将在所述资源集处部署。appk的初始部署资源集466可例如包含一个或多个负载均衡器,例如lb434;多个web服务器,例如ws436a、ws436b以及ws436c;以及多个应用程序服务器,例如as438a和as438b。在一些实施方案中,这些资源中的一些或全部可包括提供商网络的计算服务的虚拟机。在各种实施方案中,其它提供商网络服务还可或替代地通过ads用于管理的应用程序的部署和配置,如下文关于图5。在一些实施方案中,初始部署包447可与配置文件435一起提交,例如,在提交到自定义信道端点appk-ep的单一消息内;也就是说,图4a和4b中示出的工件的类型不必单独地发送到ads部件420。
图4c示出web服务器层的文件集441(例如,包括一个或多个html或javascript文件)经由appk-ep从客户端装置452c到ads的提交。在此情境下,ads部件420可解析包含文件集441的消息的内容,并确定文件集将被复制到appk部署资源集466的web服务器中的一个或多个(在执行所需的任何另外的安全性或正确性检查之后)。因此,文件集441的副本可被发送到ws436a、436b以及436c。appk资源集466中的其它资源在所描绘的实施方案中可不受文件集441的提交影响。
在图4d中,客户端可将源文件集442从客户端装置452d提交到appk-ep,所述源文件集既定用于appk的应用程序服务器层。ads部件420可检查从客户端装置452d接收到的消息的内容,确定所述消息包含必须被编译的源文件,并利用编译器448来获得文件的可执行版本。可执行版本随后可被部署到应用程序服务器as438a和438b。在至少一些实施方案中,ads部件首先可必须确定(例如,通过检查源文件的名称,或通过解析源文件的内容)在源代码层次内文件将被置于的位置,以便没有错误地编译应用程序。在一些此类情境中,ads部件可识别正确位置,保存文件的较旧版本(如果此较旧版本存在),将新近提交的文件存储在所述位置中,且随后调用编译器或类似工具来获得可执行的应用程序的新版本。可执行应用程序的新版本随后可在一个或多个执行平台上运行。在其它情境中,ads可简单地将新近提交的文件放置在源代码层次内为所述文件确定的位置中,且可不需要明确编译(例如,如果源文件为待解译而非编译的脚本)。
在图4e中,appk的配置改变请求449可经由appk-ep从客户端装置452e提交到ads部件420。ads部件420可执行此类改变所需的任何另外的安全性验证步骤,并修改存储在应用程序配置元数据存储库112中的条目437。依据配置改变请求的性质,还可修改分配给appk的部署的资源中的一些。例如,如图所示,可采用另外的应用程序服务器资源(as438c)来满足配置改变请求。ads部件420可起始配置改变的必要动作(例如,对as438c的计算平台的获取,必需的文件到as438c的复制,在web服务器层处需要的配置改变,等等),而不需要与客户端的任何另外交互。在各种实施方案中,可执行多个不同类别的配置相关的部署服务任务,以响应于使用自定义信道接收到的消息。一些配置任务可涉及对部署用于应用程序的资源的改变,而其它配置任务可不需要对应用程序的资源占用的改变。例如,针对例如在应用程序的线程池中的线程的最大数目等参数的设置可经由自定义信道用消息提交,或可提交针对部署新软件模块或扩展的请求。在此类情境中,响应于消息执行的任务可不引起对用于应用程序的资源集的改变。如图4a至4e中示出,多种不同类型的部署相关的工件可使用在ads处针对一个或多个受管理的应用程序建立的自定义信道来提交,且ads可基于所提交的工件的类型来采用不同的动作集。在各种实施方案中,其它类型的部署任务(例如对监控各种资源的健康状态所用的方式的改变)还可使用自定义信道请求。尽管提交到ads的请求示出为源于图4a至4e中的不同客户端装置452a至452e,且通过相同的ads部件420处理,但一般来说,涉及自定义通信信道的使用的请求可源于任何合适的客户端装置,且可在各种实施方案中通过多个ads部件中的任何部件处理。
使用其它提供商网络服务的应用程序部署
在一些实施方案中,如先前所提及,在ads处响应于经由自定义通信信道的端点接收到的请求而执行的部署任务可涉及使用提供商网络的一个或多个其它服务。图5示出根据至少一些实施方案的可用于实施应用程序部署工作流的提供商网络服务的示例。在所描绘的实施方案中,提供商网络的服务组合500可包含以下各项的群组:计算服务504、存储服务506、数据库服务510、联网服务550以及通用公用事业服务540。(应用程序部署服务540f被包含在通用公用事业服务群组中。)计算服务504可包含例如虚拟计算服务504a(例如,可从其获得对各种类型的通用虚拟机的访问以用于部署通过ads540f管理的各种应用程序的服务),分布式/并行计算服务504b(其中专用硬件/软件部件经设计用于具有高并行程度的应用程序),自动化的基于工作量的供应服务504c,所述分配服务可用于优雅地扩展或缩减分配给所部署的应用程序的资源,以及负载均衡服务504d,所述负载均衡服务用以在用于各种所部署的应用程序的计算资源的群组当中分布工作量。例如,在图4b至图4e中,负载均衡器lb434可使用负载均衡服务504d来实施,且ws和as资源可使用虚拟计算服务504a实施。
若干不同类型的存储相关的服务可在一些提供商网络处实施,例如提供到非结构化存储对象的基于web服务的访问的对象存储服务506a,或提供到存储卷的块装置级访问的卷服务506b。在一些实施方案中,可实施多个不同的数据库相关的服务,例如关系型数据库服务510a、非关系型(例如,“nosql”)数据库服务510b,或数据库高速缓存服务510c。
在所描绘的实施方案中,各种联网相关的服务可在提供商网络处得到支持,例如,隔离的虚拟网络(ivn)服务550a。使用ivn服务和虚拟计算服务404a的组合,众多的虚拟机和/或其它装置可考虑客户而被配置为隔离的虚拟网络的一部分,且客户可被授予ivn的较大联网配置灵活性。例如,客户可以非常类似于可在客户拥有的设施处选择网络配置设置的方式的方式在隔离的虚拟网络内指配其选择的ip地址,建立子网和路由,等等。在一些实施方案中,ivn还可被称为“虚拟私有云”。直连服务550b(所述直连服务允许客户经由专用物理链路或“直连”链路将外部网络连接到提供商网络),或虚拟网络接口服务550c(所述虚拟网络接口服务允许逻辑网络接口以编程方式附接到虚拟机,而不需要物理网络接口卡的重新配置)。
除ads外,通用公用事业服务类别可包含例如工作流服务540a,所述工作流服务可用于实施涉及在其它服务的部件之间的交互的工作流;用于用户/群组认证的身份管理服务540b;用于持续的消息传送应用程序的队列消息服务540c;电子邮件/sms管理服务540d;以及用于调度各种类型的事件通知的通知服务540e。在一些实施方案中还可实施用于所部署的应用程序的健康监控服务,且在各种实施方案中,针对改变监控通过ads管理的一个或多个应用程序的此服务的代理的配置的请求还可经由自定义信道提交。在不同的实施方案中,其它服务可在提供商网络处实施,且可不实施图5中示出的服务的类型中的一些。
图5中示出的服务的各种组合可用于在不同的实施方案中的ads的部署相关的任务。在其中自定义通信信道使用电子邮件或sms的实施方案中,服务540d可用于建立并管理信道。在一些实施方案中,数据库或存储服务可用于管理的应用程序,在虚拟计算服务504a的虚拟机处的本地可用的存储装置对于所述应用程序不足够。在一个实施方案中,应用程序可部署在使用服务550a建立的ivn内。在其它实施方案中,ads的开发者或客户端可利用ivn,也就是说,部署工件可从ivn内的装置提交到ads。在至少一个实施方案中,自定义通信信道可具有以下安全性要求:将接受仅源于指定ivn内的提交。通知和消息传送服务可用于在各种实施方案中的应用程序间通信,和/或在通过ads完成特定的部署任务时通知客户。图5中示出的服务中的每一个可使用硬件和/或软件资源的某一集合来实施,其中所述资源中的一些由多个服务共享。
用于将自定义通信信道用于应用程序部署的方法
图6是示出根据至少一些实施方案的可经执行以配置并使用自定义安全通信信道以用于发送部署相关的工件的操作的方面的流程图。如元素601中所示,针对建立安全的自定义通信信道以用于发送一个或多个受管理的应用程序的部署相关的工件的请求可在提供商网络的部署服务的控制平面部件处被接收。建立请求可指示信道的各种性质,例如将使用的通信机制的类型,将建立的端点的数目,将响应于经由端点接收到的消息而执行的额外的安全性验证步骤(如果存在),等等。
ads控制平面部件可在所描绘的实施方案中关于接收到的建立请求执行一个或多个认证和/或授权检查,且还可验证足够的资源可用于待接受的请求。如果请求被接受以用于实施,那么ads部件可协调所请求的信道的建立与在提供商网络内和/或外部的一个或多个其它服务或提供商(元素604),例如电子邮件服务或sms/文本传送服务。在各种实施方案中,具有与图3中示出的内容相似的内容的元数据记录可通过或为了ads创建和存储。例如,表示批准的提交者的白名单、用于各种端点安全性规则、提交者和接收者的角色等的条目可存储在ads的元数据存储库和/或在建立或管理信道时所涉及的其它实体中。
一个或多个端点的集合(例如,将用于文件传输、sms/文本传送目的地或类似者的电子邮件地址、ip地址和端口组合)可被提供到信道的请求者(元素607)。在一些实施方案中,端点集可被划分:例如,端点的一个群组可被指定用于白名单提交者的一个群组,且端点的不同群组可被指定用于白名单提交者的另一群组。端点还或替代地可基于其在一些实施方案中的既定用途或功能来划分,例如,基于可响应于经由端点接收到的消息而必须执行的部署任务的类别。例如,一些端点可被唯一地指定用于源代码提交,而其它端点可被指定用于配置相关的工件提交。对于源代码提交(依据编程语言和/或应用程序的运行时环境),在一些实施方案中,部署任务可包含将所提交的文件的版本复制/存储在存储库中,编译文件,和/或将可所提交文件的可执行版本复制到执行平台的集合。对于配置相关的提交,部署任务可包含更新配置文件或应用程序元数据记录,重新开始一个或多个进程,分配或停止使用资源,等等。
在完成自定义通信信道的建立阶段后,客户端可经由信道的端点提交部署相关的工件。包含一个或多个工件的特定消息可在端点处接收(元素610)。工件的种类可基于管理的应用程序的语言和运行时特征而有所不同。例如,对于一些应用程序,表示应用程序整体的可执行文件(例如,采用a.jar文件或a.war文件的形式)、形成应用程序的部分的一个或多个可执行模块、可必须在部署之前编译的一个或多个源代码文件、不需要编译的一个或多个源文件、管理应用程序的可调参数的配置文件,和/或控制应用程序的资源分配的配置文件,可都被认为是合法种类的工件。对于其它应用程序,仅这些类型的部署相关的工件的子集可经由自定义信道发送,例如,在应用程序开发者可被准许经由信道提交一些类型的源代码改变时,可不准许大尺度的配置改变。
接收消息的ads部件可解析其内容,提取并分析部署相关的工件,并基于消息中的工件的种类来确定将执行什么部署任务。在一些实施方案中,消息可包含对ads的明确指示,指示将使用所提交的工件执行的部署工作流或任务。ads部件可以可选地确保工件(或对应于消息的任务)不违反任何数据传输约束,所述数据传输约束可与信道或端点相关联(元素613)。在所描绘的实施方案中,ads部件还可以可选地基于消息内容来确定在起始部署任务之前是否将执行任何另外的安全性验证操作(例如多方或多步骤认证)(如元素613中还指示)。在多步骤认证技术中,ads可直到接收到一个或多个另外的验证消息(例如,响应于来自ads的挑战而从提交者接收),才基于消息内容来实施对应用程序部署的任何改变。在多步骤多方认证协议中,可必须在ads处从某一其它受信任方获得以下确认:消息的发送者将受信任(至少关于在接收到的消息中指示的工件),例如,以响应于由ads发送的验证查询。在一些实施方案中,所执行的安全性操作可基于工件的内容或类型而有所不同,例如,指示较大配置改变的一些工件可需要比可简单地将注释添加到文件或对文件做出微小的校正的工件严格得多的安全性检查。如果ads部件确定所提及的消息满足指定标准,那么在各种实施方案中可在没有另外的安全性检查的情况下起始与所提交的消息相关联的部署任务。在一些实施方案中,待执行的安全性检查可至少部分基于提交者的身份来确定,例如,可在没有另外的安全性验证的情况下接受对源代码的特定开发者改变。
在完成任何所需的另外安全性步骤之后(或如果不需要此类操作),可起始所请求的工作流(元素616)。如上文所提及,执行为工作流的部分的部署任务可包含例如,将工件的版本保存在存储库处,确定一个或多个文件在代码层次内的合适位置并将文件存储在确定的位置中,编译一个或多个文件,重新开始一个或多个进程,分配并配置用于所部署的应用程序的另外的资源,停止使用用于所部署的应用程序的一个或多个先前分配的资源,等等。对应于元素610、613以及616的操作可针对经由自定义信道的端点接收的每一消息重复。
应注意,在各种实施方案中,图6中示出的操作的种类中的一些可以与所示出的次序不同的次序实施,或可并行地(例如,连续地)而非顺序地执行。例如,针对经由自定义信道的端点提交的若干不同的消息的处理可并行地执行。在一些实施方案中,可不实施图6中示出的操作中的一些,或可执行未示出的另外操作。
使用案例
上文描述的建立用于将工件提交到应用程序部署服务的自定义通信信道的技术可在多种情境下使用。大型软件开发和质量保证团队通常可包含分布在全世界的雇员,使用许多不同类型的计算装置来编写并起始复杂软件程序的测试。此类团队通常可使用提供商网络的应用程序部署服务的功能性来利用可扩展基础架构,并委托资源分配和资源健康管理的责任。如果部署服务支持用于源代码和/或配置改变的提交的多种可自定义信道的建立,而非需要所有提交遵循包括例如管理控制台等默认信道的使用的严格的提交协议,那么这可增加开发和质量保证团队的生产力。
说明性计算机系统
在至少一些实施方案中,实施上文描述的用于支持对部署服务(包含部署服务的各种控制平面和/或数据面部件和/或用于部署并执行管理的应用程序的资源)的工件提交的自定义通信信道的建立和使用的技术中的一个或多个的服务器可包含通用计算机系统,所述计算机系统包含或被配置来访问一个或多个计算机可访问介质。图7示出此通用计算装置9000。在所示出的实施方案中,计算装置9000包含一个或多个处理器9010,所述处理器经由输入/输出(i/o)接口9030耦接到系统存储器9020(所述系统存储器可包括非易失性和易失性存储器模块两者)。计算装置9000还包含耦接到i/o接口9030的网络接口9040。
在各种实施方案中,计算装置9000可为包含一个处理器9010的单处理器系统,或包含若干处理器9010(例如,两个、四个、八个或另一合适的数目)的多处理器系统。处理器9010可为能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器9010可为实施多种指令集架构(isa)中的任何指令集架构的通用或嵌入式处理器,例如x86、powerpc、sparc或mipsisa或任何其它合适的isa。在多处理器系统中,处理器9010中的每一个可常常但未必实施相同的isa。在一些实施方案中,替代于常规的处理器或除常规的处理器外,还可使用图形处理单元(gpu)。
系统存储器9020可被配置来存储可由处理器9010访问的指令和数据。在至少一些实施方案中,系统存储器9020可包括易失性和非易失性部分;在其它实施方案中,可使用仅易失性存储器。在各种实施方案中,系统存储器9020的易失性部分可使用任何合适的存储器技术来实施,所述存储器技术例如静态随机存取存储器(sram)、同步动态ram或任何其它类型的存储器。对于系统存储器的非易失性部分(例如,所述系统存储器可包括一个或多个nvdimm),在一些实施方案中,可使用基于闪存的存储器装置,包含nand闪存装置。在至少一些实施方案中,系统存储器的非易失性部分可包含电源,例如超级电容器或其它电力存储装置(例如,电池)。在各种实施方案中,基于忆阻器的电阻式随机存取存储器(reram)、三维nand技术、铁电ram、磁阻ram(mram)或各种类型的相变存储器(pcm)中的任何相变存储器,可至少用于系统存储器的非易失性部分。在所示出的实施方案中,实施一个或多个期望的功能的程序指令和数据,例如上文描述的那些方法、技术以及数据,示出为作为代码9025和数据9026存储在系统存储器9020内。
在一个实施方案中,i/o接口9030可被配置来在处理器9010、系统存储器9020、网络接口9040或其它外围接口(例如各种类型的持续性和/或易失性存储装置)之间协调i/o流量。在一些实施方案中,i/o接口9030可执行任何必要的协议、定时或其它数据变换以将来自一个部件(例如,系统存储器9020)的数据信号转换成适合于通过另一部件(例如,处理器9010)使用的格式。在一些实施方案中,i/o接口9030可包含对通过各种类型的外围总线附接的装置的支持,例如低引脚数(lpc)总线、外围部件互连(pci)总线标准或通用串行总线(usb)标准的变化型式等。在一些实施方案中,i/o接口9030的功能可分成两个或多于两个单独的部件,例如北桥和南桥等。并且,在一些实施方案中,i/o接口9030的功能性中的一些或全部(例如到系统存储器9020的接口),可直接并入到处理器9010中。
网络接口9040可被配置来允许在计算装置9000和附接到网络9050的其它装置9060之间交换数据,所述其它装置例如如图1至图6中所示出的其它计算机系统或装置等。在各种实施方案中,网络接口9040可经由任何合适的有线或无线通用数据网络,例如多种以太网络等,支持通信。另外,网络接口9040可经由例如模拟话音网络或数字光纤通信网络等电信/电话网络、经由例如光纤通道等存储区域网络san或经由任何其它合适类型网络和/或协议来支持通信。
在一些实施方案中,系统存储器9020可为计算机可访问介质的一个实施方案,所述计算机可访问介质被配置来存储如上文针对图1至图6所描述的程序指令和数据以用于实施对应的方法和设备的实施方案。然而,在其它实施方案中,程序指令和/或数据可在不同类型的计算机可访问介质上接收、发送或存储。一般来说,计算机可访问介质可包含非暂时性存储介质或存储器介质,例如磁性或光学介质,例如,经由i/o接口9030耦接到计算装置9000的光盘或dvd/cd。非暂时性计算机可访问存储介质还可包含任何易失性或非易失性介质,例如ram(例如,sdram、ddrsdram、rdram、sram等)、rom等,所述介质可在计算装置9000的一些实施方案中包含为另一类型的存储器的系统存储器9020。另外,计算机可访问介质可包含传输介质或信号,例如经由通信介质传送的电信号、磁信号或数字信号,所述通信介质例如网络和/或无线链路,所述网络和/或无线链路可经由网络接口9040实施。多个计算装置中的部分或全部,例如图7中所示出的那些计算装置,可用于在各种实施方案中实施所描述的功能性;例如,在多种不同装置和服务器上运行的软件部件可合作以提供功能性。在一些实施方案中,除使用通用计算机系统实施外或替代于使用通用计算机系统实施,所描述的功能性的各部分可使用存储装置、网络装置或专用计算机系统来实施。如本文中所使用,术语“计算装置”是指至少所有这些类型的装置且不限于这些类型的装置。
总结
各种实施方案可还包含接收、发送或存储根据对计算机可访问的介质的前述描述实施的指令和/或数据。一般来说,计算机可访问的介质可包含存储介质或存储器介质,例如磁性或光学介质,例如,磁盘或dvd/cd-rom、易失性或非易失性介质,例如ram(例如,sdram、ddr、rdram、sram等)、rom等,以及传输介质或信号,例如经由例如网络和/或无线链路等通信介质传送的电信号、电磁信号或光信号。
前文可鉴于以下条款而得到更好的理解:
1.一种系统,所述系统包括:
在提供商网络的多个计算装置处实施的应用程序部署服务的一个或多个部件;
其中所述一个或多个部件被配置来:
接收针对通信信道的第一请求,所述通信信道将被一个或多个客户端用于发送将在所述提供商网络的一个或多个执行平台处执行的特定应用程序的一个或多个部署工件;
将通信信道的特定端点的指示发送到与所述一个或多个客户端相关联的至少一个目的地,其中所述特定端点将被用于发送与多个部署任务类别中的至少第一部署任务类别相关联的部署工件,所述多个部署任务类别与所述特定应用程序相关联;
通过所述一个或多个客户端中的特定客户端从引导至所述特定端点的消息提取有效负载;
至少部分基于对所述有效负载的检查,确定一个或多个安全性验证操作将在所述第一部署任务类别的部署任务的实施之前执行;以及
响应于确定所述一个或多个安全性验证操作成功来实施所述部署任务,其中所述部署任务包括将在所述有效负载中指示的部署工件的版本存储在存储库内。
2.根据条款1所述的系统,其中所述一个或多个部件被配置来:
存储经授权以将消息提交到所述特定端点的一个或多个提交者的第一集合的表示,以及经授权以将消息提交到建立用于所述通信信道的不同端点的一个或多个提交者的第二集合的表示。
3.根据条款1所述的系统,其中所述一个或多个部件被配置来:
起始所述通信信道的第二端点的建立,其中所述第二端点将用于发送与所述多个部署任务类别中的至少第二部署任务类别相关联的部署工件。
4.根据条款1所述的系统,其中所述一个或多个安全性验证操作包含对以下各项中的一个或多个的使用:(a)多步骤认证协议或(b)多方认证协议。
5.根据条款1所述的系统,其中所述多个部署任务类别包含以下各项中的一个或多个:(a)更新源代码、(b)部署可执行包、(c)修改应用程序配置设置、或(d)修改用于执行应用程序的资源集。
6.一种方法,所述方法包括:
在于提供商网络的一个或多个计算装置处实施的应用程序部署服务处执行:
接收针对通信信道的第一请求,所述通信信道将被一个或多个客户端用于发送特定应用程序的一个或多个部署工件;
将通信信道的特定端点的指示发送到与所述一个或多个客户端相关联的至少一个目的地;
响应于经由所述特定端点接收到的第一消息,确定一个或多个安全性验证操作将在对应于所述消息和所述特定应用程序的第一部署任务的实施之前执行;以及
响应于完成所述一个或多个安全性验证操作,使用在所述第一消息中指示的至少第一工件来实施所述第一部署任务。
7.根据条款6所述的方法,其中所述特定端点的所述指示包括以下各项中的一个:(a)电子邮件地址、(b)短消息服务(sms)目的地地址、或(c)文件传输目的地地址。
8.根据条款6所述的方法,所述方法还包括通过所述应用程序部署服务执行:
存储经授权以将消息提交到所述特定端点的一个或多个提交者的第一集合的表示,以及经授权以将消息提交到建立用于所述通信信道的不同端点的一个或多个提交者的第二集合的表示。
9.根据条款6所述的方法,其中所述第一部署任务属于所述特定应用程序的多个部署任务类别中的第一部署任务类别,所述方法还包括通过所述应用程序部署服务执行:
起始所述通信信道的第二端点的建立,其中所述第二端点将用于发送与所述多个部署任务类别中的至少第二部署任务类别相关联的部署工件。
10.根据条款9所述的方法,其中所述多个部署任务类别包含以下各项中的一个或多个:(a)更新源代码、(b)部署可执行包、(c)修改应用程序配置设置、或(d)修改用于执行应用程序的资源集。
11.根据条款6所述的方法,其中所述一个或多个安全性验证操作包含对以下各项中的一个或多个的使用:(a)多步骤认证协议或(b)多方认证协议。
12.根据条款6所述的方法,其中所述实施所述第一部署任务包括:
确定源代码层次内的特定位置,包含在所述第一消息中的特定源代码文件将被存储在所述特定位置处;
将所述特定源代码文件存储在所述特定位置处;
使用所述特定源代码文件来产生所述特定应用程序的可执行版本;以及
使用所述可执行版本来实例化所述特定应用程序在一个或多个执行平台处的执行。
13.根据条款6所述的方法,所述方法还包括通过所述应用程序部署服务执行:
响应于在所述特定端点处接收到第二消息,确定在实施所述第二消息中指示的第二部署任务之前将不调度另外的安全性验证操作。
14.根据条款6所述的方法,所述方法还包括通过所述应用程序部署服务执行:
经由编程接口接收以下指示:与所述特定应用程序相关联的经授权实体已撤销所述一个或多个客户端经由所述通信信道提交部署工件的权利;以及
响应于在所述特定端点处接收到在所述指示后的第二消息,丢弃所述第二消息。
15.根据条款6所述的方法,所述方法还包括通过所述应用程序部署服务执行:
至少部分基于确定第二消息违反与所述特定端点相关联的一个或多个数据传输约束,拒绝引导至所述特定端点的所述第二消息。
16.一种非暂时性计算机可访问存储介质,所述存储介质存储程序指令,所述程序指令在于一个或多个处理器上执行时实施应用程序部署服务的一个或多个部件,所述部件被配置来:
接收针对通信信道的第一请求,所述通信信道将被一个或多个客户端用于发送特定应用程序的一个或多个部署工件;
将通信信道的特定端点的指示发送到与所述一个或多个客户端相关联的至少一个目的地;
响应于经由所述特定端点接收到的第一消息,确定一个或多个安全性验证操作将在对应于所述消息和所述特定应用程序的第一部署任务的实施之前执行;以及
响应于完成所述一个或多个安全性验证操作,使用在所述第一消息中指示的至少第一工件来实施所述第一部署任务。
17.根据条款16所述的非暂时性计算机可访问存储介质,其中所述特定端点的所述指示包括以下各项中的一个:(a)电子邮件地址、(b)短消息服务(sms)目的地地址、或(c)文件传输目的地地址。
18.根据条款16所述的非暂时性计算机可访问存储介质,其中所述应用程序部署服务的所述一个或多个部件进一步被配置来:
存储经授权以将消息提交到所述特定端点的一个或多个提交者的第一集合的表示,以及经授权以将消息提交到建立用于所述通信信道的不同端点的一个或多个提交者的第二集合的表示。
19.根据条款16所述的非暂时性计算机可访问存储介质,其中所述第一部署任务属于所述特定应用程序的多个部署任务类别中的第一部署任务类别,其中所述应用程序部署服务的所述一个或多个部件进一步被配置来:
起始所述通信信道的第二端点的建立,其中所述第二端点将用于发送与所述多个部署任务类别中的至少第二部署任务类别相关联的部署工件。
20.根据条款19所述的非暂时性计算机可访问存储介质,其中所述多个部署任务类别包含以下各项中的一个或多个:(a)更新源代码、(b)部署可执行包、(c)修改应用程序配置设置、或(d)修改用于执行应用程序的资源集。
如附图中所示出且在本文所描述的各种方法表示方法的示例性实施方案。所述方法可用软件、硬件或其组合实施。可改变方法的次序,且可添加、重新排序、组合、省略、修改各种元件等。
可进行各种修改和改变,如得益于本发明的所属领域的技术人员将显而易见。意图是涵盖所有此类修改和改变,且因此,以上描述被视为说明性而非限制性意义。