MULTI-LAYER EDGE ARCHITECTURE SIMULATION

An embodiment establishes a virtual representation of a network configuration, wherein the virtual representation of the network configuration comprises a plurality of layers corresponding to the network configuration. The embodiment generates a plurality of workloads to simulate with the virtual representation. The embodiment generates a plurality of workload statuses to simulate with the virtual representation. The embodiment simulates the plurality of workloads. The embodiment simulates the plurality of workloads statuses. The embodiment receives simulation results responsive to simulating the plurality of workloads and from simulating the plurality of workload statuses.

BACKGROUND

The present invention relates generally to edge computing. More particularly, the present invention relates to a method, system, and computer program for high scale simulation a of multi-layer edge architecture.

Edge computing architecture is a type of computer architecture design that focuses on performing computing, i.e., processing data, at the closest point to which data is being received. Edge computing architecture enables processing to occur more quickly than some remote data processing architectures by reducing latency and lag caused by transmitting data over long distances for processing. Applications and programs running at the “edge” are able to respond to user interaction and incoming data more quickly and efficiently, thereby resulting a more responsive user experience as well as an increase in computational performance.

Edge computing architecture is a distributed computing architecture that encompasses all the components active in edge computing, including but not limited to, devices, sensors, servers, clouds, etc., where data is processed and/or used at the far reaches of a network. However, in a multi-layer edge architecture, a cloud storage or other central storage location may still be incorporated as a layer in the mule-layer edge computing architecture. Edge computing encompasses an ecosystem of infrastructure components that may be dispersed from the central location of an enterprise's datacenter outwardly, across all edge locations. The components may include, but are not limited to, compute and storage components, connectivity components, applications, devices, sensors, etc.

In an edge computing architecture configuration, information may be collected at devices and/or sensor systems that possess enough bandwidth, memory, processing ability and functionality, to collect, process, and execute upon data in real-time with little to no help from other parts of the network. There is, however, some kind of connectivity with the network that enables communication between the device and a database at a centralized location.

SUMMARY

The illustrative embodiments provide for multi-layer edge architecture simulation. An embodiment includes establishing a virtual representation of a network configuration, wherein the virtual representation of the network configuration comprises a plurality of layers corresponding to the network configuration. An embodiment includes generating a plurality of workloads to simulate with the virtual representation. An embodiment includes generating a plurality of workload statuses to simulate with the virtual representation. An embodiment include simulating the plurality of workloads. An embodiment includes simulating the plurality of workloads statuses. An embodiment includes receiving simulation results responsive to simulating the plurality of workloads and simulating the plurality of workload statuses.

Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the embodiment.

An embodiment includes a computer usable program product. The computer usable program product includes a computer-readable storage medium, and program instructions stored on the storage medium.

An embodiment includes a computer system. The computer system includes a processor, a computer-readable memory, and a computer-readable storage medium, and program instructions stored on the storage medium for execution by the processor via the memory.

DETAILED DESCRIPTION

Many tools currently exist today that enable simulating the performance of a computer network configuration. However, these tools are often limited by the scale of simulations that can be executed. Despite advancements in network simulation, these tools are often ineffective for performing high scale simulations.

Currently there is no efficient way to adequately simulate a high-scale amount of workloads and status collection on a network configuration. One problem addressed by this disclosure includes solving how to efficiently simulate an extremely large-scale load (both in terms of edge endpoints and workloads) on a central hub in multi-layer edge architecture. The present disclosure addresses the deficiencies described above by providing a process (as well as a system, method, machine-readable medium, etc.) that develops a system that composes multiple simulators such that each simulator simulates a different part of the network system, and the combined system of simulators effectively enables simulation of at least millions to hundreds-of-millions of workloads in an efficient and easy to run configuration.

The illustrative embodiments provide for high-scale multi-layer edge architecture network simulation. Embodiments disclosed herein describe a network as a multi-layer edge architecture network; however, use of this example is not intended to be limiting, but is instead used for descriptive purposes only. Instead, the network can include elements of one or more of other types of network architectures as well.

