System configuration analysis for migration

A method for migrating from a legacy system to a target system may include extracting a legacy system configuration into a structured model and analyzing the structured model, the analyzing including determining a set of patterns and deriving a legacy services model. The method may further include providing a target system model and mapping the legacy services model into an independent service model. The method may further include migrating the independent service model having the mapped legacy services model onto the target system model and providing the target system model to a target system.

BACKGROUND

Many businesses run complex computing systems, which may include numerous computing devices, network devices, servers, routers, etc. Such computing systems may require updating in response to changes in technology. In certain circumstances, the changes may implement new technology that is incompatible with existing infrastructure. As such, migrating to the new technology may require replacement or conversion of many system components.

DETAILED DESCRIPTION

Further, as used herein, the article “a” is intended to have its ordinary meaning in the patent arts, namely “one or more.” Herein, the term “about” when applied to a value generally means within the tolerance range of the equipment used to produce the value, or in some examples, means plus or minus 10%, or plus or minus 5%, or plus or minus 1%, unless otherwise expressly specified. Further, herein the term “substantially” as used herein means a majority, or almost all, or all, or an amount with a range of about 51% to about 100%, for example. Moreover, examples herein are intended to be illustrative only and are presented for discussion purposes and not by way of limitation.

Migration to new technologies may include the replacement and/or provisioning of numerous system components. As such, migration may result in relatively high costs, including the cost for manual processes, site visits, and transitions, e.g., double license costs for old and new systems. Migration may also result in delayed or reduced revenue as a result of lower sell rates for new services. Still further, migration may include various risks associated with new system configuration inconsistencies and manual transitions that may result in long down times, long periods of mixed setups between the new and old systems, as well as other potential issues.

For example, in one circumstance, a company may have over 2000 customers, 40,000 devices, and a staff of 60. The estimated migration time period for such an operation using manual approaches may be in excess of six years. As a result of the long time periods and costs associated therewith, many companies choose not to migrate to new technology.

Systems and methods of the present disclosure may provide migration techniques that allow for a substantially automated configuration of devices within a system. By modeling the old, legacy, systems and analyzing such legacy systems, configurations for new systems may be determined. The new system configurations may then be provisioned as needed, thereby allowing companies to migrate to new technology. By using such modeling and analysis systems, companies may decrease migration costs, decrease migration risks, and decrease potential downtime. For example, in the migration case discussed above, using such modeling and analysis tools, migration time may be decreased to two years, instead of more than six years. Additionally, costs may be decreased as a result of fewer staff, fewer site visits, the shorter time period, and decreased migration risks that may otherwise cause system downtime or lost revenue.

Generally, systems and methods disclosed herein may provide for the discovery of components of a legacy system. The discovery phase may include determining features that are used by each component of the system and organizing the collected information into structured models. The structured models may then be analyzed to determine patterns in system component use, thereby providing a legacy model for the legacy system. Using the determined patterns, the legacy model may be mapped onto an independent service model, which defines how the provided services should look, regardless of the underlying technology. With a defined independent service model, the legacy model, including legacy system configurations, may be migrated to a target model for the new technology. Accordingly, while the target model may be different from the legacy model, the configuration of services for the target model may match the target system and new technology specifications. Accordingly, migration from an old technology to a new technology may occur more efficiently with less risk of component or service failure during the process. Detailed aspects of the present disclosure are discussed below with respect to specific systems and methods.

Turning toFIG. 1, a schematic representation of an example computing system100for hardware management according to one or more examples is shown. The computing device100may use software, hardware, firmware, or logic to perform functions described herein.

Computing device100may include hardware and/or programming instructions configured to share information. The hardware, for example, may include one or more processors105(one shown) and memory110, e.g., computer-readable medium (“CRM”), machine readable medium (“MRM”), database, etc. Processors105may include any set of processors capable of executing instructions stored by a memory110. Processor(s)105may be implemented in a single device or distributed across multiple devices. The program instructions, e.g., computer readable instructions (“CRI”) may include instructions stored on the memory110and executable by the processor(s)105to implement a desired function.

