Engineering Scalable, Elastic, and Cost-Efficient Cloud Computing Applications (eBook)
XIX, 190 Seiten
Springer International Publishing (Verlag)
978-3-319-54286-7 (ISBN)
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.
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.
Foreword 5
Preface 7
Acknowledgments 10
Contents 11
Contributors 16
Part I Introduction and Overview 17
1 Introduction 18
1.1 Getting It Right 19
1.2 Software in the Cloud Computing Era 20
1.3 Some Useful Definitions to Characterize Services 22
1.3.1 Operations 22
1.3.2 Service-Level Objectives 23
1.3.3 Workload 23
1.3.4 Capacity 24
1.4 Quality Properties of Services 24
1.4.1 Scalability 25
1.4.2 Elasticity 25
1.4.3 Cost-Efficiency 26
1.5 Consequences of Scalability, Elasticity, and Cost-Efficiency Issues 27
1.6 Causes of Scalability, Elasticity, and Cost-Efficiency Issues 28
1.7 How Should You Manage Scalability, Elasticity, and Cost-Efficiency? 28
1.8 Reactive Scalability, Elasticity, and Cost-EfficiencyManagement 29
1.8.1 Immediate Temporal Solutions 29
1.8.2 Long-Term Solutions 30
1.9 Proactive Scalability, Elasticity, and Cost-EfficiencyManagement 31
1.10 The CloudScale Method 32
1.11 What Does It Cost? 33
1.12 What Do You Need? 34
1.13 Conclusion 35
References 36
2 CloudScale Method Quick View 37
2.1 Process Steps of the CloudScale Method 38
2.2 Running Example 40
2.3 Identify Service-Level Objectives, Critical Use Cases, and Key Scenarios 41
2.3.1 Service-Level Objectives 41
2.3.2 Critical Use Cases 42
2.3.3 Key Scenarios 42
2.4 Identify Scalability, Elasticity, and Cost-EfficiencyRequirements 43
2.4.1 Scalability Requirements 44
2.4.2 Elasticity Requirements 44
2.4.3 Cost-Efficiency Requirements 45
2.5 Specify ScaleDL Model 46
2.6 Use Analyzer 46
2.6.1 Scalability Analysis 46
2.6.2 Elasticity Analysis 47
2.6.3 Cost-Efficiency Analysis 48
2.7 Use Spotters 48
2.8 Realize, Deploy, and Operate System 49
2.9 Cloud Computing HowTos 49
2.10 Cloud Computing HowNotTos 51
2.11 The CloudScale Method in the Unified Process 55
2.11.1 Unified Processes 55
2.11.2 Relating the CloudScale Method 56
2.12 Conclusion 57
References 57
Part II Modeling Cloud Computing Applications 59
3 Cloud Computing Applications 60
3.1 Introduction 61
3.2 Web Applications 62
3.3 Cloud Computing Characteristics 64
3.4 From Web to Cloud Computing Applications 65
3.5 Requirements of Cloud Computing Applications 66
3.6 Modeling Cloud Computing Applications 67
3.6.1 Common View Types for Applications 67
3.6.2 Cloud-Specific View Types for Applications 68
3.7 CloudStore Running Example 69
3.8 Modeling Hints 71
3.9 Conclusion 72
References 73
4 ScaleDL 74
4.1 Introduction 75
4.2 Overview Model 75
4.2.1 Concepts of Overview Model 76
4.2.2 Example of Overview Model 77
4.2.3 Tool Support for Overview Model 78
4.3 Usage Evolution 78
4.3.1 Concepts for Usage Evolution 79
4.3.2 Example of Usage Evolution 80
4.3.3 Tool Support for Usage Evolution 82
4.4 Architectural Templates 82
4.4.1 Concepts of Architectural Templates 83
4.4.2 Example for Architectural Templates 83
4.4.3 Catalog of Architectural Templates 85
4.4.4 Tool Support for Architectural Templates 86
4.5 The Extended Palladio Component Model 86
4.5.1 Concepts of the Extended Palladio Component Model 87
4.5.1.1 The Palladio Component Model 87
4.5.1.2 Extensions for Elastic Environments 88
4.5.2 Example for the Extended Palladio Component Model 89
4.5.3 Tool Support for the Extended PalladioComponent Model 91
4.5.3.1 Analysis Tools 91
4.5.3.2 Extractor 92
4.6 Conclusion 94
References 94
Part III The CloudScale Method for Software Architects 96
5 The CloudScale Method 97
5.1 Introduction 98
5.2 Granularity 98
5.3 Method Notation 100
5.4 Roles in the Method 101
5.5 Method Steps 102
5.6 Identify Service-Level Objectives, Critical Use Cases, and Key Scenarios 104
5.7 Identify Scalability, Elasticity, and Cost-EfficiencyRequirements 106
5.8 Use-Case I: Analyzing a Modeled System 108
5.9 Use-Case II: Analyzing and Migrating an Implemented System 109
5.10 Realize, Deploy, and Operate 110
5.11 Conclusion 111
References 111
6 Analyzing a Modeled System 113
6.1 Introduction 114
6.2 Step I: Specify ScaleDL Model 114
6.2.1 Determine Granularity 116
6.2.2 Specify Usage Evolution 118
6.2.2.1 Service-Level Objectives 118
6.2.2.2 Load 119
6.2.2.3 Work 120
6.2.3 Specify Overview Model and Generate Extended Palladio Component Model 121
6.2.4 Complete Extended Palladio Component Model 123
6.2.4.1 Manually Creating and Adapting Extended Palladio Component Models 123
6.2.4.2 Using HowTos for Specifying Extended Palladio Component Models 125
6.2.5 Summary for the Specification of ScaleDL Models 127
6.3 Step II: Use Analyzer 127
6.3.1 Set Configuration Parameters 129
6.3.2 Run Analyzer and Assess Requirements 130
6.4 Analyzer Running Example 131
6.4.1 Step I: Specifying a CloudStore Model via ScaleDL 131
6.4.1.1 Constructing the Model 132
6.4.1.2 Calibrating the Model 134
6.4.1.3 Evaluating the Model 135
6.4.2 Step II: Using the Analyzer with the CloudStore Model 135
6.4.2.1 Capacity Analysis 136
6.4.2.2 Scalability Analysis 136
6.4.2.3 Elasticity Analysis 136
6.4.2.4 Cost-Efficiency Analysis 138
6.5 Conclusion 139
References 140
7 Analyzing and Migrating an Implemented System 142
7.1 Introduction 143
7.2 Spotting HowNotTos 144
7.3 Statically Detecting HowNotTos 147
7.4 Dynamically Detecting HowNotTos 149
7.5 Resolving HowNotTos with HowTos 151
7.6 Spotter Running Example 152
7.6.1 Static Spotter 152
7.6.2 Dynamic Spotter 154
7.7 Conclusion 156
References 157
Part IV Making the CloudScale Method Happen 158
8 The CloudScale Method for Managers 159
8.1 Introduction 160
8.2 Key Considerations 160
8.3 Relation to Other Engineering Methods 162
8.4 Pros and Cons of the CloudScale Method 164
8.4.1 Critical Success Factors for Method Adoption and Use 164
8.4.2 Organizational Issues 166
8.4.3 Costs 166
8.4.4 Covering the Cost of the CloudScale Method Adoption 167
8.4.5 Risks 168
8.4.6 Critical Factors for Successful Projects 168
8.5 A Pilot Project 169
8.6 Setting Up the CloudScale Environment 171
8.7 Complementing Tools 172
8.8 Following the CloudScale Method for the Pilot Project 173
8.9 Conclusion 174
References 175
9 Case Studies 176
9.1 Case Study: Electronic Health Record 176
9.1.1 Electronic Health Record 177
9.1.2 Applying the CloudScale Method and Toolsto Electronic Health Record 179
9.1.3 Discussion of the Electronic Health Record Case 185
9.2 Case Study: Kantega's Flyt CMS 186
9.2.1 Flyt CMS 186
9.2.2 Applying the CloudScale Method and Toolsto Flyt CMS 188
9.2.3 Discussion of the Flyt CMS Case 189
9.3 Additional Case Studies for the CloudScale Method 190
9.4 Conclusion 191
References 192
Glossary 193
Index 194
| Erscheint lt. Verlag | 31.5.2017 |
|---|---|
| Zusatzinfo | XIX, 190 p. 54 illus., 31 illus. in color. |
| Verlagsort | Cham |
| Sprache | englisch |
| Themenwelt | Mathematik / Informatik ► Informatik ► Netzwerke |
| Mathematik / Informatik ► Informatik ► Software Entwicklung | |
| Schlagworte | Cloud Computing • CloudScale • distributed Architectures • Elastic computing • Performance Engineering • software performance • Software scalability |
| ISBN-10 | 3-319-54286-9 / 3319542869 |
| ISBN-13 | 978-3-319-54286-7 / 9783319542867 |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich