IP Library Granted Patent US 10,445,145
Granted Patent B2
US 10,445,145 · App. 15/782,386 · Granted Oct 15, 2019

Hybrid configuration engine

Inventors: Jason Craig Nelson (Kirkland, WA); Ben Appleby (Manchester, GB)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F9/5072G06F8/61G06Q10/06H04L45/563H04L67/34H04W24/04
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,445,145
App. No.
15/782,386
Granted
Oct 15, 2019
Kind
B2
Abstract

A hybrid configuration engine and associated method for reducing the complexity and burden of configuring rich coexistence between an on-premise solution and a cloud-based solution is described herein and illustrated in the accompanying figures. The hybrid configuration engine determines the current state of the on-premise solution and the cloud-based solution and learns the desired configuration state. After obtaining the current and desired configuration state information, the hybrid configuration engine determines and automatically performs steps to reach the desired configuration state. Finally, the hybrid configuration engine provides instructions describing the manual steps needed to reach the desired configuration state.

Claims (73)

1. A method for configuring a hybrid deployment of an on-premise component and a cloud-based component in a target environment, the method comprising:

obtaining a desired configuration state for the hybrid deployment of the on-premise component and the cloud-based component;

collecting a current configuration state of the on-premise component and a current configuration state of the cloud-based component;

determining one or more differences between the current configuration state of one or more of the on-premise component and the cloud-based component and the desired configuration state for the hybrid deployment of the on-premise component and the cloud-based component;

deriving a set of configuration tasks based on the differences to configure the hybrid deployment of the on-premise component and the cloud-based component to achieve the desired configuration state;

incorporating the set of configuration tasks into a configuration plan; and

executing the configuration plan to establish the hybrid deployment of the on-premise component and the cloud-based component.

2. The method of claim 1 , further including:

deriving a first set of configuration tasks to configure the on-premise component for the hybrid deployment; and

deriving a second set of configuration tasks to configure the cloud-based component for the hybrid deployment.

3. The method of claim 2 , wherein incorporating the set of configuration tasks into the configuration plan further comprises combining the first set of configuration tasks and the second set of configuration tasks into the configuration plan.

4. The method of claim 1 , wherein executing the configuration plan further comprises:

executing a selected configuration task from the configuration plan;

obtaining a result from executing the selected configuration task; and

verifying the result matches an intended result for the selected configuration task.

5. The method of claim 1 , further comprising:

collecting administrative credentials for connecting to the on-premise component and the cloud-based component;

connecting to a configuration endpoint of the on-premise component; and

connecting to a configuration endpoint of the cloud-based component.

6. The method of claim 1 , further comprising:

creating a set of hybrid configuration objects during execution of a first run configuration plan, each hybrid configuration object corresponding to at least one hybrid deployment feature.

7. The method of claim 6 , further comprising:

enabling or disabling the at least one hybrid deployment feature by modifying a corresponding hybrid configuration object during a subsequent run of the method within the target environment.

8. The method of claim 6 further comprising:

collecting topology information for the target environment;

analyzing the topology information to determine whether or not the method has been previously executed; and

selecting the first run configuration plan when the method has not been previously executed on the target environment.

9. The method of claim 1 , further comprising providing information about additional tasks to be completed in order to finalize the configuration plan.

10. The method of claim 1 , further comprising performing a preflight check to determine whether or not the target environment meets a minimum set of prerequisites for the desired configuration state.

11. A system for configuring a hybrid deployment of an on-premise component and a cloud-based component in a target environment, the system further comprising:

at least one processing unit; and

non-volatile storage comprising instructions that, when executed by the at least one processing unit, are operable to:

obtain a desired configuration state for the hybrid deployment of the on-premise component and the cloud-based component;

collect a current configuration state of the on-premise component and a current configuration state of the cloud-based component;

determining one or more differences between the current configuration state of one or more of the on-premise component and the cloud-based component and the desired configuration state for the hybrid deployment of the on-premise component and the cloud-based component;

derive a configuration plan based on the differences to configure the hybrid deployment of the on-premise component and the cloud-based component to achieve the desired configuration state, the configuration plan comprising a set of configuration tasks; and

execute the configuration plan to establish the hybrid deployment of the on-premise component and the cloud-based component.

12. The system of claim 11 , wherein the instructions are further operable to provide information about performing additional tasks to be performed in order to complete the configuration plan.

13. The system of claim 11 , wherein the instructions are further operable to:

execute a selected configuration task from the configuration plan;

obtain a result from executing the selected configuration task; and

verify that the result matches an intended result for the selected configuration task.

14. The system of claim 11 , wherein the instructions are further operable to:

collect administrative credentials for connecting to the on-premise component;

connect to the on-premise component;

collect administrative credentials for connecting to the cloud-based component; and

connect to the cloud-based component.

15. The system of claim 11 , wherein the instructions are further operable to create a set of hybrid configuration objects during execution of a first run configuration plan, each hybrid configuration object corresponding to at least one hybrid deployment feature.

16. The system of claim 15 , wherein the instructions are further operable to enable or disable the at least one hybrid deployment feature during a subsequent run configuration plan within the target environment by modifying a corresponding hybrid configuration object.

17. The system of claim 15 , wherein the instructions are further operable to:

collect topology information for the target environment;

analyze the topology information to determine whether or not the target environment has been previously configured; and

select the first run configuration plan when the target environment has not previously been configured.

18. The system of claim 11 , wherein the instructions are further operable to provide information about additional tasks to be completed in order finalize configuration of the configuration plan.

19. The system of claim 11 , wherein the instructions are further operable to perform a preflight check to determine whether or not the target environment meets a minimum set of prerequisites for the desired configuration state.

20. A non-volatile computer readable storage medium containing computer readable instructions which, when executed by a computer, perform a method to establish a hybrid deployment of an on-premise component and a cloud-based component in a target environment, the method comprising:

obtaining a desired hybrid configuration state for the hybrid deployment of the on-premise component and the cloud-based component;

collecting on-premise administrative credentials for connecting to the on-premise component;

connecting to a configuration endpoint of the on-premise component;

collecting a current configuration state of the on-premise component from the on-premise component;

collecting cloud-based administrative credentials for connecting to the cloud-based component;

connecting to a configuration endpoint of the cloud-based component;

collecting a current configuration state of the cloud-based component from the cloud-based component;

performing a preflight check to determine whether or not the target environment meets a minimum set of prerequisites for the desired hybrid configuration state;

determining one or more differences between the current configuration state of one or more of the on-premise component and the cloud-based component and the desired hybrid configuration state for the hybrid deployment of the on-premise component and the cloud-based component;

deriving a set of configuration tasks based on the differences to configure the hybrid deployment of the on-premise component and the cloud-based component to achieve the desired hybrid configuration state;

incorporating the set of configuration tasks into a configuration plan;

creating a set of configuration objects corresponding to a set of hybrid deployment features during a first run of the method within the target environment;

executing a selected configuration task of the configuration plan;

obtaining a result from executing the selected configuration task;

verifying the result matches an intended result for the selected configuration task;

repeatedly executing another configuration task until each configuration task of the configuration plan has been executed to establish the hybrid deployment of the on-premise component and the cloud-based component; and

providing information about additional tasks to be completed in order finalize configuration of the configuration plan.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2017
From: NELSON, JASON CRAIG; APPLEBY, BEN
To: MICROSOFT CORPORATION
Reel/Frame 044303/0785 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2017
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044303/0863 →
Continuity (3)
Continuation 13361236 · Jan 30, 2012
Provisional Application 61555255 · Nov 3, 2011
Related Publication 20180032377A1 · Feb 1, 2018