As used throughout the present disclosure, the term “edge computing” refers to a computer networking architecture paradigm that distributes computational resources closer to the location where data is obtained. Accordingly, in edge computing, data may be processed and analyzed locally on or near the devices generating the data, instead of solely on a centralized cloud or data center infrastructure. Some benefits of edge computing architecture include reduced latency, improved efficiency, and enhanced real-time processing capabilities.

As used throughout the present disclosure, the term “edge” refers to an outermost layer of an edge computing network environment. Accordingly, the edge layer of an edge computing network environment may include one or more endpoint network devices or clusters of endpoint devices. As used throughout the present disclosure, the term “endpoint network device” (or simply “endpoint device”) refers to a computing device that serves as a point of interaction between a user and a network and/or a software application. Further, an endpoint device may include a sensor device that may include one or more sensors configured to collect and transmit data about an environment. As a nonlimiting example, a thermostat is a type of endpoint device that includes a sensor device. In the context of an edge computing network configuration, it is understood that a portion of data processing may take place at an endpoint device.

As used throughout the present disclosure, the term “multi-layer edge architecture” (or simply “multi-layer system”) refers to an edge computing network environment configuration that includes a plurality of layers. The plurality of layers of the multi-layer system may include, for example, a central hub layer, a regional hub layer, and an endpoint device layer. The exact configuration of layers, and network nodes aggregated in each layer, may be implementation specific. The example multi-layer configuration described in the present disclosure is not intended to limiting aspect of the present disclosure, but is instead provided for the sake of clarity with regards to example embodiments disclosed herein.

As used throughout the present disclosure, the term “layer” refers to aggregate of network nodes. Further, the term “layer” may also refer to an aggregate of other aggregates of nodes, and so forth. The exact configuration aggregation of network nodes, elements, components, etc., may be implementation specific. Further, the term “cluster” as used throughout the present disclosure refers to an aggregate of network devices.

As used throughout the present disclosure, the term “simulated workload” (or simply “workload”) refers to a specific set of activities, tasks, or operations that are simulated to assess how well a network infrastructure can handle the associated demands. A workload may represent the collective demand imposed on the network by various users, applications, and/or devices engaging in specific interactions over a defined period. An example of a simulated workload may include, but is not limited to, simulating registration of a device on a network; however, the use of this example is not intended to be limiting, and other types of simulated workloads are considered and may be employed as well.

As used throughout the present disclosure, the term “workload placement” refers to a the action of deploying a workload on a network device, and may also refer to the action of deploying a simulated workload on a simulated network device. Accordingly, a simulated workload placement may include the deliberate assignment and/or distribution of simulated workloads across a network infrastructure that enables assessment of the ability of the network to handle varying demands and resource requirements. Simulated workload placement may include placing synthetic or emulated workloads in specific locations within the network infrastructure. Determining where within the network infrastructure the simulated workloads will be placed may include selecting specific devices, servers, or network segments to assess the performance of those components under varying load conditions. Some embodiments disclosed herein consider simulated workloads placed on endpoint devices (such as IoT devices, sensors, or user devices) and servers to evaluate how well these components and hubs for these components are able to handle the generated traffic and demands on the network.

As used throughout the present disclosure, the term “workload status” refers to an indication send in the form of a message from a network device indicating the status of a workload execution on a network device. An example status may include, but is not limited to, “Running”, “Deploying”, “Pending”, “Error”, “Completed”, etc. The exact status or statuses may be implementation specific.

Illustrative embodiments include establishing a multi-layer network architecture configuration. In an embodiment, the multi-layer system includes a central/global layer, a regional layer comprising a plurality of regional clusters, and an edge layer comprising a plurality of endpoint network devices, such that the plurality of endpoint network devices are categorized into regional clusters of the regional layer. In other embodiments, the exact configuration of the multi-layer network is implementation specific, and is not intended to be a limiting aspect of the present disclosure.

Illustrative embodiments include simulating testing for layer in a multi-layer network environment. An embodiment includes replicating specific characteristics and/or conditions of each layer. An embodiment includes emulating the characteristics and/or conditions of each layer. In some embodiments, network conditions may include, but are not limited to, latency, bandwidth limitations, packet loss, throughput, etc.

