WO2022037612A1 - Procédé de fourniture de service de construction d'applications, et plate-forme de construction d'applications, procédé de déploiement d'applications et système - Google Patents

Procédé de fourniture de service de construction d'applications, et plate-forme de construction d'applications, procédé de déploiement d'applications et système Download PDF

Info

Publication number
WO2022037612A1
WO2022037612A1 PCT/CN2021/113249 CN2021113249W WO2022037612A1 WO 2022037612 A1 WO2022037612 A1 WO 2022037612A1 CN 2021113249 W CN2021113249 W CN 2021113249W WO 2022037612 A1 WO2022037612 A1 WO 2022037612A1
Authority
WO
WIPO (PCT)
Prior art keywords
workload
service
maintenance
maintenance capability
resources
Prior art date
Application number
PCT/CN2021/113249
Other languages
English (en)
Chinese (zh)
Inventor
马浩
杨守仁
郑曌
丁禹博
李文军
罗伟锋
王昱森
Original Assignee
第四范式(北京)技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from CN202010845106.7A external-priority patent/CN111984269B/zh
Priority claimed from CN202010845842.2A external-priority patent/CN111984270A/zh
Application filed by 第四范式(北京)技术有限公司 filed Critical 第四范式(北京)技术有限公司
Publication of WO2022037612A1 publication Critical patent/WO2022037612A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • the present disclosure relates to the field of cloud platform application development, and more particularly, to a method for providing application construction services, an application construction platform, and an application deployment method and system.
  • PaaS Platinum as a Service
  • Kubernetes provides various native resource models, such as deployment, statefulset, configmap, service, etc.
  • PaaS maintainers can combine one or more A resource model is used to form a service, and each platform can have its own composition.
  • FIG. 1 is a schematic diagram showing the architecture of an existing PaaS platform.
  • the PaaS platform is divided into two parts: built-in services and online services.
  • built-in service part services such as monitoring indicator data (Promethus), authentication (Authorization), monitoring (Monitor), and log (Log) are rendered into kubernetes yaml files through the devops tool, and then the built-in applications are deployed to the kubernetes cluster through kubectl .
  • Tensorflow-Serving For the online service part, Tensorflow-Serving, GDBT, Flink Task, H2O, Customize Real-Time Estimates, PMML and other services are deployed to the kubernetes cluster through PAS, and the templates of kubernetes native resources are maintained inside PAS. (For example, Deployment Template, Service Template, Configmap Template, etc.), and then combine each template to complete the resource deployment.
  • the existing PaaS platform has the following problems: (1) devops and pas are two independent technology stacks. Although they are essentially the same, they are both deploying services to the kubernetes cluster, but the technologies accumulated with each other cannot be shared. Two sets of technical solutions are deployed, managed and maintained in different ways. Good solution ideas cannot be reused. (2) Devops maintains a large number of yaml templates, the mode is fixed, the expansion ability is poor, and the service access cost is high when encountering complex requirements. (3) PAS completes service deployment by maintaining resource templates, which are also fixed json templates of kubernetes native resources, which have poor scalability and low reusability. (4) It is difficult to form the standard of precipitation technology and abstract business model in the existing template method.
  • Exemplary embodiments of the present disclosure may or may not address at least the above-mentioned problems.
  • a system comprising at least one computing device and at least one storage device storing instructions, wherein the instructions, when executed by the at least one computing device, cause the at least one computing device to execute
  • the following steps of the method for providing application building services providing at least one workload and at least one operation and maintenance capability, wherein each workload encapsulates multiple resource-related services in the infrastructure cluster for executing corresponding services, and each operation
  • the maintenance capability encapsulates a variety of operation and maintenance-related resources in the infrastructure cluster for performing corresponding operation and maintenance; provides a respective controller for each workload and each operation and maintenance capability, wherein each controller is used to manage Corresponding workloads or resources related to operation and maintenance capabilities; provide an API module, wherein the API module is used to enable users to configure workloads and operation and maintenance capabilities through the API module to execute application construction.
  • a method for providing an application building service includes: providing at least one workload and at least one operation and maintenance capability, wherein each workload encapsulates a variety of service-related resources in an infrastructure cluster to Used to execute the corresponding service, each operation and maintenance capability encapsulates a variety of operation and maintenance-related resources in the infrastructure cluster for performing the corresponding operation and maintenance; provides the respective control of each workload and each operation and maintenance capability controller, wherein each controller is used to manage the corresponding workload or resources related to operation and maintenance capabilities; provides an API module, wherein the API module is used to enable users to configure workloads and operation and maintenance capabilities through the API module to execute the application's Construct.
  • an application building platform comprising: a workload library, including at least one workload, wherein each workload encapsulates a plurality of kinds of infrastructure clusters on which the application building platform relies Service-related resources for executing corresponding services; an operation and maintenance capability library, including at least one operation and maintenance capability, wherein each operation and maintenance capability encapsulates a variety of operation and maintenance-related resources in the infrastructure cluster for executing corresponding services operation and maintenance; controller library, including respective controllers for each workload and each operation and maintenance capability, wherein each controller is used to manage the resources related to the corresponding workload or operation and maintenance capability; API module, used to make The user configures the workload and operation and maintenance capabilities through the API module to execute the construction of the application.
  • a workload library including at least one workload, wherein each workload encapsulates a plurality of kinds of infrastructure clusters on which the application building platform relies Service-related resources for executing corresponding services
  • an operation and maintenance capability library including at least one operation and maintenance capability, wherein each operation and maintenance capability encapsulates a variety of
  • a system comprising at least one computing device and at least one storage device storing instructions, wherein the instructions, when executed by the at least one computing device, cause the at least one computing device to Performing the following steps of providing an application deployment method: receiving first information for registering a component through an API module, wherein the first information includes information for declaring at least one workload used by the component and a set of business-related parameters, each Each workload encapsulates a variety of service-related resources in the infrastructure cluster for executing corresponding services; the component is created according to the first information by the registration component module to register the component to the infrastructure cluster;
  • the API module receives the second information for deploying the application, wherein the second information includes the information for declaring used components, at least one operation and maintenance capability used and its parameters, and the set of business-related parameters, wherein each Each operation and maintenance capability encapsulates a variety of operation and maintenance related resources in the infrastructure cluster for performing corresponding operation and maintenance; the application deployment configuration file is created by the deployment application module according
  • an application deployment method comprising: receiving, through an API module, first information for registering a component, wherein the first information includes at least one workload used for declaring the component and a Information about group business-related parameters, each workload encapsulates a variety of service-related resources in the infrastructure cluster for executing corresponding services; the component is created according to the first information by the registration component module to register the component to the infrastructure cluster; receiving second information for deploying an application through the API module, where the second information includes a component used for declaring use, at least one operation and maintenance capability used and its parameters, and the set of services information about relevant parameters, wherein each operation and maintenance capability encapsulates a variety of operation and maintenance-related resources in the infrastructure cluster for performing corresponding operation and maintenance; the deployment application module creates an application deployment configuration file according to the second information to creating the application deployment configuration file to the infrastructure cluster; after the at least one workload and the at least one operation and maintenance capability are instantiated, use the at least one workload and the at least one operation
  • an application deployment system comprising: a business layer module configured to: receive first information for registering a component through an API module, wherein the first information includes a method for declaring the component Information about at least one workload and a set of business-related parameters used, wherein each workload encapsulates a variety of service-related resources in the infrastructure cluster for executing corresponding services, and is created by the registration component module according to the first information
  • the component is used to register the component to the infrastructure cluster
  • the second information for deploying the application is received through the API module, wherein the second information includes the component used for declaring the use, the at least one operation and maintenance used capability and its parameters and information about the set of business-related parameters, wherein each operation and maintenance capability encapsulates a variety of operation and maintenance-related resources in the infrastructure cluster for performing corresponding operation and maintenance; by deploying an application module Create an application deployment configuration file according to the second information to create the application deployment configuration file to the infrastructure cluster; the underlying module is configured to: be instantiated
  • a computer-readable storage medium storing instructions, wherein, when the instructions are executed by at least one computing device, the at least one computing device is caused to perform the application building service of the present disclosure. method or application deployment method.
  • an electronic device comprising: a processor; a memory for storing instructions executable by the processor; wherein the processor is configured to execute the instructions to implement the present disclosure
  • a method for providing application building services or an application deployment method comprising: a processor; a memory for storing instructions executable by the processor; wherein the processor is configured to execute the instructions to implement the present disclosure
  • various service resources of the infrastructure cluster supported by the platform are organized, packaged and managed through workloads, and the operation and maintenance capabilities are used to Organize, encapsulate and manage the various operation and maintenance resources of the infrastructure cluster on which the platform relies, so as to provide all the product functions required by the upper-layer development application, which can not only provide richer business requirements, but also control all behaviors.
  • it satisfies community standards and ecology, which facilitates the subsequent integration with the community, and enables application developers to focus only on business-related development work without having to pay attention to or develop the underlying architecture and operation and maintenance details.
  • the management of applications all revolves around the management of workload and operation and maintenance capabilities.
  • iterative upgrade and exploration of the product it can continuously strengthen and stabilize the workload and operation and maintenance capabilities, and upper-layer application developers only need to declare and use it.
  • the component information may include the component name and the component version number
  • a new version number may be added, which will not Affecting existing services, you only need to declare a new version number in the application configuration file.
  • application delivery is delivered in the form of components, so that it can be delivered as a single application or a specified application. Due to the transfer from a large number of yaml files to the combined declaration of workload and operation and maintenance capabilities, the template template needs to be fully rendered, and now only the corresponding components or application configuration files need to be upgraded, and the workload and operation and maintenance capabilities are kubernetes. Operation and maintenance can make full use of the extension mechanism provided by kubernetes and the stability of its own mechanism. Currently, the image of the specified upgraded application can be delivered, and the image used by the workload in the component can be upgraded without the heavy delivery of offline packages. With the standard set of workload and operation and maintenance capabilities, development, operation and maintenance, and delivery are coordinated in the standard, which greatly reduces the communication cost.
  • FIG. 1 is a schematic diagram showing the architecture of a conventional PaaS platform.
  • FIG. 2 is a schematic diagram illustrating application deployment performed by a user according to an exemplary embodiment of the present disclosure.
  • FIG. 3 is a block diagram illustrating an application building platform according to an exemplary embodiment of the present disclosure.
  • FIG. 4 is a flowchart illustrating a method of providing an application building service according to an exemplary embodiment of the present disclosure.
  • FIG. 5 is a block diagram illustrating an application deployment system according to an exemplary embodiment of the present disclosure.
  • FIG. 6 is a flowchart illustrating an application deployment method according to an exemplary embodiment of the present disclosure.
  • the PaaS platform According to the existing management mode and operation and maintenance method of the PaaS platform, it is difficult to provide the abstraction of the APP concept.
  • the services of the PaaS platform are presented in the form of APP, and users will not perceive how the underlying services are maintained.
  • the PaaS platform provides users with an APP. Therefore, in order to solve the existing problems, the present disclosure proposes an APP-centric upgrade method, focusing on APP-based application management. Specifically, all built-in services and online services can be abstracted into workloads and operational capabilities (trait).
  • the CRD+controller custom resource definition + controller
  • the various resources of the kubernetes cluster are abstracted and encapsulated as CRDs of workloads and operation and maintenance capabilities, and their corresponding controllers are started to realize the management of the entire life cycle of the application through the combination of workloads and operation and maintenance capabilities.
  • All applications running on infrastructure clusters can include kubernetes clusters, Hadoop clusters, storage clusters, etc.
  • an APP is composed of one or more components, and then through the various components provided by the trait This kind of operation and maintenance capability completes the provision of complete functions of an APP.
  • components can register components by embedding workloads, and support Expanding workloads (for example, CRDs of kubernetes clusters), that is, supporting custom workloads (workload CRDs), that is, unified components facilitate unified management of the platform, and components can embed different workloads to meet the platform itself business characteristics.
  • Expanding workloads for example, CRDs of kubernetes clusters
  • workload CRDs workload CRDs
  • unified components facilitate unified management of the platform
  • components can embed different workloads to meet the platform itself business characteristics.
  • the deployment of APP can be realized by declaring the application configuration file (Application Configuration), that is, the components and operation and maintenance capabilities are organized through an application configuration file. Based on this application configuration file, all the meta information of the APP can be satisfied.
  • the workload controller corresponding to the workload and the trait controller corresponding to the operation and maintenance capability included in the component can create various kinds of functions on the infrastructure cluster (for example, the kubernetes cluster) according to the corresponding meta information and expected logic. Corresponding resources to complete the complete deployment of an APP.
  • the abstracted workload and operation and maintenance capabilities can be continuously precipitated, polished, expanded and improved with the iteration of requirements, and become the platform service APP standard, with a community and ecology.
  • the above method of deploying APP can not only be used to deploy APP on the kubernetes cluster that the platform relies on as the infrastructure, but also can be used to deploy APP on any infrastructure cluster that can use the above method of deploying APP, for example, but not limited to , ECS, FaaS, Mesos, etc.
  • Workload One or more resources corresponding to the provided services are encapsulated by the developers of the application building platform by abstracting the resources provided by the infrastructure cluster (for example, the kubernetes cluster) on which the application building platform relies.
  • the infrastructure cluster for example, the kubernetes cluster
  • the workload may include at least one of a first workload (ServerWorkload) corresponding to an online service application and a second workload (TaskWorkload) corresponding to an offline service application.
  • the native resources in the Kubernetes cluster that can be packaged by the first workload may include, but are not limited to, deployment, statefulset, daemonset, pods, services, and configmaps to meet long-running business characteristics and expectations.
  • deployment is a native resource of kubernetes, which mainly satisfies stateless services of multiple copies;
  • statefulset is a native resource of kubernetes, which satisfies stateful services, and can provide stable persistent storage, stable network identification, orderly Deployment, orderly shrinking, etc.;
  • daemonset is a native resource of kubernetes, which ensures that a pod runs a pod on all or some nodes; pod is the smallest scheduling unit of kubernetes, and a pod consists of one or several containers and has an independent network IP; service is a native resource of kubernetes.
  • the first workload can create a service service by default for subsequent internal load balancing and other capabilities; configmap is a native resource of kubernetes , used to store key-value pair configuration data that can be used in pods, or used to store configuration data for system components like controllers, which can be understood as a Linux system In the /etc directory, a directory dedicated to storing configuration files.
  • the first workload may also encapsulate non-kubernetes native resources, for example, self-developed non-kubernetes native resources, some of the kubernetes community Mature available resources (such as OpenKruise's CloneSet, etc.).
  • non-kubernetes native resources can be self-developed or introduced to encapsulate them in the first workload according to business requirements or AI application characteristics. For example, in some scenarios, rescheduling will bring unnecessary scheduling overhead.
  • upgrading the sidecar container will cause the main container to restart, which is usually unacceptable.
  • an Advanced StatefulSet that supports in-place upgrades can be introduced.
  • Non-kubernetes native resources for example, self-developed non-kubernetes native resources, some of the kubernetes community Mature available resources (such as OpenKruise's CloneSet, etc.).
  • non-kubernetes native resources can be self-developed or introduced to encapsulate them in the first workload according to business requirements or AI application
  • the native resources in the kubernetes cluster that the second workload can encapsulate may include, but are not limited to, job, cronjob, and configmap, etc. native resources.
  • job is a native resource of kubernetes, which is responsible for batch tasks, that is, tasks that are executed only once, to ensure that one or more Pods of the batch tasks end successfully.
  • Cronjob is a native resource of kubernetes, which is responsible for scheduled tasks and can regularly pull up jobs.
  • the second workload may also encapsulate non-kubernetes native resources, for example, self-developed non-kubernetes native resources, some of the kubernetes community Mature available resources.
  • non-kubernetes native resources can be self-developed or introduced to encapsulate them in the second workload according to business requirements or AI application characteristics. For example, a Broadcast Job that is similar to the native resource DaemonSet, a non-kubernetes native resource, can run on all nodes like a daemonset, but this provides the ability of a job.
  • Service-related parameters The parameters of the workload open to the outside world, which can provide the ability to modify the metadata of the workload.
  • the business-related parameters may include an image identification for obtaining the address of the image to be used, an environment variable for specifying the address of the model to be used, and a parameter for specifying a configuration file to be used , at least one of the image startup command and parameters, the name and version number of the component, the service health check probe, and the environment variable that the service opens to the outside world.
  • These business-related parameters are some basic parameters for running containers in the infrastructure cluster. The specific business-related parameters are also different according to different workloads.
  • the service-related parameters may include a first parameter (workloadsubtype field) used to indicate whether the online service application is a stateful service or a stateless service, and this parameter determines the subsequent first workload controller pulls It enables the native service capabilities of the infrastructure cluster.
  • the business-related parameters can be used to indicate whether the offline service application is a one-time service or a second parameter (schedule field) of a scheduled service. This parameter indicates the timing rule for starting offline tasks, similar to the operating system. crontab.
  • the Workload Controller is responsible for managing the corresponding workload-related resources. Specifically, the workload controller may select to create resources in the corresponding infrastructure cluster according to the meta-information corresponding to the parameters in the workload instance. For example, in the case of a kubernetes cluster, the workload controller can create one or a group of resources such as deployment, stateful, service, configmap, etc. to make the app service converge to the desired state. In addition, the workload controller can monitor the changes of the corresponding resources, so that the state of the resources converges to the desired state. In addition, when the corresponding APP is deleted, the workload controller automatically completes the recycling of related resources.
  • the controller of the first workload when the user declares to use the first workload corresponding to the online service application and declares the first parameter, the controller of the first workload creates a deployment, One or more resources in statefulset, daemonset, pod, service, and configmap.
  • the controller of the first workload when the first parameter indicates that the online service application is a stateful service, the controller of the first workload creates resources such as statefulset, service, and configmap according to the meta-information of the declared first parameter, and when the first parameter indicates that the online service application is In the stateless service, the controller of the first workload creates deployment or daemonset resources according to the meta-information of the declared first parameter.
  • the control of the second workload when the user declares to use the second workload corresponding to the offline service application and declares the second parameter, and the second parameter indicates that the offline service application is a one-time service, the control of the second workload
  • the compiler creates the job resource based on the meta information of the declared second parameter.
  • the controller of the second workload according to the meta-information of the declared second parameter Create a cronjob or job resource.
  • Operation and maintenance capabilities (trait): The developers of the application building platform abstract the resources provided by the infrastructure cluster (for example, the kubernetes cluster) on which the application building platform is based, and encapsulate one or more operation and maintenance capabilities corresponding to the provided operation and maintenance capabilities. a resource. For example, in order to complete some specific operation and maintenance capabilities, each operation and maintenance capability needs to provide corresponding information (for example, parameters), and the definition of the information can be transmitted through CRD meta information.
  • the infrastructure cluster for example, the kubernetes cluster
  • information for example, parameters
  • operation and maintenance capabilities may include, but are not limited to, automatic elastic scaling operation and maintenance capabilities (AutoScalerTrait), load balancing operation and maintenance capabilities (IngressTrait), and custom service replica number operation and maintenance capabilities (ManualscalerTrait) ), at least one of persistence management operation and maintenance capability (VolumeMounterTrait) and release strategy operation and maintenance capability (FlaaggerTrait).
  • AutoScalerTrait automatic elastic scaling operation and maintenance capabilities
  • IngressTrait load balancing operation and maintenance capabilities
  • ManualscalerTrait custom service replica number operation and maintenance capabilities
  • VolumeMounterTrait persistence management operation and maintenance capability
  • FrelaaggerTrait release strategy operation and maintenance capability
  • the automatic elastic scaling operation and maintenance capability can be used to provide the capability of horizontal scaling of the Pod, and the number of service Pod replicas can be dynamically adjusted according to the CPU load and memory usage of the Pod.
  • the resources encapsulated by the automatic elastic expansion and contraction operation and maintenance capabilities can include, but are not limited to, the Horizontal Pod Autoscaler and Promethus native resources in the kubernetes cluster.
  • the parameters of the automatic elastic scaling operation and maintenance capability open to the outside world may include, but are not limited to, the CPU size (CPU), the memory size (memory), the minimum number of replicas (minReplica), and the maximum number of replicas (maxReplica).
  • the load balancing operation and maintenance capability can utilize the existing load balancing capability of kubernetes Ingress to provide a load balancing capability for a service created by a workload configured by a user.
  • the resources encapsulated by the load balancing operation and maintenance capability can include, but are not limited to, the native resources of Service and Ingress in the kubernetes cluster.
  • the parameters of the load balancing operation and maintenance capability open to the outside world may include, but are not limited to, the requested path (Path), the requested domain name (Host), and the requested service port (ServicePort).
  • the operation and maintenance capability (ManualscalerTrait) for customizing the number of service replicas can provide the ability to customize the number of replicas of a service. After specifying, the number of replicas will converge to the expected value, and the corresponding workload (for example, The size of the replica resource for user-selected and/or configured workloads).
  • the operation and maintenance capability of customizing the number of service copies can update the number of service copies to the expected value according to the corresponding resources (for example, statefulset, deployment, etc.) pulled by the corresponding workload.
  • the operation and maintenance capability of the number of custom service copies can update (patch) the resources pulled up by the corresponding workload, and the operation and maintenance capability of the number of custom service copies can know which workload it is applied to, so as to know which workload to use. Which specific resources (for example, which statefulset or which deployment, etc.) should be updated (patch).
  • the parameters of the operation and maintenance capability of the custom service replica number open to the outside world may include, but are not limited to, the number of replicas (Replica) and the resources of the replicas that can be set (Resource).
  • the resources of the replica that can be set may include CPU size, memory size, GPU size, and the like.
  • the persistence management operation and maintenance capability can provide business persistence requirements.
  • the resources encapsulated by the load balancing operation and maintenance capabilities may include, but are not limited to, Persistent Volumes, Persistent Volume Claims, StorageClass native resources, and various open source provider resources (for example, OpenEBS, etc.) in the kubernetes cluster.
  • the parameters of the persistent management operation and maintenance capability open to the outside world may include, but are not limited to, a storage volume resource (VolumeResource) and a storage type (StorageType).
  • the storage volume resource may include the size of the used disk (that is, the storage size) and the mounting path
  • the storage type may include various cloud-native storages of the kubernetes cluster.
  • the release strategy operation and maintenance capability can be combined with the operation and maintenance capability mode by utilizing the release strategies (eg, canary, blue-green, A/B Testing, etc.) already supported by the open source deployment plug-in Flagger , the user can use multiple publishing strategies simply by declaring the necessary policy information.
  • the release strategy operation and maintenance capability encapsulates the open source release strategy Flagger resource, controls the behavior of the Flagger, and enables the Flagger to control the resources pulled by the workload, which is used to support the user to configure the release strategy.
  • the parameters of the release policy operation and maintenance capability open to the outside world may include, but are not limited to, release policy parameters (Analysis) and release policies (Policy).
  • operation and maintenance capabilities of the present disclosure are not limited to the above-mentioned operation and maintenance capabilities, and may also include other possible operation and maintenance capabilities, such as log operation and maintenance capabilities, monitoring operation and maintenance capabilities, and the like.
  • Operation and maintenance capability controller responsible for managing the resources related to the corresponding operation and maintenance capability. Specifically, the operation and maintenance capability controller may select to create resources in the corresponding infrastructure cluster according to the meta-information corresponding to the parameters in the operation and maintenance capability instance.
  • the controller of the automatic elastic expansion and contraction operation and maintenance capability can control the HPA of kubernetes through the automatic elastic expansion and contraction operation and maintenance capability, so that the HPA can monitor the corresponding workload and pull up resources in real time according to the set parameters (for example, the status information of CPU, memory), according to the expected load and the expected number of replicas defined by the automatic elastic scaling operation and maintenance capability, perform elastic scaling on the number of Pod instances corresponding to the workload.
  • the set parameters For example, the status information of CPU, memory
  • the controller of the load balancing operation and maintenance capability may create corresponding load balancing rules according to the meta information corresponding to the requested path, the requested domain name, and the requested service port.
  • the controller that customizes the operation and maintenance capability of the number of service copies can control the corresponding workload (eg, the first workload corresponding to the online service application) to pull up the number of copies of resources, so that the The number of copies is within the set value.
  • the corresponding workload eg, the first workload corresponding to the online service application
  • the controller of the persistent management operation and maintenance capability may create a corresponding persistent storage volume declaration (PVC) and storage type ( StorageClass) and mount the storage volume to the path specified inside the pod.
  • PVC persistent storage volume declaration
  • StorageClass storage type
  • the controller of the release policy operation and maintenance capability may create a corresponding release policy according to the set release policy parameters and the meta information corresponding to the set release policy.
  • a component is an integral part of an application, and can include services that the application depends on, such as a MySQL database, the application service itself (eg, a PHP server with multiple copies).
  • the application service eg, a PHP server with multiple copies.
  • all pods running on a kubernetes cluster can be declared as components, including some basic information, including images, startup parameters, health detection probes, resources, etc. That is to say, an application can be composed of one or more components.
  • the architect of the application building platform can decompose the application into modules that can be reused.
  • the idea of modular encapsulation of application components Represents a best practice for building secure and highly scalable applications: it realizes the decoupling of application component description and implementation through a fully distributed architecture model.
  • components can be registered by means of embedded workloads. Unified components are convenient for unified management, and different embedded workloads can be opened to platform maintainers, which can be based on platform business characteristics. to develop different workloads.
  • platform maintainers which can be based on platform business characteristics. to develop different workloads.
  • application developers "package" the code they wrote into a component through the platform, and then write a configuration file to describe the relationship between the component and the service and the requirements for operation and maintenance capabilities, so that application developers can focus more on business-related development work without having to focus or develop the underlying architectural and operational details.
  • Application Configuration In order to organize the declared components and operation and maintenance capabilities into a real running application, the application to be run can be instantiated by writing an application configuration file.
  • Application developers can use the API modules provided by the platform to write application configuration files, so that the platform can instantiate the corresponding, really running applications according to the application configuration files submitted by the application developers, and cluster them on the infrastructure that the platform relies on. Create the corresponding resources on the above to complete the complete deployment of an application.
  • FIG. 2 is a schematic diagram illustrating application deployment performed by a user according to an exemplary embodiment of the present disclosure.
  • a user performing application deployment may include two steps, ie, registering a component and deploying an application.
  • the workload according to an exemplary embodiment of the present disclosure may include a first workload (ServerWorkload) corresponding to an online service application and a second workload (TaskWorkload) corresponding to an offline service application.
  • the user needs to declare the use of the first workload or the second workload or both the first workload and the second workload, and also needs to declare business-related parameters corresponding to the declared workload.
  • the workload according to the exemplary embodiment of the present disclosure may include any other possible workloads besides the first workload and the second workload.
  • the operation and maintenance capabilities may include automatic elastic scaling operation and maintenance capabilities (AutoScalerTrait), load balancing operation and maintenance capabilities (IngressTrait), custom service replica number operation and maintenance capabilities (ManualscalerTrait), persistent Management operation and maintenance capabilities (VolumeMounterTrait) and release strategy operation and maintenance capabilities (FlaaggerTrait).
  • AutoScalerTrait automatic elastic scaling operation and maintenance capabilities
  • IngressTrait load balancing operation and maintenance capabilities
  • ManualscalerTrait custom service replica number operation and maintenance capabilities
  • VolumeMounterTrait persistent Management operation and maintenance capabilities
  • DelaaggerTrait release strategy operation and maintenance capabilities
  • the operation and maintenance capabilities according to the exemplary embodiments of the present disclosure may include any other possible operation and maintenance capabilities in addition to the above-mentioned operation and maintenance capabilities.
  • FIG. 3 is a block diagram illustrating an application building platform according to an exemplary embodiment of the present disclosure.
  • an application building platform 300 (hereinafter, may be referred to as platform 300 for short) according to an exemplary embodiment of the present disclosure may include a workload library 310 , an operation and maintenance capability library 320 , a controller library 330 , and an API module 340 .
  • the workload library 310 may include at least one workload, wherein each workload encapsulates a variety of service-related resources in the infrastructure cluster on which the platform 300 rests for executing the corresponding service.
  • the workload library 310 may include at least one of a first workload corresponding to an online service application and a second workload corresponding to an offline service application.
  • the workload library 310 is not limited to this, and may also include other possible workloads, for example, workloads corresponding to online and offline mixed service applications, and the like.
  • the first workload may encapsulate native resources such as deployment, statefulset, daemonset, pod, service, and configmap in the kubernetes cluster.
  • the first workload can also encapsulate non-kubernetes native resources.
  • the second workload can encapsulate native resources such as jobs, cronjobs, and configmaps in the kubernetes cluster.
  • the second workload can also encapsulate non-kubernetes native resources.
  • the operation and maintenance capability library 320 may include at least one operation and maintenance capability, wherein each operation and maintenance capability encapsulates a variety of operation and maintenance-related resources in the infrastructure cluster on which the platform 300 relies to perform corresponding operation and maintenance.
  • the operation and maintenance capability library 320 may include automatic elastic expansion and contraction operation and maintenance capabilities, load balancing operation and maintenance capabilities, custom service copy number operation and maintenance capabilities, persistence management operation and maintenance capabilities, and release policy operation and maintenance capabilities at least one of the dimensional capabilities.
  • the operation and maintenance capability library 310 is not limited to this, and may also include other possible operation and maintenance capabilities, such as log operation and maintenance capabilities, monitoring operation and maintenance capabilities, and the like.
  • the automatic elastic expansion and contraction operation and maintenance capability can encapsulate the Horizontal Pod Autoscaler and Promethus resources in the kubernetes cluster, which are used to dynamically adjust the number of service pod replicas .
  • the load balancing operation and maintenance capability can encapsulate the Service and Ingress resources in the kubernetes cluster, and use the existing load balancing capabilities of the Ingress in the kubernetes cluster to provide load balancing capabilities for services created by user-configured workloads.
  • the operation and maintenance capability of customizing the number of service copies can update the number of service copies to the expected value according to the corresponding resources pulled by the workload configured by the user, so as to converge and/or modify the number of service copies within the value of the customized number of service copies Replica resource size for user-configured workloads.
  • Persistent management operation and maintenance capabilities can encapsulate Persistent Volumes, Persistent Volume Claims, StorageClass resources and various open source provider resources in the kubernetes cluster to provide service data persistence requirements.
  • the release strategy operation and maintenance capability can encapsulate the open source release strategy Flagger resources, control the behavior of the Flagger, and enable the Flagger to control the resources pulled by the workload, which is used to support the user to configure the release strategy.
  • the controller library 330 may include a respective controller for each workload and each operational capability, wherein each controller is used to manage resources related to the corresponding workload or operational capability.
  • the workload controller can choose to create the corresponding kubernetes resources (for example, native resources or non-native resources) according to the parameters in the corresponding workload, so that the APP service can converge to the desired state, and can also monitor the changes of the corresponding resources , so that the state of the resource converges in the desired state.
  • the workload controller can automatically complete the recycling of related resources.
  • the operation and maintenance capability controller can choose to create the corresponding kubernetes resources or update (patch) the resources pulled by the corresponding workload according to the parameters in the corresponding operation and maintenance capabilities to meet the operation and maintenance requirements of the corresponding APP.
  • the API module 340 may be used for a user (eg, an application developer) to configure workloads and operational capabilities (eg, including declaring which workloads and operational capabilities to use and parameters associated with them) to perform construction of the application.
  • a user eg, an application developer
  • workloads and operational capabilities eg, including declaring which workloads and operational capabilities to use and parameters associated with them
  • FIG. 4 is a flowchart illustrating a method of providing an application building service according to an exemplary embodiment of the present disclosure.
  • each workload encapsulates a variety of service-related resources in the infrastructure cluster on which the platform 300 relies to execute corresponding services
  • each operation and maintenance capability encapsulates a variety of services in the infrastructure cluster on which the platform 300 relies.
  • Operation and maintenance related resources are used to perform corresponding operation and maintenance.
  • the at least one workload may include at least one of a first workload corresponding to an online service application and a second workload corresponding to an offline service application.
  • the workload is not limited to this, and may also include other possible workloads, for example, workloads corresponding to online and offline mixed service applications, and the like.
  • the first workload may encapsulate native resources such as deployment, statefulset, daemonset, pod, service, and configmap in the kubernetes cluster.
  • the first workload can also encapsulate non-kubernetes native resources.
  • the second workload can encapsulate native resources such as jobs, cronjobs, and configmaps in the kubernetes cluster.
  • the second workload can also encapsulate non-kubernetes native resources.
  • the at least one operation and maintenance capability may include an automatic elastic expansion and shrinkage operation and maintenance capability, a load balancing operation and maintenance capability, a custom service copy number operation and maintenance capability, a persistence management operation and maintenance capability, and a publishing capability.
  • At least one of the policy operation and maintenance capabilities are not limited to this, and may also include other possible operation and maintenance capabilities, such as log operation and maintenance capabilities, monitoring operation and maintenance capabilities, and the like.
  • the automatic elastic expansion and contraction operation and maintenance capability can encapsulate the Horizontal Pod Autoscaler and Promethus resources in the kubernetes cluster, which are used to dynamically adjust the number of service pod replicas .
  • the load balancing operation and maintenance capability can encapsulate the Service and Ingress resources in the kubernetes cluster, and use the existing load balancing capabilities of the Ingress in the kubernetes cluster to provide load balancing capabilities for services created by user-configured workloads.
  • the operation and maintenance capability of customizing the number of service copies can update the number of service copies to the expected value according to the corresponding resources pulled by the workload configured by the user, so as to converge and/or modify the number of service copies within the value of the customized number of service copies Replica resource size for user-configured workloads.
  • Persistent management operation and maintenance capabilities can encapsulate Persistent Volumes, Persistent Volume Claims, StorageClass resources and various open source provider resources in the kubernetes cluster to provide service data persistence requirements.
  • the release strategy operation and maintenance capability can encapsulate the open source release strategy Flagger resources, control the behavior of the Flagger, and enable the Flagger to control the resources pulled by the workload, which is used to support the user to configure the release strategy.
  • a respective controller for each workload and each operation and maintenance capability is provided, wherein each controller is used to manage resources related to the corresponding workload or operation and maintenance capability.
  • the workload controller can choose to create the corresponding kubernetes resources (for example, native resources or non-native resources) according to the parameters in the corresponding workload, so that the APP service can converge to the desired state, and can also monitor the changes of the corresponding resources , so that the state of the resource converges in the desired state.
  • the workload controller can automatically complete the recycling of related resources.
  • the operation and maintenance capability controller can choose to create the corresponding kubernetes resources or update (patch) the resources pulled by the corresponding workload according to the parameters in the corresponding operation and maintenance capabilities to meet the operation and maintenance requirements of the corresponding APP.
  • an API module is provided for a user (eg, an application developer) to configure workloads and operational capabilities (eg, including declaring which workloads and operational capabilities to use and parameters associated with them) to perform application building .
  • FIG. 5 is a block diagram illustrating an application deployment system according to an exemplary embodiment of the present disclosure.
  • the application deployment system 500 may include two parts: a business layer module 510 and a bottom layer module 520 .
  • the business layer module 510 may include an API module 511 , a registration component module 512 and a deployment application module 513 .
  • the bottom layer module 520 may include a controller library module for managing workloads and operation and maintenance capabilities, including at least one workload controller 521 and at least one operation and maintenance capability controller 522 .
  • the API module 511 can provide restfulapi services to the outside world
  • the registration component module 512 can define the protocol standard of the component and execute the component registration
  • the deployment application module 513 can define the protocol standard of the application deployment and execute the application deployment.
  • the service layer module 510 may further include an adaptation module (not shown) for performing a layer of adaptation between the operating system and the controller library module.
  • an adaptation module (not shown) for performing a layer of adaptation between the operating system and the controller library module.
  • the service may not be aware of the controller library The existence of the module, the controller library module is not coupled to the business, and only focuses on the maintenance of the workload and operation and maintenance capabilities.
  • the API module 511 may receive first information for a user (eg, an application developer) to register the component.
  • the first information may include information for declaring at least one workload used by the component and a set of service-related parameters (ie, parameters open to the outside world corresponding to the workload).
  • the user may declare the first information according to a standard protocol (standard configuration file) provided by the platform 300 .
  • the at least one workload may include at least one of a first workload corresponding to an online service application and a second workload corresponding to an offline service application.
  • the at least one workload is not limited to this, and may also include other possible workloads, for example, workloads corresponding to online and offline mixed service applications, and the like.
  • the infrastructure cluster of the platform 300 is a kubernetes cluster
  • the first workload can encapsulate native resources such as deployment, statefulset, daemonset, pod, service, and configmap in the kubernetes cluster.
  • the first workload can also encapsulate non-kubernetes native resources.
  • the second workload can encapsulate native resources such as jobs, cronjobs, and configmaps in the kubernetes cluster.
  • the second workload can also encapsulate non-kubernetes native resources.
  • the set of business-related parameters may include: an image identification for obtaining the address of the image to be used, an environment variable for specifying the address of the model to be used, an environment variable for specifying the address of the model to be used At least one of the parameters of the configuration file, the image startup command and parameters, the name and version number of the component, the service health check probe, and the environment variables that the service opens to the outside world.
  • the register component module 512 may create the component according to the first information to register the component with the infrastructure cluster on which the platform 300 rests.
  • the component embeds at least one workload and a set of business-related parameters declared by the user.
  • the API module 511 may receive second information used by a user (eg, an application developer) to deploy the application.
  • the second information may include a set of services for declaring the component and its related information (for example, the name of the component, version number, etc.), at least one operation and maintenance capability used and its parameters, and a set of services declared when registering the component Information about relevant parameters.
  • the user may declare the second information according to a standard protocol (standard configuration file) provided by the platform 300 .
  • the at least one operation and maintenance capability may include an automatic elastic expansion and shrinkage operation and maintenance capability, a load balancing operation and maintenance capability, a custom service copy number operation and maintenance capability, a persistence management operation and maintenance capability, and a publishing capability.
  • At least one of the policy operation and maintenance capabilities is not limited to this, and may also include other possible operation and maintenance capabilities, for example, a log operation and maintenance capability, a monitoring operation and maintenance capability, and the like.
  • the automatic elastic expansion and contraction capacity operation and maintenance capability can encapsulate resources such as Horizontal Pod Autoscaler and Promethus in the kubernetes cluster for dynamically adjusting service pod replicas number.
  • the load balancing operation and maintenance capability can encapsulate resources such as Service and Ingress in the kubernetes cluster, and use the existing load balancing capabilities of the Ingress in the kubernetes cluster to provide load balancing capabilities for the services created by the workload configured by the user.
  • the operation and maintenance capability of customizing the number of service copies can update the number of service copies to the expected value according to the corresponding resources pulled by the workload configured by the user, so as to converge and/or modify the number of service copies within the value of the customized number of service copies Replica resource size for user-configured workloads.
  • Persistent management operation and maintenance capabilities can encapsulate Persistent Volumes, Persistent Volume Claims, StorageClass and other resources in the kubernetes cluster, as well as a variety of open source provider resources to provide service data persistence requirements.
  • the release strategy operation and maintenance capability can encapsulate the open source release strategy Flagger resources, control the behavior of the Flagger, and enable the Flagger to control the resources pulled by the workload, which is used to support the user to configure the release strategy.
  • the parameters of the automatic elastic scaling capacity operation and maintenance capability may include, but are not limited to, CPU size, memory size, minimum number of copies, and maximum number of copies.
  • the parameters of the load balancing operation and maintenance capability may include, but are not limited to, the requested path, the requested domain name, and the requested service port.
  • the parameters for customizing the operation and maintenance capabilities of the number of replicas of a service may include, but are not limited to, the number of replicas and the CPU size, memory size, and GPU size of the replicas.
  • Parameters of persistent management operation and maintenance capabilities may include, but are not limited to, storage type, storage size, and mounting path.
  • the parameters of the release policy operation and maintenance capability may include, but are not limited to, release policy parameters and release policies.
  • the deployment application module 513 may create an application deployment configuration file according to the second information to create the application deployment configuration file to the infrastructure cluster on which 300 is based.
  • the application deployment configuration file includes the declared component and its related information, at least one used operation and maintenance capability and its parameters, and the information of a set of business-related parameters declared when the component is registered.
  • the at least one workload and the at least one operational capability can be instantiated.
  • the at least one instance of the workload and the at least one instance of the operation and maintenance capability may be rendered through an interpreter installed on the platform 300 .
  • the respective controllers 521 and 522 of each of the at least one workload and the at least one operation and maintenance capability monitor that the corresponding workload or operation and maintenance capability is instantiated. , and create corresponding resources according to the corresponding meta information to complete the deployment of the application.
  • the meta information may be generated by the adaptation module based on workload, operation and maintenance capability, business-related parameters, and operation and maintenance capability parameters when performing adaptation.
  • the set of business-related parameters may include indicating whether the online service application is a stateful service or a stateless service
  • the first parameter of the first workload the controller of the first workload can create one or more resources in deployment, statefulset, daemonset, pod, service and configmap according to the meta-information of the declared first parameter.
  • the controller of the first workload when the first parameter indicates that the online service application is a stateful service, the controller of the first workload creates resources such as statefulset, service, and configmap according to the meta-information of the declared first parameter, and when the first parameter indicates that the online service application is In the stateless service, the controller of the first workload creates deployment or daemonset resources according to the meta-information of the declared first parameter.
  • the set of service-related parameters may include an indicator indicating whether the offline service application is a one-time service or a scheduled service
  • the controller of the second workload may create one or more resources in the job, cronjob and configmap according to the declared meta-information of the second parameter.
  • the controller of the second workload may create a job resource according to the declared meta information of the second parameter.
  • the controller of the second workload may create a cronjob or a job resource according to the declared meta-information of the second parameter.
  • the controller of the automatic elastic expansion and contraction operation and maintenance capability may control the automatic elastic expansion and contraction operation and maintenance capability through the automatic elastic expansion and contraction operation and maintenance capability.
  • the HPA of kubernetes enables HPA to monitor the status information of the resources pulled up by the at least one workload in real time according to the set parameters, and can adjust the at least one workload according to the expected load and the expected number of copies defined by the automatic elastic expansion and contraction operation and maintenance capabilities.
  • the number of Pod instances under load performs elastic scaling.
  • the controller of the load balancing operation and maintenance capability may create a corresponding load balancing rule according to the meta information corresponding to the requested path, the requested domain name and the requested service port .
  • the controller of the operation and maintenance capability of customizing the number of service copies may control the number of copies of the resource pulled by the at least one workload, so that the copies of the service instance The number is within the set value.
  • the controller of the persistent management and operation and maintenance capability may create a corresponding persistent storage volume according to the meta information corresponding to the storage type, storage size and mounting path Declare and storage type and mount the storage volume to the specified path inside the pod.
  • the controller of the release policy operation and maintenance capability may create a corresponding release policy according to the set release policy parameters and meta information corresponding to the set release policy.
  • FIG. 6 is a flowchart illustrating an application deployment method according to an exemplary embodiment of the present disclosure.
  • first information for registering a component by a user may be received through the API module 511 .
  • the first information may include information for declaring at least one workload used by the component and a set of service-related parameters (ie, parameters open to the outside world corresponding to the workload).
  • the user may declare the first information according to a standard protocol (standard configuration file) provided by the platform 300 .
  • the at least one workload may include at least one of a first workload corresponding to an online service application and a second workload corresponding to an offline service application.
  • the at least one workload is not limited to this, and may also include other possible workloads, for example, workloads corresponding to online and offline mixed service applications, and the like.
  • the infrastructure cluster of the platform 300 is a kubernetes cluster
  • the first workload can encapsulate native resources such as deployment, statefulset, daemonset, pod, service, and configmap in the kubernetes cluster.
  • the first workload can also encapsulate non-kubernetes native resources.
  • the second workload can encapsulate native resources such as jobs, cronjobs, and configmaps in the kubernetes cluster.
  • the second workload can also encapsulate non-kubernetes native resources.
  • the set of business-related parameters may include: an image identification for obtaining the address of the image to be used, an environment variable for specifying the address of the model to be used, an environment variable for specifying the address of the model to be used At least one of the parameters of the configuration file, the image startup command and parameters, the name and version number of the component, the service health check probe, and the environment variables that the service opens to the outside world.
  • the component may be created according to the first information by the registering component module 512 to register the component with the infrastructure cluster on which the platform 300 is based.
  • the component embeds at least one workload and a set of business-related parameters declared by the user.
  • second information for deploying the application by a user may be received through the API module 511 .
  • the second information may include a set of services for declaring the component and its related information (for example, the name of the component, version number, etc.), at least one operation and maintenance capability used and its parameters, and a set of services declared when registering the component Information about relevant parameters.
  • the user may declare the second information according to a standard protocol (standard configuration file) provided by the platform 300 .
  • the at least one operation and maintenance capability may include an automatic elastic expansion and shrinkage operation and maintenance capability, a load balancing operation and maintenance capability, a custom service copy number operation and maintenance capability, a persistence management operation and maintenance capability, and a publishing capability.
  • At least one of the policy operation and maintenance capabilities is not limited to this, and may also include other possible operation and maintenance capabilities, for example, a log operation and maintenance capability, a monitoring operation and maintenance capability, and the like.
  • the automatic elastic expansion and contraction capacity operation and maintenance capability can encapsulate resources such as Horizontal Pod Autoscaler and Promethus in the kubernetes cluster for dynamically adjusting service pod replicas number.
  • the load balancing operation and maintenance capability can encapsulate resources such as Service and Ingress in the kubernetes cluster, and use the existing load balancing capabilities of the Ingress in the kubernetes cluster to provide load balancing capabilities for the services created by the workload configured by the user.
  • the operation and maintenance capability of customizing the number of service copies can update the number of service copies to the expected value according to the corresponding resources pulled by the workload configured by the user, so as to converge and/or modify the number of service copies within the value of the customized number of service copies Replica resource size for user-configured workloads.
  • Persistent management operation and maintenance capabilities can encapsulate Persistent Volumes, Persistent Volume Claims, StorageClass and other resources in the kubernetes cluster, as well as a variety of open source provider resources to provide service data persistence requirements.
  • the release strategy operation and maintenance capability can encapsulate the open source release strategy Flagger resources, control the behavior of the Flagger, and enable the Flagger to control the resources pulled by the workload, which is used to support the user to configure the release strategy.
  • the parameters of the automatic elastic scaling capacity operation and maintenance capability may include, but are not limited to, CPU size, memory size, minimum number of copies, and maximum number of copies.
  • the parameters of the load balancing operation and maintenance capability may include, but are not limited to, the requested path, the requested domain name, and the requested service port.
  • the parameters for customizing the operation and maintenance capabilities of the number of replicas of a service may include, but are not limited to, the number of replicas and the CPU size, memory size, and GPU size of the replicas.
  • Parameters of persistent management operation and maintenance capabilities may include, but are not limited to, storage type, storage size, and mounting path.
  • the parameters of the release policy operation and maintenance capability may include, but are not limited to, release policy parameters and release policies.
  • an application deployment configuration file may be created according to the second information by the deployment application module 513 to create the application deployment configuration file to the infrastructure cluster on which the platform 300 relies.
  • the application deployment configuration file includes the declared component and its related information, at least one used operation and maintenance capability and its parameters, and the information of a set of business-related parameters declared when the component is registered.
  • the at least one workload and the at least one operational capability may be instantiated.
  • the at least one instance of the workload and the at least one instance of the operation and maintenance capability may be rendered through an interpreter installed on the platform 300 .
  • the respective controllers 521 and 522 of each of the at least one workload and each of the at least one operation and maintenance capability can monitor the corresponding workload or operation and maintenance capability.
  • corresponding resources are created according to the corresponding meta information to complete the deployment of the application.
  • the meta information may be generated by the adaptation module based on workload, operation and maintenance capability, business-related parameters, and operation and maintenance capability parameters when performing adaptation.
  • the set of business-related parameters may include indicating whether the online service application is a stateful service or a stateless service
  • the first parameter of the first workload the controller of the first workload can create one or more resources in deployment, statefulset, daemonset, pod, service and configmap according to the meta-information of the declared first parameter.
  • the controller of the first workload when the first parameter indicates that the online service application is a stateful service, the controller of the first workload creates a statefulset resource according to the meta-information of the declared first parameter, and when the first parameter indicates that the online service application is a stateless service, The controller of the first workload creates a deployment resource according to the declared meta-information of the first parameter.
  • the set of service-related parameters may include an indicator indicating whether the offline service application is a one-time service or a scheduled service
  • the controller of the second workload may create one or more resources in the job, cronjob and configmap according to the declared meta-information of the second parameter.
  • the controller of the second workload may create a job resource according to the declared meta information of the second parameter.
  • the controller of the second workload may create a cronjob resource according to the declared meta information of the second parameter.
  • the controller of the automatic elastic expansion and contraction operation and maintenance capability may control the automatic elastic expansion and contraction operation and maintenance capability through the automatic elastic expansion and contraction operation and maintenance capability.
  • the HPA of kubernetes enables HPA to monitor the status information of the resources pulled up by the at least one workload in real time according to the set parameters, and can adjust the at least one workload according to the expected load and the expected number of copies defined by the automatic elastic expansion and contraction operation and maintenance capabilities.
  • the number of Pod instances under load performs elastic scaling.
  • the controller of the load balancing operation and maintenance capability may create a corresponding load balancing rule according to the meta information corresponding to the requested path, the requested domain name and the requested service port .
  • the controller of the operation and maintenance capability of customizing the number of service copies may control the number of copies of the resource pulled by the at least one workload, so that the copies of the service instance The number is within the set value.
  • the controller of the persistent management and operation and maintenance capability may create a corresponding persistent storage volume according to the meta information corresponding to the storage type, storage size and mounting path Declare and storage type and mount the storage volume to the specified path inside the pod.
  • the controller of the release policy operation and maintenance capability may create a corresponding release policy according to the set release policy parameters and meta information corresponding to the set release policy.
  • the input of the recommendation service application is the user identification information, the materials accessed by the user, and the list of materials to be recommended.
  • the output of the recommendation service application is the ranking of the recommended material list, and the top-ranked materials are recommended to the user.
  • the recommendation service application provides external access capabilities, receives user requests, and provides A/B Testing capabilities to determine the impact of different models on user click-through rate (CTR).
  • CTR click-through rate
  • Declare the component (if the component has been declared, skip this step). Declaring components can be done by writing standard protocols.
  • the information to be declared by the declaration component and the parameters open to the outside world may include: specifying the recommended service as an online service and a stateless service through the first parameter (workloadsubtype field); the image identifier of the recommended service, according to which the image address can be pulled; recommended The model address used by the service, which can be specified by environment variables; the configuration file used by the recommended service, which can be specified by the config field; the default resources (for example, CPU and memory), the name and version of the component (for example, sage-rec-svc) to start the service , 1.0.0); service health check probes (for example, liveness and readiness); specify the environment variables that the service opens to the outside world, which can be passed in when deploying the service.
  • Deploy the application Deploying applications can be accomplished by writing standard protocols. When deploying an application, you need to specify the following information: specify the component that uses the recommended service (which can be specified by the component name) and its version number; the application name used when deploying the application; the operation and maintenance capabilities used by the declaration; open parameters.
  • three operation and maintenance capabilities need to be declared, namely, load balancing operation and maintenance capabilities, custom service replica number operation and maintenance capabilities (providing the ability to manually change replica resources), release policy operation and maintenance capabilities (providing A/ B Testing ability).
  • the interpreter installed on the platform will render the first workload instance corresponding to the online service application and the above three operation and maintenance capability instances.
  • the load balancing operation and maintenance capability creates Ingress rules based on the created Service, and provides estimated services to the outside world.
  • the component sage-rec-svc:1.0.0 can be upgraded to sage-rec-svc:1.0.1, mainly to update the image in the first workload.
  • various service resources of the infrastructure cluster supported by the platform are organized, packaged and managed through workloads, and the operation and maintenance capabilities are used to Organize, encapsulate and manage the various operation and maintenance resources of the infrastructure cluster on which the platform relies, so as to provide all the product functions required by the upper-layer development application, which can not only provide richer business requirements, but also control all behaviors.
  • it satisfies community standards and ecology, which facilitates the subsequent integration with the community, and enables application developers to focus only on business-related development work without having to pay attention to or develop the underlying architecture and operation and maintenance details.
  • the management of the application all revolves around the management of workload and operation and maintenance capabilities.
  • iterative upgrade and exploration of the product it can continuously strengthen and stabilize the workload and operation and maintenance capabilities, and upper-layer application developers only need to declare and use it.
  • the component information may include the component name and the component version number
  • a new version number may be added, which will not Affecting existing services, you only need to declare a new version number in the application configuration file.
  • application delivery is delivered in the form of components, so that it can be delivered as a single application or a specified application. Due to the transfer from a large number of yaml files to the combined declaration of workload and operation and maintenance capabilities, the template template needs to be fully rendered, and now only the corresponding components or application configuration files need to be upgraded, and the workload and operation and maintenance capabilities are kubernetes. Operation and maintenance can make full use of the extension mechanism provided by kubernetes and the stability of its own mechanism. Currently, the image of the specified upgraded application can be delivered, and the image used by the workload in the component can be upgraded without the heavy delivery of offline packages. With the standard set of workload and operation and maintenance capabilities, development, operation and maintenance, and delivery are coordinated in the standard, which greatly reduces the communication cost.
  • each module in the application building platform shown in FIG. 3 and the application deployment system through the application building platform shown in FIG. 5 may be configured as software, hardware, firmware or any combination of the above to perform specific functions.
  • each module may correspond to a dedicated integrated circuit, may also correspond to pure software code, or may correspond to a module combining software and hardware.
  • one or more functions implemented by each module can also be uniformly performed by components in a physical entity device (eg, a processor, a client or a server, etc.).
  • the method for providing an application construction service described with reference to FIG. 4 and the application deployment method described in FIG. 6 may be implemented by programs (or instructions) recorded on a computer-readable storage medium.
  • a computer-readable storage medium may be provided storing instructions that, when executed by at least one computing device, cause the at least one computing device to execute a provisioning application according to the present disclosure A method for building a service and/or an application deployment method.
  • the computer program in the above-mentioned computer-readable storage medium can run in an environment deployed in computer equipment such as a client, a host, an agent device, a server, etc. It should be noted that the computer program can also be used to perform additional steps in addition to the above-mentioned steps or More specific processing is performed when the above steps are performed, and the contents of these additional steps and further processing have been mentioned in the description of the related method with reference to FIG. 4 and FIG.
  • each module in the application construction platform and the application deployment system can completely rely on the running of the computer program to achieve corresponding functions, that is, each module corresponds to each step in the functional architecture of the computer program , so that the whole system is called through special software packages (for example, lib library) to realize the corresponding functions.
  • special software packages for example, lib library
  • each module shown in FIG. 3 and FIG. 5 can also be implemented by hardware, software, firmware, middleware, microcode or any combination thereof.
  • program codes or code segments for performing corresponding operations may be stored in a computer-readable medium such as a storage medium, so that a processor can read and execute the corresponding program by reading code or code segment to perform the corresponding action.
  • exemplary embodiments of the present disclosure may also be implemented as a computing device including a storage component and a processor, the storage component stores a computer-executable instruction set, and when the computer-executable instruction set is executed by the processor, executes the A method of providing an application construction service and/or a method of application deployment according to an exemplary embodiment of the present disclosure.
  • the computing device may be deployed in a server or a client, or may be deployed on a node device in a distributed network environment.
  • the computing device may be a PC computer, a tablet device, a personal digital assistant, a smartphone, a web application, or other device capable of executing the set of instructions described above.
  • the computing device does not have to be a single computing device, but can also be any set of devices or circuits capable of individually or jointly executing the above-mentioned instructions (or instruction sets).
  • the computing device may also be part of an integrated control system or system manager, or may be configured as a portable electronic device that interfaces locally or remotely (eg, via wireless transmission).
  • a processor may include a central processing unit (CPU), a graphics processing unit (GPU), a programmable logic device, a special purpose processor system, a microcontroller, or a microprocessor.
  • processors may also include analog processors, digital processors, microprocessors, multi-core processors, processor arrays, network processors, and the like.
  • Some operations described in the method for providing an application construction service and/or the application deployment method according to the exemplary embodiments of the present disclosure may be implemented by software, some operations may be implemented by hardware, and in addition, some operations may be implemented by software These operations are implemented by means of a combination of hardware.
  • the processor may execute instructions or code stored in one of the storage components, which may also store data. Instructions and data may also be sent and received over a network via a network interface device, which may employ any known transport protocol.
  • the memory component may be integrated with the processor, eg, RAM or flash memory arranged within an integrated circuit microprocessor or the like. Additionally, the storage components may include separate devices, such as external disk drives, storage arrays, or any other storage device that may be used by a database system. The storage component and the processor may be operatively coupled, or may communicate with each other, eg, through I/O ports, network connections, etc., to enable the processor to read files stored in the storage component.
  • the computing device may also include a video display (such as a liquid crystal display) and a user interaction interface (such as a keyboard, mouse, touch input device, etc.). All components of the computing device may be connected to each other via a bus and/or network.
  • a video display such as a liquid crystal display
  • a user interaction interface such as a keyboard, mouse, touch input device, etc.
  • the method of providing an application building service and/or the application deployment method according to the exemplary embodiments of the present disclosure may be described as various interconnected or coupled functional blocks or functional diagrams. However, these functional blocks or functional diagrams may be equally integrated into a single logical device or operate along non-precise boundaries.
  • the method for providing an application building service described with reference to FIG. 4 and the application deployment method described with reference to FIG. 6 may be implemented by a system including at least one computing device and at least one storage device storing instructions.
  • At least one computing device is a computing device for providing a method for an application building service and/or a general application deployment method according to an exemplary embodiment of the present disclosure
  • the storage device stores computer-executable instructions
  • the set when the set of computer-executable instructions is executed by at least one computing device, performs the method for providing an application building service described with reference to FIG. 4 and/or the application deployment method described with reference to FIG. 6 .
  • an electronic device comprising: a processor; a memory for storing instructions executable by the processor; wherein the processor is configured to execute the instructions to implement a reference The method for providing an application construction service described in FIG. 4 and/or the application deployment method described with reference to FIG. 6 .
  • various service resources of the infrastructure cluster supported by the platform are organized, packaged and managed through workloads, and the operation and maintenance capabilities are used to Organize, encapsulate and manage the various operation and maintenance resources of the infrastructure cluster on which the platform relies, so as to provide all the product functions required by the upper-layer development application, which can not only provide richer business requirements, but also control all behaviors.
  • it satisfies community standards and ecology, which facilitates the subsequent integration with the community, and enables application developers to focus only on business-related development work without having to pay attention to or develop the underlying architecture and operation and maintenance details.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

