CN110622129B - 使用软件容器用于加速数据分析应用程序开发和部署的各方面的方法、系统和门户 - Google Patents
使用软件容器用于加速数据分析应用程序开发和部署的各方面的方法、系统和门户 Download PDFInfo
- Publication number
- CN110622129B CN110622129B CN201780085086.4A CN201780085086A CN110622129B CN 110622129 B CN110622129 B CN 110622129B CN 201780085086 A CN201780085086 A CN 201780085086A CN 110622129 B CN110622129 B CN 110622129B
- Authority
- CN
- China
- Prior art keywords
- developer
- software
- build
- container
- environment
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及用于加速数据科学工作负载的开发和分发的方法和系统,包含用于开发数据科学容器的一致的、可移植和预配置的数据科学工作空间,其允许创建能够以清晰、可重复的方式维护、扩展和重用的标准化、模块化和可重用的数据科学容器的数据库。可以将容器提交给构建和部署过程,构建和部署过程确保在应用程序代码和操作系统环境方面跨多个环境的一致性。可以通过定义的创作来管理运行时间执行,定义详细说明了工作负载应该如何在一定环境中操作的方面。
Description
相关申请
本申请要求2016年12月21日提交的名称为“使用软件容器用于加速数据分析应用程序开发和部署的各方面的方法、系统和门户(Methods,Systems,and Portal UsingSoftware Containers for Accelerating Aspects of Data Analytics ApplicationDevelopment and Deployment)”,序列号No.62/437,538的美国临时专利申请的优先权,其通过引用整体并入。
背景技术
随着在组织收集和维护的数据中发现新的潜力,围绕数据科学的行业正在不断发展。从历史上看,数据科学家已经探索了新工具和技术,用于在实验基础上从数据中挖掘价值。只有在对数据价值中的概念进行实验性证明之后,组织通常才会投资于新工具和技术的重建和支持。遗憾的是,由于重建或修改功能数据生态系统令人望而生畏,因此新开发的数据科学工作负载通常由内部信息技术部门以分散、定制和固定(tacked-on)的方式托管,例如通过专用服务器。这些专门解决方案和专用资源增加了技术成本,并且减少了资源共享和算法重用的机会。
发明人认识到需要在组织的数据解决方案架构的骨干(backbone)中构建灵活的数据科学开发和分发机制,以增加分析实验并简化实验过程。对灵活性的需求包括对跨越不同受众的软件依赖项的灵活支持,这在历史上导致专门配置的、专用的硬件的供应。
发明内容
软件容器解决了无论底层计算环境如何都能使软件可靠地运行的问题。例如,软件容器支持从一个计算环境到另一个计算环境的可移植性,例如从开发环境到测试环境、并且最后到生产环境。在一些示例中,环境的范围可以从独立计算机(例如,膝上型计算机等)到在私有或公共云计算环境中执行的虚拟机。
软件容器包含捆绑在一起的、软件应用程序执行所需的整个运行时间环境。除了软件应用程序之外,其运行时间环境还可以包含其所有依赖项、库和其他二进制文件。运行时间环境还可以包含运行软件应用程序所需的配置文件。通过将应用程序平台及其依赖项包含在软件容器中,底层执行环境操作系统和/或其他底层基础架构的差异被抽象出来。
然而,底层计算环境仍然运行单个操作系统,并且每个容器与任何其他容器共享操作系统内核。操作系统的共享部分是只读的,这样各个软件容器不会干扰其他软件容器的功能。每个软件容器都有自己的专用访问装载以用于写入计算环境。这使得软件比虚拟机更轻,并且使用的资源远远少于虚拟机。
发明人确定应用软件容器技术来产生数据科学实验实例将允许组织隔离实验工作,同时提供组织的数据生态系统中不可或缺的开发平台。此外,隔离实验的执行可以通过微服务入口(microservice intake)和部署管线自动化,从而协调硬件供应并简化执行。此外,可以对隔离的实例进行负载平衡,以避免与数据生态系统内的活动分析性能发生冲突。
说明性实施方式的前述一般描述及其以下详细描述仅仅是本发明的教导的示例性方面,并且不是限制性的。
附图说明
并入在说明书中并构成说明书一部分的附图示出了一个或多个实施例,并且与说明书一起解释了这些实施例。附图未必按比例绘制。所附图形和图中所示的任何数值尺寸仅用于说明目的,并且可以表示也可以不表示实际或优选的值或尺寸。在适用的情况下,可能未示出一些特征或全部特征以帮助描述基础特征。在图中:
图1A是用于将分析工作负载递送到云分析环境以充当自容式(self-contained)微服务的示例开发生态系统的框图;
图1B是图1A的示例开发生态系统的一部分的框图,包含示例容器扫描安全机制;
图1C是图1A的示例开发生态系统的一部分的框图,包含示例自动部署触发机制;
图2是用于执行分析工作负载的示例分析生态系统的框图;
图3是通过部署管线(pipeline)处理示例软件容器的流程图;
图4是示例计算系统的框图;和
图5是包含云计算环境的示例分布计算环境的框图。
具体实施方式
以下结合附图阐述的描述旨在描述所公开主题的各种说明性实施例。结合每个说明性实施例描述了具体特征和功能;然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体特征和功能中的每一个的情况下实践所公开的实施例。
图1A示出了用于将分析工作负载(软件可执行文件)递送到云分析环境中以充当自容式(self-contained)微服务的示例开发生态系统100。微服务是一种可独立部署的软件使能服务,能够在端点通信中自动部署和智能化。
开发生态系统100利用软件容器服务102。软件容器服务102代表在云分析环境内执行的软件容器映像(images)进行各种功能,例如构建软件容器、将容器运行为执行软件映像、上传和下载软件容器、调度软件容器映像执行、以及负载均衡软件容器映像部署。软件容器服务102在主机环境操作系统之上执行,隔离写入空间并使得能够与主机环境操作系统进行软件容器映像通信。
在一些实现方式中,向与开发生态系统100接口的每个数据科学开发者104提供容器化的开发者工作空间106,用于开发应用程序和测试脚本以用于运行应用程序。在容器化的开发者工作空间106内工作的开发者104开发软件容器(例如,在运行时间使用的文件系统和参数),以在运行时间作为软件映像执行。
具体地,容器化的开发者工作空间可以在例如Windows平台(华盛顿州,雷德蒙的微软公司)的公共计算操作系统平台110上启动的虚拟机(VM)环境108中提供。虚拟机环境模拟计算系统。它们可以提供执行整个操作系统所需的功能。管理程序(hypervisor)使用本机操作系统执行(例如,运行VM的计算系统的底层OS配置)来管理例如硬件资源的计算系统资源的共享,从而允许多个隔离的VM环境存在于同一物理机器上而不会察觉到彼此。
可以使用开发者管理工具112来启动VM环境108以管理开发者环境。例如,开发者管理工具112提供用于构建和维护可移植虚拟开发环境的工具。开发管理工具112管理开发环境配置,提高数据科学家的生产力。配置可以包含开发者之间的共享文件夹的配置、文件权限的配置、虚拟机的主机名管理、网络配置设置和用户识别管理、以及用于与远程计算系统相互通信的端口管理。例如,开发者管理工具112用于提供在所有开发者系统(例如,访客操作系统)上相同地复制的完全自容式环境,使得开发者应用程序利用通用工具集和开发环境,从而确保开发者的代码库彼此可互操作并且与更大的测试和应用程序启动环境可互操作。开发者管理工具112可以与其他软件工具交互以建立虚拟环境。
例如,使用开发者管理工具112,数据科学开发者104可以调用应用程序编程接口(API)并且在主机操作系统(主机OS)上启动多访客操作系统(OS)的实例。开发者管理工具112可以启动虚拟机管理工具114,其在安装有操作系统平台110的计算设备上创建虚拟机环境。
例如,虚拟机管理工具114可以包含能够与开发者的计算平台的本机操作系统互操作的管理程序。虚拟机管理工具114可以被配置为在开发者的主计算设备上创建和管理虚拟机108。例如,主机设备可以托管多个访客虚拟机,其中每个用户可以在其自己的VM环境108内独立运行,而不会察觉在同一主机操作系统110上构建的其他访客虚拟机。
虚拟机管理工具114可以利用基于软件的虚拟化来重新配置访客操作系统代码,从而避免与其他访客VM环境的冲突。另外,虚拟机管理工具114可以实施硬件虚拟化,例如,其中每个访客VM 108操作系统在底层硬件上的不同地址空间中执行。在另一示例中,虚拟机管理工具114可以模拟物理存储设备(例如,虚拟磁盘),以供访客虚拟机108OS在读取和写入数据时使用。
虚拟机管理工具114还可以通过端口虚拟化来管理与远程计算设备和资源的通信。例如,虚拟机管理工具114可以模拟网卡端口、USB控制器和允许访客用户到达外部硬件和/或联网的计算系统的其他接口。
在登录到VM环境中时,开发者104从版本控制系统116中检出基础项目模板。例如,可以在云分析环境中维护版本控制系统116。基础项目模板为开发者的应用程序提供脚手架(scaffolding),包含驻留在某个目录结构中的某些文件,使得应用程序代码118和自动测试算法120存储在存储器122内的单独的指定空间中。
从版本控制系统访问的基础项目模板包含一组应用程序依赖项(dependency)124(例如,标准化开发库)。应用程序依赖项124包含许多对开发者设计新数据分析算法有用的工具。在一些示例中,应用程序依赖项124可以包含以下中的一个或多个:特拉华州的Python软件基金会的PythonTM库、用于机器学习的库(例如,大卫·库纳波的Scikit-learn、NumPy PythonTM扩展、韦斯·肯尼的pandas等)、PythonTM的Boto(AWS软件开发工具包(SDK))、阿敏·罗纳赫的Flask(微型web框架,在创建web服务端点中有用)、以及萨尔瓦托·桑菲利波的Redis数据结构服务器(例如,在连接到高性能的内存中键值存储时有用)。例如,应用程序依赖项124可以由软件开发团队基于分析开发的性质来选择。
基础项目模板用于定义包含应用程序代码118和应用程序依赖项124的软件容器126。软件容器126例如可以包含用于启动包含用依赖运行时间包装的应用程序代码118的软件映像128的信息,以及应用程序依赖项124,用于完全执行可移植性。在一个示例中,基础项目模板包含用于配置应用程序依赖项的模板脚本。开发者104可以依赖于标准模板脚本,或者开发者104可以修改模板脚本以定制模板配置(例如,包含一组修改的应用程序依赖项124)。例如,开发团队可以修改通用模板脚本以创建适用于开发团队的特定分析范围的模板脚本。
基础项目模板可以包含用于使能容器服务的服务组合工具。例如,服务组合工具可以用于配置由容器公开的服务。以这种方式,开发者104可以创建用于在云分析环境内执行的多个互操作软件容器。
通过服务组合工具,分析开发者104可以定义构成应用程序的服务,使得服务可以在隔离环境中一起运行。例如,可以通过服务组合文件来配置服务依赖项,例如数据库、队列、缓存和web服务API。一个或多个容器可以依赖于每个服务依赖项。
另外,服务组合工具可以提供用于销毁在云分析生态系统内释放的隔离测试环境的方式。例如,可以使用通过服务组合工具输入的一些命令来销毁完整的测试套件(testsuite)环境。
此外,可以在启动新容器时维持由先前执行的容器通过服务组合工具生成的体数据。例如,服务组合工具可以使能在旧容器和新容器之间复制卷数据。
另外,服务组合工具可以提供缓存和重用容器的能力,而不是重新创建容器,从而提供对环境进行改变并快速重新启动测试的机会。
在基础项目模板内开发应用程序代码时,开发者104通过版本控制系统116管理版本和源控制。例如,版本控制系统116可以维护完整的软件容器副本,包含例如应用程序代码118、测试120和应用程序依赖项124。
版本控制系统116可以包含允许开发者通过文件共享与团队成员协作的分布式可缩放版本控制系统。例如,版本控制系统可以包含相互通信特征,从而支持开发团队成员之间的信息共享。在一个示例中,相互通信特征包含用于促进开发团队内的代码检查的抽取请求(pull request)。版本控制系统116还可以支持代码分支许可,使得开发环境100的部分(例如,应用程序代码118和/或测试120)可以应用不同的权限,从而阻止团队成员更改在开发者工作空间106内实行的开发的一些区段(section),同时允许团队成员更改其他区段。此外,版本控制系统116可以包含内联(inline)讨论特征,为团队成员提供以类似于社交媒体讨论的方式将评论直接记录到代码界面中的能力。
版本控制系统116可以提供机会管理非常大的文件,例如用于包含在数据分析微服务内的测试数据集,以与可经由云环境访问的数据组合,而不释放数据分析生态系统内的测试数据集。
在完成开发周期后,开发者104将软件容器126推送到构建管理系统128,以便部署和执行应用程序代码118和测试120作为软件容器映像。
构建管理系统128构建软件容器,并且测试120自动在软件映像上运行以确认构建的完整性。
在构建管理系统128处,首先将软件容器构建到容器映像中。如果构建失败,则可以向软件开发者104通知错误,以便可以应用代码改变。在一些情形下,可以使用软件容器之间的依赖项(例如,其中开发者104使用服务组合工具来创建两个或更多软件容器之间的依赖项)来并行地进行构建。例如,可以使用包含配置设置(例如依赖项配置设置)的构建模板来管理构建。开发者104可以编辑开发者工作空间106内的构建模板。例如,构建模板可以由版本控制系统116维护。
在软件容器126内的应用程序118和依赖项124的一部分先前被构建(例如,来自软件容器126的之前版本或者部分成功的之前失败的构建)的情况下,构建管理系统128可以将先前构建的组件与新构建的组件合并,从而节省时间和资源。例如,构建管理系统128可以基于版本管理系统116供给的版本控制来识别改变。
然后,构建管理系统128可以针对容器126运行一个或多个测试。例如,构建管理系统128可以从版本控制系统116访问应用程序测试120以测试软件容器126。如果软件容器126被开发成与其他软件容器串联起作用,构建管理系统128可以针对软件容器套件执行一个或多个测试120。
在一些实现方式中,测试的结果经由通过开发者工作空间106呈现的界面提供给开发者104。例如,在一个或多个测试失败的事件中,构建管理系统128可以推迟修改并且实行软件容器126的至少部分重构建。在另一示例中,构建管理系统128可以例如经由电子邮件通知、文本消息或信使应用程序向开发者104发送关于一个或多个测试的失败的消息。
在一些实现方式中,构建管理系统128可以分析一个或多个测试120的测试覆盖范围。例如,构建管理系统128可以识别未被测试120的任何一个执行的代码的部分,以及测试期间执行的代码总百分比。这为开发者104提供了在部署之前包含附加测试120以确认软件容器126的所有方面的功能的机会。
构建管理系统128还可以在测试期间监视存储器使用,例如用以识别由软件容器代码进行的任何存储器泄漏或意外的存储器重写。
在一些实现方式中,构建管理系统128自动将软件容器126部署到构建代理130,以进行软件容器验证的某些方面。例如,可以安装构建代理130用于与构建管理系统128交互,以针对定制的构建配置测试软件容器126。为了快速构建和测试软件容器,可以将单个容器(或相关容器套件)委托给由构建管理系统128管理的许多构建代理的特定构建代理130。构建管理系统128例如可以被配置为运行模拟多个操作系统环境和/或包含不同资源(例如,硬件接口、网络通信接口、外部输出设备等)的环境的构建代理130。例如,使用多个构建代理130可以确认软件容器126的可移植性。
通过增加依赖于释放到容器部署流水线的软件容器的数量的可用构建代理130的数量,构建管理系统128可以具有可缩放的吞吐量。例如,可以在需要时将云资源分配给附加构建代理130,以构建和测试快速连续释放的许多软件容器。
因为软件容器是自容式的“黑盒子”,所以担心容器可能包含恶意或其他不需要的内容。构建管理系统128可以包含扫描模块132,用于扫描软件容器内容以识别任何恶意软件或其他安全漏洞。例如,恶意软件可以包含在软件容器中,这是由于开发者104具有受感染的系统或者由于内部不良行为者(例如,将恶意软件恶意包含在软件容器内的开发者)。例如,扫描模块132可能包含一系列禁止的组件,如果被发现则会导致软件容器126的拒绝。
另外,构建管理系统128可以分析可能产生性能顾虑(例如,处理密集的可缩放功能等)的用于算法的软件组件。构建管理系统128可能由于识别到安全顾虑而拒绝软件容器。构建管理系统128还可以向开发者104供给详细描述所识别的安全顾虑的报告。在一些示例中,可以将报告提供给开发者工作空间106的用户界面或者经由电子邮件发布。
在另一示例中,构建管理系统128可以分析软件容器126内的软件组件以查找任何过期的组件。例如,一些被设计为支持软件容器之间的互操作性或软件容器126与分析生态系统的外部组件(例如分析数据存储)之间的互操作性的组件可以包含版本控制,使得构建管理系统128确保为开发者104标记过期的组件。
在一些实现方式中,为了在构建时和部署时两者确保容器的安全性,在开发生态系统100中包含容器扫描器服务152。转到图1B,图1A的示例性开发生态系统100的一部分150的示例实施例包含容器扫描器服务152,其被定位成与构建管理系统128和/或构建代理130和软件容器服务102两者通信。在一些实施例中,容器扫描器服务152在构建、存储到软件容器存储库、和/或部署到分析生态系统之前经由软件容器服务102检查容器,以识别软件容器内的任何安全顾虑。在一些示例中,容器扫描器152可以访问安全参考信息154以获得病毒定义、恶意软件定义和/或由于安全泄漏顾虑而注销的库的标识。
在一些实现方式中,容器扫描器152检查预编译的应用程序代码118以识别任何病毒和/或恶意软件。此外,容器扫描器152可以检查应用程序依赖项124以识别过期库。例如,容器扫描器152可以从构建管理系统128、构建代理130和/或版本控制系统116获得软件容器,以检查软件容器的预编译内容。
在一些实现方式中,容器扫描器152在构建之后扫描容器映像,以识别指示病毒或恶意软件的签名。例如,容器扫描器152可以从构建管理系统128和/或构建代理130获得容器映像。
此外,在一些实现方式中,容器扫描器152被配置为在由软件容器服务102部署之前扫描从软件容器储存库134抽取的容器映像。在容器扫描器152被配置为扫描预编译的软件容器的事件中,可以向容器扫描器152提供访问信息,用于访问与来自于版本控制系统116的容器映像对应的预编译代码。在一个示例中,软件容器存储库134可以包含将容器映像链接到其版本控制的源代码的信息,使得容器扫描器152可以基于软件容器存储库134中的容器映像的标识来识别相关的源代码。在另一示例中,例如工作流管理器128或部署管理器136的单独的实用程序可以供给用于访问与来自版本控制系统116的容器映像对应的预编译代码的信息。
如果容器扫描器152识别到软件容器和/或容器映像的一个或多个安全顾虑,则在一些实施例中,容器扫描器152向调用实用程序(例如,构建管理系统128、构建代理130、和/或软件容器服务102)提供错误消息,从而视情况触发停止构建、存储或部署。例如,容器扫描器152可以发出错误代码,该错误代码通过系统填充回开发者104以用于进一步处理。例如,开发者104可以在开发仪表板环境内接收指示软件容器或容器映像中的一个或多个安全问题的电子邮件消息、文本消息和/或警报。
在一些实现方式中,容器扫描器152与构建管理系统128和/或构建代理130一起工作以修复有故障的容器或容器映像。例如,容器扫描器152可以在创建替换容器映像时识别用于与软件容器应用程序代码链接的替换库。此外,容器扫描器152可以识别用以纠正错误的应用程序代码的补丁,例如在面向对象的编程构造内编码的开发团队内使用的共享实用程序代码。在一个示例中,关于替换库和/或替换软件实用程序的信息可以由容器扫描器152从安全参考信息154访问。在另一示例中,版本控制系统116的一部分可以专门用来识别用于库和共享软件实用程序的适当的版本,使得容器扫描器152能够从版本控制系统116识别适当的版本。
在一些实现方式中,容器扫描器152检查分派给容器内的任务的特权。在一个示例中,容器扫描器152可以拒绝分配根特权的任何容器。在另一示例中,容器扫描器152可以确定所分配的特权与所分配的任务的范围相称。
此外,在一些实现方式中,容器扫描器152检查容器以查找可能以不安全的方式存储的任何特权或安全信息。例如,容器扫描器152可以确保安全地存储和管理密码、令牌、密钥和/或其他机密信息,使得信息仅可以由授权用户检索和/或解密。
返回图1A,当建立了软件容器构建的完整性时,软件容器126被存储到待部署的软件容器存储库134中。
软件容器存储库134可以经由安全套接字层(SSL)连接披露对软件容器126的访问。例如,软件容器服务102可以通过指向各个软件容器或一组暂存的(staged)软件容器的统一资源定位符(URL)访问在软件容器存储库134中暂存的软件容器。例如,软件容器可以通过安全超文本传输协议(HTTPS)连接访问外部服务,例如软件容器服务102。软件容器存储库134可以替代地或另外地可通过注册表API访问。软件容器存储库134可以配置有注册表名称、基本URL,索引和存储区域。
软件容器存储库134可以管理软件容器的安全性。软件容器存储库134可以要求对软件容器的访问的认证。例如,可以需要登录信息以获取对软件容器的访问。另外,软件容器存储库134可以加密待部署的软件容器。
当软件容器126在软件容器存储库134中暂存时,在一些实现方式中,构建管理系统128通知部署管理器136新的软件容器已准备好进行部署。例如,可以使用映像ID向部署管理器136标识软件容器126。
在一些实施例中,部署管理器136将软件部署安全地自动化到云环境。部署管理器136可以包含用于修改和执行部署的安全的基于web的界面。为了进行部署,部署管理器136可以在将部署软件映像的系统上执行软件代理。例如,部署管理器136可以在分析云环境内的许多基于云的服务器或虚拟机上维护软件代理。例如,代理可以在服务器或虚拟机上挂起由部署管理器136分配的作业。
部署管理器136可以协调云分析环境内的多个部署环境。例如,部署管理器136可以具有专用于活跃的数据分析活动的某些代理(例如,资源),而另一组代理(例如,资源)专用于由分析开发者104以开发模式运行的隔离数据分析微服务。
例如构建管理系统128的分析云环境内的其他服务和系统可以通过API与部署管理器136通信。例如,REST API可以使能用户界面功能。例如,用户界面可以供给关于活跃的和历史的部署的细节。此外,用户界面可以向开发者104提供手动干预部署的能力(例如,在执行软件容器的中途暂停)。
在一些实施例中,部署管理器136援用(invoke)部署周期,部署周期包含用于准备在云分析环境中启动软件容器126的许多步骤。部署周期包含警告软件容器服务102正在进行新的部署。在特定示例中,警报步骤是被配置为更新软件容器服务102中的任务定义142的定制机制。任务定义142指定任务所需的容器,包含存储库(例如,软件容器存储库134)的标识和映像ID。任务定义142还可以包含存储器和CPU需求、共享数据卷和/或容器套件内的容器之间的关系。响应于从部署管理器136接收到警报(例如,在认出新任务定义时),软件容器服务102从软件容器存储库134中抽取新的软件容器。
在一些实现方式中,软件容器服务102将由暂存的软件容器定义的新软件可执行映像部署在软件容器储存库134中。例如,在识别出任务定义142已过期时,软件容器服务102可以从软件容器存储库134中检索新容器,并将映像部署到由部署管理器136识别的云分析环境的云计算集群(cluster)作为分配的计算资源。
在一些实施例中,软件容器服务102管理从暂存到软件容器储存库134的许多软件映像引发的实例集群。在一些示例中,实例包含托管微服务(例如,web服务后的机器学习算法)和用于促进更广泛作业的功能而开发的单个任务(例如,用于提取数据资源的一段提取、转换、加载(ETL)逻辑)两者。
在一些实施例中,可以使用部署事件服务162来自动触发涉及容器集群的容器映像或作业的部署,而不是经由开发者工作空间106触发释放。以这种方式,例如,图1A中所示的管线除了数据分析开发测试运行之外可以被扩展为管理再次发生的分析任务。转到图1C,开发生态系统100的一部分的扩展160包含用于管理调度部署事件的部署事件服务162。
在一些实现方式中,部署事件服务162接收消息164,消息164包含用于触发基于容器的任务的细节。例如,消息164可以是具有指定用来触发预定义任务(例如,在任务定义142中定义)的部署的前缀的文件。在一些实施例中,部署事件服务162将文件前缀与任务定义142匹配,并将任务定义142供给软件容器服务102,从而触发在任务定义142中指定的一个或多个软件容器映像的部署。在一些实施例中,如果期望由工作流管理器138管理,可以向工作流管理器138生成API调用。在另一实施例中,由所部署的软件容器映像生成的信息可以持久化到通过工作流管理器138订阅的主题。
在一些实现方式中,消息164含有用于启动软件容器映像或集群映像的初始化设置。例如,可以上载包含一组实体名称的文件,并且容器映像或映像集群可以被设计为进行web爬行以将实体名称与例如地址、子公司、父实体和/或财务信息的附加实体信息匹配。在另一示例中,文件可以包含通过名称和/或实体特征(例如,大小、地理位置、行业、年龄等)对单个实体的标识。进一步对于该示例,容器映像或映像集群可以被设计为检查实体(例如,客户端)数据库以识别与所识别的实体最相似的实体。换句话说,可以开发容器映像或映像集群以将特定实体与分析生态系统内的对等体(peer)匹配。
在一些实现方式中,错误条件导致软件容器服务102无法部署所请求的任务。例如,在任务定义142中识别的容器映像可能不位于软件容器存储库134中。在另一示例中,工作流管理器138可能缺少用于进行任务的资源(例如,云服务故障)。在另一示例中,可以将图1B的容器扫描器152与图1C的事件触发机制能力组合。如果发生故障,构建失败结果可能永久保存到任务日志中以供检查或分发。例如,可以由工作流管理器138监视的一个或多个队列分发故障指示。在接收到构建失败结果时,可以相应地分配警报和故障管理。
返回图1A,软件容器服务102可以提供用于管理实例集群的安全性的安全管理解决方案。例如,可以经由软件容器服务102分配基于任务、基于群集和/或基于实例的安全角色。
在一些实现方式中,软件容器服务102被设计为经由API调用提供用于启动和停止软件容器执行的用户界面。例如,软件容器服务102可以为开发者104提供用于查询关于实例集群的状态的详细信息的界面。此外,软件容器服务102API使能的用户界面可以支持访问安全组、负载平衡、块存储卷管理以及访问和认证管理。在另一示例中,API使能的用户界面可以提供关于执行任务的CPU和内存利用率的信息。可以通过任务定义、服务和/或集群对资源利用率统计进行分组。
软件容器服务102可以另外记录关于执行实例集群的性能的信息。例如,所生成的日志文件可用于诊断软件容器执行的问题。
虽然软件容器服务102通常将包含内置实例调度服务,但是在一些实施例中,单独的工作流管理器138支持云分析环境中更广泛的作业编排(例如,包含实例和活动分析请求两者)。例如,工作流管理器138可以访问由分析开发者104建立的用于调度和管理集群实例的作业定义140。例如,作业定义140可以经由版本控制系统116被工作流管理器138访问。
分析开发者104可以通过经由开发者工作空间提供的用户界面访问工作流管理器138的命令行界面,用于测试、执行、回填、描述和/或清除集群实例的部分。例如,可以为分析开发者104提供调度集群实例的执行的机会。
此外,用户界面可以包含仪表板界面,用于检查与集群实例的执行相关联的进度分析、元数据和/或日志。例如,元数据可以描述作业状态和其他持久信息。进度监视可以包含分析在执行集群实例期间时间花费在何处、获得集群实例完成各种任务的速度的综合视图、以及在实例行为的日志记录(logging)中校正误报/漏报(false positive/negative)。
与部署管理器136类似,工作流管理器138可以包含在分配给分析云环境中的集群实例的各个计算设备上执行的代理。例如,工作流管理器138可以协调和调度工作流管理器代理的活动。
转到图2,在一些实现方式中,软件容器服务102是分析生态系统200内的隔离实验和活动客户端分析两者的更广泛部署的一部分。进入分析生态系统200的数据可以在数据湖202中收集。数据可以从内部和外部两者的许多资源上载和/或导入到数据湖202中。在一些示例中,数据湖202中的数据可以包含参考数据、公共源、客户端源、事务系统、以及内部数据和日志。可以通过转换、富集参考数据、验证并持久化到分析数据存储204中的各阶段来处理数据湖202中的数据。例如,分析数据存储204中可用的数据结构可以由用户206通过提交被路由到软件容器服务102的请求来访问,用于作为软件容器映像进行暂存和部署。
图1A的分析开发者104还可以访问分析生态系统200以利用分析数据存储204,并且可选地,将分析数据存储204数据与来自任何地方的(例如,网络可访问的、远程存储的等)新数据源混合。
可以调度开发者的分析工作负载的结果以自动刷新巩固web门户的数据集市(mart),提供定制的交互式仪表板和报告。例如,可以通过API通信管理系统208将结果馈送到API网关210以与仪表板API接口连接。在另一示例中,分析工作负载的结果可以馈送到下游API(例如,在单独的软件容器中开发的API,其能够由于例如在附加软件容器中披露的服务而相互通信)。
分析生态系统200包含用于确保系统稳健性和数据完整性的机制,在一些示例中包含安全性、日志记录&可审计性,备份&恢复和/或过程监视。例如,分析生态系统200收集由分析生态系统200的各种组件供给的审计数据212。,如关于图1A更详细地描述的,审计数据212可以包含由软件容器服务和/或工作流管理器供给的日志记录信息。
在一些实现方式中,分析生态系统200包含用于流量监视和管理的网络监视平台214。例如,网络监视平台214可用于基于观察到的流量模式来调整实例。例如,如关于图1A所描述的,网络监视平台214可以包含工作流管理器138作业配置和交互式命令控制管理。
在一些实施例中,分析生态系统200包含执行集群实例的标签驱动的自动关闭。使用标签和一些脚本,可以自动化的停止和开始,并且可以自动禁用行为不当的实例(例如,表现出失控复制、利用不可接受的资源量等)。
可以使用快速web应用程序开发平台来开发用于分析生态系统200的仪表板界面,允许向终端用户206供给交互式动态服务的脚本。例如,快速web应用程序开发平台可以包含缓存管理和对数据分析存储204的简化的数据库访问。此外,快速web应用程序开发平台可以支持交互式仪表板特征(例如,小部件)的客户侧代码生成和用户验证。
快速web应用程序开发平台还可以包含服务器集群和任务调度机制,以加速供给客户端系统的仪表板GUI界面的操作。例如,可以由快速web应用程序开发平台管理和调度任务,以确保对用户206经由API网关210提交的分析请求的实时响应。
快速web应用程序开发平台可以利用面向对象(OO)编码机制来重用模块化功能和仪表板功能之间的继承,允许仪表板开发者在向终端用户仪表板界面添加新功能时在预先存在的仪表板小部件、控件和布局上构建。
例如,API通信管理系统208可以作为快速web应用程序开发平台的一部分提供,允许交互式动态仪表板特征的安全性和可缩放性以及对信息的快捷访问。例如,快速web应用程序开发平台的API通信管理系统208部分可以进行访问控制,限制对分析生态系统200的可信用户206的API访问。例如,API通信管理系统208可以限制某些类型的用户206对某些类型的数据或分析的访问。
API通信管理系统208可以开发日志或API使用有关的其他分析(例如,跨应用程序、方法、用户等)。另外,API通信管理系统208可以基于用户级别提供单独的门户。在一个示例中,可以为管理员、发布者、订阅者和开发者用户206提供个人门户。
在一些实现方式中,分析生态系统200内的实例被部署到并行堆栈以确保跨多个服务器的部署。例如,来自用户206的新请求的到达可以触发云分析生态系统200中的自动缩放事件,其中分配至少1个和最多10个服务器,使用知道如何从数据湖202和/或分析数据存储204抽取数据的代码来引导,并且持续用于处理分析请求。在处理结束时,分配的服务器可以自动缩放回零以等待下一个请求。在一个示例中,图1A的部署管理器136通过提供管理添加的云计算资源的代理216来管理自动缩放的至少一部分。在另一示例中,图1A的工作流管理器138可以基于配置参数和执行实例的当前行为来自动缩放资源(例如,分配额外的资源以满足用于执行作业的配置需求)。
在一些实现方式中,内部负载平衡器218管理跨越分配的服务器的容器实例的负载平衡。例如,在丢失分配的服务器时,内部负载平衡器218可以将实例重定向到另一个服务器以继续执行。此外,内部负载平衡器218可以监视每个分配的服务器的速度、资源和/或响应时间,以跨越分配的服务器智能地分发实例以进行处理。在另一示例中,内部负载平衡器218可以考虑分配实例集群(例如,包含依赖项的两个或更多个容器映像,使得实例集群的执行必须在用于快捷信息共享的专用空间内发生),以适当地跨越分配的服务器分发处理负载。
当你等待消费者参与时,面向外部的API的运行成本可能很高。如果流量是偶然的,那么对于面向外部的API进行自动缩放是不切实际的。在一些实施例中,API网关210允许无服务器的“契约优先”API开发方法。使用API通信管理系统208,在没有持久API接口的情况下管理API通信。例如,当信息准备好传输时,API通信管理系统208可以协调与在API网关210的另一侧上的客户端(例如,用户206)的通信链接的重新建立。
转到图3,流程图示出了用于移动容器集群302通过诸如图1A或图1B中所示的管线的容器管线的示例流程300。如图所示,容器集群302包含第一容器A 304a和第二容器B304b。然而,在容器集群302中可以包含任何数量的容器304。容器304中的每个包含其各自的应用程序代码118a、b和依赖项124a、b,如关于图1A所描述的。此外,每个容器304a、b包含日志记录(logging)代理306,以使能够在分析生态系统内的容器304a、b的执行期间记录性能统计和错误条件。将应用程序运行时间环境308烧(bake)至容器304a、b的每个中,以提供用于执行应用程序代码118a、118b的支持结构。服务310a、310b允许容器集群302的容器304a、304b之间的相互通信,以及任何附加的外部通信。
在一些实现方式中,容器集群302的容器304a、304b之间的通信和性能协调部分地由服务依赖项312使能。例如,可以由图1A中的开发者104建立服务依赖项312以识别由容器集群302中的一个或多个容器304使用的任何应用程序编程接口、缓存结构、队列和/或数据库。在部署容器集群302时,可以经由服务依赖项312部分地协调各个容器304a、304b的应用程序代码118a和应用程序代码118b的执行。
在一些实现方式中,构建模板314识别用于预留资源和分配结构的配置设置以及依赖项配置设置,以使得能够将容器集群302内的容器304a、304b构建成容器映像316a、316b。使用构建模板314,例如,图1A的构建管理系统128和/或构建代理130,可以将容器304a、304b中的每一个构建成容器映像316a、316b。例如,构建模板可以由图1A的版本控制系统116维护。
接下来,使用所构建的容器映像316a、316b,在一些实现方式中,对所构建的容器映像316a、316b的可执行代码映像进行测试318,以确保所构建的容器映像316a、316b的功能。例如,测试318可以包含由开发者104在开发者工作空间106中开发的测试120,如关于图1A所描述的。在一些实施例中,首先使用各个容器测试318a、318b来测试每个所构建的容器映像316a、316b以确保本地化功能,然后进行互操作性测试318c以确保软件容器集群302的软件容器304a、b的适当的互操作性。例如,图1A的构建管理系统128可以从版本控制系统116访问应用程序测试120以测试软件容器126。
在一些实现方式中,在构建和测试容器集群302的容器304a、304b时,容器映像316a、316b被维护在容器存储库中,例如关于图1A描述的软件容器存储库134。
在一些实现方式中,通过发起任务的执行来部署容器集群312。例如,任务定义142可以识别集群内的每个容器以及执行任务的系统需求。在一些示例中,系统需求可以包含存储器需求、CPU需求、环境变量和/或网络细节。此外,任务定义142可以包含容器集群302内的容器304a、304b之间的关系。在一些实施例中,图1A的部署管理器136更新软件容器服务102中的任务定义142以发起部署。例如,部署管理器136可以将环境属性注入到作为构建过程的部分而生成的任务定义142中。例如,可以经由批处理来进行任务定义142的更新,批处理按计划发布任务定义142以触发部署。
在一些实现方式中,软件容器映像被设计为与机器学习模型和/或含有在循环数据分析任务中使用的数据的持久缓存协作。转到图2,在一些实施例中,分析生态系统包含一个或多个学习模型224,用于针对诸如在分析数据存储204中维护的数据或经由因特网连接226访问的信息(例如,用于网络爬行等)的数据进行机器学习算法。例如,持久数据缓存222可以用于维护在其他情况下可能需要从数据存储204搜集的结果或经由因特网连接访问的信息。例如,可以缓存网络爬行结果,使得资源不再被投入于再次进行相同的爬行。例如,持久数据缓存222信息可以在一段时间之后到期,使得从数据源搜集新的结果。此外,学习模型224可以依赖于在迭代训练期间在持久数据缓存222中捕获的信息。在特定示例中,可以向终端用户提供对等体识别的结果,并且可以向分析生态系统100提供与对等体识别结果相关的反馈,以调整对等体识别学习模型。
返回图3,在一些实现方式中,响应于接收到更新的任务定义,调度容器映像316a、316b用于部署。例如,如关于图1A所描述的,软件容器服务102可以调度任务的部署,将容器映像316a、316b包含到图2的分析生态系统200。
在一些实施例中,为了部署容器映像316a、316b,访问作业定义140以确定部署需求。例如,工作流管理器138可以从版本控制系统116访问作业定义140。作业定义140可以由开发者104起草。在一些示例中,作业定义可以包含容器集群302内的容器304a、304b中的每个的标识以及调度需求和管理需求。例如,作业定义140含有用于协调任务的指令,包含为了维护适当的定时和避免错误条件而建立的关系和依赖项。在特定示例中,作业定义可以将工作流描述为用于在指定的关系和依赖项之后进行调度和执行的任务的有向非循环图(DAGS)。使用作业定义140,将容器映像316a、316b的容器实例318a\318b部署到分析生态系统。例如,图2的内部负载平衡器218可以通过执行容器实例318a、318b来分配适当的资源并指定服务器空间以进行由任务定义142表示的任务。
在一些实现方式中,在执行容器实例318a、318b期间,日志记录代理与日志记录服务220(图2中示出)接口以在执行容器实例318a、318b期间记录统计数据并收集调试/错误信息。在一个示例中,日志记录服务220可以与审计数据212接口以创建容器实例318a、318b的性能的持久审计跟踪。在另一示例中,日志记录服务220可以与呈现给开发者104的仪表板界面接口以监视任务进行的进度。例如,日志记录服务220可以将日志记录数据提供给指定的仪表板工具,用于生成性能分析并呈现给开发者104。在另一示例中,日志记录服务220可以提供数据流以在开发者控制台处呈现(例如,包含调试消息)。
接下来,参考图4描述根据示例性实施例的计算设备、移动计算设备或服务器的硬件描述。在图4中,计算设备、移动计算设备或服务器包含进行上述过程的CPU 400。例如,计算设备可以是支持开发者工作空间106的开发者设备。过程数据和指令可以存储在存储器402中。这些过程和指令也可以存储在诸如硬盘驱动器(HDD)或便携式存储介质的存储介质盘404上,或者可以远程存储。此外,要求保护的进步不受存储创造性过程的指令的计算机可读介质的形式的限制。例如,指令可以存储在CD、DVD、FLASH存储器、RAM、ROM、PROM、EPROM、EEPROM、硬盘上,或者存储在计算设备、移动计算设备或服务器与之通信的任何其他信息处理设备(例如,服务器或计算机)上。
此外,所要求保护的进步的一部分可以作为实用应用程序、后台守护进程或操作系统的组件或其组合提供,结合CPU 400和诸如Microsoft Windows 4、UNIX、Solaris、LINUX、Apple MAC-OS以及本领域技术人员已知的其他系统的操作系统一起执行。
CPU 400可以是来自美国英特尔的Xenon或Core处理器、或来自美国AMD的Opteron处理器、或者可以是本领域普通技术人员将认识到的其他处理器类型。替代地,如本领域普通技术人员将认识到的,CPU 400可以在FPGA、ASIC、PLD上实现或使用分立逻辑电路实现。此外,CPU 400可以实现为并行协同工作的多个处理器,以执行上述创造性过程的指令。例如,CPU 400可以执行支持图1A中的开发者工作空间106、版本控制系统116、构建管理系统128、扫描模块132、构建代理130、部署管理器136、工作流管理器138、软件容器服务102和/或软件容器存储库134,图1B的容器扫描器152和/或图1C的部署事件服务162,图2的API网关210、API通信管理系统208、内部负载平衡器218、网络监视平台214和/或日志记录服务220的处理。
图4中的计算设备、移动计算设备或服务器还包含网络控制器406,例如来自美国英特尔公司的Intel Ethernet PRO网络接口卡,用于与网络428接口。如可以理解的,网络428可以是诸如因特网的公共网络、或者诸如LAN或WAN网络的私有网络、或其任何组合,并且还可以包含PSTN或ISDN子网络。网络428也可以是有线的,例如以太网,或者可以是无线的,例如包含EDGE、3G和4G无线蜂窝系统的蜂窝网络。无线网络还可以是Wi-Fi、蓝牙或已知的任何其他无线通信形式。例如,网络428可以将开发者工作空间106连接到版本控制系统116、将软件容器服务102连接到数据分析生态系统200、或者将用户206连接到API网关。网络428可以包含图1B的因特网226。
计算设备、移动计算设备或服务器还包含显示控制器408,例如来自美国英伟达公司的NVIDIA GeForce GTX或Quadro图形适配器,用于与诸如Hewlett Packard HPL2445wLCD监视器的显示器410接口。通用I/O接口412与键盘和/或鼠标414以及在显示器410上的或与显示器410分开的触摸屏面板416接口。通用I/O接口还连接到各种外围设备418,包含打印机和扫描仪,例如来自惠普的OfficeJet或DeskJet。
在计算设备、移动计算设备或服务器中还提供声音控制器420,例如来自创新科技的Sound Blaster X-Fi Titanium,以与扬声器/麦克风422接口,从而提供声音和/或音乐。
通用存储控制器424将存储介质盘404与通信总线426连接,通信总线426可以是ISA、EISA、VESA、PCI或类似物,用于互连计算设备、移动计算设备或服务器的所有组件。为简洁起见,这里省略对显示器410、键盘和/或鼠标414、以及显示控制器408、存储控制器424、网络控制器406、声音控制器420和通用I/O接口412的一般特征和功能的描述,因为这些特征是已知的。例如,存储介质盘404可以支持开发者工作空间106内的开发文件122和/或应用程序依赖项124的存储。图1B的安全参考信息154可以由存储介质盘404维护。在一些示例中,存储介质盘404可以维护图2中的持久数据缓存222、学习模型224、审计数据212、数据湖202或分析数据存储204。
除非另外明确说明,否则可以利用一个或多个处理器来实现这里描述的各种功能和/或算法。另外,除非另外明确说明,否则这里描述的任何功能和/或算法可以在一个或多个虚拟处理器上进行,例如在诸如计算机农场或云驱动器的一个或多个物理计算系统上进行。
已经参考了根据本公开的实现方式的方法、系统和计算机程序产品的流程图图示和框图。其各方面由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图块或块中指定的功能/动作的部件。
这些计算机程序指令也可以存储在能指引计算机或其他可编程数据处理装置以特定方式起作用的计算机可读介质中,使得存储在计算机可读介质中的指令产生包含实现在流程图和/或框图块或块中指定的功能/动作的指令部件的制品。
计算机程序指令也可以被加载到计算机或其他可编程数据处理装置上,以使得在计算机或其他可编程装置上进行一系列操作步骤,以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。
而且,本公开不限于这里描述的具体电路元件,本公开也不限于这些元件的具体大小和分类。例如,本领域技术人员将理解,可以基于电池大小和化学性质的变化、或者基于要供电的预期备用负载的需求来调整这里描述的电路。
这里描述的功能和特征也可以由系统的各种分布式组件执行。例如,一个或多个处理器可以执行这些系统功能,其中处理器分布在在网络中通信的多个组件上。除了各种人机界面和通信设备(例如,显示监视器、智能电话,平板计算机、个人数字助理(PDA)之外,分布式组件可以包含可以共享处理的一个或多个客户端和服务器机器,如图3所示。网络可以是诸如LAN或WAN的私有网络,或者可以是诸如因特网的公共网络。可以经由直接用户输入接收对系统的输入,并且可以实时地或作为批处理远程接收对系统的输入。另外,一些实现方式可以在与所描述的模块或硬件不等同的模块或硬件上进行。因此,其他实现方式在可以要求保护的范围内。
在一些实现方式中,这里描述的可以与诸如谷歌云平台TM的云计算环境530接口以进行上面详述的方法或算法的至少一部分。与这里描述的方法相关联的过程能够由数据中心534在诸如谷歌计算引擎的计算处理器上执行。例如,数据中心534还可以包含诸如谷歌应用引擎的应用程序处理器,其可以用作与这里描述的系统的接口以接收数据并输出对应的信息。云计算环境530还可以包含一个或多个数据库538或其他数据存储,例如云存储和查询数据库。例如,数据库538可以包含图2中的分析数据存储204和数据湖202。在一些实现方式中,诸如谷歌云存储的云存储数据库538可以存储由这里描述的系统供给的已处理和未处理的数据。数据例如可以包含图2中的持久数据缓存222和学习模型224。可以分配额外的基于云的存储用于存储图1A中的版本控制系统116和/或软件容器存储库134的文件。
这里描述的系统可以通过安全网关532与云计算环境530通信。在一些实现方式中,安全网关532包含数据库查询界面,例如谷歌BigQuery平台。网关532例如可以包含图2中的API网关210。
云计算环境102可以包含用于资源管理的供应工具540。供应工具540可以连接到数据中心534的计算设备,以便于提供数据中心534的计算资源。供应工具540可以经由安全网关532或云控制器536接收对计算资源的请求。供应工具540可以便于与数据中心534的特定计算设备的连接。例如,软件容器服务102可以与供应工具540协调,用于将资源分配给数据分析生态系统150内的已部署的软件容器映像。
网络502表示将云环境530连接到许多客户端设备的诸如因特网的一个或多个网络,在一些示例中,客户端设备例如蜂窝电话510、平板计算机512、移动计算设备514和桌面计算设备516。网络502还可以使用各种移动网络服务520经由无线网络通信,移动网络服务520例如Wi-Fi,蓝牙,包含EDGE、5G和4G无线蜂窝系统的蜂窝网络,或任何已知的其他无线通信形式。在一些实施例中,网络502对与客户端设备相关联的本地接口和网络是不可知的,以允许对本地接口和被配置为进行这里描述的过程的网络的集成。
贯穿说明书的对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性被包含在在所公开的主题的至少一个实施例中。因此,在贯穿说明书的各处出现的短语“在一个实施例中”或“在实施例中”不一定是指同一实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。此外,所公开的主题的实施例旨在覆盖其修改和变化。
必须注意,如在说明书和所附权利要求中所使用的,单数形式“一”、“一个”和“所述”包含复数指示物,除非上下文另有明确规定。也就是说,除非另有明确指定,否则如这里所用的词语“一”、“一个”、“所述”等带有“一个或多个”的含义。另外,应当理解的是,这里可能使用的诸如“左”、“右”、“顶部”、“底部”、“前”、“后”、“侧面”、“高度”、“长度”、“宽度”、“上部”、“下部”、“内部”、“外部”、“内”,“外”等的术语仅仅描述参考点,并且不一定将本公开的实施例限制于任何特定取向或配置。此外,诸如“第一”、“第二”、“第三”等的术语仅仅标识如这里所公开的多个部分、组件、步骤、操作、功能和/或参考点中的一个,并且同样地不一定将本公开的实施例限制于任何特定配置或取向。
此外,在某些实施例中,术语“近似”、“大约”,“接近”、“微小变化”和类似术语通常是指包含在20%、10%或优选地5%的边际内的识别值以及它们之间的任何值的范围。
除了明确说明之处或者特征或功能与另外的实施例不兼容之处,结合一个实施例描述的所有功能旨在适用于下面描述的另外的实施例。例如,在结合一个实施例明确描述给定特征或功能但未结合替代实施例明确提及的情况下,应该理解的是,发明人旨在可以结合替代实施例部署、利用或实现该特征或功能,除非该特征或功能与替代实施例不兼容。
尽管已经描述了某些实施例,但这些实施例仅以示例的方式呈现,并且不旨在限制本公开的范围。实际上,这里描述的新颖的方法、装置和系统可以以各种其他形式体现;此外,在不脱离本公开的精神的情况下,可以对这里描述的方法、装置和系统的形式进行各种省略、替换和改变。所附权利要求及其等同物旨在涵盖这些形式或修改,因为它们将落入本公开的范围和精神内。
Claims (20)
1.一种用于加速数据科学工作负载到活动分析环境的开发和分发的系统,所述系统包括:
开发环境,包括与直接将作业部署到所述活动分析环境隔离的多个计算系统,所述多个计算系统的每个系统包括:
开发者工作空间,被配置用于在可在多个不同操作系统平台上执行的虚拟环境中执行,使得无论多个不同操作系统平台的底层操作系统平台如何,所述开发者工作空间都维持相同的界面和体验,所述开发者工作空间包括
基本应用程序依赖项集,用于跨多个开发项目共享,其中,所述多个开发项目是在所述开发环境的多个开发者工作空间中创建的,其中
结合应用程序代码,所述基本应用程序依赖项集支持作为开发者工作空间内的一个或多个软件容器而开发的任务的封装功能;
版本控制系统,与所述多个开发者工作空间通信,所述版本控制系统用于
管理所述多个开发者工作空间的原始开发者工作空间与多个开发者工作空间的至少一个附加开发者工作空间之间正在进行的软件项目的共享,并且
维护在所述多个开发者工作空间内开发的软件项目的历史版本;以及
构建和部署处理管线,与所述版本控制系统通信,用于自动启动在多个开发者工作空间中生成并存储在版本控制系统中的实验,作为在活动分析环境上执行的作业,所述构建和部署处理管线包括
构建代理,用于
从所述版本控制系统接收软件容器,和
构建所述软件容器的软件容器映像,
容器存储库,用于暂存软件容器映像以准备部署,和
软件容器服务,用于
从所述容器存储库中检索所述软件容器映像,和
在活动分析环境中自动部署所述软件容器映像;
其中,活动分析环境代表多个客户端托管多个分析作业,并且其中
所述软件容器映像的一个或多个软件处理访问来自活动分析环境的分析数据存储的分析数据,而保持与所述多个分析作业隔离。
2.如权利要求1所述的系统,其中,所述版本控制系统包括至少一个包含所述应用程序依赖项的基础项目模板,其中所述开发者工作空间从所述版本控制系统检索包含所述应用程序依赖项的基础项目模板,以用于开发新的软件容器。
3.如权利要求2所述的系统,其中,所述基础项目模板包括服务组合工具,用于使能由所述软件容器披露的容器服务。
4.如权利要求3所述的系统,其中,所述服务组合工具包括测试环境销毁序列,用于销毁错误测试环境。
5.如权利要求1所述的系统,其中,所述版本控制系统支持访问权限层,用于允许所述多个开发者工作空间的每个附加开发者工作空间对所述多个开发者工作空间的相应第一子集进行写访问,对所述多个开发者工作空间的相应第二子集进行只读访问,并且不访问所述多个开发者工作空间的相应第三子集。
6.如权利要求1所述的系统,其中,部分地基于任务定义来管理所述软件容器映像的部署,所述任务定义包括:
标识所述容器存储库内的软件容器映像的标识符;和
存储器需求、CPU需求和至少一个共享数据卷的标识中的至少一个。
7.如权利要求6所述的系统,其中,所述任务定义包括至少一个附加标识符,所述附加标识符标识被设计为与所述软件容器映像互操作的另一软件容器映像。
8.如权利要求7所述的系统,其中,所述版本控制系统还维护与所述软件容器映像和所述另一软件容器映像相关联的作业定义,其中所述作业定义限定所述软件容器映像与所述另一软件容器映像之间的任务执行的调度。
9.如权利要求8所述的系统,其中,所述作业定义限定至少一个工作流,所述工作流定义任务定时以及任务关系和任务依赖项中的至少一个。
10.如权利要求1所述的系统,还包括:
构建管理系统,用于管理包括所述软件容器的多个软件容器的构建,所述构建管理系统被配置为分配包含所述构建代理的多个构建代理。
11.如权利要求10所述的系统,其中,基于软件容器释放到所述构建和部署处理管线中的数量和定时,实时地进行构建代理分配。
12.如权利要求10所述的系统,其中所述构建管理系统包括扫描模块,用于扫描所述软件容器的内容以检测多个安全漏洞。
13.如权利要求1所述的系统,其中,所述构建和部署处理管线是带有可缩放资源分配的基于云的平台。
14.如权利要求1所述的系统,其中,所述多个计算系统为虚拟机。
15.一种用于加速数据科学工作负载到活动分析环境的开发和分发的方法,所述方法包括:
在包括与直接将作业部署到所述活动分析环境隔离的多个开发者计算设备的开发环境中,建立多个开发者工作空间,每个开发者工作空间
在独立于多个开发者计算设备中的相应开发者计算设备的底层硬件和操作系统的虚拟环境中执行,
向与所述多个开发者计算设备中的每个计算设备接口的相应开发者呈现一致的开发界面和工具集,用于开发用于进行数据分析任务的软件容器;并且
无论底层操作系统如何,在相应开发者工作空间都维持相同的界面和体验,其中,相应开发者工作空间包括
基本应用程序依赖项集,用于跨多个开发项目共享,其中,所述多个开发项目是在所述开发环境的多个开发者工作空间中创建的,其中
结合应用程序代码,所述基本应用程序依赖项集支持作为开发者工作空间内的一个或多个软件容器而开发的任务的封装功能;
从开发环境中的版本控制系统给所述多个开发者工作空间的每个开发者工作空间填充相同的构建模板,所述构建模板包括多个应用程序依赖项;
通过使能在所述多个开发者工作空间之间共享相应应用程序代码和相应测试代码中的至少一个的一部分,由所述版本控制系统协调所述多个开发者工作空间之间的协作;
通过版本控制系统维护在所述多个开发者工作空间内开发的软件项目的历史版本;
在所述版本控制系统处从所述多个开发者工作空间的第一开发者工作空间接收将包括所述第一开发者工作空间的所述应用程序代码和所述第一开发者工作空间的测试代码的开发项目释放为软件容器的指令;
将所述软件容器释放到构建和部署处理管线以进行构建和部署;以及
向所述构建和部署处理管线的工作流管理器提供作业定义,用于管理将所述软件容器作为所述活动分析环境中的软件映像的自动部署,其中
所述软件映像的一个或多个软件处理访问来自活动分析环境的分析数据存储的分析数据,而保持与在所述活动分析环境中代表多个客户端运行的多个分析作业隔离。
16.如权利要求15所述的方法,其中,所述多个应用程序依赖项包括用于开发数据分析任务的多个标准化开发库。
17.如权利要求15所述的方法,其中,所述软件容器包括依赖运行时间,用于独立于所述活动分析环境的底层硬件和操作系统来执行所述软件映像。
18.如权利要求15所述的方法,其中,所述构建模板包括用于配置所述应用程序依赖项的模板脚本,其中所述模板脚本可由所述多个开发者计算设备中的给定计算设备的开发者编辑,以更改或扩展所述多个应用程序依赖项。
19.如权利要求15所述的方法,其中,所述软件容器包括至少一个测试数据集,用于与在所述活动分析环境中可访问的数据组合,而不释放所述活动分析环境内的测试数据集。
20.一种具有存储在其上的指令的非暂时性计算机可读介质,其中所述指令在由处理电路执行时,使得所述处理电路:
在包括与直接将作业部署到活动分析环境隔离的开发者计算设备的开发环境中,建立开发者工作空间,用于
在独立于所述开发者计算设备的底层硬件和操作系统的虚拟环境中执行,并且
向与所述计算设备接口的开发者呈现开发界面和工具集,用于开发用于在所述活动分析环境中进行数据分析任务的软件容器;
无论底层操作系统如何,在开发者工作空间都维持相同的界面和体验,其中,开发者工作空间包括
基本应用程序依赖项集,用于跨多个开发项目共享,其中,所述多个开发项目是在所述开发环境的多个开发者工作空间中创建的,其中
结合应用程序代码,所述基本应用程序依赖项集支持作为开发者工作空间内的一个或多个软件容器而开发的任务的封装功能;
利用构建模板填充所述开发者工作空间,所述构建模板包括
多个应用程序依赖项,
应用程序代码结构,用于开发应用程序代码,
测试代码结构,用于开发用于测试应用程序代码的测试代码,和
作业定义结构,用于开发限定用于通过执行应用程序代码进行的任务的定时协调的作业定义;
使能在多个开发者工作空间的原始开发者工作空间之间正在进行的软件项目的共享;
维护在所述多个开发者工作空间内开发的软件项目的历史版本;
接收将包括所述应用程序代码和测试代码的开发项目释放为软件容器的指令;
将所述软件容器释放到构建和部署处理管线以进行构建和部署;和
将所述作业定义提供给所述构建和部署处理管线的工作流管理器,用于管理将所述软件容器作为所述活动分析环境中的软件映像的自动部署,其中
所述软件映像的一个或多个软件处理访问来自活动分析环境的分析数据存储的分析数据,而保持与在所述活动分析环境中代表多个客户端运行的多个分析作业隔离。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662437538P | 2016-12-21 | 2016-12-21 | |
US62/437,538 | 2016-12-21 | ||
PCT/SG2017/050632 WO2018117966A1 (en) | 2016-12-21 | 2017-12-21 | Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110622129A CN110622129A (zh) | 2019-12-27 |
CN110622129B true CN110622129B (zh) | 2021-07-20 |
Family
ID=61028143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780085086.4A Active CN110622129B (zh) | 2016-12-21 | 2017-12-21 | 使用软件容器用于加速数据分析应用程序开发和部署的各方面的方法、系统和门户 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10572226B2 (zh) |
EP (1) | EP3559801A1 (zh) |
CN (1) | CN110622129B (zh) |
WO (1) | WO2018117966A1 (zh) |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256467B1 (en) | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
US10440153B1 (en) | 2016-02-08 | 2019-10-08 | Microstrategy Incorporated | Enterprise health score and data migration |
US11283900B2 (en) | 2016-02-08 | 2022-03-22 | Microstrategy Incorporated | Enterprise performance and capacity testing |
US11023215B2 (en) | 2016-12-21 | 2021-06-01 | Aon Global Operations Se, Singapore Branch | Methods, systems, and portal for accelerating aspects of data analytics application development and deployment |
US10394538B2 (en) * | 2017-02-09 | 2019-08-27 | International Business Machines Corporation | Optimizing service deployment in a distributed computing environment |
US10650139B2 (en) * | 2017-06-12 | 2020-05-12 | Daniel Maurice Lerner | Securing temporal digital communications via authentication and validation for wireless user and access devices with securitized containers |
US10154021B1 (en) * | 2017-06-12 | 2018-12-11 | Ironclad Encryption Corporation | Securitization of temporal digital communications with authentication and validation of user and access devices |
US10951521B2 (en) * | 2017-09-01 | 2021-03-16 | Maxlinear, Inc. | Method for scheduling a computational task, a method for processing a computational task, a computer readable storage medium, a computer program, a residential gateway, and a server |
US10983816B2 (en) | 2017-10-11 | 2021-04-20 | International Business Machines Corporation | Self-adaptive building container images |
US10671368B2 (en) * | 2017-11-03 | 2020-06-02 | International Business Machines Corporation | Automatic creation of delivery pipelines |
US10838833B1 (en) * | 2018-03-26 | 2020-11-17 | Pure Storage, Inc. | Providing for high availability in a data analytics pipeline without replicas |
US10732962B1 (en) | 2018-04-12 | 2020-08-04 | Amazon Technologies, Inc. | End-to-end deployment infrastructure |
US11704370B2 (en) | 2018-04-20 | 2023-07-18 | Microsoft Technology Licensing, Llc | Framework for managing features across environments |
US10817280B1 (en) * | 2018-05-21 | 2020-10-27 | Amazon Technologies, Inc. | Overriding shared service interfaces |
US10817275B2 (en) * | 2018-06-28 | 2020-10-27 | EMC IP Holding Company LLC | Automated internet of things based software patching |
US11659003B2 (en) * | 2018-08-30 | 2023-05-23 | International Business Machines Corporation | Safe shell container facilitating inspection of a virtual container |
US10922145B2 (en) * | 2018-09-04 | 2021-02-16 | Target Brands, Inc. | Scheduling software jobs having dependencies |
CN110896404B (zh) * | 2018-09-12 | 2021-09-14 | 华为技术有限公司 | 数据处理的方法、装置和计算节点 |
CN109302483B (zh) * | 2018-10-17 | 2021-02-02 | 网宿科技股份有限公司 | 一种应用程序的管理方法及系统 |
US11836519B2 (en) * | 2018-10-19 | 2023-12-05 | Oracle International Corporation | Decoupled push-down execution generator |
US20200167215A1 (en) * | 2018-11-28 | 2020-05-28 | Centurylink Intellectual Property Llc | Method and System for Implementing an Application Programming Interface Automation Platform |
US10977007B2 (en) | 2018-12-05 | 2021-04-13 | Electronics And Telecommunications Research Institute | Apparatus and method for executing function |
US20200204618A1 (en) * | 2018-12-24 | 2020-06-25 | Nimbella Corp. | Method and system for addressing and executing serverless functions |
US11475138B2 (en) * | 2019-02-06 | 2022-10-18 | International Business Machines Corporation | Creation and execution of secure containers |
US11726758B2 (en) * | 2019-02-07 | 2023-08-15 | Microsoft Technology Licensing, Llc | Efficient scaling of a container-based application in a distributed computing system |
US11113049B2 (en) | 2019-02-25 | 2021-09-07 | Red Hat, Inc. | Deploying applications in a computing environment |
KR20200109819A (ko) * | 2019-03-14 | 2020-09-23 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
US20200301689A1 (en) * | 2019-03-18 | 2020-09-24 | SmartDeployAI LLC | Smart deploy ai |
US10635437B1 (en) * | 2019-04-25 | 2020-04-28 | Capital One Services, Llc | Techniques to deploy an application as a cloud computing service |
US11836505B2 (en) | 2019-05-07 | 2023-12-05 | Ab Initio Technology Llc | Dynamic distribution of container images |
CN110286939A (zh) * | 2019-05-21 | 2019-09-27 | 深圳壹账通智能科技有限公司 | 软件开发工具包的开发方法、装置、设备及存储介质 |
US11126540B2 (en) | 2019-06-13 | 2021-09-21 | Paypal, Inc. | Big data application lifecycle management |
CN112148420B (zh) * | 2019-06-28 | 2024-04-02 | 杭州海康威视数字技术股份有限公司 | 基于容器技术的异常任务处理方法、服务器及云平台 |
US10983768B2 (en) * | 2019-08-09 | 2021-04-20 | Vijay Madisetti | Method and system for persistent helpers for functions as a service (FAAS) in cloud computing environments |
US11106455B2 (en) | 2019-08-15 | 2021-08-31 | Microstrategy Incorporated | Integration of containers with external elements |
US11288053B2 (en) * | 2019-08-15 | 2022-03-29 | Microstrategy Incorporated | Conversion and restoration of computer environments to container-based implementations |
US11829742B2 (en) | 2019-08-15 | 2023-11-28 | Microstrategy Incorporated | Container-based server environments |
US11669365B1 (en) | 2019-08-26 | 2023-06-06 | Amazon Technologies, Inc. | Task pool for managed compute instances |
US11637748B2 (en) | 2019-08-28 | 2023-04-25 | Microstrategy Incorporated | Self-optimization of computing environments |
US11210189B2 (en) | 2019-08-30 | 2021-12-28 | Microstrategy Incorporated | Monitoring performance of computing systems |
US11507295B2 (en) | 2019-08-30 | 2022-11-22 | Microstrategy Incorporated | Backup, restoration, and migration of computer systems |
US11354216B2 (en) | 2019-09-18 | 2022-06-07 | Microstrategy Incorporated | Monitoring performance deviations |
US11360881B2 (en) | 2019-09-23 | 2022-06-14 | Microstrategy Incorporated | Customizing computer performance tests |
US11438231B2 (en) | 2019-09-25 | 2022-09-06 | Microstrategy Incorporated | Centralized platform management for computing environments |
WO2021124367A1 (en) * | 2019-12-17 | 2021-06-24 | Epiphany Srl | Procedure and apparatus for configuring and deploying software packages of a digital banking system |
US11347806B2 (en) * | 2019-12-30 | 2022-05-31 | Servicenow, Inc. | Discovery of containerized platform and orchestration services |
CN111324360B (zh) * | 2020-01-09 | 2022-04-01 | 华中科技大学 | 一种面向边缘计算的容器镜像构建方法和系统 |
CN111209084B (zh) * | 2020-01-12 | 2022-11-15 | 苏州浪潮智能科技有限公司 | 一种faas分布式计算方法和装置 |
CN113126961B (zh) * | 2020-01-15 | 2023-04-07 | 中移(苏州)软件技术有限公司 | 流水线处理方法、装置和存储介质 |
CN111274297A (zh) * | 2020-01-19 | 2020-06-12 | 政采云有限公司 | 一种基于存储库的无服务端化共享资源方法及系统 |
CN111324599B (zh) * | 2020-01-20 | 2023-04-07 | 中国科学院计算技术研究所 | 一种区块链实验系统及管理方法 |
US11836158B2 (en) | 2020-02-03 | 2023-12-05 | Microstrategy Incorporated | Deployment of container-based computer environments |
JP7012921B2 (ja) * | 2020-02-06 | 2022-01-28 | 三菱電機株式会社 | 設定変更装置、設定変更方法及び設定変更プログラム |
CN111459608A (zh) * | 2020-03-04 | 2020-07-28 | 深圳壹账通智能科技有限公司 | 应用系统部署方法、装置、计算机设备及存储介质 |
EP4127909A1 (en) * | 2020-03-31 | 2023-02-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for deploying application software in cloud environments |
CN111367561B (zh) * | 2020-03-31 | 2023-09-22 | 中国工商银行股份有限公司 | 软件程序远程开发方法及装置 |
US11379320B2 (en) | 2020-07-08 | 2022-07-05 | International Business Machines Corporation | Container recovery |
US11379207B2 (en) * | 2020-08-21 | 2022-07-05 | Red Hat, Inc. | Rapid bug identification in container images |
WO2022061235A1 (en) * | 2020-09-18 | 2022-03-24 | Earthly Technologies Inc. | System and method for a hybrid development platform |
CN112363826B (zh) * | 2020-10-23 | 2023-03-14 | 国网山东省电力公司日照供电公司 | 一种项目资源综合管理系统、方法、终端及存储介质 |
CN112650556A (zh) * | 2020-12-25 | 2021-04-13 | 芜湖雄狮汽车科技有限公司 | 车辆的多任务并发测试方法及装置 |
CN112783518B (zh) * | 2021-01-26 | 2023-04-18 | 电子科技大学 | 一种基于ipfs的车载应用容器化隔离的框架系统及实现方法 |
CN112882914A (zh) * | 2021-03-09 | 2021-06-01 | 东南大学 | 开源软件生态系统健康性的多维度度量系统 |
CN113535555B (zh) * | 2021-07-12 | 2023-06-27 | 中国科学院软件研究所 | 一种面向强化学习模型的容器化测试方法与系统 |
US11954473B2 (en) | 2021-09-20 | 2024-04-09 | Microstrategy Incorporated | Deployment architecture for multi-tenant cloud computing systems |
CN113835705A (zh) * | 2021-09-29 | 2021-12-24 | 北京金山云网络技术有限公司 | 大数据服务产品开发方法、装置及系统 |
US11977922B2 (en) * | 2021-09-30 | 2024-05-07 | International Business Machines Corporation | Resource reuse for pipeline workloads |
US20230142148A1 (en) * | 2021-11-09 | 2023-05-11 | International Business Machines Corporation | Automated Deployment of Enterprise Archive with Dependency on Application Server Via Script |
US11861342B2 (en) | 2022-01-28 | 2024-01-02 | Microstrategy Incorporated | Enhanced cloud-computing environment deployment |
US20230315502A1 (en) * | 2022-03-29 | 2023-10-05 | International Business Machines Corporation | Image management for container runtimes |
CN115859292B (zh) * | 2023-02-20 | 2023-05-09 | 卓望数码技术(深圳)有限公司 | 一种涉诈app检测系统和判定方法以及存储介质 |
CN116260848B (zh) * | 2023-05-15 | 2023-08-25 | 中国机械总院集团宁波智能机床研究院有限公司 | 一种多加工设备数据采集系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959631A (zh) * | 2005-11-04 | 2007-05-09 | 上海启明软件股份有限公司 | 一种基于itron的应用软件自主装配技术 |
US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7581207B2 (en) * | 2003-12-04 | 2009-08-25 | Alcatel Lucent | Method of configuring managed entities in a communications network using configuration templates |
US20060070034A1 (en) * | 2004-09-28 | 2006-03-30 | International Business Machines Corporation | System and method for creating and restoring a test environment |
JP5556380B2 (ja) * | 2010-05-28 | 2014-07-23 | 富士通株式会社 | 管理装置,管理方法,および管理プログラム |
US8990920B2 (en) * | 2011-02-11 | 2015-03-24 | Mocana Corporation | Creating a virtual private network (VPN) for a single app on an internet-enabled device or system |
US9509745B2 (en) * | 2013-02-04 | 2016-11-29 | Oracle International Corporation | Java API for programming web real-time communication applications |
WO2015143416A1 (en) * | 2014-03-21 | 2015-09-24 | Ptc Inc. | Systems and methods for developing and using real-time data applications |
US20150268936A1 (en) * | 2014-03-21 | 2015-09-24 | Ptc Inc. | System and method for testing computing devices in a heterogeneous environment |
US9600548B2 (en) * | 2014-10-10 | 2017-03-21 | Salesforce.Com | Row level security integration of analytical data store with cloud architecture |
US10230571B2 (en) | 2014-10-30 | 2019-03-12 | Equinix, Inc. | Microservice-based application development framework |
US20160350081A1 (en) | 2015-05-27 | 2016-12-01 | Runnable Inc. | Automatic container definition |
US9917912B2 (en) * | 2015-10-05 | 2018-03-13 | Vmware, Inc. | Efficient communication within hybrid cloud system |
US10261782B2 (en) * | 2015-12-18 | 2019-04-16 | Amazon Technologies, Inc. | Software container registry service |
US9977786B2 (en) * | 2015-12-23 | 2018-05-22 | Github, Inc. | Distributed code repository with limited synchronization locking |
US10223104B2 (en) * | 2016-06-10 | 2019-03-05 | International Business Machines Corporation | Optimizing a build process by scaling build agents based on system need |
US10154065B1 (en) * | 2016-09-22 | 2018-12-11 | Trend Micro Incorporated | Policy management in software container computing environments |
-
2017
- 2017-12-19 US US15/846,707 patent/US10572226B2/en active Active
- 2017-12-21 CN CN201780085086.4A patent/CN110622129B/zh active Active
- 2017-12-21 WO PCT/SG2017/050632 patent/WO2018117966A1/en unknown
- 2017-12-21 EP EP17835721.6A patent/EP3559801A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959631A (zh) * | 2005-11-04 | 2007-05-09 | 上海启明软件股份有限公司 | 一种基于itron的应用软件自主装配技术 |
US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
Also Published As
Publication number | Publication date |
---|---|
EP3559801A1 (en) | 2019-10-30 |
WO2018117966A1 (en) | 2018-06-28 |
US20180173502A1 (en) | 2018-06-21 |
US10572226B2 (en) | 2020-02-25 |
CN110622129A (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110622129B (zh) | 使用软件容器用于加速数据分析应用程序开发和部署的各方面的方法、系统和门户 | |
US11023215B2 (en) | Methods, systems, and portal for accelerating aspects of data analytics application development and deployment | |
US11281457B2 (en) | Deployment of infrastructure in pipelines | |
US11720410B2 (en) | Secure service isolation between instances of cloud products using a SaaS model | |
US11010191B1 (en) | Platform-independent interface for generating virtualized multi-service hardware systems and infrastructure | |
Walker et al. | Platibart: a platform for transactive iot blockchain applications with repeatable testing | |
US10599423B2 (en) | Source code management for a multi-tenant platform-as-a-service (PaaS) system | |
US9307019B2 (en) | Apparatus, systems and methods for deployment and management of distributed computing systems and applications | |
Bila et al. | Leveraging the serverless architecture for securing linux containers | |
US10445121B2 (en) | Building virtual machine disk images for different cloud configurations from a single generic virtual machine disk image | |
US10810055B1 (en) | Request simulation for ensuring compliance | |
CN103226493B (zh) | 多操作系统业务的部署方法和系统 | |
JP7143417B2 (ja) | コンピューティング・デバイス | |
US10686791B1 (en) | Secure cloud computing framework | |
CN105872019A (zh) | 一种Web端登录Docker容器的方法和装置 | |
CN113849808A (zh) | 容器安全管理方法、系统、终端及存储介质 | |
US11170108B2 (en) | Blockchain technique for immutable source control | |
CN116457759A (zh) | 基于分布式容器组的系统内的服务编排 | |
JP2023550607A (ja) | セキュアな環境におけるコードの継続的なインテグレーション及び開発 | |
US20210165662A1 (en) | Systems and Methods for Automated Application Launching | |
US10977218B1 (en) | Distributed application development | |
Wang et al. | Developing a process in architecting microservice infrastructure with Docker, Kubernetes, and Istio | |
de Aguiar Monteiro et al. | A Survey on Microservice Security–Trends in Architecture Privacy and Standardization on Cloud Computing Environments | |
CN111176714B (zh) | 软件系统开发方法、装置、终端设备及存储介质 | |
CN114579250A (zh) | 一种构建虚拟集群的方法、装置及存储介质 |
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 |