Illustrative embodiments include simulating workloads for plurality of simulated network endpoints. In some embodiments, a network endpoint is simulated using a virtual machine. In some embodiments, a network endpoint is simulated using a containerized application. In some embodiments, one or more network endpoints are simulated using any combination of virtual machines and containerized applications. In an embodiment, the edge endpoints simulator may simulate multiple network endpoints in a single process and/or application. Accordingly, simulation of 1,000 endpoints may be accomplished with a single process and/or application rather 1,000 separate containers, applications, virtual machines, etc., In an embodiment, the single process and/or application may simulate any number of endpoint devices, thereby enabling simulation of any size network configuration, irrespective of the scale of the network configuration.

Illustrative embodiments include configuring and deploying multiple simulators such that the combined multiple simulators are capable of simulating a high-scale load as desired, based on the configurations of the simulators. For example, suppose a user desired to simulate 1M managed endpoints and 100M status updates processed in a centralized hub. To reach 1M managed endpoints and 100M status updates processed in a centralized hub, the following example simulators may be configured. An edge endpoints simulator may be configured to simulate 1,000 managed endpoints. A workload placement simulator may be configured to deploy 100 workloads for each of the 1,000 endpoints. Accordingly, the workload placement simulator may be configured to deploy each workload to each of the 1,000 endpoints of a cluster of endpoints. A workload status simulator may be configured to simulate a status for each workload. Accordingly, each workload that is deployed to a single endpoint produces a status. In the example scenario, since there are 1,000 endpoints, and each endpoint is reporting statuses of 100 workloads, the single regional hub comprising a cluster of simulated endpoint produces 100K workload statuses. A regional hub simulator may be configured to replicate the single regional hub. Thus, suppose the regional hub simulator simulates 1,000 regional hubs, this will replicate the 100K statuses 1,000 times in order to achieve 100M status updates.

Furthermore, simplified diagrams of the data processing environments are used in the figures and the illustrative embodiments. In an actual computing environment, additional structures or components that are not shown or described herein, or structures or components different from those shown but for a similar function as described herein may be present without departing the scope of the illustrative embodiments.

Furthermore, the illustrative embodiments are described with respect to specific actual or hypothetical components only as examples. Any specific manifestations of these and other similar artifacts are not intended to be limiting to the invention. Any suitable manifestation of these and other similar artifacts can be selected within the scope of the illustrative embodiments.

With reference to FIG. 1, this figure depicts a block diagram of a computing environment 100. Computing environment 100 contains an example of an environment for the execution of at least some of the computer code involved in performing the inventive methods, such as a network simulation module 200 that simulates execution of workloads on multiple layers of a network and provides simulation results that provide insight to the capacity of a network configuration upon execution of the workloads. In addition to block 200, computing environment 100 includes, for example, computer 101, wide area network (WAN) 102, end user device (EUD) 103, remote server 104, public cloud 105, and private cloud 106. In this embodiment, computer 101 includes processor set 110 (including processing circuitry 120 and cache 121), communication fabric 111, volatile memory 112, persistent storage 113 (including operating system 122 and block 200, as identified above), peripheral device set 114 (including user interface (UI) device set 123, storage 124, and Internet of Things (IoT) sensor set 125), and network module 115. Remote server 104 includes remote database 130. Public cloud 105 includes gateway 140, cloud orchestration module 141, host physical machine set 142, virtual machine set 143, and container set 144.

Measured service: cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, reported, and invoiced, providing transparency for both the provider and consumer of the utilized service.

With reference to FIG. 2, this figure depicts a flowchart of an example process for multi-layer edge network simulation in accordance with an illustrative embodiment. In a particular embodiment, the network simulation module 200 of FIG. 1, network simulator 310 of FIG. 3, and/or network simulator module 700 of FIG. 7 carries out the process 250.

At step 202 the process establishes a virtual representation of a network configuration. In some embodiments, the virtual representation is representative of an actual existing network physical network configuration. In some embodiments, the virtual representation of representative of a hypothetical network configuration. In a particular embodiment, the virtual representation is a representative of an edge architecture network configuration. In some such embodiments, the multi-layer edge architecture network configuration comprises a multi-layer edge architecture network configuration such that comprises a plurality of layers. In some such embodiments, the plurality of layers of the multi-layer edge architecture network configuration includes an edge layer such that the edge layer comprises a plurality of edge endpoint devices. Further, in some embodiments, the plurality of layers of the multi-layer edge architecture network configuration may include one or more aggregate layers, such that each layer of the one or more aggregate layers may include a plurality of network devices, such as edge point devices and/or non-edge point devices, and/or a plurality of other layers of the network architecture configuration.

