ebook img

Transparent Application Adjustment for Efficient and Elastic Execution in the Cloud PDF

192 Pages·2015·8.17 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Transparent Application Adjustment for Efficient and Elastic Execution in the Cloud

Transparent Application Adjustment for Efficient and Elastic Execution in the Cloud PhD THESIS submitted in partial fulfillment of the requirements for the degree of Doctor of Technical Sciences within the Vienna PhD School of Informatics by Rostyslav Zabolotnyi Registration Number 1128386 totheFacultyofInformatics attheTUWien Advisor: Univ.Prof. SchahramDustdar Externalreviewers: AdamBarker. UniversityofStAndrews,England. FrankLeymann. UniversityofStuttgart,Germany. Vienna,24th August,2015 RostyslavZabolotnyi SchahramDustdar Technische Universität Wien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.ac.at Declaration of Authorship RostyslavZabolotnyi Tigergasse23-2720/2,Wien,Austria I hereby declare that I have written this Doctoral Thesis independently, that I have completely specified the utilized sources and resources and that I have definitely marked all parts of the work - including tables, maps and figures - which belong to other works or to the internet, literally or extracted, by referencing the source as borrowed. Vienna,24th August,2015 RostyslavZabolotnyi iii Acknowledgements This PhD thesis defines an ultimate accomplishment of my academic research career in the Distributed Systems Group at TU Wien. Looking back over the last four years, I can clearly confirm that it was an interesting experience that broadened my understanding of computer science and university life. First,IwouldliketothankmyauntOksanaSenchukforfindingandrecommendingme such an interesting opportunity. Likewise, I would like to thank Prof. Hannes Werthner, Prof. Hans Tompits and Ms. Clarissa Schmid for welcoming me as a participant of the Vienna PhD School of Informatics and helping me with any study- or research-related issue I had. Equally, I would like to express my gratitude to Prof. Schahram Dustdar that agreed to work with me, accepted me in the Distributed Systems Group, and guided me through my research and studies. Furthermore, I want to thank all my colleagues from the Distributed Systems Group and the PhD School for the fruitful discussions, support and collaboration. Notably, I appreciate Philipp Leitner, Waldemar Hummer, Vitaliy Liptchinsky, Benjamin Satzger, and Alessio Gambi for the help in shaping my research and a fruitful cooperation that developed into the results that I am presenting in this thesis. Similarly, I am thankful to Philipp Hoenisch who served me as the good example in almost every research and development-related activity. I am also immensely grateful to Ass. Prof. Stefan Schulte, whose facilitation and guidance over the last two years were perhaps the main reason I actually completed my research work at all. My special thanks are devoted to my family and friends, particularly to Serwah Sa- betghadam, Konstantin Selyunin, and Maryna Kostikova, who supported me emotionally, added colors, and adventures during my stay in Vienna. Finally, I am grateful for financial support from the Vienna PhD School of Informatics and European Community’s Seventh Framework Programme under grant agreement 318201 (SIMPLI-CITY). v Abstract Cloud computing rapidly surpassed the phase of initial adoption and quickly gains momentum on the market of information technologies. Companies, startups and regular users leverage the cloud to avoid infrastructure or middleware costs, to gain flexibility in computing usage and to obtain unlimited computational or storage resources available on demand. However, along with cloud computing’s benefits, new challenges arrived. In order to achieve the advantages of the cloud, developers have to redesign their existing applications and build new ones with scalability and elasticity in mind. Additionally, as the market of cloud providers developed, two competing application development paradigms emerged. When bringing an application to the cloud, developers have to decide if they follow the Infrastructure as a Service model, which provides flexibility and software architecture freedom, or the Platform as a Service model that offers a higher level of abstraction and a simpler application development process. This thesis addresses emerging cloud computing challenges presenting a transparent applicationdistributionapproachbasedontheJCloudScalemiddleware. Thedescribed cloud application development approach hides boilerplate cloud interaction code from developers and allows focusing on the business logic of the application instead. Providing benefitscommontoPlatformasaServicesolutions, thediscussedapproachallowskeeping flexibility and freedom that is missing in alternatives. However, this approach brings in a set of distinctive challenges, that are targeted in this work. To solve the issue of transparent application code integrity and synchronization, a solution for seamless code distribution was built. To simplify the complexity of elastic application management, a scaling definition language based on complex event processing application architecture was designed. Finally, targeting effective cloud resource usage, a profiling-based task scheduling solution was proposed. Each solution and framework, presented in this thesis, denote the steps on the ongoing road to achieve the declared goal of transparent cloud application distribution. Developed approaches and solutions were thoroughly validated using accomplished user studies and performance evaluations. The obtained results show that the presented transparent cloud application development approach is appealing to developers, increases productivity and simplifies cloud migration or cloud application construction without significant performance costs. vii Contents Acknowledgements v Abstract vii Contents ix List of Figures xiii List of Tables xiv List of Listings xv Earlier Publications xix 1 Introduction 1 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Research Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Scientific Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5 Structure of the Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2 Background 9 2.1 Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.1 Definition of Cloud Computing . . . . . . . . . . . . . . . . . . . . 9 2.1.2 Elastic Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.3 Cloud Computing Service Models . . . . . . . . . . . . . . . . . . . 11 2.2 Cloud Computing Communication . . . . . . . . . . . . . . . . . . . . . . 11 2.2.1 Communication Middleware . . . . . . . . . . . . . . . . . . . . . . 12 2.2.2 Communication in the Cloud . . . . . . . . . . . . . . . . . . . . . 13 2.3 Event-Driven Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4 Aspect-Oriented Programming . . . . . . . . . . . . . . . . . . . . . . . . 15 3 Related Work 19 3.1 Related Work on Transparent Distribution Frameworks . . . . . . . . . . 19 ix 3.2 Related Work on Transparent Code Distribution . . . . . . . . . . . . . . 23 3.3 Related Work on Scaling Behavior Definition . . . . . . . . . . . . . . . . 24 3.4 Related Work on Profile-Based Task Scheduling . . . . . . . . . . . . . . . 25 4 Case Study 27 5 The JCloudScale Middleware 31 5.1 Basic Notions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.1.1 Interacting With Cloud Objects. . . . . . . . . . . . . . . . . . . . 34 5.1.2 Static Fields and Methods in Cloud Objects . . . . . . . . . . . . . 35 5.1.3 Passing Data Objects . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.1.4 Fault Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2 Application Code Distribution Framework . . . . . . . . . . . . . . . . . . 38 5.2.1 Program Code Distribution Challenges . . . . . . . . . . . . . . . . 38 5.2.2 Code Distribution Framework Overview . . . . . . . . . . . . . . . 39 5.2.3 Missing Code Detection . . . . . . . . . . . . . . . . . . . . . . . . 40 5.2.4 Communication Middleware . . . . . . . . . . . . . . . . . . . . . . 41 5.2.5 Trusted Code Storage Location . . . . . . . . . . . . . . . . . . . . 42 5.2.6 Code Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.2.7 Code Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2.8 Batch Loading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.3 Target Application Development Process . . . . . . . . . . . . . . . . . . . 45 5.3.1 Target Application Setup . . . . . . . . . . . . . . . . . . . . . . . 45 5.3.2 COs Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.3.3 Configuring JCloudScale . . . . . . . . . . . . . . . . . . . . . . 48 5.3.4 Development Process . . . . . . . . . . . . . . . . . . . . . . . . . . 50 6 Scaling Behavior 53 6.1 Autonomic Elasticity via Complex Event Processing . . . . . . . . . . . . 53 6.2 Cloud Targeting and Bursting . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.3 A Declarative Event-Based Scaling Policy Language . . . . . . . . . . . . 59 6.3.1 Language Design Considerations . . . . . . . . . . . . . . . . . . . 60 6.3.2 SPEEDL Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.3.3 Top-Level Language Grammar . . . . . . . . . . . . . . . . . . . . 62 6.3.4 Event-Driven Elasticity . . . . . . . . . . . . . . . . . . . . . . . . 63 6.3.5 Task Management . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Task Scheduling Rules . . . . . . . . . . . . . . . . . . . . . . . . . 64 Task Migration Rules . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.3.6 Resource Management . . . . . . . . . . . . . . . . . . . . . . . . . 66 Scale-Up Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Scale-Down Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6.3.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Description:
should be generic enough to cover most of the algorithms that are usually used in .. of the data stream processing applications [43], where application .. However, it is not easy to scale such clusters up and down. Library (Unity, Logging, Prism), Infragistics Controls, Dundas Charting, MS SQL,.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.