Memory110may be in communication with processor105. Memory110may include any set of memory components capable of storing instructions that may be executed by processor105. Memory110may be a non-transitory CRM or MRM. Memory110may also be integrated in a single device or distributed across multiple devices. Further, memory110may be fully or partially integrated in the same apparatus as processor105or it, may be separate but accessible to that processor105. Computing device100may be implemented on a participant device, on a server device, on a collection of server devices, or a combination of the participant device and the server device.

A set of modules, e.g., a configuration discovery module200, a configuration analysis module300, an intent-based modeling module400, and a migration module500, may include CRI that when executed by the processor105can perform functions. The set of modules may be sub-modules of other modules. For example, the configuration discovery module200and the configuration analysis module300may be sub-modules or contained within the same computing device100. In another example, the set of modules may include individual modules at separate and distinct locations, e.g., CRM, etc.

As briefly discussed above, computing device100may use a number of modules to discover services and/or equipment features used in legacy systems, analyze the legacy system configuration, model a new system configuration based on the legacy system configuration, and provide the new system configuration for migration onto a target system. Each module will be discussed in detail below.

Turning toFIG. 2, a schematic representation of configuration discovery, in accordance with one or more examples of the present disclosure is shown. Configuration discovery may occur in a configuration discovery module,200ofFIG. 1. Configuration discovery refers to extracting a system configuration from a legacy system. In order to extract the system configuration, from the legacy system, legacy system configurations may be translated into a structured format, such as Yet Another New Generation (“YANG”) format. YANG is a data modeling language for a definition of data sent over the Network Configuration Protocol (“NETCONF”). NETCONF may provide mechanisms to install, manipulate, and/or delete configurations on network devices. NETCONF/YANG205may collectively refer to the use of YANG over NETCONF. In other implementations, other structured format and/or data modeling languages may be used. For example, in another implementation, Open Application Programming Interface (“Open API”) may be used.

During implementation, NETCONF/YANG205may allow for the determination of information from devices and/or services on a legacy system organized as a structured model. Use of the structured model will be discussed in detail with respect toFIG. 3. To determine device/service information, equipment configuration from devices and services within the legacy system are collected. For example, in certain implementations, the equipment configuration for all devices and services within the legacy system are collected.

For example, inFIG. 1, NETCONF/YANG may use resource discovery210in order to collect information about devices/services in the legacy system. Resource discovery210may include algorithms or other tools for collecting information and subsequently outputting the information through NETCONF/YANG. In this implementation, the legacy system may include a router215. In other implementations, the legacy system may include other types of computing devices, network devices, storage devices, and the like. In certain implementations, the legacy system may include hundreds or thousands of devices.

Router215may include one or more policies220. Policies220may provide instructions as to how routing decisions are made within a particular network. Router215may further include virtual routing and forwarding (“VRF)225, thereby allowing multiple instances of a routing table to exist in router215. Router215may also include one or more interfaces230. Interfaces230may have one or more ports, such as gigabit (“Gi”) 0/0/0 port240. Gi 0/0/0 port240may be connected to a virtual area network (“VLAN”)245, which may be connected to a VRF1000, character reference235, of VRF225.

Resource discovery210may thus discover the various devices, services, features, and configurations of each device within the legacy system. The legacy system configuration may then be extracted using NETCONF/YANG205and outputted250into a structured model. Generally, the structed model may include device configuration, such as router215configuration, that is machine-readable. The structured model may be used to derive additional information, which will be discussed in detail below with respect toFIG. 3.

While a specific set of devices, services, features, and configurations have been discussed with respect toFIG. 2, in other implementations, various other types of devices, services, features, and configurations may be extracted from the legacy system. When such devices, services, features, and configuration have been discovered and extracted from the legacy system, the extracted structured model may be analyzed.