Further, it is contemplated herein that the virtual representation may be configured according to any configuration preferences, such that the configuration preferences may include a particular number and arrangement of layers, a particular number, type(s), and/or arrangement of network devices, specific network characteristics, specific network conditions. In an embodiment, the exact configuration of the virtual representation may be implementation specific and may be determined by a user having sufficient administrative privileges associated with an illustrative embodiment of the disclosed process.

At step 204 the process generates a plurality of workloads to simulate on the virtual representation of the network configuration. In an embodiment, the process generates a number of simulated endpoint devices representative of endpoints devices of a real network, and the plurality of workloads are generated to be deployed for each simulated endpoint device. At step 206 the process generates a plurality of workload statuses to simulate on the virtual representation of the network configuration. In an embodiment, the simulated workload statuses correspond to the workloads deployed on the simulated endpoint devices. For example, suppose 1,000 network devices are simulated, and 100 workloads are deployed for each network device. In such a scenario, 100,000 workload statuses may be simulated on the virtual network representation.

At step 208 the process simulates the plurality of workloads. At step 210 the process simulates the plurality of workloads statuses corresponding to the plurality of workloads simulated. At step 212 the process receives simulation results responsive to simulating the plurality of workloads and from simulating the plurality of workload statuses. In an embodiment, the process further comprises determining a maximum capacity of the network configuration based at least in part on the simulation results received.

In an embodiment, the process further includes incrementally generating additional workloads and/or workloads statuses to simulate. Accordingly, in an embodiment, the process further includes incrementally increasing the total amount of workloads and/or workload statuses to be simulated. In an embodiment, the number of endpoint devices, workloads, and workload statuses may be grouped together under a managing hub. In an embodiment, the process further includes simulating a managing hub to replicate a real managing hub. For example, suppose a single managing hub provides 100,000 workload status. If the managing hub simulator replicates the load 1,000 times, then the total workload statuses may be increased to 100 million total workload statuses received by the virtual representation of the network.

In an embodiment, the illustrative process may be utilized to simulate a stress-test of an existing network configuration, to determine how many endpoint devices a network configuration may be able to handle at one time. In another embodiment, the illustrative process may be utilized in part to design a network configuration prior to physical implementation of a proposed network configuration design.

With reference to FIG. 3, this figure depicts a block diagram of an example computing environment of network simulator module in accordance with an illustrative embodiment. In the illustrated embodiment, network simulator 310 may include aspects of the network simulation module 200 of FIG. 1.

In the illustrated embodiment, the network simulator 310 is a software module configured to simulate endpoint devices, workloads, and workload statuses corresponding to simulated workloads deployed on the simulated endpoint devices. In an embodiment, the network simulator 310 comprises multiple synchronized simulators, such as an endpoint device simulator, a workload simulator, a workload status simulator, and a hub simulator. Accordingly, the endpoint device simulator simulates endpoint devices that would be connected to particular hub of a network. The workload simulator simulates workloads that are deployed to the simulated endpoint devices. The workload status simulator simulates workload statuses that would be resultant from execution of the simulated workloads deployed on the simulated endpoint devices. The hub simulator simulates additional hubs, thereby replicating the conditions, characteristics, and parameters of the original simulated hub.

For example, suppose the endpoint simulator is configured to simulate 1,000 endpoint devices. Further suppose the workload simulator is configured to deploy 100 workloads to each of the 1,000 simulated devices, and the workload status simulator is configured to generate a workload status for each workload deployed. In such a scenario, the simulated hub may receive 100,000 workload statuses from the original simulated hub. Further, suppose the hub simulator is configured to replicate the original hub 1,000 times, thereby creating a simulation that includes 100 million workload statuses.

