# US 12,602,246 B2 · Management and orchestration of microservices

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,602,246 B2
- Document ID: US12602246B2
- Status: Granted
- Kind: B2
- Application number: 18/456,691
- Filed: 2023-08-28
- Published: 2023-12-14
- Granted: 2026-04-14
- Earliest claimed: 2021-04-29
- Applicants: NetApp Inc.
- Inventors: Jayanta Poddar; Prodosh Kumar Mohanty; Nikhil Bhavadas Kaplingat; Dhivya Mohanasundaram; Venkat Thangella; Vineeth Kumar Chalil Karinta
- Web page: https://patentgrep.com/patent/US12602246B2

## CPC

- G06F 9/4843: {by program, e.g. task dispatcher, supervisor, operating system}
- G06F 8/60: Software deployment
- G06F 8/63: {Image based installation; Cloning; Build to order}
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5005: {to service a request}
- G06F 9/5072: {Grid computing}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 11/1433: {during software upgrading}
- G06F 11/1453: {using de-duplication of the data}
- G06F 11/1469: {Backup restoration techniques}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 11/2097: {maintaining the standby controller/processing unit updated (initialisation or re-synchronisation thereof G06F11/1658 and subgroups)}
- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- H04L 63/0272: {Virtual private networks}
- H04L 63/20: {for managing network security; network security policies in general (filtering policies H04L63/0227)}
- G06F 2201/815: Virtual
- G06F 2201/82: Solving problems relating to consistency
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F 2209/501: Performance criteria
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques are provided for microservices management and orchestration. A chart package is selectively retrieved from a chart repository based upon the chart package corresponding to a set of services to host within a cluster and dependencies amongst the set of services. A set of container images may be retrieved from a container repository based upon the set of container images corresponding to the set of services. A cluster may be created within a computing environment. The set of services may be deployed as resources of the computing environment within the cluster and the dependencies may be configured using the chart package and the set of container images.

## Claims

### Claim 1

A method comprising:
retrieving container images from a container repository based upon the container images corresponding to a database service and a backup service to host within a cluster of a computing environment;
deploying the database service and the backup service as resources of the computing environment within the cluster using the container images;
connecting, by the database service, to a cloud provider agnostic database plugin for interacting with a database application host;
controlling the cloud provider agnostic database plugin to interact with the database application host for discovering and accessing a database volume stored within a storage environment separate from the computing environment executing an application storing data within the database volume;
creating, by the backup service, an application consistent snapshot of the database volume within the storage environment.

### Claim 2 (depends on 1)

The method of claim 1, comprising:
executing a cluster initialization procedure to define a security policy used to authenticate job request messages for executing jobs through a set of services of the computing environment and a schedule used to control a scheduler for executing scheduled jobs;
in response to receiving a job request message for executing a job, authenticating the job request message using the security policy; and
in response to successfully authenticating the job request message, scheduling and executing, by the scheduler, the job according to the schedule.

### Claim 3 (depends on 1)

The method of claim 1, comprising:
detecting a failure associated with deploying at least one of the database service or the backup service; and
in response to detecting the failure, performing a rollback procedure for the cluster to transition the cluster to a prior state before the failure.

### Claim 4 (depends on 1)

The method of claim 1, comprising:
parsing a versioned release of a data management suite to identify an image of a container for a version of a service agent; and
storing the image into a registry for access through an adapter service.

### Claim 5 (depends on 1)

The method of claim 1, comprising:
executing a cluster initialization procedure to define a startup job to initialize a set of services and a data management policy associated with data backup and restore functionality implemented by a service of the set of services; and
executing the startup job to initialize the service to perform the data backup and restore functionality according to the data management policy.

### Claim 6 (depends on 1)

The method of claim 1, comprising:
creating a secondary cluster within the computing environment;
deploying a first set of services as resources of the computing environment within the secondary cluster, wherein the first set of services are maintained as a redundant set of services for a second set of services deployed to the cluster; and
configuring dependencies for the first set of services and the second set of services using a chart package and the container images.

### Claim 7 (depends on 6)

The method of claim 6, comprising:
in response to identifying a failure associated with the cluster, redirecting incoming job request messages from targeting the cluster to targeting the secondary cluster for execution.

### Claim 8

A non-transitory machine readable medium comprising instructions, which when executed by a machine, causes the machine to:
implement, by a scheduler infrastructure service, a policy specifying when and how to perform jobs, wherein the scheduler infrastructure service generates a job request message based upon the policy specifying how to perform a job to maintain redundant instances of a service for failover;
generate, by a workflow engine scheduler infrastructure service, a job definition of tasks to execute through a workflow for performing the job according to the policy; and
execute the workflow according to the policy by:
retrieving a container image from a container repository based upon the container image corresponding to the service;
creating a cluster and a redundant cluster within a computing environment based upon the policy;
deploying the service within the cluster and a redundant instance of the service within the redundant cluster as resources of the computing environment; and
in response to detecting a failure of the cluster, implementing, by the scheduler, the policy to redirect job request messages from targeting the cluster to targeting the redundant cluster for execution by the redundant instance of the service.

