E-Book, Englisch, 197 Seiten
Becker / Brataas / Lehrig Engineering Scalable, Elastic, and Cost-Efficient Cloud Computing Applications
1. Auflage 2017
ISBN: 978-3-319-54286-7
Verlag: Springer Nature Switzerland
Format: PDF
Kopierschutz: 1 - PDF Watermark
The CloudScale Method
E-Book, Englisch, 197 Seiten
ISBN: 978-3-319-54286-7
Verlag: Springer Nature Switzerland
Format: PDF
Kopierschutz: 1 - PDF Watermark
This book provides an overview of the problems involved in engineering scalable, elastic, and cost-efficient cloud computing services and describes the CloudScale method - a description of rescuing tools and the required steps to exploit these tools. It allows readers to analyze the scalability problem in detail and identify scalability anti-patterns and bottlenecks within an application. With the CloudScale method, software architects can analyze both existing and planned IT services.The method allows readers to answer questions like: • With an increasing number of users, can my service still deliver acceptable quality of service?
• What if each user uses the service more intensively? Can my service still handle it with acceptable quality of service?
• What if the number of users suddenly increases? Will my service still be able to handle it?
• Will my service be cost-efficient?First the book addresses the importance of scalability, elasticity, and cost-efficiency as vital quality-related attributes of modern cloud computing applications. Following a brief overview of CloudScale, cloud computing applications are then introduced in detail and the aspects that need to be captured in models of such applications are discussed. In CloudScale, these aspects are captured in instances of the ScaleDL modeling language. Subsequently, the book describes the forward engineering part of CloudScale, which is applicable when developing a new service. It also outlines the reverse and reengineering parts of CloudScale, which come into play when an existing (legacy) service is modified. Lastly, the book directly focuses on the needs of both business-oriented and technical managers by providing guidance on all steps of implementing CloudScale as well as making decisions during that implementation. The demonstrators and reference projects described serve as a valuable starting point for learning from experience.This book is meant for all stakeholders interested in delivering scalable, elastic, and cost-efficient cloud computing applications: managers, product owners, software architects and developers alike. With this book, they can both see the overall picture as well as dive into issues of particular interest.
Steffen Becker is a full professor for software engineering at the University of Technology Chemnitz. His area of expertise is the quantitative analysis of software systems based on models. He participated in a number of projects in this area including the Q-ImPrESS, CloudScale, and NetIDE FP7 STREPs. In CloudScale, he managed the activities focusing on the evolution of legacy systems into scalable cloud applications.
Gunnar Brataas is a Senior Engineer at SINTEF Digital in Trondheim, Norway. He was the Technical Manager of CloudScale and has been working with scalability for the past 20 years in EU-projects, as well as with Norwegian industry. Currently, he is the Scientific Project Leader of ScrumScale, funded by the Norwegian Research Council under grant #256669. The overall objective of ScrumScale is to reduce the total cost of handling scalability by extending agile development methods.
Sebastian Lehrig is a research engineer at IBM with focus on big data and machine learning technologies. Before, he worked as a research assistant within the EU FP7 STREP project 'CloudScale' and the German BMBF project 'Securing the Financial Cloud'. Sebastian's research has focused on design and analysis methods for distributed and cloud computing applications. His research results help software architects in efficiently modeling and analyzing software applications for these domains, e.g., by providing modeling and analysis templates for reusable architectural knowledge.
Autoren/Hrsg.
Weitere Infos & Material
1;Foreword;5
2;Preface;7
3;Acknowledgments;10
4;Contents;11
5;Contributors;16
6;Part I Introduction and Overview;17
6.1;1 Introduction;18
6.1.1;1.1 Getting It Right;19
6.1.2;1.2 Software in the Cloud Computing Era;20
6.1.3;1.3 Some Useful Definitions to Characterize Services;22
6.1.3.1;1.3.1 Operations;22
6.1.3.2;1.3.2 Service-Level Objectives;23
6.1.3.3;1.3.3 Workload;23
6.1.3.4;1.3.4 Capacity;24
6.1.4;1.4 Quality Properties of Services;24
6.1.4.1;1.4.1 Scalability;25
6.1.4.2;1.4.2 Elasticity;25
6.1.4.3;1.4.3 Cost-Efficiency;26
6.1.5;1.5 Consequences of Scalability, Elasticity, and Cost-Efficiency Issues;27
6.1.6;1.6 Causes of Scalability, Elasticity, and Cost-Efficiency Issues;28
6.1.7;1.7 How Should You Manage Scalability, Elasticity, and Cost-Efficiency?;28
6.1.8;1.8 Reactive Scalability, Elasticity, and Cost-EfficiencyManagement;29
6.1.8.1;1.8.1 Immediate Temporal Solutions;29
6.1.8.2;1.8.2 Long-Term Solutions;30
6.1.9;1.9 Proactive Scalability, Elasticity, and Cost-EfficiencyManagement;31
6.1.10;1.10 The CloudScale Method;32
6.1.11;1.11 What Does It Cost?;33
6.1.12;1.12 What Do You Need?;34
6.1.13;1.13 Conclusion;35
6.1.14;References;36
6.2;2 CloudScale Method Quick View;37
6.2.1;2.1 Process Steps of the CloudScale Method;38
6.2.2;2.2 Running Example;40
6.2.3;2.3 Identify Service-Level Objectives, Critical Use Cases, and Key Scenarios;41
6.2.3.1;2.3.1 Service-Level Objectives;41
6.2.3.2;2.3.2 Critical Use Cases;42
6.2.3.3;2.3.3 Key Scenarios;42
6.2.4;2.4 Identify Scalability, Elasticity, and Cost-EfficiencyRequirements;43
6.2.4.1;2.4.1 Scalability Requirements;44
6.2.4.2;2.4.2 Elasticity Requirements;44
6.2.4.3;2.4.3 Cost-Efficiency Requirements;45
6.2.5;2.5 Specify ScaleDL Model;46
6.2.6;2.6 Use Analyzer;46
6.2.6.1;2.6.1 Scalability Analysis;46
6.2.6.2;2.6.2 Elasticity Analysis;47
6.2.6.3;2.6.3 Cost-Efficiency Analysis;48
6.2.7;2.7 Use Spotters;48
6.2.8;2.8 Realize, Deploy, and Operate System;49
6.2.9;2.9 Cloud Computing HowTos;49
6.2.10;2.10 Cloud Computing HowNotTos;51
6.2.11;2.11 The CloudScale Method in the Unified Process;55
6.2.11.1;2.11.1 Unified Processes;55
6.2.11.2;2.11.2 Relating the CloudScale Method;56
6.2.12;2.12 Conclusion;57
6.2.13;References;57
7;Part II Modeling Cloud Computing Applications;59
7.1;3 Cloud Computing Applications;60
7.1.1;3.1 Introduction;61
7.1.2;3.2 Web Applications;62
7.1.3;3.3 Cloud Computing Characteristics;64
7.1.4;3.4 From Web to Cloud Computing Applications;65
7.1.5;3.5 Requirements of Cloud Computing Applications;66
7.1.6;3.6 Modeling Cloud Computing Applications;67
7.1.6.1;3.6.1 Common View Types for Applications;67
7.1.6.2;3.6.2 Cloud-Specific View Types for Applications;68
7.1.7;3.7 CloudStore Running Example;69
7.1.8;3.8 Modeling Hints;71
7.1.9;3.9 Conclusion;72
7.1.10;References;73
7.2;4 ScaleDL;74
7.2.1;4.1 Introduction;75
7.2.2;4.2 Overview Model;75
7.2.2.1;4.2.1 Concepts of Overview Model;76
7.2.2.2;4.2.2 Example of Overview Model;77
7.2.2.3;4.2.3 Tool Support for Overview Model;78
7.2.3;4.3 Usage Evolution;78
7.2.3.1;4.3.1 Concepts for Usage Evolution;79
7.2.3.2;4.3.2 Example of Usage Evolution;80
7.2.3.3;4.3.3 Tool Support for Usage Evolution;82
7.2.4;4.4 Architectural Templates;82
7.2.4.1;4.4.1 Concepts of Architectural Templates;83
7.2.4.2;4.4.2 Example for Architectural Templates;83
7.2.4.3;4.4.3 Catalog of Architectural Templates;85
7.2.4.4;4.4.4 Tool Support for Architectural Templates;86
7.2.5;4.5 The Extended Palladio Component Model;86
7.2.5.1;4.5.1 Concepts of the Extended Palladio Component Model;87
7.2.5.1.1;4.5.1.1 The Palladio Component Model;87
7.2.5.1.2;4.5.1.2 Extensions for Elastic Environments;88
7.2.5.2;4.5.2 Example for the Extended Palladio Component Model;89
7.2.5.3;4.5.3 Tool Support for the Extended PalladioComponent Model;91
7.2.5.3.1;4.5.3.1 Analysis Tools;91
7.2.5.3.2;4.5.3.2 Extractor;92
7.2.6;4.6 Conclusion;94
7.2.7;References;94
8;Part III The CloudScale Method for Software Architects;96
8.1;5 The CloudScale Method;97
8.1.1;5.1 Introduction;98
8.1.2;5.2 Granularity;98
8.1.3;5.3 Method Notation;100
8.1.4;5.4 Roles in the Method;101
8.1.5;5.5 Method Steps;102
8.1.6;5.6 Identify Service-Level Objectives, Critical Use Cases, and Key Scenarios;104
8.1.7;5.7 Identify Scalability, Elasticity, and Cost-EfficiencyRequirements;106
8.1.8;5.8 Use-Case I: Analyzing a Modeled System;108
8.1.9;5.9 Use-Case II: Analyzing and Migrating an Implemented System;109
8.1.10;5.10 Realize, Deploy, and Operate;110
8.1.11;5.11 Conclusion;111
8.1.12;References;111
8.2;6 Analyzing a Modeled System;113
8.2.1;6.1 Introduction;114
8.2.2;6.2 Step I: Specify ScaleDL Model;114
8.2.2.1;6.2.1 Determine Granularity;116
8.2.2.2;6.2.2 Specify Usage Evolution;118
8.2.2.2.1;6.2.2.1 Service-Level Objectives;118
8.2.2.2.2;6.2.2.2 Load;119
8.2.2.2.3;6.2.2.3 Work;120
8.2.2.3;6.2.3 Specify Overview Model and Generate Extended Palladio Component Model;121
8.2.2.4;6.2.4 Complete Extended Palladio Component Model;123
8.2.2.4.1;6.2.4.1 Manually Creating and Adapting Extended Palladio Component Models;123
8.2.2.4.2;6.2.4.2 Using HowTos for Specifying Extended Palladio Component Models;125
8.2.2.5;6.2.5 Summary for the Specification of ScaleDL Models;127
8.2.3;6.3 Step II: Use Analyzer;127
8.2.3.1;6.3.1 Set Configuration Parameters;129
8.2.3.2;6.3.2 Run Analyzer and Assess Requirements;130
8.2.4;6.4 Analyzer Running Example;131
8.2.4.1;6.4.1 Step I: Specifying a CloudStore Model via ScaleDL;131
8.2.4.1.1;6.4.1.1 Constructing the Model;132
8.2.4.1.2;6.4.1.2 Calibrating the Model;134
8.2.4.1.3;6.4.1.3 Evaluating the Model;135
8.2.4.2;6.4.2 Step II: Using the Analyzer with the CloudStore Model;135
8.2.4.2.1;6.4.2.1 Capacity Analysis;136
8.2.4.2.2;6.4.2.2 Scalability Analysis;136
8.2.4.2.3;6.4.2.3 Elasticity Analysis;136
8.2.4.2.4;6.4.2.4 Cost-Efficiency Analysis;138
8.2.5;6.5 Conclusion;139
8.2.6;References;140
8.3;7 Analyzing and Migrating an Implemented System;142
8.3.1;7.1 Introduction;143
8.3.2;7.2 Spotting HowNotTos;144
8.3.3;7.3 Statically Detecting HowNotTos;147
8.3.4;7.4 Dynamically Detecting HowNotTos;149
8.3.5;7.5 Resolving HowNotTos with HowTos;151
8.3.6;7.6 Spotter Running Example;152
8.3.6.1;7.6.1 Static Spotter;152
8.3.6.2;7.6.2 Dynamic Spotter;154
8.3.7;7.7 Conclusion;156
8.3.8;References;157
9;Part IV Making the CloudScale Method Happen;158
9.1;8 The CloudScale Method for Managers;159
9.1.1;8.1 Introduction;160
9.1.2;8.2 Key Considerations;160
9.1.3;8.3 Relation to Other Engineering Methods;162
9.1.4;8.4 Pros and Cons of the CloudScale Method;164
9.1.4.1;8.4.1 Critical Success Factors for Method Adoption and Use;164
9.1.4.2;8.4.2 Organizational Issues;166
9.1.4.3;8.4.3 Costs;166
9.1.4.4;8.4.4 Covering the Cost of the CloudScale Method Adoption;167
9.1.4.5;8.4.5 Risks;168
9.1.4.6;8.4.6 Critical Factors for Successful Projects;168
9.1.5;8.5 A Pilot Project;169
9.1.6;8.6 Setting Up the CloudScale Environment;171
9.1.7;8.7 Complementing Tools;172
9.1.8;8.8 Following the CloudScale Method for the Pilot Project;173
9.1.9;8.9 Conclusion;174
9.1.10;References;175
9.2;9 Case Studies;176
9.2.1;9.1 Case Study: Electronic Health Record;176
9.2.1.1;9.1.1 Electronic Health Record;177
9.2.1.2;9.1.2 Applying the CloudScale Method and Toolsto Electronic Health Record;179
9.2.1.3;9.1.3 Discussion of the Electronic Health Record Case;185
9.2.2;9.2 Case Study: Kantega's Flyt CMS;186
9.2.2.1;9.2.1 Flyt CMS;186
9.2.2.2;9.2.2 Applying the CloudScale Method and Toolsto Flyt CMS;188
9.2.2.3;9.2.3 Discussion of the Flyt CMS Case;189
9.2.3;9.3 Additional Case Studies for the CloudScale Method;190
9.2.4;9.4 Conclusion;191
9.2.5;References;192
10;Glossary;193
11;Index;194