In the illustrated embodiment, a network 301 is shown. In an embodiment, the network 301 comprises an edge architecture style network. In such an embodiment, the network 301 includes a plurality of edge endpoint devices connecting to the network 301 across various layers via various hubs. For the sake of simplicity, the figure depicts a first endpoint device 303, a second endpoint device 304, a third endpoint device 305, and a fourth endpoint device 306. In practicality, each of the endpoint devices may be connected according to different connections to network 301. The configuration and complexity of the network 301 may be implementation specific, as described in greater detail herein. Further, in some embodiments, the network 301 may comprise any suitable network configured to transmit information between at least the depicted components of computing environment 300. Although a plurality of endpoint devices are shown that represent possible endpoint devices of a network configuration, to perform a simulation of the network devices as described herein, the real edge devices 303-306 may not be necessary to actually perform the simulation.

In the illustrated embodiment, an administrator device 302 is shown deploying the network simulator software 310. Further, administrator device 302 may include a backend administration system allows users with administrative privileges to perform various administrative tasks associated with the network simulator software 310 as described herein, such as adjusting parameters and/or initiating simulation of workloads and workload statuses.

With reference to FIG. 4, this figure depicts a block diagram of an example edge network architecture network environment configuration in accordance with an illustrative embodiment. In the illustrated embodiment, the network environment configuration is depicted as including a plurality of layers, including an edge layer 410, a second layer 420, a third (regional) layer 430, and a central hub layer 440. Although the depicted network configuration is depicted as including four layers for the sake of clarity, it is understood that network configurations may comprise various degrees of complexity, and the exact configuration and organization of a network environment may be implementation specific. Embodiments of the present disclosure refer to the network architecture as an edge network architecture; however, use of this example is not intended to be limiting, and embodiments disclosed herein may be suitable for any type of network environment configuration.

In the illustrated embodiment, the plurality of edge endpoint devices of the edge layer 410 includes a smartphone 411, a wearable device equipped by a person 412, a scanner 413, a POS terminal 414, a drone 415, and an autonomous vehicle 416. In the illustrated embodiment, the edge endpoint devices communicate with other devices, locations, hubs, databases, etc. of the second layer 420. In the illustrated embodiment, the second layer 420 is shown including a wireless communication tower 421, a computing device 422, a cloud 423, and a database 424, which each communicate with the devices of the edge layer 410, as depicted.

In the illustrated embodiment, the regional layer 430 is shown including a plurality of regional hubs. In the illustrated embodiment, the regional layer 430 is shown depicting a first regional hub 431, a second regional hub 432, and a third regional hub 433. In the illustrated embodiment, each regional hub of the plurality of regional hubs depicted is shown in communication with endpoint devices and/or other aggregates from other layers. In the illustrated embodiment, the central hub layer 440 is in communication with the regional hubs of the regional hub layer 430.

In the illustrated embodiment, the network architecture is shown including a plurality of layers, and layers of the plurality of layers may be aggregates of other layers, devices, and/or components of the network. As mentioned throughout this disclosure, the exact configuration of the network may be implementation specific and may depend considerations of the owner(s) and/or designer(s) and/or applications and underlying purposes for which the network is utilized. In the illustrated embodiment, edge layer 410 is depicted as the “edge” of the network, and comprises a plurality of edge endpoint devices, as shown. As depicted in the figure, edge point devices of edge layer 410 as depicted as communicating to different components and hubs within the network.

With reference to FIG. 5, this figure depicts a block diagram of an example hierarchically organized edge network architecture environment in accordance with an illustrative embodiment. In the illustrated embodiment, a 3-layer network architecture is shown. However, this example configuration is not intended to be limiting, and one skilled in the art may adapt the disclosed methods for configurations that include any number of layers.

In the illustrated embodiment, the three layers depicted include an edge layer, a regional hub layer, and a central hub layer. As depicted, the edge layer includes clusters of endpoint devices connected to different regional hubs. In the illustrated embodiment, a first regional layer hub 504 is shown managing endpoint device A 514A, endpoint device B 514B, and endpoint device C 514C. Further, in the illustrated embodiment, a second regional layer hub 506 is shown managing endpoint device D 516A, endpoint device E 516B, and endpoint device F 516C. Further, in the illustrated embodiment, a third regional layer hub 508 is shown managing endpoint device X 518A, endpoint device Y 518B, and endpoint device Z 518C. In the illustrated embodiment, the first regional layer hub 504, the second regional layer hub 506, and the third regional layer hub 508, are all connected and managed by the central hub 502 of the central hub layer.