Turning toFIG. 3, a schematic representation of configuration analysis, in accordance with one or more examples of the present disclosure is shown. Configuration analysis may occur in a configuration analysis module,300ofFIG. 1. Configuration analysis refers to a process of deriving patterns from a structured model305that allows a legacy services model representative of the legacy system to be generated. The legacy services model may then be used to determine what network features may be implemented during migration, such as in a particular order, thereby reducing migration risk and optimizing deployment to a new target system.

Structured model305may be the output,250from discovery module,200ofFIG. 1. Accordingly, structured model305may include the devices, services, features, and configurations of the legacy system. With this information, one or more patterns310may be extracted from the legacy system configuration. Patterns310may be representative of frequently used configuration patterns. For example, one or more specific patterns310may be extracted that include features on devices that are used in a certain number of devices.

In one implementation, features that are used in 80% of devices may be considered frequently used features, and as such, patterns310representative of the features may be extracted. In other implementations, features that are used in 50% of devices may be considered frequently used features. In still other implementations, features that are used in more than 80% of devices, more than 50% of devices or more than 90% of devices may be considered frequently used features. In still other implementations, frequently used features may be defined in terms of ranges. For example, features used in 60% to 80% of devices may be considered frequently used features, while features used in less than 60% to 25% of devices may be considered less frequently used features. Other ranges may include features used in 80% to 90% of devices may be considered frequently used features while features used in less than 80% of devices may be considered less frequently used features.

In still other implementations, frequently used features may not be defined. In such implementations, less frequently used features may be determined rather than frequently used features. For example, less frequently used features may include features used in less than 75% of devices, less than 50% of devices, or less than 25% of devices. By determining less frequently used features, the features may be excluded from patterns310, thereby allowing the frequently used features to be extracted into patterns310.

In order to determine patterns310, and thus the frequency of use of particular features, datamining may be used. To mine structured model305, various datamining tools may be used, including for example, datamining in R. R is a programming language for statistical computing supported by the R Foundation for Statistical Computing. R, as a programming language, may thereby allow for the identification of patterns310of commands used for particular services.

To determine patterns310, configuration elements in structured table305may be reduced to configuration options, i.e., keywords, thereby eliminating numerical instances or other parameters. The keywords may include specific features or services that run on specific devices defined in text, such as the name of a feature or service. Because the keywords do not include numerical instances or specific parameters, the keywords may be analyzed through Market Basket analysis in, for example the R programming language. Market Basket analysis refers to the identification of patterns by looking for combinations of items that occur together frequently in transactions. Thus, in one implementation, Market Basket analysis may be used to determine which features are used throughout the legacy system, and at what rate such features are used. For example, a number of devices may use the same feature. The number of devices that use the feature may be determined and then the number of devices using the feature may be divided by the total number of devices in the legacy system to determine a percentage use. The percentage use of the feature may be used to determine patterns310of use, as well as frequently used features.

Turning toFIG. 4, a graphical representation401of features in a system, in accordance with one or more examples of the present disclosure is shown. The structured model may include numerous configurations for the legacy system. The configurations may include a number of features405, which are identified in graphical representation401as bars in a graph. The frequency of use of features405may be represented based on the height of a specific bar. For example, a feature410may have a relative item frequency of 1.0, while a feature415may have a relative item frequency of 0.1. As such, feature410may have a frequency of use of 100%, while feature415may have a relative item frequency of use of 10%.

Additionally, Market Basket analysis may allow for the grouping of specific features405based on type. For example, in graphical representation400, Interface Features420may be grouped together. Similarly, ACL features425may be grouped, DHCP features430may be grouped, QoS—Policy Classify and Actions435may be grouped, and Routing—BGP440may be grouped. The groupings may allow for identification of the types of features that are used in specific configurations. The frequency of use and grouping may thus be used to determine the patterns of use, as discussed above with respect toFIG. 3.

Frequently used items may also be identified within graphical representation401through use of visual aids. For example, an area above a frequently used feature bar445may represent the features that are considered frequently used. In this implementation, frequently used feature bar is set at 0.7, indicating that features that are used in more than 70% of devices may be considered frequently used features. Similarly, a less frequently used feature bar450may set at 0.2, thereby indicating that features that are used in less than 70% of devices may be considered less frequently used features. Additional bars, such as a baseline bar455may be used to identify the least used features. In this implementation, baseline bar455may be set to 0.1, thereby indicating that the features at or below baseline bar455are used in 10% or less of the devices.