L'invention concerne un procédé de fourniture d'un service de construction d'applications, et une plate-forme de construction d'applications, un procédé de déploiement d'applications et un système. Le procédé de fourniture d'un service de construction d'applications comporte les étapes consistant à: fournir au moins une charge de travail et au moins une fonctionnalité d'exploitation et de maintenance, divers types de ressources liées à des services dans un grappe d'infrastructure étant encapsulés dans chaque charge de travail, de façon à exécuter des services correspondants, et divers types de ressources liées à l'exploitation et à la maintenance dans la grappe d'infrastructure étant encapsulées dans chaque fonctionnalité d'exploitation et de maintenance, de façon à exécuter l'exploitation et la maintenance correspondantes; mettre en place des contrôleurs respectifs pour chaque charge de travail et chaque fonctionnalité d'exploitation et de maintenance, chaque contrôleur étant utilisé pour gérer une ressource liée à une charge de travail correspondante ou une ressource liée à une fonctionnalité correspondante d'exploitation et de maintenance; et mettre en place un module d'API, le module d'API étant utilisé pour faire en sorte qu'un utilisateur configure une charge de travail et une fonctionnalité d'exploitation et de maintenance au moyen du module d'API, de façon à exécuter la construction d'applications.
PCT/CN2021/113249 2020-08-20 2021-08-18 Procédé de fourniture de service de construction d'applications, et plate-forme de construction d'applications, procédé de déploiement d'applications et système WO2022037612A1 (fr)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202010845106.7A CN111984269B (zh) 2020-08-20 2020-08-20 提供应用构建服务的方法及应用构建平台
CN202010845842.2A CN111984270A (zh) 2020-08-20 2020-08-20 应用部署方法和系统
CN202010845842.2 2020-08-20
CN202010845106.7 2020-08-20