With reference to FIG. 6, this figure depicts a block diagram of an example network layer simulator in accordance with an illustrative embodiment. In the illustrated embodiment, a 3-layer network architecture is shown. However, this example configuration is not intended to be limiting, and one skilled in the art may adapt the disclosed methods for configurations that include any number of layers. Further, in the illustrated embodiment, only a single regional hub 604 is shown managing a single endpoint device cluster 606. This simplified depiction of the configuration of the example process is provided for sake of clarity, and it is contemplated that in practicality, any number of regional hubs can be simulated by any number of regional hub simulators.

In the illustrated embodiment, the edge endpoint simulator 624 is configured to simulate a cluster of endpoints, such as a cluster of endpoints 606 that may correspond to a regional hub 604. Further, in the illustrated embodiment, workload placement simulator 628 is configured to simulate placement of a plurality of workloads corresponding the simulated edge endpoints. In an embodiment, a workload is placed on an endpoint device in order to be able to simulate and/or retrieve a status from that endpoint device. Further, in the illustrated embodiment, the workload statuses simulator 626 is configured to simulate workload statuses for each endpoint device of the simulated cluster of endpoints simulated by the edge endpoint simulator 624 based on the workload placements that have simulated by the workload placement simulator 628. Further, the workload placement simulator 628, workload statuses simulator 626, and edge endpoint simulator 624 are coordinated to simulate the workloads of the simulated endpoints corresponding to the regional hub 604. Further, in the illustrated embodiment, regional hub simulator 614 is configured to replicate the endpoints, workloads, and workloads statuses previously simulated to effectively replicate the entire simulated workload. Further, in the illustrated embodiment, the central hub 602 may include an actual central hub of a network configuration that is in communication with the regional hub simulator 614.

Edge management of multiple clusters includes the edge endpoints pulling information from the regional hub 604 and/or central hub 602 as well as pushing information to the regional hub 604 and/or central hub 602. This allows the edge endpoints to work in disconnected modes (e.g., if the edge endpoint loses connectivity) without any effect on the other edge endpoints or the regional hub 604 and/or central hub 602. In such cases, the managing hub can continue working as usual without affecting the performance, whether any of the edge endpoints are connected or not. To register managed endpoints/clusters to a managing hub, an initial registration request is sent from the managed endpoint to the managing hub. After the initial request is accepted and the endpoint is registered with the managing hub, the managed cluster/endpoint continues to send updates to the managing hub, which marks the liveness of the edge endpoints so long as the endpoint is still connected.

In the illustrated embodiment, an embodiment of the disclosed process simulates the managed clusters/endpoints. In an embodiment, the process may deploy one actual regional hub 604 and run additional process 624 for edge endpoints simulator. The edge endpoints simulator sends registration requests, receives back responses and acts with a timer to send liveness messages of the simulated endpoints before the edge endpoints are considered disconnected, depending on the timeout period configured in the regional hub 604. The number of simulated endpoints can be pre-configured to match the required scale as desired.

In the illustrated embodiment, the process 600 simulates workloads that run on the simulated edge endpoints. Deploying workloads includes creating an isolated entry point for each managed endpoint/cluster on the managing hub. The managed endpoint has access only to its entry point and is using this entry point to pull workloads from the managing hub and push status updates to the managing hub. For example, if an administrator desired to deploy a workload to a specific managed endpoint, the administrator may deploy the workload and a placement rule to make sure the workload will be placed on the required managed endpoint. In some embodiments, the placement rule may be automatically generated by the system, where deployments are based on available resources. As a result of the placement rules, the managing hub business logic puts a copy of the workload in the desired managed endpoint isolated space on the hub. The managed endpoint/cluster pulls resources from its isolated space and deploys them on the edge endpoint. Once a status can be reported, it reports back using the same isolated space on the managing hub.

To simulate workloads that run on the simulated edge endpoints, the same process as described above may be used to simulate workloads and statuses from the various simulated edge endpoints. In an embodiment, the process deploys real workloads resources to the managing hub and runs the workloads placement simulator 628 and workloads statuses simulator 626 to manipulate workloads placement and statuses to simulate as if the workload is actually running on the edge endpoints. Accordingly, a person or other entity (e.g., a user running the simulation manually, an automated system that runs the simulation automatically, etc.) that runs the simulation may control the deployment of the real workload resources to the managing hub.