Turning toFIG. 5, a high-level schematic representation of intent-based modeling, in accordance with one or more examples of the present disclosure is shown. Intent-based modeling may occur in an intent-based modeling module400. Intent-based modeling may generally refer to declaring intents for particular devices or systems and translating the intents into device-level or system-level configurations. In operation, a user may define an intent, which is a desired outcome. Intent-based modeling module400may then use policy-based abstractions to express the intent as a model.

In this implementation, patterns310may be provided to a service model405, which may also include a target system model413. Target system model413may provide equivalent functionality for a target system, while taking into consideration the functionality evidenced by patterns310of the legacy system. Accordingly, a transition from a legacy system to a target system may occur with less risk of loss of functionality. Because patterns310represent devices, features, and configurations of the legacy system, service module407may be provided such information and then migrate corresponding information to target system model413. The specific devices and features of target system model413may differ from those defined by patterns310, however, the differences may occur as a result of differences in the technology and/or required devices, features, and configurations. This process is described in greater detail with respect toFIG. 6.

Turning toFIG. 6, a schematic representation of mapping customer services using intent-based modeling, in accordance with one or more examples of the present disclosure is shown. Mapping customer services using intent-based modeling may occur in intent-based modeling module,400ofFIGS. 1 and 5. In this implementation, intent-based modeling may allow for a legacy services model503to be mapped to an independent service model505, which may then be used to define configurations for a target system model413.

In operation, a legacy system515may be evaluated, as discussed above, to create legacy services model503. Legacy services model503may include the patterns of devices, features, and/or configurations of legacy system515. Independent service model505defines how a particular system should look. Independent service model505does not take into consideration specific technology, rather, it defines the functionality a type of system should provide.

Accordingly, legacy service model503may be mapped onto independent service model505using intent-based modeling. During the modeling, different equipment configurations from legacy system515may be mapped into a service representation that is expressed in independent service model505. For example, legacy system515may include thousands of different equipment configurations for a particular service. By mapping the patterns from legacy services module503into independent service model505, the different equipment configurations may be coalesced into a single service representation. The coalesced configuration may thereby allow standardization in a new target system520, thereby decreasing the complexity of new target system520.

Once independent service model505is defined, the legacy service configuration can be migrated to target system model413. Target system model413includes a representation of target equipment525that is used in target system520. As such, the configurations of legacy equipment530may be migrated to target equipment525without a loss of functionality. As illustrated, the target equipment525may look different than legacy equipment. However, independent service model505allows the configuration of legacy equipment530to be migrated to target equipment525, thereby creating correct service instance configurations for target equipment525.

Turning toFIG. 7, a schematic representation of migrating to a target system, in accordance with one or more examples of the present disclosure is shown. Migrating to a target system may occur in a migration module,500ofFIG. 1. Migration refers to taking the configurations and functionality of legacy system515and transferring such configurations and functionality to target system520. Thus, combining the discussion above, information about legacy system515may be discovered and provided535to computing device100. The information provided535may include legacy model503derived from patterns found while extracting the legacy system configuration.

The information provided535may then be analyzed and modeled by computing device100, thereby mapping legacy model503onto the service model. The configurations in the service model may then be migrated to target system model413. Computing device100may then use target system model413to provision540equipment in target system520.

Turning toFIG. 8, a flowchart depicting a method600for providing system configuration analysis for target system migration, in accordance with one or more examples of the present disclosure is shown. In operation, method600may include extracting (block605) a system configuration into a structured model. The system configuration may include the legacy system configuration that is representative of devices, features, and configurations of the legacy system.

For example, the system configuration may include lists of the different features that are used by different devices within the legacy system. In certain implementations, the legacy system configuration may include lists of all features used by all devices within the legacy system. In order to extract the system configuration into a structed model, NETCONF/YANG may be used. As such, the features of the legacy system may be converted into a structed YANG format, which may be machine-readable, thereby allowing further manipulation of the extracted information.

In operation, method600may further include analyzing (block610) the structured model, the analyzing including determining a set of patterns and deriving a legacy services model. With the structed model in machine-readable format, the structured model may be analyzed using, for example, one or more datamining techniques. In certain implementations, datamining may occur through use of statistical algorithms programmed through, for example, the R computing language. In other implementations, other datamining tools may be used to determine a set of patterns from the structured model.

In operation, datamining may be used to detect patterns, such as frequency of use, of particular features within the legacy system. In certain implementations, the datamining may be used to determines a set of frequently used features, such as features that are used more than 80% of the time. In other implementations, the set of frequency used features may include different relative uses, such as those discussed in detail above. In still other implementations, the datamining may be used to determine less frequently used features. In certain implementations, datamining may be expressed as a graphical representation, such as the graphical representation provided inFIG. 4. As such, the structured model may include building a normalized view of a set of features from a plurality of devices in a legacy system that includes the legacy system configuration

Analyzing the structured model may further include deriving a legacy services model. The legacy services model may include a representation of patterns and/or other information about the legacy system, including devices, features, and configurations. In one example, the legacy services model may include a list of features and configurations for a particular service. In operation, the legacy services model may include information about all devices, features, and configurations of the legacy system. In certain implementations, multiple legacy service models may be used, thereby allowing particular services to be provisioned independently. As such, the legacy services model may include information about the legacy system as a whole or may include information about specific devices, features, and/or components of the legacy system.

In certain implementations, analyzing the structured model may further include determining a migration approach. For example, the analyzing may provide an order in which features and/or configurations may be provided to a target system, may define a time period for providing features and/or configurations, or may otherwise indicate certain features and/or configurations not to include to the target system.

In operation, the method600may further include providing (block615) a target system model. The target system model may include information about the equipment that is provided for the target system. For example, the target system model may include a list of devices arranged in a tree format that allows the connectability of the devices within the target system to be represented. Thus, the target system model may provide information about the formation of equipment of the target system.

In operation, the method600may further include mapping (block620) the legacy services model into an independent service model. The mapping may include taking equipment configurations about specific devices in the legacy service model and applying the to the functionality defined in the independent service model. As the independent service model provides an extrapolated expression of how a system should function, the configurations of legacy services model may be mapped onto independent service model without defining the specific equipment that will be used in the target system. As such, the mapped independent service model may provide an expression of how the legacy system configurations may be provided without being mapped to specific equipment or a specific environment.

The independent service model may thereby coalesce different equipment configurations, thereby introducing standardization and decreasing complexities with a system. The coalescing may also remove redundant or unnecessary configurations that occur in the legacy system. In certain implementations, the mapping the legacy services model into the independent service model may include intent-based mapping, as discussed above in detail.

In operation, the method600may further include migrating (block625) the independent service model having a set of legacy system configurations onto the target system model. The legacy system configurations may be provided through the legacy services model, such that when the legacy services model was mapped into the independent service model, the configurations for the legacy system were defined as functionality within the independent service model. As the target system model includes the equipment that may be used in the target system, the configurations provided in independent service model may thereby provide equivalent functionality to equipment of the target system. As such, the target system model may include a different service instance configuration than the legacy services model.

In operation, the method600may further include providing (block630) the target system model to a target system. As the target system model includes the configurations for the target system, by providing the target system model to the target system, equipment of the target system my subsequently be provisioned with the configuration in the target system model. Accordingly, in certain implementations, the new model may be migrated onto the target system.

Turning toFIG. 9, an example computing device with a hardware processor and accessible machine-readable instructions is shown in accordance with one or more examples of the present disclosure.FIG. 9provides an example computing device925, with a hardware processor930, and accessible machine-readable instructions stored on a machine-readable medium935for generating information about a product as discussed above with respect to one or more disclosed example implementations.FIG. 9illustrates computing device925configured to perform the flow described in blocks605,610,615,620,625, and630discussed in detail with respect toFIG. 8. However, computing device925may also be configured to perform the flow of other methods, techniques, functions, or processes described in this disclosure.

