Graph Based Modeling for the Diagramming, Visualization, and Root Cause Analysis of Cloud Infrastructure and Applications
The appeal of low-cost computing, on demand scaling, and high degree of availability has made the cloud the de facto destination for software application hosting. However, the myriad of vendor specific cloud technologies, coupled with the dynamic runtime nature of the cloud, have increased the complexity of the software development lifecycle (SDLC). The design and implementation phases of the SDLC must endeavor to develop software with generic cloud infrastructure resources and then map the selected resources to vendor offerings during implementation. Once deployed the difficulty of anomaly detection, root cause analysis, and software optimization tasks is exacerbated by the evolving state of the application under the public cloud environment. Attributed graphs are apt for modeling data objects with a high degree of inter-dependencies such as software and hardware systems. Furthermore, attributed graphs have an inherent data representative nature, which is visually descriptive to humans and algorithmically computable to programs. By utilizing attributed graph models to express the relationships between the cloud infrastructure and software applications in a structured manner, the design, implementation, and maintenance phases of the software development lifecycle can be streamlined. This thesis proposes graph-based methods to encapsulate an application's hardware and software requirements and runtime state into a multilevel graph, then suggests how this graph can aid in the diagramming, orchestration, visualization, and root cause analysis of software systems deployed to the cloud.