In the illustrated embodiment, the workloads placement simulator 628 runs iteratively in a loop, and in each iteration selects a random number of endpoints per workload. In some embodiments, the number of endpoints can be configured by an administrator. Further, parameters such as minimum number of endpoints, and max number of endpoints may likewise be configured by an administrator. After selecting the number of endpoints randomly, the process updates the placement rules accordingly in the hub to simulate the workload on the selected endpoints.

In the illustrated embodiment, the workloads statuses simulator 626 is fed with the information that was selected by the workloads placement simulator 628 in each iteration, and for each managed endpoint that was selected by the placement simulator, waits a predetermined or randomly selected time (which likewise may be configured by an administrator) and reports back to the managing hub a manipulated status of the workload, as if workload was deployed in a real managed endpoint. For reporting status of a workload, the workloads statuses simulator 626 is aware of the valid options for a workload which also can be pre-configured per workload type. For example, when deploying an application to a managed endpoint, valid statuses might include, but are not limited to “Running”, “Deploying”, “Pending”, “Error”, “Completed”, etc.

With reference to FIG. 7, this depicts a block diagram of an example network simulator module in accordance with an illustrative embodiment. In the illustrated embodiment, network simulator module 700 may include some aspects of network simulator module 200 of FIG. 1 and/or network simulator module 310 of FIG. 3.

In the illustrated embodiment, the network simulator module 700 is a software module that may include network analyzer module 702, layer simulator module 704, network edge endpoint simulator module 706, workload generator module 708, status generator module 710, workload placement module 712, status simulator module 714, integration module 716, and administrative module 718. In alternative embodiments, the network simulator module 700 can include some or all of the functionality described herein but grouped differently into one or more modules. In some embodiments, the functionality described herein is distributed among a plurality of systems, which can include combinations of software and/or hardware-based systems, for example Application-Specific Integrated Circuits (ASICs), computer programs, or smart phone applications.

In the illustrated embodiment, the network analyzer module 702 is a software module configured to analyze a network. In the illustrated embodiment, the network analyzer module 702 receives monitored data from a network to establish a virtual representation of the network. The network analyzer module evaluates the monitored data to determine aspects of the network. Embodiments of the network may include one or more of a variety of different types of networks having varying degrees of complexity. Embodiments disclosed herein described the network within the context of a multi-layer edge network; however, this is for descriptive purposes only and is not intended to be limiting, and other network architecture configurations are considered herein.

The network analyzer module 702 may be configured to determine all aspects associated with a network, including but not limited to, network characteristics, network conditions, network devices, network configuration, network layers, network nodes, network connections, etc. In an embodiment, network analyzer module 702 enables network simulator 700 to construct a virtual representation of a network analyzed by network analyzer module 702 based at least in part on aspects of the network that have been determined by network analyzer module 702. For example, network analyzer module 702 may analyze a network to determine that the network includes an edge layer comprising various network devices, and several other aggregate layers that receive and/or transmit data between said aggregate layers and other layers and/or network devices connected to the network.

In the illustrated embodiment, layer simulator module 704 is a software module configured to simulate execution of applications and/or processes and/or data communication across a layer of a network and/or between layers of a network. In an embodiment, layer simulator module is configured to simulate different managing hubs of the network.

In the illustrated embodiment network edge endpoint simulator module 706 is a software module configured to simulate execution of actions, routines, processes, and/or applications of a plurality of endpoint devices of a of a network. Accordingly, the edge endpoint simulator simulates endpoint devices that would be connected to particular hub of a network.

In the illustrated embodiment workload generator module 708 is a software module configured to generate a plurality of workloads to simulate and/or deploy. In the illustrated embodiment workload placement module 712 is a software module configured to simulate placement of workloads on simulated network devices connected to a network. Accordingly, the workload generator module 708 generates workloads that are deployed to the simulated endpoint devices by workload placement module 712.