A machine-readable storage medium, such as935ofFIG. 9, may include both volatile and nonvolatile, removable and non-removable media, and may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions, data structures, program module, or other data accessible to a processor, for example firmware, erasable programmable read-only memory (“EPROM”), random access memory (“RAM”), non-volatile random access memory (“NVRAM”), optical disk, solid state drive (“SSD”), flash memory chips, and the like. The machine-readable storage medium may be a non-transitory storage medium, where the term “non-transitory” does not encompass transitory propagating signals.

Turning toFIG. 10, a flowchart depicting a method800for determining a migration approach from a legacy system to a target system, in accordance with one or more examples of the present disclosure is shown. In operation, method800may include extracting (block805) a system configuration from a legacy system into a structured model.

In operation, method800may further include discovering (block810) a set of patterns in the legacy system. The patterns may include patterns representative of device configuration, frequency of feature use, or other such patterns as discussed above. Additionally, the patterns may be graphically depicted as set forth above inFIG. 4.

In operation, method800may further include deriving (bock815) a legacy services model from the legacy system. The legacy services model may include information corresponding to the devices, features, and/or configurations of legacy system. Additionally, the legacy services model may include the patterns discovered within the legacy system.

In operation, method800may further include determining (block820) a migration approach to convert a system functionality of the legacy system to a target system. For example, the analyzing may provide an order in which features and/or configurations may be provided to a target system, may define a time period for providing features and/or configurations, or may otherwise indicate certain, features and/or configurations not to include to the target system.

In operation, method800may further include mapping (block825) a new configuration onto a target system model based on the migration approach to convert the system functionality of the legacy system to the target system. The new configuration may include a configuration that is different from that of legacy system, but provides the same functionality to the target system. Additionally, the order of the migration of certain features or configurations may be adjusted based on the migration approach that was previously determined. In certain implementations, the new configuration may further include a set of additional information that is not in one or more components of the legacy system. For example, components of the target system may have different operational capability, and as such, the new configuration may adjust information provided to the components in order to provide the same configuration as the legacy system.

Other aspects not explicitly discussed with respect toFIG. 10may also be included, such as the operational aspects discussed above with respect toFIG. 8.

Turning now toFIG. 11, an example computing device with a hardware processor and accessible machine-readable instructions is shown in accordance with one or more examples of the present disclosure.FIG. 11provides similar structural components discussed above with respect toFIG. 9, and as such, for purposes of clarity, only the differences in the figures will be discussed herein.FIG. 11provides an example computing device925, with a hardware processor930, and accessible machine-readable instructions stored on a machine-readable medium935for managing data as discussed above with respect to one or more disclosed example implementations.FIG. 11illustrates computing device925configured to perform the flow described in blocks805,810,815,820, and825, discussed in detail with respect toFIG. 10.

Turning, now toFIG. 12, a schematic representation of a computer processing device700that may be used to implement functions and processes in accordance with one or more examples of the present disclosure is shown.FIG. 12illustrates a computer processing device700that may be used to implement the systems, methods, and processes of this disclosure. For example, computing device700illustrated inFIG. 12could represent a client device or a physical server device and include either hardware or virtual processor(s) depending on the level of abstraction of the computing device. In some instances (without abstraction), computing device700and its elements, as shown inFIG. 12, each relate to physical hardware. Alternatively, in some instances one, more, or all of the elements could be implemented using emulators or virtual machines as levels of abstraction. In any case, no matter how many levels of abstraction away from the physical hardware, computing device700at its lowest level may be implemented on physical hardware. In one implementation, computing device700may allow a subscriber to remotely access one or more data centers. Similarly, the management tool used by the subscriber may include a software solution that runs on such a computing device700.