Publications (1)

Publication Number Publication Date
WO2022037612A1 true WO2022037612A1 (fr) 2022-02-24

Family

ID=80322578

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/113249 WO2022037612A1 (fr) 2020-08-20 2021-08-18 Procédé de fourniture de service de construction d'applications, et plate-forme de construction d'applications, procédé de déploiement d'applications et système

Country Status (1)

Country Link
WO (1) WO2022037612A1 (fr)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114661312A (zh) * 2022-03-25 2022-06-24 江苏安超云软件有限公司 一种OpenStack集群嵌套部署方法及系统
CN115250197A (zh) * 2022-06-02 2022-10-28 苏州思萃工业互联网技术研究所有限公司 一种自动化创建容器发现服务的装置
CN115309400A (zh) * 2022-10-10 2022-11-08 阿里巴巴(中国)有限公司 任务部署方法、服务平台、部署平台、设备和存储介质
CN116055497A (zh) * 2023-01-18 2023-05-02 紫光云技术有限公司 一种实现负载均衡lb多活超大集群的方法
CN116643950A (zh) * 2023-07-19 2023-08-25 浩鲸云计算科技股份有限公司 一种基于FaaS的云原生应用自动化运维方法
CN116755764A (zh) * 2023-08-22 2023-09-15 山东浪潮数字商业科技有限公司 一种自动伸缩的无侵入式灰度发布系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150172204A1 (en) * 2013-12-13 2015-06-18 International Business Machines Corporation Dynamically Change Cloud Environment Configurations Based on Moving Workloads
CN109062655A (zh) * 2018-06-05 2018-12-21 腾讯科技(深圳)有限公司 一种容器化云平台及服务器
CN109445802A (zh) * 2018-09-25 2019-03-08 众安信息技术服务有限公司 基于容器的私有化Paas平台及其发布应用的方法
CN110297641A (zh) * 2019-06-25 2019-10-01 四川长虹电器股份有限公司 基于kubernetes的应用编排部署方法
CN111984269A (zh) * 2020-08-20 2020-11-24 第四范式(北京)技术有限公司 提供应用构建服务的方法及应用构建平台
CN111984270A (zh) * 2020-08-20 2020-11-24 第四范式(北京)技术有限公司 应用部署方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150172204A1 (en) * 2013-12-13 2015-06-18 International Business Machines Corporation Dynamically Change Cloud Environment Configurations Based on Moving Workloads
CN109062655A (zh) * 2018-06-05 2018-12-21 腾讯科技(深圳)有限公司 一种容器化云平台及服务器
CN109445802A (zh) * 2018-09-25 2019-03-08 众安信息技术服务有限公司 基于容器的私有化Paas平台及其发布应用的方法
CN110297641A (zh) * 2019-06-25 2019-10-01 四川长虹电器股份有限公司 基于kubernetes的应用编排部署方法
CN111984269A (zh) * 2020-08-20 2020-11-24 第四范式(北京)技术有限公司 提供应用构建服务的方法及应用构建平台
CN111984270A (zh) * 2020-08-20 2020-11-24 第四范式(北京)技术有限公司 应用部署方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZONG XUMEI, REN YANHUI: "Research and Practices on Kubernetes-based PaaS", JIANGSU COMMUNICATION, 30 April 2018 (2018-04-30), pages 76 - 79, XP055901298 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114661312A (zh) * 2022-03-25 2022-06-24 江苏安超云软件有限公司 一种OpenStack集群嵌套部署方法及系统
CN114661312B (zh) * 2022-03-25 2023-06-09 安超云软件有限公司 一种OpenStack集群嵌套部署方法及系统
CN115250197A (zh) * 2022-06-02 2022-10-28 苏州思萃工业互联网技术研究所有限公司 一种自动化创建容器发现服务的装置
CN115250197B (zh) * 2022-06-02 2024-04-12 苏州思萃工业互联网技术研究所有限公司 一种自动化创建容器发现服务的装置
CN115309400A (zh) * 2022-10-10 2022-11-08 阿里巴巴(中国)有限公司 任务部署方法、服务平台、部署平台、设备和存储介质
CN116055497A (zh) * 2023-01-18 2023-05-02 紫光云技术有限公司 一种实现负载均衡lb多活超大集群的方法
CN116643950A (zh) * 2023-07-19 2023-08-25 浩鲸云计算科技股份有限公司 一种基于FaaS的云原生应用自动化运维方法
CN116643950B (zh) * 2023-07-19 2023-10-20 浩鲸云计算科技股份有限公司 一种基于FaaS的云原生应用自动化运维方法
CN116755764A (zh) * 2023-08-22 2023-09-15 山东浪潮数字商业科技有限公司 一种自动伸缩的无侵入式灰度发布系统
CN116755764B (zh) * 2023-08-22 2023-11-17 山东浪潮数字商业科技有限公司 一种自动伸缩的无侵入式灰度发布系统