In the illustrated embodiment status generator module 710 is a software module configured to generate plurality of workloads to simulate and/or deploy. The workload status simulator simulates workload statuses that would be resultant from execution of the simulated workloads deployed on the simulated endpoint devices. In the illustrated embodiment status simulator module 714 is a software module configured to simulate various workload statuses associated with workloads placed on simulated devices.

For example, suppose the edge endpoint simulator 706 is configured to simulate 1,000 endpoint devices. Further suppose the workload placement module 712 is configured to simulate 1,000 workloads to each of the 1,000 simulated devices, and the workload status simulator module is configured to generate a workload status for each simulated workload deployed. In such a scenario, simulated hub generated by the layer simulator module 704 may receive 100,000 workload statuses from the original simulated hub. Further, suppose the layer simulate module 704 is configured to replicate the original hub 1,000 times, thereby creating a simulation that includes 100 million workload statuses.

In the illustrated embodiment integration module 716 is a software module configured to integrate the network simulator module 700 with a network, network applications, and/or network devices. In the illustrated embodiment administrative module 718 is a software module configured to enable a user having sufficient administrative privileges to perform various tasks associated with network simulator module 700. In an embodiment, the administrative module 718 allows a user with administrative privileges to perform various administrative tasks associated with the network management module as described herein, such as adjust one or more parameters of the virtual representation of the network, and/or initiate a network simulation.

With reference to FIG. 8, this figure depicts a block diagram of an example network simulation process in accordance with an illustrative embodiment. In the illustrated embodiment, the network simulator module 200 of FIG. 1, the network simulator module 310 of FIG. 3, and/or the network simulator module 700 of FIG. 7 is configured to carry out aspects of process 800 as described herein.

In the illustrated embodiment, analysis of network 802 provides information providing insight in the network characteristics 804 corresponding to the network 802. Further, the network characteristics 804 provides information regarding the configuration of network layers 806 of network 802. Further, information regarding the network layers 806 of the network 802 provides information regarding the number and/or types of edge point devices 808 of the network 802, as well as the flow of data between such devices and other components, managing hubs, and/or layers of the network 802.

In the illustrated embodiment, the edge endpoint simulator 810 simulates a number of edge endpoint devices. In an embodiment, an administrator may configure the edge endpoint simulator 810 to simulate a cluster of endpoint devices in the same amount as a cluster of endpoint devices of a particular layer of the network 802. In other embodiments, an administrator may select any number of endpoint devices to simulate.

In the illustrated embodiment, the workload placement simulator 814 generates and simulates a number of workloads to deploy onto each of the endpoint devices simulated by the edge endpoint simulator 810. Further, the workload status simulator 816 simulates workload status for each workload deployed on each endpoint device.

In the illustrated embodiment, the network layer simulator 812 replicates the aspects of the previously simulated endpoint devices, workloads, and workload statuses, as many times as configured by an administrator. Accordingly, the network layer simulator 812 may be configured to simulate additional managing hubs within the network 802. An administrator may simulate any number of managing hubs, and adjust the parameters of each managing hub, depending on preference.

In the illustrated embodiment, the example process produces simulation results 818 as a result of performing simulation of endpoint devices, network layers, workloads, workload statuses. The simulation results 818 may provide insight into the maximum capacity of a network, such that the maximum capacity reflects an actual existing network, or reflects a hypothetical network configuration that has not yet been actually configured. Some embodiments of process 800 are directed towards simulating a stress test for an actual network. Some other embodiments of process 800 are directed towards predicting performance of a future network. In some embodiments, the central hub depicted in various diagrams is a real central hub, i.e., a central hub that is not simulated.

Embodiments of the present invention may also be delivered as part of a service engagement with a client corporation, nonprofit organization, government entity, internal organizational structure, or the like. Aspects of these embodiments may include configuring a computer system to perform, and deploying software, hardware, and web services that implement, some or all of the methods described herein. Aspects of these embodiments may also include analyzing the client's operations, creating recommendations responsive to the analysis, building systems that implement portions of the recommendations, integrating the systems into existing processes and infrastructure, metering use of the systems, allocating expenses to users of the systems, and billing for use of the systems. Although the above embodiments of present invention each have been described by stating their individual advantages, respectively, present invention is not limited to a particular combination thereof. To the contrary, such embodiments may also be combined in any way and number according to the intended deployment of present invention without losing their beneficial effects.