### Claim 9 (depends on 8)

The non-transitory machine readable medium of claim 8, wherein the instructions cause the machine to:
execute a cluster initialization procedure to define a security policy used to authenticate the job request messages for executing jobs through a set of services and a schedule used to control the scheduler infrastructure service for executing scheduled jobs;
in response to receiving an incoming job request message for executing a defined job, authenticate the incoming job request message using the security policy; and
in response to successfully authenticating the incoming job request message, schedule and execute, by the scheduler, the defined job according to the schedule.

### Claim 10 (depends on 8)

The non-transitory machine readable medium of claim 8, wherein the instructions cause the machine to:
detect a failure associated with configuring dependencies of the service with other services; and
in response to detecting the failure, perform a rollback procedure for the cluster to transition the cluster to a prior state before the failure.

### Claim 11 (depends on 8)

The non-transitory machine readable medium of claim 8, wherein the instructions cause the machine to:
parse a versioned release of a data management suite to identify an image of a container for a new version of a service agent; and
store the image into a registry for access through an adapter service.

### Claim 12 (depends on 8)

The non-transitory machine readable medium of claim 8, wherein the instructions cause the machine to:
execute a cluster initialization procedure to define a startup job to initialize a set of services and a data management policy associated with data backup and restore functionality implemented by the service; and
execute the startup job to initialize the service to perform the data backup and restore functionality according to the data management policy.

### Claim 13 (depends on 8)

The non-transitory machine readable medium of claim 8, wherein the instructions cause the machine to:
create a secondary cluster within the computing environment;
deploy a first set of services as resources of the computing environment within the secondary cluster, wherein the first set of services are maintained as a redundant set of services for a second set of services deployed to the cluster; and
configure dependencies using a chart package and a set of container images.

### Claim 14 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein the instructions cause the machine to:
in response to identifying a failure associated with the cluster, redirect incoming job request messages from targeting the cluster to targeting the secondary cluster for execution.

### Claim 15

A computing device comprising:
a memory comprising machine executable code; and
a processor coupled to the memory, the processor configured to execute the machine executable code to cause the computing device to implement:
a message broker:
bypassing communication restrictions implemented by a computing environment to restrict communication between a client device and a service agent, wherein the message broker receives a message from the client device for deploying a cluster; and
routing the message to the service agent hosted as a container within the computing environment; and
the service agent executing the message by:
retrieving a chart package selected from a chart repository of chart packages based on a set of services to host within the cluster and dependencies amongst the set of services;
retrieving a set of container images from a container repository based upon the set of container images corresponding to the set of services;
creating the cluster within the computing environment; and
deploying the set of services as resources of the computing environment within the cluster and configuring the dependencies using the chart package and the set of container images.

### Claim 16 (depends on 15)

The computing device of claim 15, wherein the machine executable code causes the computing device to:
execute a cluster initialization procedure to define a security policy used to authenticate job request messages for executing jobs through the set of services and a schedule used to control a scheduler for executing scheduled jobs;
in response to receiving a job request message for executing a job, authenticate the job request message using the security policy; and
in response to successfully authenticating the job request message, schedule and execute, by the scheduler, the job according to the schedule.

### Claim 17 (depends on 15)

The computing device of claim 15, wherein the machine executable code causes the computing device to:
detect a failure associated with deploying the set of services and configuring the dependencies; and
in response to detecting the failure, perform a rollback procedure for the cluster to transition the cluster to a prior state before the failure.

### Claim 18 (depends on 15)

The computing device of claim 15, wherein the machine executable code causes the computing device to:
parse a versioned release of a data management suite to identify an image of a container for a new version of the service agent; and
store the image into a registry for access through an adapter service.

### Claim 19 (depends on 15)

The computing device of claim 15, wherein the machine executable code causes the computing device to:
execute a cluster initialization procedure to define a startup job to initialize the set of services and a data management policy associated with data backup and restore functionality implemented by a service of the set of services; and
execute the startup job to initialize the service to perform the data backup and restore functionality according to the data management policy.

### Claim 20 (depends on 15)

The computing device of claim 15, wherein the machine executable code causes the computing device to:
create a secondary cluster within the computing environment;
deploy the set of services as resources of the computing environment within the secondary cluster;
configure the dependencies using the chart package and the set of container images; and
in response to the cluster experiencing a failure, redirect incoming job request messages from targeting the cluster to targeting the secondary cluster for processing by the set of services deployed within the secondary cluster.