Similar Documents

Publication Publication Date Title
WO2022037612A1 (fr) Procédé de fourniture de service de construction d'applications, et plate-forme de construction d'applications, procédé de déploiement d'applications et système
CN111984269B (zh) 提供应用构建服务的方法及应用构建平台
US10042628B2 (en) Automated upgrade system for a service-based distributed computer system
US10225335B2 (en) Apparatus, systems and methods for container based service deployment
US9830135B2 (en) Declarative and pluggable business logic for systems management
US8141090B1 (en) Automated model-based provisioning of resources
US9274843B2 (en) Multi-redundant switchable process pooling for cloud it services delivery
US9311161B2 (en) Automatically configured management service payloads for cloud IT services delivery
US10656971B2 (en) Agile framework for vertical application development and delivery
CN111984270A (zh) 应用部署方法和系统
US10698733B1 (en) Integrated system to distribute and execute complex applications
CN107463432A (zh) 服务器生产环境部署方法、装置、电子设备及存储介质
US20080163171A1 (en) Virtual resource templates
US20150220308A1 (en) Model-based development
EP3777086A1 (fr) Procédé de gestion d'état de configuration d'application à l'aide de techniques de gestion d'application en nuage
US20170364844A1 (en) Automated-application-release-management subsystem that supports insertion of advice-based crosscutting functionality into pipelines
US9459859B2 (en) Template derivation for configuration object management
CN111324571A (zh) 一种容器集群管理方法、装置及系统
US10931517B2 (en) Methods and systems that synchronize configuration of a clustered application
US11301262B2 (en) Policy enabled application-release-management subsystem
US20150220327A1 (en) Extensible data model and service for infrastructure management
US9507748B2 (en) Platform runtime abstraction
US10452426B2 (en) Methods and systems for configuration-file inheritance
US11528186B2 (en) Automated initialization of bare metal servers
US9626251B2 (en) Undo configuration transactional compensation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21857704

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21857704

Country of ref document: EP

Kind code of ref document: A1