CN114008605A - 大数据应用生命周期管理 - Google Patents
大数据应用生命周期管理 Download PDFInfo
- Publication number
- CN114008605A CN114008605A CN202080043028.7A CN202080043028A CN114008605A CN 114008605 A CN114008605 A CN 114008605A CN 202080043028 A CN202080043028 A CN 202080043028A CN 114008605 A CN114008605 A CN 114008605A
- Authority
- CN
- China
- Prior art keywords
- big data
- application
- data application
- source code
- container
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Abstract
本公开涉及用于创建用于大数据应用的应用生命周期管理平台的系统、方法、设备等方面。在一个实施例中,生命周期管理平台可以包括集成多个大数据工具/平台的多层容器文件。系统可以创建通用模板应用,创建用于通用模板应用的构建环境,创建用于通用模板应用的测试环境,并在用户在通用模板应用中写入任何新代码之前在测试环境中运行经构建的通用模板应用。在一个实施例中,测试环境包括容器管理系统或虚拟机,该容器管理系统或虚拟机在单独的大数据服务器集群上启动大数据应用,该大数据应用可以是开发人员编辑文件之前的通用模板应用。
Description
相关申请的交叉领域
本申请是对2019年6月13日提交的第16,440,827号美国专利申请的延续,并要求其优先权,该申请通过引用全部并入本申请。
技术领域
本公开总体涉及大数据应用开发,更具体地,涉及大数据应用生命周期管理。
背景技术
应用生命周期管理是用于控制应用从构思阶段到开发、部署、升级和从服务中移除的技术。用于管理应用生命周期的工具能够以结构化方法对应用进行部署、排除故障、管理治理和测试。
数字设备以及数字服务每天会生成万亿、千万亿、百亿亿字节的数据。大数据是分析对于传统软件来说大到无法分析的大量数据的领域。数据可以包括已存档的文献、文件和网站、媒体文件(图像、视频、音频文件)、数据存储系统(存储库、数据库、文件系统)、商业应用、公共和政府数据源、社交媒体活动、机器日志数据和传感器数据(来自媒体设备、物联网设备、电器、农场设备、车辆传感器)。这些数据可以被分析或挖掘以执行用于人工智能的预测、分析、建模和训练。然而,接收到的数据的数量、质量、准确性、速度可能给数据的监视和分析带来挑战,大量系统的使用以及大量需完成的应用同样可能给数据的监视和分析带来挑战。
由于对运行和存储大数据应用的系统的硬件和软件要求,用于管理非大数据应用生命周期的工具不能用于管理大数据应用。因此,需要用于管理这些应用的生命周期(包括大数据应用的创建、构建、测试、部署和维护)的工具。
附图说明
图1示出了根据一个实施例的大数据应用生命周期管理系统的框图。
图2示出了根据一个实施例的示例性模板结构的框图。
图3A示出了根据一个实施例的执行大数据应用生命周期管理的流程图。
图3B示出了根据一个实施例的执行大数据应用生命周期管理的流程图。
图4示出了图示根据一个实施例的大数据应用生命周期管理系统的框图。
图5示出了根据一个实施例的计算机系统的示例框图,该计算机系统适用于实现图1-4的大数据应用生命周期管理系统的一个或多个设备。
通过参考下面的具体实施方式,可以最好地理解本公开的实施例及其优点。应当理解,相似的附图标记用于标识在一个或多个附图中示出的相似元件,而其中所示是为了说明本公开的实施例,而不是为了对其进行限制。
具体实施方式
在以下描述中,阐述了描述与本公开一致的一些实施例的具体细节。然而,对于本领域技术人员而言显而易见的是,可以在没有一些或所有这些具体细节的情况下实践一些实施例。本文公开的具体实施例旨在是说明性而非限制性的。本领域技术人员可以意识到,其他元件虽然没有在这里具体描述,但是在本公开的范围和精神内。此外,为了避免不必要的重复,除非另外具体描述或者如果一个或多个特征将使实施例不起作用,否则与一个实施例相关联地示出和描述的一个或多个特征可以合并到其他实施例中。
本公开的各个方面涉及用于创建针对大数据应用的应用生命周期管理平台的系统、方法、以及设备等。大数据应用包括这样的应用:在该应用中,数据无法容纳于单台计算机/服务器上或单个事务无法被单台计算机处理。管理大数据应用生命周期的过程包括创建、构建、测试、部署、分析和维护大数据应用。在某些系统中,生命周期管理有很多步骤,其中很多步骤是手动的,需要与许多团队/平台和服务直接联系和通信。
用于管理应用生命周期的特征构建在多个开发和管理平台上。这些平台可以包括例如用于代码开发、构建、部署和监视的编排平台。平台还可以包括容器管理平台、APACHEMESOS、GITHUB、JENKINS、TWISTLOCK、从高级语言创建低级代码的汇编器、HADOOP生态系统、Kerberos安全专注网络身份验证协议、用于在服务器集群上提交和管理APACHE SPARK作业的LIVY和其他相关的RESTful接口、用于存储加密的密钥和密码以使其不需要被存储在磁盘上的凭证和秘密管理平台、以及用于访问存储在任何数据存储区和平台上的数据以对任何数据存储区上的访问数据写入SQL的GIMEL unified API。
根据本文的实施例,这些服务可以被修改和改进以适应大数据应用。在一个实施例中,可以创建与上述工具/平台集成的多层容器文件(例如DOCKER镜像)。每一层可以添加与一个或多个所述平台一起工作的能力。该多层容器可以允许多个平台团队创建这样的通用组件:每个平台团队可以为他们的开发人员构建这些通用组件,并且这些通用组件可以随后被放置在基础代码之上。这可以允许增加的代码可复用性以及单个组织中开发团队之间的标准化。在一个实施例中,描述了四层容器。第一层描述了基础层,该基础层包含用于运行环境、联网和安全性的工具、平台和配置。第一层还可以包括其他核心软件和核心库,例如python、curl、clib以及很多其他库和软件。在一些示例中,第一层包括操作系统。该操作系统可以是供程序员使用并运行应用的定制操作系统。例如,该操作系统可以包括用于创建和构建程序的软件和库。第二层描述了大数据层,该大数据层包含这样的特征:这些特征用于访问大数据框架(例如,APACHE HADOOP生态系统,该生态系统包括APACHE PIG、APACHE HIVE、APACHE HBASE、APACHE PHOENIX、APACHE SPARK、APACHE ZOOKEEPER、CLOUDERA IMPALA、APACHE FLUME、APACHE SQOOP、APACHE OOZIE和APACHE STORM)以及将应用依赖关系(dependency)上传到分布式文件系统(例如,HADOOP分布式文件系统(HDFS))。第三层描述了平台/团队层,该平台/团队层包括每个特定平台或团队所需的特征,例如运行参数及依赖关系的模板。第四层描述了应用层,该应用层包含应用所使用或所需要的特征,例如特定于应用的依赖关系。
在本公开的实施例中,用户可以指示系统创建新的大数据应用以进行开发。用户可以是单个开发人员、开发人员团队、或开发人员的组织或子组织。系统可以创建通用模板应用(在一些实施例中,该通用应用特定于开发人员团体或团队),创建用于通用模板应用的构建环境,创建用于通用模板应用的测试环境,并在用户在通用模板应用中编写任何新代码之前在测试环境中运行经构建的通用模板应用。本实施例的优点是可以使开发人员/开发团队能够专注于他们的特定应用的代码,而不必担心环境、基础设施复杂性、连接性等。与传统的基于关系数据库管理系统(RDBMS)的应用世界相比,由于组件的数量、基础设施的复杂性、连接性,这个问题在大数据世界中更加困难。在一个实施例中,测试环境包括虚拟机/容器应用,该虚拟机/容器应用在单独的大数据服务器集群上启动大数据应用(该大数据应用可以是开发人员编辑文件之前的通用模板应用)。在某些环境中,创建用于数据应用(尤其是大数据应用)的测试或预发布(stage)环境可能有困难,因为该环境需由各种依赖关系组成,并且API和交互对于即使是次要版本不同也可能很挑剔。本公开的实施例通过在测试应用代码之前在构建和测试环境中测试通用组件以提供简化的调试过程,来缓解这种情况。在一些示例中,虚拟机/容器应用是在集群管理系统上启动的并且大数据应用在大数据集群上运行。在构建和测试通用模板应用之后,用户或用户组可以用代码存储库中的应用特定代码来更新通用模板应用。在代码库中更新/保存应用或升级大数据应用的主分支或版本可以触发构建环境重新构建大数据应用。然后测试环境可以自动运行大数据应用的新版本。
用于大数据应用生命周期管理的自动化工具可以提升开发人员创建和管理应用的经验,并可以改进用于查看和控制正在运行的应用的操作。自动化的大数据应用生命周期管理系统可以最小化在设置和构建大数据应用时的手动数据输入量,创建用于创建和测试大数据应用的标准化环境,并允许对多个大数据应用进行调度、测试和管理,该自动化的大数据应用生命周期管理系统允许与第三方(开放源代码的以及专有的)工具和平台的集成。大数据应用生命周期管理平台除其他事项外还可以扫描应用的漏洞、强制编码标准,并提供监视和警告。
因此,在一个实施例中,引入了用于执行应用生命周期管理的系统100,该系统100被配置为管理大数据应用的生命周期。图1示出了用于执行大数据应用的生命周期管理的系统100。生命周期管理平台102可以包括用于用户设备104直接或经由网络106连接至生命周期管理平台102的接口。系统100还可以包括构建环境108、代码库110和配置和设定服务器112。系统100可以包括测试环境114和生产环境116。测试环境114和生产环境116中的每一个可以包括一个或多个调度和管理服务器118和大数据服务器集群120。
用户设备104可以使用被配置用于通过网络106进行有线和/或无线通信的硬件和/或软件的任何适当组合来实现。例如,在一个实施例中,用户设备104可以包括个人计算机设备。个人计算机可以包括桌面计算系统、膝上型/笔记本计算系统、平板计算系统、移动电话、专用集成电路(ASIC)计算系统、物联网(IoT)设备、和/或本领域已知的其他计算设备。个人计算机可以包括这样的软件,该软件(例如应用或浏览器界面)用于执行或者连接到被配置为执行大数据应用生命周期管理的设备(例如生命周期管理平台102)。
用户设备104可以包括一个或多个应用(例如浏览器应用),这些应用可以被用来例如提供接口,以允许用户浏览可以通过网络106获得的信息。例如,在一个实施例中,应用可以是被配置为查看可以通过互联网获得的信息的网络浏览器。
生命周期管理平台102被配置为管理大数据应用的生命周期。生命周期管理平台102可以被配置为与用户设备104交互。例如,生命周期管理平台102可以具有用于以下项的接口:设置新的大数据应用;检查大数据应用的当前状态,包括该应用是否是新的、是否已被构建、是否已经在测试环境(例如测试环境114)中被测试、或者该应用是否正在生产环境(例如生产环境116)中运行。此外,生命周期管理平台102可以提供用于以下项的接口:查看日志以及监视服务器集群的设定和资源使用、治理、访问控制、以及任何错误或警告。生命周期管理平台102可以与代码储存库110连接以存储和管理代码。
此外,生命周期管理平台102可以提供数据分析和集成,使用户能够注册他们的大数据应用并在生产中进行部署。生命周期管理平台102使能查看可用数据集、查看模式(schema)以及查看系统和对象属性的能力。生命周期管理平台102可以自动发现所有数据存储区中的数据集。生命周期管理平台102可以提供包括操作度量的仪表板和警告,所述操作度量包括统计信息、刷新时间和趋势、批准和审计的可见性以及管理性警告(例如,容量问题、数据访问违规和数据分级违规)和用户警告(例如,刷新延迟和配置文件异常)。此外,生命周期管理平台102可以包括被设计用于笔记本和工具的集成的查询和集成特征。为了提供这些特征,生命周期管理平台102可以提供分类、分级、分析和用于运行和存储大数据的机制。
生命周期管理平台102可以是被设计为针对任何计算机引擎提供统一用户体验的平台。也就是说,生命周期管理平台102可以是使用户能够运行一个或多个大数据应用的分析平台或框架。例如,生命周期管理平台102可以使用户能够运行大数据应用/数据处理框架(包括但不限于SPARK、HIVE、PRESTO等)。大数据应用可以通过软件架构风格或其他基于接口协议的应用编程接口(API)来运行。例如,API可以包括但不限于基于表述性状态转移(REST)的API、基于Thrift的API、以及基于简单对象访问协议(SOAP)的API。另外,生命周期管理平台102可以被设计为无需安装、设置和/或配置即可运行。因此,生命周期管理平台102可以被用来提供用于应用开发、执行、日志记录、检测、警告、安全、工作负载管理、性能调整等的一整套工具和技术。此外,生命周期管理平台102可以被用来支持通用计算引擎(例如SPARK),以用于大规模数据处理和运行(一个或多个)交互式代码、调度作业和机器学习分析。例如,交互式SPARK可以与交互式shell、JUPYTER Notebooks、APACHE ZEPPELIN和Squirrel/DBVISUALIZER SQL客户端一起使用。作为调度作业的示例,生命周期管理平台102可以用于与一个或多个调度和管理服务器118协作,以在低延迟应用、批处理沉重的应用、以及流媒体应用上调度作业。生命周期管理平台102的优点包括但不限于以下方面的改进:管理方面(例如,更少的维护、软件堆栈的部署、以及在一个地方管理系统配置的能力)、操作/安全性方面(例如,通过单个作业的执行、编码标准、日志记录、监视和警告、审计、以及完整的语句级历史和度量)、开发方面(例如,通过应用的模块化、可恢复性的容易性、减少的延迟、缓存共享等)、以及分析方面(例如,用于直接的SQL执行、多用户支持笔记本的能力、用户友好的交互应用、以及身份验证集成)。
生命周期管理平台102可以针对任何数据存储装置提供统一的访问API。特别地,生命周期管理平台102可以提供可伸缩的平台服务。这样的可伸缩的数据服务可以包括数据集成。例如,生命周期管理平台102可以促进数据的获取和转换的编排,并提供可靠和安全的通过流传输或批处理将数据传递到各个目的地的手段。核心数据平台还可以用作分析数据处理平台,以访问位于大数据应用(例如HADOOP)中的数据和位于数据和分析平台中的数据。此外,生命周期管理平台102还可以提供对数据存储装置的访问,以进行对单个集群化数据存储区的自服务生命周期管理以及对基于商品存储装置的管理。此外,生命周期管理平台102可以用于学习、优化、构建、部署和运行各种应用和变化。例如,生命周期管理平台102上的数据应用生命周期可以包括:载入大数据应用和管理计算引擎更改、计算版本更改、存储API更改、存储连接器升级、存储主机迁移和存储装置更改。
构建环境108可以被配置为将源代码文件转换成独立的软件程序(项目模版(artifact)、二进制文件、可执行文件)、或已经准备好被解译的、能够在计算机/服务器集群上运行的文件。构建环境108可以被配置为收集用于构建大数据应用的相关软件代码和包括这些代码的库。构建环境108可以是独立服务器,或者使用共享资源。构建环境108可以使用自动化工具来触发构建和调度常规构建,或者可以基于触发事件来构建应用,该触发事件例如是代码储存库110中的一个提交项。在一个示例中,构建环境108可以使用诸如JENKINS之类的持续交付开发工具。
代码储存库110可以被配置为提供用于大数据应用的存储装置和开发工具。代码储存库110可以为开发人员提供协作工具、版本控制、问题跟踪和文件编制。代码存储库110可以直接集成到生命周期管理平台102中,或者代码存储库110可以是能够经由网络连接到生命周期管理平台102的第三方服务器/应用(例如使用诸如GIT之类的版本控制系统的GITHUB)。
配置和设定服务器112可以包含和管理针对各种服务器环境(例如测试环境114和生产环境116)的配置和设定。生命周期管理平台102可以连接到配置和设定服务器112,并检索用于开发大数据应用的设定、配置文件和模板。设定可以包括资源管理器的地址和存储数据的地址。
测试环境114和生产环境116是两个独立的服务器环境。测试环境114和生产环境116可以具有相同或相似的设定,然而,在测试环境114中使用的数据是测试数据,并且这些数据不被配置为被最终用户访问,而在生产环境116中使用的数据是现场数据,并且生产环境116将运行应用以用于最终用户处理操作数据。测试环境114和生产环境116可以包括一个或多个调度和管理服务器118。每个调度和管理服务器118可以与大数据服务器集群120相关联。在另一个实施例中,调度和管理服务器118可以与多个大数据服务器集群120相关联。
调度和管理服务器118可以被配置为管理大数据服务器集群120上的大数据应用。在一些示例中,在调度和管理服务器118上创建虚拟机或容器应用,以在大数据服务器集群120上启动大数据应用。调度和管理服务器118可以在大数据服务器集群120上运行的多个应用(或同一应用的多个版本)之间提供服务器资源的调度。在另一个应用完成或失败之后或当有新数据可供处理时,调度和管理服务器118可以触发大数据应用的运行。调度和管理服务器118也可以在其他情况下触发大数据应用。作为示例,调度和管理服务器118可以在第一应用一开始就触发第二应用,而不管第一应用最终成功还是失败。作为另一个示例,调度和管理服务器118可以在应用B启动30分钟后触发第二应用。作为另一个示例,如果第一应用连续失败多次(例如,第一应用失败三次),则第二应用可以被触发。调度和管理服务器118可以在特定时间段(每天、每小时等)之后触发大数据应用的运行。在应用开始时,大数据应用可以被调度和管理服务器118节流以使其分散开(spread out)。调度和管理服务器118可以收集资源使用度量和统计信息。可以向生命周期管理平台102提供关于何时运行大数据应用的建议。由调度和管理服务器执行的其他分析,包括运行大数据应用的时机(以及与其他应用相关地运行该应用的时机)、预测、风险评估、资源利用率等。
大数据服务器集群120可以包括一组服务器,这些服务器一起工作以运行一个或多个应用。大数据服务器集群120可以包括多个商品计算机系统上的可伸缩大数据存储装置(例如HDFS)存储池。在一些实施例中,使用用于大数据应用的专用硬件。
图2示出了生命周期管理平台102所使用的模板容器的示例性框图。构建环境108和/或生命周期管理平台102可以生成和使用模板文件或模板200,以组织和自动化大数据生命周期管理。模板200是多层容器文件,其包含用于测试、构建、运行、管理和分析大数据应用的所有或大部分设定、工具和实用程序(utility)。模板200可以包括具有基础层202、大数据层204、组层206和应用层208的四级容器文件。
一个组织可能有多个开发组/团队。在一些示例中,不同的组可以针对模板200的不同层做出贡献和进行开发。例如,基础层202可以由基础平台团队和安全团队开发。大数据平台团队和大数据团队可以开发大数据层204。开发人员可以开发应用层208。开发人员可以与源代码管理团队以及构建和测试团队一起开发应用层208。开发人员所属的组可以开发组层206。整体模板功能可以由应用生命周期团队、应用存储库团队、容器管理团队、硬件供应团队和/或支持团队监督。
在一些示例中,模板200是DOCKER镜像/容器文件。DOCKER镜像是用于在DOCKER容器中执行代码的文件(可以包含多个层)。DOCKER镜像本质上是根据应用的完整和可执行版本的指令构建的,这些指令可以依赖于主机操作系统(OS)内核。在一些示例中,模板200是这样的DOCKER镜像,其具有一个或多个只读层以及在这些只读层之上的可读/可写层(用于大数据应用)。这些层(也称为中间镜像)可以是在容器/DOCKER镜像构建期间当容器/DOCKER文件中的命令被执行时生成的。
基础层202可以包括用于应用的运行环境、联网和安全的设定、实用程序和工具。基础层202中的设定可以包括适用于大数据和非大数据应用的设定,这些设定包括操作系统210(例如,LINUX发行版本、WINDOWS、APPLE OS等)、平台工具和配置212(包括低级网络拓扑设定以及服务器集群配置和设定)、以及平台安全工具和配置214。安全工具可以包括与安全密钥链应用的连接,以提供对资源的访问许可并保护用户和应用凭据、密码和其他秘密。
大数据层204可以包括用于以下项的特征:访问大数据生态系统(例如HADOOP生态系统)、以及将依赖关系上传到大数据文件系统(例如HDFS)。大数据层204可以包括大数据配置和库216,该大数据配置和库216可以包括关于如何连接到在测试环境114或生产环境116中的一个或多个大数据集群120的信息。编排、监视和警告客户端218是这样的接口:该接口可以被配置为从调度和管理服务器118检索关于日志记录、监视、治理、访问控制以及警告的信息。启动、终止、更新和恢复客户端220可以是这样的接口:该接口可以被配置为启动和管理正在一个或多个大数据集群120上运行的大数据应用。大数据文件系统客户端222可以包括HADOOP HDFS客户端。大数据文件系统客户端222可以包括这样的接口:该接口用于与大数据文件系统通信以及执行文件相关任务(如读取和写入块数据)。作业服务器客户端224(例如APACHE Livy客户端)可以用于与一个或多个调度和管理服务器118交互,以指示或接收关于作业调度的信息。作业服务器客户端224可以包括API或REST接口。
组层206可以包括特定于用户的特征,其中用户包括特定于平台/开发团队/组的特征,这些特征是特定团队专门需要的或对该特定团队有用的。这些特征可以包括运行参数和依赖关系的模板。团队/组包括一组开发人员,他们创建具有相同端点或库依赖关系的类似应用。组层206可以包括共享库226。共享库226可以包括将被包括在特定团队所开发的每个应用中的共享库。组层206可以包括共享测试环境设定228和共享生产环境设定230,以与大数据服务器集群120上的大数据生态系统(例如HADOOP生态系统)交互,因为一个组可以具有一个或多个专用数据服务器集群120以进行测试或生产。
应用层208可以包括应用所需的特征,例如特定于应用的依赖关系、工具或实用程序。这包括通常不被特定开发团队发现或使用的依赖关系(通常被特定开发团队发现或使用的依赖关系可以放置在组层206中)。应用层208包括用户库和配置232,用户库和配置232包括(要被构建的)用户应用234所依赖的所有代码。用户应用234最初可以是存根或模板应用。在一些示例中,用户应用234可以是团队/组的特定的存根(stub)或模板文件。模板文件可以是能够进行构建的并且能够在测试环境114(或生产环境116)中运行。
现在参考图3A,图3A是流程图350,其图示出了根据一个实施例使用系统100来管理大数据应用的生命周期。用户设备104可以通过网络106连接到生命周期管理平台102。生命周期管理平台102可以向用户设备104呈现用户界面以创建新的大数据应用。用户界面可以请求某些信息以生成新的大数据应用。在一个示例中,生命周期管理平台102请求大数据应用的团队或开发组来创建大数据应用。
在块352处,生命周期管理平台102可以创建源代码模板。该源代码模板可以是特定于特定的开发或用户组的。在某些示例中,该组可以通过用户输入来指定。在其他实施例中,该组可以由连接至生命周期管理平台102的用户凭证隐式表达。在块354处,生命周期管理平台102可以创建容器实例。该容器实例可以存储源代码模板。
在块356处,生命周期管理平台102可以设置用于构建生命周期管理应用的构建环境108、以及用于在大数据服务器集群120上运行大数据应用的测试环境114。调度和管理服务器118可以被生命周期管理平台102配置用于测试大数据应用。
在块358处,生命周期管理平台102可以在指示构建环境102构建和测试存根应用。存根应用可以仅包括自动生成的文件(基于例如源代码模板),而不包括任何被用户修改或创建的文件。在一些示例中,该构建创建自包含(self-contained)容器和/或一组容器组合文件,并且可以包含用于运行存根应用的所有库依赖关系。
如果构建和测试成功,用户可以通过源代码模板来修改大数据应用。修改源代码可以使用代码储存库110来进行。当完成对代码的测试(或完成对代码的测试之前),用户可以提交代码或最终确定代码。该过程可能触发在块360处源代码和依赖关系被传送到生命周期管理平台102。在其他示例中,用户可以手动向生命周期管理平台102提供经更新的源代码。经更新的源代码可以被生命周期管理平台102放置在容器实例中。在块362处,生命周期管理平台102可以重新构建和重新测试新更新的代码/应用。
现在参考图3B,图3B是流程图300,其图示出了根据一个实施例使用系统100来管理大数据应用的生命周期。用户设备104可以经由网络106连接到生命周期管理平台102。生命周期管理平台102可以向用户设备104呈现用户界面以创建新的大数据应用。用户界面可以请求某些信息以生成新的大数据应用。在一个示例中,生命周期管理平台102请求大数据应用的团队或开发组来创建大数据应用。
在使用生命周期管理平台102之前,用户和组可以生成模板或存根应用源代码文件和配置文件。生命周期管理平台102可以使用这些预先生成的应用源代码文件和配置文件来生成自包含的容器文件。
在块302处,用户设备104可以提交、而生命周期管理平台102可以接收创建新应用的指令,该指令指定用户组。在块304处,生命周期管理平台102可以创建特定于所提交的用户组的源代码模板。在块306处,生命周期管理平台102可以创建容器实例(例如DOCKERFile)。该容器实例可以存储在块304处创建的特定于用户组的源代码模板。
在块308处,生命周期管理平台102可以设置用于构建生命周期管理应用的构建环境108。在块310处,生命周期管理平台102可以设置测试环境,其中,测试环境114的调度和管理服务器118在大数据服务器集群120上运行大数据应用。
生命周期管理平台102可以指示构建环境102构建存根应用。在一些示例中,该构建创建自包含容器(例如DOCKER镜像)和一组容器(例如DOCKER)组合文件。在一个示例中,自包含意味着:DOCKER镜像包含运行应用所需的全部或基本全部二进制文件。在一些示例中,二进制文件是java存档(.jar)文件。此外,DOCKER镜像可以包含用于运行应用的所有库依赖关系。在一些情况下,库依赖关系由依赖关系管理器(如MAVEN、SBT和/或GRADEL)管理。DOCKER镜像可以包含多组配置以在四个不同的环境中运行应用。这些环境可以包括基础/开发环境、质量保证(QA)环境、沙盒环境(供第三方使用)和生产环境,该质量保证环境可以包括云平台的用户阶段,例如GOOGLE CLOUD平台(GCP)。环境和配置的多种组合可以用于同一应用。例如,单个应用可以具有一个用于开发环境的配置集,三个用于QA环境的配置集,一个用于沙盒环境的配置集,以及五个用于生产环境的配置集。
DOCKER镜像可以包含连接到密钥链应用的脚本,以从密钥链应用获取安全运行应用所需的秘密/密码。DOCKER镜像可以包含用于将运行应用所需的所有文件放置在大数据文件系统(例如HDFS)上的脚本。DOCKER镜像可以包含用于向作业分配/调度(例如Livy)服务器提交新作业的脚本。DOCKER镜像可以包含如下的脚本:这些脚本被配置为周期性地检查大数据集群(例如APACHE HADOOP“另一种资源协调者”(Yet Another ResourceNegotiator,YARN))上提交的大数据应用/作业(例如APACHE SPARK作业)的状态,以执行基于拉(pull-based)的调度和资源管理。DOCKER镜像可以包含用于在应用结束(或失败)后将上传的文件清理到大数据文件系统(例如HDFS)中的脚本。
容器(例如DOCKER)编制文件(compose file)可以包含在环境中运行应用所需的所有参数,并且可以构成在计算引擎(例如APACHE SPARK计算引擎)上提交大数据应用时执行的命令。这些参数中的一部分可以由大数据生命周期管理平台提供,而其他参数可以由应用开发人员定义。在某些示例中,应用开发人员可以定义自己的参数并将它们添加到他们的大数据应用中。以下参数中的一部分可以在所有环境中都具有相同的值,但其他参数可以因环境而异。这些参数可以包括:SPARK_USER、HDFS_SERVER_ADDRESS、WEBHDFS_SERVER_PORT、CLUSTER_ENV、AVAILABILITY_ZONE、APP_MAIN_CLASS、APP_MAIN_JAR、EXTRA_JARS、EXTRA_FILES、APP_NAME、VERSION、LIVY_SERVER、TYPE、以及KEYPOINTA。
取决于特定的环境,可以为每个环境或环境组生成一种或多种类型的容器编制文件,例如docker-compose文件。例如,对于基础/开发环境,可以生成docker-compose-base.yml文件;对于QA/GCP用户阶段,可以生成docker-compose-qa.yml文件;对于沙箱环境,可以生成docker-compose-sandbox.yml文件;对于生产,可以生成docker-compose-production.yml文件。在一个示例中,大数据应用生命周期管理平台可以以任何粒度级别支持任意所需数量的环境。这些环境可以根据需要而被细粒度化或粗粒度化。例如,一个参数可以被配置为用于所有测试环境。然而,另一个参数可以被配置为仅用于位于一个城市(例如盐湖城)或一个地区(例如美国西南部)或一个国家(例如美国)的生产环境。编制文件的命名可以基于正在配置的环境。
在块312处,可以在测试环境114(可以包括前述的测试环境之一)中运行新创建的容器。测试环境114可以单独管理应用并在特定服务器集群上运行该应用。应用可以在测试环境114中的虚拟机或容器中运行。一旦应用被完全构建并被测试,用户就可以用为该应用编写的新代码来更新新应用的源代码,以补充或替换被构建和测试的应用。可以将新代码发送到代码存储库110。当用户在代码储存库110中提交代码时,代码储存库110可以向生命周期管理平台102发送触发事件。在块314处,生命周期管理平台102可以接收警告源代码已经被更新的触发事件。在块316处,生命周期管理平台102可以重建构建和重新测试应用。
当应用完成并且已经被测试,在块318处,用户可以指示生命周期管理平台102应用已经准备好投入生产。用户可以提供确认以表明应用已准备好投入生产,或者该过程可以是自动化的。在块320处,生命周期管理平台102可以执行附加测试(例如安全扫描、资源使用情况测试),以确定应用是否已经准备好在生产环境106中运行。测试环境114可以单独管理应用,并且在测试期间和/或在应用的整个生命周期期间在特定服务器集群上运行应用。在完成测试后,在块322处,生命周期管理平台102可以设置生产环境(例如生产环境116)以运行应用。在块324处,生命周期管理平台102可以收集关于应用的度量(日志、监控),这些度量然后被分析。生命周期管理平台102可以提供对于将应用用于生产的自动批准。在块326处,用户可以提供确认应用已准备好用于生产的指令。在接收到指令之后,在块328处,生命周期管理平台102可以在生产环境116中运行应用。在某些实施例中,在生产环境中启动应用包括将大数据应用在时间上错开地部署(staggering deployment)到多个大数据服务器集群120中。例如,可以在第一时间处将应用部署在第一大数据服务器集群中,如果该应用稳定,则在第二稍后时间处将应用部署在第二大数据服务器集群中。
应用在生产环境中可以运行。在块330处,可以收集和存储关于应用的数据、资源使用统计信息、错误日志等。在块332处,可以将应用调度为(通过调度和管理服务器118)在特定时间运行,以与一个或多个其他应用进行协调(例如,如果这些应用之间存在数据依赖关系的话),或者可以基于所收集、存储和分析的数据来将应用调度为较频繁或较不频繁地运行。
在应用的生命周期内,在块334处,可以在修正、管理、测试和更新软件。一旦应用不再有用、已被另一应用替换或已经完成其设置功能,则在块336处可以逐步停用该应用。这可以包括从系统中删除、将生产数据移动到不同位置或将生产数据删除。所提出的系统可以管理单个应用的生命周期,也可以用于并行管理多个应用的生命周期。因此,可以有多个应正在被构建中、测试中或处于生产环境中,或者可以正在进行这三者的组合。
现在参考图4,图4示出了用于执行大数据应用的生命周期管理的系统400。生命周期管理平台102可以包括用于用户设备的接口。应用开发人员可以与生命周期管理平台102和代码储存库110交互。在某些实施例中,代码储存库110可以包括能够被用户编辑的用户配置402和应用源代码404。
配置准备器服务器406可以从代码储存库110、环境配置408以及环境模板410接收用户配置402和应用源代码404。配置408和模板410中的每一个均可以被设计为与特定的大数据服务器集群120一起工作。
当构建大数据应用时,可以从库储存库412收集库依赖关系。库储存库412中的应用库414可以与应用源代码404组合和编译以构建大数据应用。应用源代码404和应用库414被自动构建环境服务器416链接和/或编译在一起以形成应用二进制文件418。自动构建环境服务器416可以运行自动构建应用(例如JENKINS)。应用二进制文件418被放置到应用的模板容器镜像420中。可以将其他库依赖关系和应用配置放入应用的模板容器镜像420中。一旦将应用二进制文件(以及库和配置)被放入到模板容器镜像中,所得的就是应用的容器镜像。然后可以将应用的容器镜像420移动到项目模板储存库422,该项目模板储存库422可以包括DOCKERHUB或ARTIFACTORY服务器。
应用机密424可以包括密码、加密密钥等并且可以被存储在安全密钥链426中。安全密钥链426可以用于在服务器集群120上启动大数据应用。容器镜像420被发送到运行调度器应用的作业服务器434(例如LIVY服务器),该调度器应用被配置为调度大数据应用以在大数据服务器集群120上运行。作业服务器434可以被配置为调度多个应用并且可以被配置为基于多个应用之间的数据依赖关系来调度应用。作业服务器434还被配置为跟踪关于大数据服务器集群120的统计信息和健康信息,包括日志记录436、监视438、治理440、访问控制442和警告444。信息436-444被提供给生命周期管理平台102。
来自自动化构建环境服务器416的应用二进制文件418以及应用428的配置和参数(来自配置准备器服务器406)可以被传送到运行大数据管理应用的集群管理系统430,该大数据管理应用被配置为管理计算机集群(例如APACHE MESOS)。集群管理系统430可以包括应用启动器432,应用启动器432被配置为启动应用的模板容器镜像420。
现在参考图5,图5示出了计算机系统500的一个实施例,该计算机系统500适用于例如实现用户设备、平台和服务器(包括组合后的服务器集群)。应当理解,在生命周期管理系统中使用的其他设备可以以如下方式被实现为计算机系统500。
根据本公开的各种实施例,计算机系统500(例如计算机和/或网络服务器)包括总线502或用于传送信息的其他通信机构,该总线502或其他通信机构连接子系统和组件,这些子系统和组件为例如处理器504(例如处理器、微控制器、数字信号处理器DSP等)、系统存储器组件506(例如RAM)、静态存储组件508(例如ROM)、磁盘驱动器组件510(例如磁性、光学、闪存或固态)、网络接口组件512(例如调制解调器或以太网卡)、显示组件514(例如CRT或LCD)、输入组件518(例如键盘、小键盘或虚拟键盘、麦克风)、光标控制组件520(例如,鼠标、指针或轨迹球)和/或位置确定组件522(例如如图所示的全球定位系统(GPS)设备、蜂窝塔三角测量设备和/或或本领域已知的各种其他位置确定设备)。在一种实施方式中,磁盘驱动器组件510可以包括具有一个或多个磁盘驱动器组件的数据库。
根据本公开的实施例,计算机系统500通过处理器504执行包含在存储器组件506中的一个或多个指令序列来执行特定操作,例如此处关于用户设备、服务器设备(包括支付提供商服务器、商家服务器和身份验证服务器)、数据存储区和节点描述的操作。这些指令可以从另一计算机可读介质(例如静态存储组件508或磁盘驱动器组件510)读入到系统存储器组件506中。在其他实施例中,硬连线电路可以取代软件指令或与软件指令结合使用以实现本公开。
逻辑可以被编码在计算机可读介质中,计算机可读介质可以指参与向处理器504提供指令以供执行的任何介质。这种介质可以采用多种形式,包括但不限于非易失性介质、易失性介质和传输介质。在一个实施例中,计算机可读介质是非暂时性的。在各种实施方式中,非易失性介质包括光盘或磁盘(例如磁盘驱动器组件510),易失性介质包括动态存储器(例如系统存储器组件508),并且传输介质包括同轴电缆、铜线和光纤,包括构成总线502的电线。在一个示例中,传输介质可以采取诸如在无线电波和红外数据通信期间生成的声波或光波的形式。
计算机可读介质的一些常见形式例如包括软盘、柔性盘、硬盘、固态驱动器(SSD)、磁带、任何其他磁介质、CD-ROM、任何其他光学介质、打孔卡、纸带、具有孔洞的任何其他物理介质、闪存、RAM、PROM、EPROM、FLASH-EPROM、任何其他存储芯片或盒式磁带、载波,或任何其他适合计算机读取的介质。在一个实施例中,计算机可读介质是非暂时性的。
在本公开的各种实施例中,实现本公开的指令序列的执行可以由计算机系统500来执行。在本公开的各种其他实施例中,通过通信链路518耦合到网络(例如,LAN、WLAN、PSTN、和/或各种其他有线或无线网络,包括电信、移动和蜂窝电话网络)的多个计算机系统500可以执行指令序列来与彼此协调地实现本公开。
计算机系统500的网络接口512还可以包括短程通信接口。因此,在各种实施例中,网络接口512可以包括收发器电路、天线和/或波导。网络接口512可以使用一种或多种短距离无线通信技术、协议和/或标准(例如,Wi-Fi、蓝牙、蓝牙低功耗(BLE)、红外线、NFC等)。
在各种实施例中,网络接口512可以被配置为检测计算机系统500附近的具有短程通信技术的其他系统、设备、外围设备和数据存储。网络接口512可以创建用于检测具有短程通信能力的其他设备的通信区域。当具有短距离通信能力的其他设备被放置在网络接口512的通信区域中时,网络接口512可以检测到这些其他设备并与这些其他设备交换数据。当足够接近时,网络接口512可以从其他设备接收标识符数据包。标识符数据包可以包括一个或多个标识符,这些标识符可以是操作系统注册表项、与应用相关联的cookie、与另一设备的硬件相关联的标识符和/或各种其他适当的标识符。
在一些实施例中,网络接口512可以识别使用诸如Wi-Fi之类的短程通信协议的局域网,该并加入局域网。在一些示例中,计算机系统500可以使用网络接口512发现作为局域网一部分的其他设备和/或与其通信。
计算机系统500可以通过通信链路524和网络接口组件512发送和接收消息、数据、信息和指令(包括一个或多个程序(即应用代码))。网络接口组件512可以包括分开的或集成的天线,来使能经由通信链路524的发送和接收。接收到的程序代码可以在接收时被处理器504执行和/或被存储在存储驱动组件510或者某种其他非易失性存储组件中以供执行。
在适用的情况下,可以使用硬件、软件、或硬件和软件的组合来实现本公开提供的各种实施例。另外,在适用的情况下,本文记载的各种硬件组件和/或软件组件可被组合为包括软件、硬件和/或两者的复合组件,而不脱离本公开的范围。在适用的情况下,本文记载的各种硬件组件和/或软件组件可被分离为包括软件、硬件和/或两者的子组件,而不脱离本公开的范围。此外,在适用的情况下,设想了软件组件可被实现为硬件组件,反之亦然。
根据本公开的软件(例如程序代码和/或数据)可以被存储在一个或多个计算机可读介质上。还设想到了本文识别的软件可利用联网的和/或没有联网的一个或多个通用或专用计算机和/或计算机系统来实现。在适用的情况下,本文描述的各种步骤的排序可被改变、被组合为复合步骤和/或被分离为子步骤以提供本文描述的特征。
前述公开并不打算将本公开限制到公开的确切形式或者特定使用领域。因此,设想到了对本公开的各种替换实施例和/或修改,无论是本文明确描述的还是暗示的,根据本公开都是可能的。在这样描述了本公开的实施例后,本领域普通技术人员将会认识到在不脱离本公开的范围的情况下可做出形式和细节上的改变。从而,本公开仅受权利要求限制。
Claims (20)
1.一种管理大数据应用生命周期的方法,包括:
使用模板应用来生成用于大数据应用的大数据应用源代码,所述大数据应用源代码包括测试应用;
生成被配置为构建所述大数据应用的一个或多个构建环境;
在所述一个或多个构建环境中,使用所述大数据应用源代码来构建所述大数据应用;
配置与大数据应用相关联的一个或多个测试环境,所述一个或多个测试环境被配置为分配服务器集群以供所述大数据应用使用;
在所述一个或多个测试环境中测试所述大数据应用;
接收所述大数据应用源代码已被更新的触发事件;以及
响应于所述触发事件,使用经更新的大数据应用源代码来重新构建所述大数据应用。
2.如权利要求1所述的方法,还包括:在重新构建所述大数据应用之后,重新测试所述大数据应用。
3.如权利要求2所述的方法,还包括:
配置所述大数据应用,以对操作数据进行处理;以及
将所述大数据应用放置于一个或多个生产环境中。
4.如权利要求3所述的方法,其中,所述放置包括将所述大数据应用在时间上错开地部署到多个数据集群中。
5.如权利要求1所述的方法,还包括:调度所述大数据应用,以在生产服务器集群上周期性地运行。
6.如权利要求5所述的方法,其中,所述调度是基于对两个或更多个大数据应用之间的数据依赖关系的管理的。
7.如权利要求1所述的方法,还包括:将所述大数据应用源代码存储在源代码库中,其中,所述触发事件是从所述源代码库接收的。
8.如权利要求1所述的方法,还包括:
收集关于所述大数据应用的资源和用户使用情况统计信息;以及
基于所述资源和用户使用情况统计信息,来确定运行所述大数据应用的时机。
9.如权利要求1所述的方法,其中,所述测试环境包括如下的设备:该设备运行虚拟机或容器,以在服务器集群上启动所述大数据应用。
10.如权利要求9所述的方法,还包括:使用所述虚拟机或容器来启动所述大数据应用的多个版本中的每一个,以测试所述大数据应用的所述多个版本。
11.如权利要求1所述的方法,还包括:生成大数据容器模板,所述大数据容器模板包括所述大数据应用源代码。
12.如权利要求11所述的方法,其中,所述大数据容器模板包括多层容器,所述多层容器包括:
第一容器层,包括操作系统设定和安全设定;
第二容器层,包括大数据设定,所述大数据设定包括多个大数据应用所共用的设定和库;
第三容器层,包括与用户相关联的设定和所述模板测试应用;以及
第四容器层,包括所述大数据应用源代码和特定于大数据应用的设定。
13.如权利要求1所述的方法,还包括:
使用所述模板应用生成用于第二大数据应用的第二大数据应用源代码,所述第二大数据应用源代码包括所述测试应用;
生成被配置为构建所述第二大数据应用的第二构建环境;
在所述第二构建环境中,使用所述第二大数据应用源代码来构建所述第二大数据应用;
配置与所述大数据应用相关联的第二测试环境;以及
在所述第二测试环境中测试所述第二大数据应用。
14.一种非暂时性计算机可读介质,其上存储有指令,所述指令能够被计算机系统执行以使所述计算机系统执行包括以下项的操作:
接收创建大数据应用的指示;
响应于接收到所述指示,使用大数据容器模板来生成应用实例,所述大数据容器模板包括被配置为管理所述大数据应用的生命周期的多层容器,所述多层容器包括:
第一容器层,包括操作系统设定和安全设定;
第二容器层,包括大数据设定,所述大数据设定包括多个大数据应用所共用的设定和库;
第三容器层,包括与用户相关联的设定和模板测试应用;以及
第四容器层,包括大数据应用源代码和特定于大数据应用的设定;以及
为所述应用实例配置构建环境和测试环境。
15.如权利要求14所述的非暂时性计算机可读介质,其中,所述大数据容器模板包括DOCKER镜像。
16.如权利要求14所述的非暂时性计算机可读介质,其中:
所述第一容器层包括操作系统、平台工具或平台安全工具中的至少一者;并且
所述第二容器层包括编排监视客户端和大数据文件系统客户端。
17.如权利要求14所述的非暂时性计算机可读介质,其中,所述操作还包括:
接收所述大数据应用源代码已被更新的触发事件;以及
响应于接收到所述触发事件:
使用经更新的大数据应用源代码来重新构建所述大数据应用;以及
使用经重新构建的大数据应用来更新所述应用实例。
18.如权利要求14所述的非暂时性计算机可读介质,其中,所述第一层包括被配置有一个或多个专用开发人员工具的定制操作系统。
19.一种用于管理大数据应用生命周期的系统,包括:
第一非暂时性存储器;以及
一个或多个第一硬件处理器,耦合到所述第一非暂时性存储器,并被配置为执行来自所述第一非暂时性存储器的指令,以使所述系统执行包括以下项的操作:
使用模板应用来生成用于大数据应用的大数据应用源代码,所述大数据应用源代码包括测试应用;
生成被配置为构建所述大数据应用的一个或多个构建环境;
在所述一个或多个构建环境中,使用所述大数据应用源代码来构建所述大数据应用;
配置与所述大数据应用相关联的一个或多个测试环境,所述一个或多个测试环境被配置为分配服务器集群以供所述大数据应用使用;
在所述一个或多个测试环境中测试所述大数据应用;
接收所述大数据应用源代码已被更新的触发事件;以及
响应于所述触发事件,使用经更新的大数据应用源代码来重新构建所述大数据应用。
20.如权利要求19所述的系统,其中,所述操作还包括:
使用大数据容器模板来生成应用实例,所述大数据容器模板包括所述大数据应用源代码,其中,所述大数据容器模板包括多层容器,所述多层容器包括:
第一容器层,包括操作系统、操作系统设定和安全设定;
第二容器层,包括大数据设定,所述大数据设定包括多个大数据应用所共用的设定和库;
第三容器层,包括与用户相关联的设定和所述模板测试应用;以及
第四容器层,包括所述大数据应用源代码和特定于大数据应用的设定。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/440,827 US11126540B2 (en) | 2019-06-13 | 2019-06-13 | Big data application lifecycle management |
US16/440,827 | 2019-06-13 | ||
PCT/US2020/037018 WO2020252038A1 (en) | 2019-06-13 | 2020-06-10 | Big data application lifecycle management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114008605A true CN114008605A (zh) | 2022-02-01 |
Family
ID=73746503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080043028.7A Pending CN114008605A (zh) | 2019-06-13 | 2020-06-10 | 大数据应用生命周期管理 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11126540B2 (zh) |
EP (1) | EP3983905A4 (zh) |
CN (1) | CN114008605A (zh) |
AU (1) | AU2020291917B2 (zh) |
WO (1) | WO2020252038A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US11307839B2 (en) * | 2019-06-26 | 2022-04-19 | Hewlett Packard Enterprise Development Lp | Updating of container-based applications |
US11829742B2 (en) | 2019-08-15 | 2023-11-28 | Microstrategy Incorporated | Container-based server environments |
US11288053B2 (en) * | 2019-08-15 | 2022-03-29 | Microstrategy Incorporated | Conversion and restoration of computer environments to container-based implementations |
US11106455B2 (en) | 2019-08-15 | 2021-08-31 | Microstrategy Incorporated | Integration of containers with external elements |
CN114270306A (zh) * | 2019-08-27 | 2022-04-01 | 西门子股份公司 | 应用程序开发部署方法、装置和计算机可读介质 |
US11637748B2 (en) | 2019-08-28 | 2023-04-25 | Microstrategy Incorporated | Self-optimization of computing environments |
US11507295B2 (en) | 2019-08-30 | 2022-11-22 | Microstrategy Incorporated | Backup, restoration, and migration of computer systems |
US11210189B2 (en) | 2019-08-30 | 2021-12-28 | Microstrategy Incorporated | Monitoring performance of computing 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 |
US11836158B2 (en) | 2020-02-03 | 2023-12-05 | Microstrategy Incorporated | Deployment of container-based computer environments |
US11650839B1 (en) | 2020-02-28 | 2023-05-16 | The Pnc Financial Services Group, Inc. | Systems and methods for developing digital experience applications |
CN112394954B (zh) * | 2020-12-03 | 2023-07-04 | 中国人民解放军国防科技大学 | 一种面向高性能计算的随作业自动部署运行环境方法 |
CN112650555B (zh) * | 2020-12-25 | 2022-09-20 | 苏州浪潮智能科技有限公司 | 一种管理平台的开发及测试方法、系统及介质 |
US11736578B2 (en) | 2021-04-12 | 2023-08-22 | Rakuten Mobile, Inc. | Managing a software application |
US11693748B2 (en) * | 2021-05-26 | 2023-07-04 | Auth0, Inc. | Systems and methods for provisioning and decoupled maintenance of cloud-based database systems |
US11954473B2 (en) | 2021-09-20 | 2024-04-09 | Microstrategy Incorporated | Deployment architecture for multi-tenant cloud computing systems |
US11755721B2 (en) | 2021-10-25 | 2023-09-12 | International Business Machines Corporation | Trusted workload execution |
US11645092B1 (en) * | 2021-10-25 | 2023-05-09 | International Business Machines Corporation | Building and deploying an application |
US11861342B2 (en) | 2022-01-28 | 2024-01-02 | Microstrategy Incorporated | Enhanced cloud-computing environment deployment |
CN115242786B (zh) * | 2022-05-07 | 2024-01-12 | 东云睿连(武汉)计算技术有限公司 | 一种基于容器集群的多模式大数据作业调度系统及方法 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571389B1 (en) * | 1999-04-27 | 2003-05-27 | International Business Machines Corporation | System and method for improving the manageability and usability of a Java environment |
US6907546B1 (en) * | 2000-03-27 | 2005-06-14 | Accenture Llp | Language-driven interface for an automated testing framework |
US9086931B2 (en) * | 2002-11-20 | 2015-07-21 | Purenative Software Corporation | System for translating diverse programming languages |
US20100015926A1 (en) * | 2008-07-18 | 2010-01-21 | Luff Robert A | System and methods to monitor and analyze events on wireless devices to predict wireless network resource usage |
US8560851B1 (en) * | 2009-05-15 | 2013-10-15 | Sprint Communications Company L.P. | Managing digital certificates |
KR101132560B1 (ko) * | 2010-06-09 | 2012-04-03 | 강원대학교산학협력단 | 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법 |
US8543641B2 (en) * | 2010-06-30 | 2013-09-24 | Deskstream, Inc. | Method and system of application delivery through application template to client device |
US20120222097A1 (en) * | 2011-02-28 | 2012-08-30 | Wilson Jobin | System and method for user classification and statistics in telecommunication network |
US9184991B2 (en) * | 2012-01-13 | 2015-11-10 | American Megatrends, Inc. | Method and apparatus for developing service processor solutions |
US8978042B2 (en) * | 2012-02-15 | 2015-03-10 | Google Inc. | Method and system for maintaining game functionality for a plurality of game instances running on a computer system |
US8990817B1 (en) * | 2012-09-06 | 2015-03-24 | Symantec Corporation | Predicting outcome of operations of multi-tier applications |
US9235409B1 (en) * | 2012-10-30 | 2016-01-12 | Amazon Technologies, Inc. | Deployment version management |
US9002821B2 (en) * | 2013-01-16 | 2015-04-07 | Google Inc. | Indexing application pages of native applications |
US9182951B1 (en) * | 2013-10-04 | 2015-11-10 | Progress Software Corporation | Multi-ecosystem application platform as a service (aPaaS) |
US9122562B1 (en) * | 2014-06-19 | 2015-09-01 | Amazon Technologies, Inc. | Software container recommendation service |
US20160013990A1 (en) * | 2014-07-09 | 2016-01-14 | Cisco Technology, Inc. | Network traffic management using heat maps with actual and planned /estimated metrics |
US10122605B2 (en) | 2014-07-09 | 2018-11-06 | Cisco Technology, Inc | Annotation of network activity through different phases of execution |
US9544275B2 (en) * | 2015-01-28 | 2017-01-10 | defend7, Inc. | Communication tunneling in application container environments |
US9940113B2 (en) * | 2015-09-09 | 2018-04-10 | International Business Machines Corporation | Big data assistant |
US10756991B2 (en) | 2015-09-17 | 2020-08-25 | Salesforce.Com, Inc. | Simplified entity engagement automation |
US10067757B2 (en) * | 2015-11-20 | 2018-09-04 | Google Llc | Dynamic update of an application in compilation and deployment with hot-swapping |
US20170220367A1 (en) * | 2016-01-30 | 2017-08-03 | Vmware, Inc. | Offline hadoop deployment anomaly identification |
US10146524B1 (en) * | 2016-03-28 | 2018-12-04 | Amazon Technologies, Inc. | Preemptive deployment in software deployment pipelines |
US10341409B2 (en) * | 2016-05-09 | 2019-07-02 | International Business Machines Corporation | Software version control without affecting a deployed container |
US10482239B1 (en) * | 2016-06-30 | 2019-11-19 | Palo Alto Networks, Inc. | Rendering an object using muliple versions of an application in a single process for dynamic malware analysis |
US10146563B2 (en) * | 2016-08-03 | 2018-12-04 | International Business Machines Corporation | Predictive layer pre-provisioning in container-based virtualization |
US10496768B2 (en) * | 2016-09-01 | 2019-12-03 | Paypal, Inc. | Simulating a production environment using distributed computing technologies |
US10083061B2 (en) * | 2016-11-02 | 2018-09-25 | Sap Se | Cloud embedded process tenant system for big data processing |
US10375111B2 (en) * | 2016-11-12 | 2019-08-06 | Microsoft Technology Licensing, Llc | Anonymous containers |
US10572226B2 (en) | 2016-12-21 | 2020-02-25 | Aon Global Operations Ltd (Singapore Branch) | Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment |
US10248449B1 (en) * | 2016-12-27 | 2019-04-02 | Virtuozzo International Gmbh | Application containers running inside virtual machine |
US10733079B2 (en) * | 2017-05-31 | 2020-08-04 | Oracle International Corporation | Systems and methods for end-to-end testing of applications using dynamically simulated data |
US10664388B2 (en) * | 2017-06-14 | 2020-05-26 | T-Mobile Usa, Inc. | Continuous integration testing for network-based applications |
US10558456B2 (en) * | 2017-06-27 | 2020-02-11 | Red Hat, Inc. | Constructing build environments for software |
US10922118B2 (en) * | 2018-05-11 | 2021-02-16 | International Business Machines Corporation | Distributed container image repository service |
US10521220B1 (en) * | 2018-12-18 | 2019-12-31 | Palantir Technologies Inc. | Systems and methods for coordinating the deployment of components to defined user groups |
-
2019
- 2019-06-13 US US16/440,827 patent/US11126540B2/en active Active
-
2020
- 2020-06-10 AU AU2020291917A patent/AU2020291917B2/en active Active
- 2020-06-10 WO PCT/US2020/037018 patent/WO2020252038A1/en active Application Filing
- 2020-06-10 EP EP20822466.7A patent/EP3983905A4/en active Pending
- 2020-06-10 CN CN202080043028.7A patent/CN114008605A/zh active Pending
-
2021
- 2021-09-21 US US17/480,506 patent/US11580010B2/en active Active
-
2023
- 2023-02-08 US US18/166,387 patent/US20230185698A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11580010B2 (en) | 2023-02-14 |
US20230185698A1 (en) | 2023-06-15 |
AU2020291917B2 (en) | 2023-04-06 |
EP3983905A1 (en) | 2022-04-20 |
US11126540B2 (en) | 2021-09-21 |
US20220004483A1 (en) | 2022-01-06 |
US20200394120A1 (en) | 2020-12-17 |
WO2020252038A1 (en) | 2020-12-17 |
AU2020291917A1 (en) | 2021-12-23 |
EP3983905A4 (en) | 2023-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020291917B2 (en) | Big data application lifecycle management | |
US11842221B2 (en) | Techniques for utilizing directed acyclic graphs for deployment instructions | |
US10503493B2 (en) | Distributed versioning of applications using cloud-based systems | |
JP6490633B2 (ja) | プライベート・クラウド・コンピューティングためのシステムおよび方法 | |
US10803048B2 (en) | Change data capture processing and analysis | |
Yang et al. | A profile-based approach to just-in-time scalability for cloud applications | |
JP2018533125A (ja) | ビジュアルコンテンツ開発 | |
US10366112B2 (en) | Compiling extract, transform, and load job test data cases | |
US20200125344A1 (en) | Persistent context for reusable pipeline components | |
US10701057B2 (en) | Assembly manager | |
US20210224076A1 (en) | Techniques for managing dependencies of an orchestration service | |
US11288232B2 (en) | Database deployment objects and deterministic locking models | |
US10768961B2 (en) | Virtual machine seed image replication through parallel deployment | |
Hanjura | Heroku cloud application development | |
Patterson | Learn AWS Serverless Computing: A Beginner's Guide to Using AWS Lambda, Amazon API Gateway, and Services from Amazon Web Services | |
Chowhan | Hands-on Serverless Computing: Build, Run and Orchestrate Serverless Applications Using AWS Lambda, Microsoft Azure Functions, and Google Cloud Functions | |
US20120265879A1 (en) | Managing servicability of cloud computing resources | |
US11513781B2 (en) | Simulating container deployment | |
Kanso et al. | Designing a kubernetes operator for machine learning applications | |
US9785543B2 (en) | Dual tagging between test and pods | |
Sello | Zamperla Analytics Service: design and deployment of a microservice architecture with Kubernetes | |
Giedrimas et al. | The impact of mobile architectures on component-based software engineering | |
Zaytsev | Continuous integration for kubernetes based platform solution | |
CN114911494A (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 |