FIG. 12shows a computing system700in accordance with one or more examples of the present disclosure. Computing system700may be used to implement aspects of the present disclosure, such as an orchestrator, a gateway manager, a cloud monitor, a local storage, a cloud-based storage, or any other device that may be used implementing the systems and methods for managing data discussed herein. Computing system700may include one or more central processing units (singular “CPU” or plural “CPUs”)705disposed on one or more printed circuit boards (not otherwise shown). Each of the one or more CPUs705may be a single-core processor (not independently illustrated) or a multi-core processor (not independently illustrated). Multi-core processors typically include a plurality of processor cores (not shown) disposed on the same physical die (not shown) or a plurality of processor cores (not shown) disposed on multiple die (not shown) that are collectively disposed within the same mechanical package (not shown). Computing system700may include one or more core logic devices such as, for example, host bridge710and input/output (“IO”) bridge715.

CPU705may include an interface708to host bridge710, an interface718to system memory720, and an interface723to one or more IO devices, such as, for example, graphics processing unit (“GFX”)725. GFX725may include one or more graphics processor cores (not independently shown) and an interface728to display730. In certain examples, CPU705may integrate the functionality of GFX725and interface directly (not shown) with display730. Host bridge710may include an interface708to CPU705, an interface713to IO bridge715, for examples where CPU705does not include interface718to system memory720, an interface716to system memory720, and for examples where CPU705does not include integrated GFX725or interface723to GFX725, an interface721to GFX725. One of ordinary skill in the art will recognize that CPU705and host bridge710may be integrated, in whole or in part, to reduce chip count, motherboard footprint, thermal design power, and power consumption. 10 bridge715may include an interface713to host bridge710, one or more interfaces733to one or more10expansion devices735, an interface738to keyboard740, an interface743to mouse745, an interface748to one or more local storage devices750, and an interface753to one or more network interface devices755.

Each local storage device750may be a solid-state memory device, a solid-state memory device array, a hard disk drive, a hard disk drive array, or any other non-transitory computer readable medium. Each network interface device755may provide one or more network interfaces including, for example, Ethernet, Fibre Channel, WiMAX, Wi-Fi®, Bluetooth®, or any other network protocol suitable to facilitate networked communications. Computing system700may include one or more network-attached storage devices760in addition to, or instead of, one or more local storage devices750. Network-attached storage device760may be a solid-state memory device, a solid-state memory device array, a hard disk drive, a hard disk drive array, or any other non-transitory computer readable medium. Network-attached storage device760may or may not be collocated with computing system700and may be accessible to computing system700via one or more network interfaces provided by one or more network interface devices755.

One of ordinary skill in the art will recognize that computing system700may include one or more application specific integrated circuits (“ASICs”) that are configured to perform a certain function, such as, for example, hashing (not shown), in a more efficient manner. The one or more ASICs may interface directly with an interface of CPU705, host bridge760, or IO bridge715. Alternatively, an application-specific computing system (not shown), sometimes referred to as mining systems, may be reduced to only those components necessary to perform the desired function, such as hashing via one or more hashing ASICs, to reduce chip count, motherboard footprint, thermal design power, and power consumption. As such, one of ordinary skill in the art will recognize that the one or more CPUs705, host bridge710, IO bridge715, or ASICs or various sub-sets, super-sets, or combinations of functions or features thereof, may be integrated, in whole or in part, or distributed among various devices in a way that may vary based on an application, design, or form factor in accordance with one or more example examples. As such, the description of computing system700is merely exemplary and not intended to limit the type, kind, or configuration of components that constitute a computing system suitable for performing computing operations, including, but not limited to, hashing functions. Additionally, one of ordinary skill in the art will recognize that computing system700, an application specific computing system (not shown), or combination thereof, may be disposed in a standalone, desktop, server, or rack mountable form factor.

One of ordinary skill in the art will recognize that computing system700may be a cloud-based server, a server, a workstation, a desktop, a laptop, a netbook, a tablet, a smartphone, a mobile device, and/or any other type of computing system in accordance with one or more example examples