System and Method for Real-Time Configuration Analysis

20230047978 · 2023-02-16

    Inventors

    Cpc classification

    International classification

    Abstract

    A system and method for real-time configuration analysis employs a source code management event listener and a remote server to receive a proposed configuration change event, retrieve a real-time server configuration, determine the effect of a requested change associated with the proposed configuration change event and report an impact of the requested change. In various embodiments, the impact is reported in a user’s interface associated with a source code manager enabling a user to apply the requested change into production if appropriate or seek to resolve a problem as reported before the change is effectuated into production.

    Claims

    1. A system for real-time configuration analysis, comprising: a processor, and a memory storing instructions that, when executed by the processor, cause the processor to: receive a proposed configuration change event from a source code manager; dispatch the proposed configuration change event to the remote server; retrieve a real-time server configuration; determine the effect of a requested change associated with the proposed configuration change event on the remote server; and report the impact of the requested change in the source code manager.

    2. The system of claim 1, wherein the reported impact is a warning pertaining to a conflict.

    3. The system of claim 1, wherein the reported impact is a warning pertaining to an invalid configuration.

    4. The system of claim 1, wherein the reported impact is issued in real-time.

    5. The system of claim 1, wherein the reported impact is a comment in a system user interface associated with the source code manager.

    6. The system of claim 5, wherein the instructions further cause the processor to receive an instruction to apply the requested change into production.

    7. The system of claim 1, wherein the reported impact is made before the requested change can go live.

    8. The system of claim 1, wherein the data store is shared by a pull request pipeline and a reporting pipeline, and wherein the reporting pipeline comprises a Kubemetes cluster.

    9. The system of claim 1, wherein the instructions further cause the processor to obtain real-time status information from a target environment and compare the real-time status information with the requested change.

    10. The system of claim 1, wherein the real-time server configuration is retrieved from the source code manager.

    11. A computer-implemented method, comprising: receiving, by a source code management event listener, a proposed configuration change event from a source code manager; dispatching, by the source code management event listener, the proposed configuration change event to a remote server; retrieving a real-time server configuration; determining, via the remote server, the effect of a requested change associated with the proposed configuration change event on the remote server; and reporting, via the remote server, an impact of the requested change in the source code manager.

    12. The method of claim 11, wherein the reported impact is a warning pertaining to a conflict.

    13. The method of claim 11, wherein the reported impact is a warning pertaining to an invalid configuration.

    14. The method of claim 11, wherein the reported impact is issued in real-time.

    15. The method of claim 11, wherein the reported impact is a comment in a system user interface associated with the source code manager.

    16. The method of claim 15, wherein the instructions further cause the processor to receive an instruction to apply the requested change into production.

    17. The method of claim 11, wherein the reported impact is made before the requested change can go live.

    18. The method of claim 11, wherein the data store is shared by a pull request pipeline and a reporting pipeline, and wherein the reporting pipeline comprises a Kubemetes cluster.

    19. The method of claim 11, wherein the instructions further cause the processor to obtain real-time status information from a target environment and compare the real-time status information with the requested change.

    20. The method of claim 11, wherein the real-time server configuration is retrieved from the source code manager.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0038] FIG. 1 is a schematic diagram of an embodiment of the present disclosure.

    [0039] FIG. 2 is an exemplary process diagram illustrating processing of a proposed configuration change event accordance with embodiments of the present disclosure.

    DETAILED DESCRIPTION OF EMBODIMENTS

    [0040] The presently disclosed subject matter now will be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the presently disclosed subject matter are shown. Like numbers refer to like elements throughout. The presently disclosed subject matter may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Indeed, many modifications and other embodiments of the presently disclosed subject matter set forth herein will come to mind to one skilled in the art to which the presently disclosed subject matter pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the presently disclosed subject matter is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims.

    [0041] It will be appreciated that reference to “a”, “an” or other indefinite article in the present disclosure encompasses one or more than one of the described element. Thus, for example, reference to a processor may encompass one or more processors, a server may encompass one or more servers, and so forth.

    [0042] As shown in FIG. 1, embodiments of the present disclosure provide a system 10 for real-time configuration analysis whereby a source code management event listener 20 is in communication over a network 25 with one or more source code managers 30. The source code managers 30 can include, for example, GitHub, GitLab and/or Bitbucket or other version control systems based on Git, for example. The network 25 can be a data network such as a local area network (LAN), a wide area network (WAN), a public network such as the Internet, or a private network. The source code management event listener 20 and other elements disclosed herein are configured to connect to the network 25 in any suitable manner such as via a conventional phone line or other data transmission line, a digital subscriber line (DSL), a T-1 line, a coaxial cable, a fiber optic cable, a wireless or wired routing device, a mobile communications network connection (such as a cellular network or mobile Internet network), or any other suitable medium.

    [0043] As further shown in FIG. 1, the source code management event listener 20 is in communication with an edge stack 35 which can facilitate communications with a database or data store 40, a reporting application programming interface (API) 45 and a remote server or cluster 50. For purposes of the present disclosure, element 50 will be referred to as a remote server but it will be appreciated that the remote server can include one or more servers and can be aggregated as a cluster. The remote server 50 can communicate with the data store 40 via reporting API (45) and via network 25, for example. It will be appreciated that the source code manager(s) 30, the source code management event listener 20 and the edge stack 35 are part of a pull request pipeline, whereas the reporting API 45 and remote server 50 are part of a reporting pipeline in accordance with the present disclosure. In various embodiments, the data store 40 is shared by the pull request pipeline and the reporting pipeline, and the reporting pipeline can be embodied as a Kubernetes™ cluster.

    [0044] It will further be appreciated that the source code management event listener 20 and the remote server 50, respectively, can be any suitable computing device that includes at least one processor and at least one memory device or data storage device. The computing device can be configured to transmit and receive data or signals representing events, messages, commands, or any other suitable information in accordance with the present disclosure. The computing device can further be configured to execute the events, messages, or commands represented by such data or signals in accordance with the present disclosure.

    [0045] FIG. 2 illustrates an exemplary process as may be carried out by elements of the system shown in FIG. 1 according to embodiments of the present disclosure. As at 80, a proposed configuration change event can be received. This proposed configuration change event can be received by the source code management event listener 20 from a source code manager 30. As at 82, the proposed configuration change event can be processed and dispatched by the source code management event listener to the edge stack 35 and/or the remote server 50. As at 84, programming operable via the remote server 50 retrieves a real-time server configuration. The real-time server configuration can be retrieved from the source code manager 30, for example. As at 86, the effect of a requested change associated with the proposed configuration change event on the remote server is determined. In various embodiments, this effect is determined via programming operable via the remote server 50. As at 88, the system reports an impact of the requested change in the source code manager 30. This reporting can be performed via remote server 50 communicating via network 25.

    [0046] As an example, the impact may be a warning about a conflict or invalid configuration. The reporting can be effectuated in real-time and can be presented as a comment in a user’s interface associated with the source code manager 30, for example. In this way, the reporting is made before any requested change can go live. In the event the requested change is deemed problematic, the user is made aware and can re-evaluate the situation. If the requested change is deemed acceptable or appropriate, the user can initiate an instruction to apply the requested change into production, and the system can receive the instruction and effectuate the requested change. In various embodiments, the system and method disclosed herein assist in resolving problems as they are reported. The system and method can further obtain real-time status information from a target environment such as a production cluster and compare the real-time status information with the requested change.

    [0047] It will thus be appreciated that the presently disclosed system and method combines source control, real-time analysis and posting in real-time to a user’s workflow to provide a technical solution to problems associated with past efforts such as producing error codes via a REST API or producing an error message via a graphical user interface. The immediate feedback loop provided by the presently disclosed system and method thereby reduces deployment risk while providing for auditability, security and enhanced infrastructure upgrades. By layering the system’s understanding of prior configuration, runtime information, and other data, embodiments of the system and method herein can provide a sophisticated analysis of what is occurring to the user.

    [0048] The embodiments of the present disclosure can be implemented using one or more conventional general purpose or specialized digital computers, computing devices, machines, or microprocessors, including one or more processors, memory and/or computer readable storage media programmed according to the teachings of the present disclosure. Appropriate software code can be prepared by skilled programmers using the teachings of the present disclosure.

    [0049] In various embodiments, the components and elements described herein can be implemented as software and/or hardware on a computing platform, such as a network server or computer or a computing environment including multiple computing elements.

    [0050] The present disclosure contemplates a variety of different systems each having one or more of a plurality of different features, attributes, or characteristics. A “system” as used herein refers to various configurations of: (a) one or more configuration analysis systems; and (b) one or more computing devices, such as remote server 50, a desktop computer, a laptop computer, a tablet computer, a personal digital assistant, a mobile phone, and other mobile computing devices. Many of the tasks, such as evaluating configuration changes may be performed with a computing device such as remote server 50.

    [0051] It will be appreciated that any combination of one or more computer readable media may be utilized. The computer readable media may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing, including a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an appropriate optical fiber with a repeater, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.

    [0052] A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.

    [0053] As will be appreciated by one skilled in the art, aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc.) or combining software and hardware implementation that may all generally be referred to herein as a “circuit,” “module,” “component,” or “system.” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.

    [0054] It will be appreciated that all of the disclosed methods and procedures herein can be implemented using one or more computer programs or components. These components may be provided as a series of computer instructions on any conventional computer-readable medium, including RAM, SATA DOM, or other storage media. The instructions may be configured to be executed by one or more processors which, when executing the series of computer instructions, performs or facilitates the performance of all or part of the disclosed methods and procedures.

    [0055] Unless otherwise stated, devices or components of the present disclosure that are in communication with each other do not need to be in continuous communication with each other. Further, devices or components in communication with other devices or components can communicate directly or indirectly through one or more intermediate devices, components or other intermediaries. Further, descriptions of embodiments of the present disclosure herein wherein several devices and/or components are described as being in communication with one another does not imply that all such components are required, or that each of the disclosed components must communicate with every other component. In addition, while algorithms, process steps and/or method steps may be described in a sequential order, such approaches can be configured to work in different orders. In other words, any ordering of steps described herein does not, standing alone, dictate that the steps be performed in that order. The steps associated with methods and/or processes as described herein can be performed in any order practical. Additionally, some steps can be performed simultaneously or substantially simultaneously despite being described or implied as occurring non-simultaneously.

    [0056] It will be appreciated that algorithms, method steps and process steps described herein can be implemented by appropriately programmed computers and computing devices, for example. In this regard, a processor (e.g., a microprocessor or controller device) receives instructions from a memory or like storage device that contains and/or stores the instructions, and the processor executes those instructions, thereby performing a process defined by those instructions. Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.

    [0057] Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code may execute entirely on a user’s computer, partly on a user’s computer, as a stand-alone software package, partly on a user’s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user’s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS).

    [0058] Where databases are described in the present disclosure, it will be appreciated that alternative database structures to those described, as well as other memory structures besides databases may be readily employed. The drawing figure representations and accompanying descriptions of any exemplary databases presented herein are illustrative and not restrictive arrangements for stored representations of data. Further, any exemplary entries of tables and parameter data represent example information only, and, despite any depiction of the databases as tables, other formats (including relational databases, object-based models and/or distributed databases) can be used to store, process and otherwise manipulate the data types described herein. Electronic storage can be local or remote storage, as will be understood to those skilled in the art. Appropriate encryption and other security methodologies can also be employed by the system of the present disclosure, as will be understood to one of ordinary skill in the art.

    [0059] Although the present approach has been illustrated and described herein with reference to preferred embodiments and specific examples thereof, it will be readily apparent to those of ordinary skill in the art that other embodiments and examples may perform similar functions and/or achieve like results. All such equivalent embodiments and examples are within the spirit and scope of the present approach.