CloudScale guides software engineers by the means of an engineering method to develop scalable, elastic, and cost-efficient applications. The CloudScale Method defines the tool-supported design and analysis activities needed to engineer a scalable system as well as the order of their execution. It is a flexible method in the sense that it supports various scenarios which can be executed iteratively. Picture gives a high level overview of the CloudScale method.
Software engineers first need to define coarse requirements for scalability, elasticity and costefficiency. These requirements are analyzed by the CloudScale method and may be refined during the analysis. Note that picture above abstracts from this initial activity. The first decision node in picture above branches based on the type of available artefacts. If code is already available, we are in a reengineering scenario. In case no code is available or it should not be used, analyses can be based on an architectural model in a forward engineering scenario. In reengineering scenarios, the analysis may be based either on static code or on a running application in the Spotters process step. Both reengineering and forward engineering scenarios alternatively support an analysis based on modeling the system’s architecture, its usage by users, and its need for hardware and software resources. The resulting model is persisted in a special architectural modeling language, called ScaleDL. ScaleDL is comparable to a UML2 model with MARTE quality annotations, e.g., resource demands and workloads. The model can be either a complete new design, a refinement of an earlier system model, or a design which is partially extracted from existing implementations via the Extractor reverse engineering tool. ScaleDL models contain speci- fications of various application aspects ranging from implementation structure and behavior, over the system’s resource demands, to the system’s usage, its change over time, and autonomous elasticity managers.
Independent of the analysis applied, once software engineers are happy with the analysis results, they realize, deploy, and operate their application. If during test cycles or during run-time new requirement violations arise, a new iteration of the CloudScale method can be executed.
For more details consult the method white paper.