Nicht aus der Schweiz? Besuchen Sie lehmanns.de
Architecting High Performing, Scalable and Available Enterprise Web Applications -  Shailesh Kumar Shivakumar

Architecting High Performing, Scalable and Available Enterprise Web Applications (eBook)

eBook Download: PDF | EPUB
2014 | 1. Auflage
288 Seiten
Elsevier Science (Verlag)
978-0-12-802528-4 (ISBN)
Systemvoraussetzungen
Systemvoraussetzungen
45,95 inkl. MwSt
(CHF 44,85)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Architecting High Performing, Scalable and Available Enterprise Web Applications provides in-depth insights into techniques for achieving desired scalability, availability and performance quality goals for enterprise web applications. The book provides an integrated 360-degree view of achieving and maintaining these attributes through practical, proven patterns, novel models, best practices, performance strategies, and continuous improvement methodologies and case studies.  The author shares his years of experience in application security, enterprise application testing, caching techniques, production operations and maintenance, and efficient project management techniques. - Delivers holistic view of scalability, availability and security, caching, testing and project management - Includes patterns and frameworks that are illustrated with end-to-end case studies - Offers tips and troubleshooting methods for enterprise application testing, security, caching, production operations and project management - Exploration of synergies between techniques and methodologies to achieve end-to-end availability, scalability, performance and security quality attributes - 360-degree viewpoint approach for achieving overall quality - Practitioner viewpoint on proven patterns, techniques, methodologies, models and best practices - Bulleted summary and tabular representation of concepts for effective understanding - Production operations and troubleshooting tips

Shailesh Kumar Shivakumar is a Senior Technology Architect at Infosys Technologies Limited with over 13 years of industry experience. His areas of expertise include Java Enterprise technologies, Performance engineering, Enterprise portal technologies, User interface components and performance optimization. He is a Guinness world record holder of participation for successfully developing a mobile application in coding marathon. He has four patent applications including two US patent applications in the area of web and social technologies. He was involved in multiple large-scale and complex online transformation projects for Fortune 500 clients of his organization. He also provided on-demand consultancy in performance engineering for critical projects across various units in the organization. His has hands-on experience on breadth of technologies including web technologies, portal technologies and database technologies and has worked on multiple domain areas such as retail, manufacturing, e-commerce, avionics etc. He was the chief architect of an online platform which won 'best web support site” award among global competitors. He is a regular blogger at Infosys Thought Floor and many of his technical white papers are published in Infosys external site. He has delivered two talks at Oracle JavaOne 2013 conference on performance optimization and project management and has presented a paper at IEEE conference on knowledge management systems. He also headed a center-of-excellence for portals and is currently the practice lead for enterprise portal practice. He led multiple thought-leadership and productivity improvement initiatives and was part of special interest groups (SIG) related to emerging web technologies at his organization. He holds numerous professional certifications including Oracle Certified Master (OCM) Java Enterprise Edition 5, Sun certified Java programmer, Sun Certified Business component developer, IBM certified Solution Architect - Cloud computing, IBM Certified Solution Developer - IBM WebSphere Portal 6.1 and many others. He has won numerous awards including prestigious Infosys Awards for Excellence 2013-14 'Multi-talented thought leader' under 'Innovation - Thought leadership” category, 'Brand ambassador award” for MFG unit, delivery excellency award and multiple spot awards and received honor from executive vice chairman of his organization. He is featured as 'Infy star” in Infosys Hall of fame and recently led a delivery team which won the 'best project team” award at his organization. He holds an engineering degree in computer science and has done executive management program from Indian Institute of Management, Calcutta. He lives in Bangalore, India and can be reached at Shailesh.shivakumar@gmail.com. Linked in profile page: in.linkedin.com/in/shaileshkumarshivakumar/
Architecting High Performing, Scalable and Available Enterprise Web Applications provides in-depth insights into techniques for achieving desired scalability, availability and performance quality goals for enterprise web applications. The book provides an integrated 360-degree view of achieving and maintaining these attributes through practical, proven patterns, novel models, best practices, performance strategies, and continuous improvement methodologies and case studies. The author shares his years of experience in application security, enterprise application testing, caching techniques, production operations and maintenance, and efficient project management techniques. - Delivers holistic view of scalability, availability and security, caching, testing and project management- Includes patterns and frameworks that are illustrated with end-to-end case studies- Offers tips and troubleshooting methods for enterprise application testing, security, caching, production operations and project management- Exploration of synergies between techniques and methodologies to achieve end-to-end availability, scalability, performance and security quality attributes- 360-degree viewpoint approach for achieving overall quality- Practitioner viewpoint on proven patterns, techniques, methodologies, models and best practices- Bulleted summary and tabular representation of concepts for effective understanding- Production operations and troubleshooting tips

Front Cover 1
Architecting High Performing, Scalable and Available Enterprise Web Applications 4
Copyright Page 5
Dedication 6
Contents 8
Preface 12
All-around quality 12
360° view: key highlights and differentiators of the book 12
Motivation for the book 14
Main themes and focus areas 15
Organization of chapters 16
Target audience 17
Declaration 18
About the Author 20
Acknowledgments 22
1 Architecting Scalable Enterprise Web Applications 24
1.1 Introduction 24
1.2 Scalability layers 26
1.3 Key tenets of enterprise scalability 27
1.3.1 Dimensions of scalability 29
1.4 Challenges for scalability 30
1.5 Scalability patterns and best practices 34
1.5.1 Scalability patterns 34
1.5.1.1 Scalability best practices 40
1.5.2 Deep-dive into scalability 40
1.5.2.1 Scalability through fault tolerance and failover 40
1.5.2.2 Distributed computing 53
1.5.2.2.1 Hyperscale architecture 54
1.5.2.3 Services scalability 54
Architecting scalable services infrastructure 57
Distributed clustered ESB configuration 58
1.5.2.4 Database scalability 59
1.5.2.5 Storage scalability 61
1.5.2.6 Virtualization 62
Impact of virtualization on scalability 62
1.5.2.7 Cloud alternative 63
1.6 Architecting scalable systems 64
1.6.1 Real-world scalability-related metrics of the enterprise application 64
1.6.2 Infrastructure planning 65
1.6.2.1 Infrastructure design and components 65
1.6.2.1.1 Sizing and capacity planning 66
1.6.3 Right routing and workload management 69
1.6.4 Scalable software design 70
1.6.5 Scalability strategy at various layers 71
1.6.6 Scalability monitoring and governance 72
1.7 Scalability testing 73
1.8 Scalability anti-patterns 74
1.9 Case study 75
1.9.1 Problem statement 75
1.9.2 Analysis methodology 76
1.9.2.1 Architecture and code analysis 76
1.9.2.2 Testing methodology 76
1.9.2.3 Scalability problems identified 76
1.9.3 Scalability optimization 77
1.9.4 Result 78
1.10 Chapter summary 79
2 Ensuring High Availability for Your Enterprise Web Applications 82
2.1 Introduction 82
2.1.1 Key tenets of high availability 82
2.1.2 Motivations for high availability 83
2.2 High availability planning 83
2.2.1 Enterprise application availability chain 84
2.2.2 Availability analysis process and establishment 87
2.3 Challenges to high availability 91
2.3.1 Hardware-related challenges 91
2.3.2 Software-related challenges 91
2.3.2.1 Application issues impacting availability 92
2.3.3 Process-related challenges 93
2.3.4 Unanticipated challenges 93
2.4 High availability architecture patterns and best practices 93
2.4.1 Patterns for high availability 93
2.4.2 Software high availability patterns 96
2.4.3 High availability best practices 97
2.5 High availability for storage, network, and database components 98
2.5.1 Storage availability through RAID 98
2.5.2 Storage virtualization 98
2.5.2.1 Storage availability through NAS and SAN 100
2.6 High availability database 100
2.7 Network availability 101
2.8 5R model for high availability 102
2.8.1 Reliability 102
2.8.2 Replicability and DR strategy 105
2.8.3 Recoverability 107
2.8.4 Reporting and monitoring 108
2.8.5 Redundancy 108
2.9 Other aspects of high availability 109
2.9.1 Special case of gateway pages and business-critical transactions 109
2.9.2 Comparison with cloud 111
2.9.3 High availability of services, feeds, static assets, and pluggable components 112
2.10 Availability anti-patterns 114
2.11 High availability governance 115
2.12 Uninterrupted system and application maintenance 115
2.13 High availability testing 117
2.14 Case study 117
2.14.1 Problem statement 117
2.14.2 High availability assessment 118
2.14.3 Fixing gaps related to high availability 119
2.14.3.1 Infrastructure layer 119
2.14.3.2 Database layer 120
2.14.3.3 Application layer 120
2.14.3.4 Process-related fixes 120
2.14.3.5 Results 120
2.15 Chapter summary 121
3 Optimizing Performance of Enterprise Web Application 124
3.1 Introduction 124
3.2 WPO concepts and analysis 124
3.2.1 Basic concepts of WPO and its impact on online strategy 124
3.2.2 Analysis of factors contributing to web page load time and common pitfalls 125
3.3 WPO strategy 127
3.3.1 Establishing performance objectives and SLAs 127
3.3.2 Model and evaluate various performance scenarios for business-critical processes and transactions 128
3.3.3 Establishing performance design guidelines 130
3.3.4 Performance-based development approach in project lifecycle phases 131
3.3.4.1 Requirement elaboration 131
3.3.4.2 Architecture and design phase 132
3.3.4.3 Application development phase 133
3.3.4.4 Validation phase 136
3.3.5 Bottleneck analysis 140
3.3.6 Performance monitoring 141
3.4 Optimizing performance for supporting ecosystem components 142
3.4.1 Optimized infrastructure for performance 142
3.4.2 HTML 5 optimization 143
3.4.3 Responsive web design 143
3.5 Asset optimization strategy 145
3.5.1 Static assets optimization—generic optimization techniques 145
3.5.2 Smart asset proxy 146
3.5.3 Progressive semantic asset loading 150
3.5.4 Rapid rendering framework 152
3.6 Other dimensions of performance optimization 156
3.6.1 Optimization of content-driven pages 156
3.6.2 Accelerating HTTPS pages 157
3.7 Performance anti-patterns 158
3.8 Web analytics-based performance improvement 159
3.9 Performance governance framework 160
3.10 Case study for top-down performance optimization 160
3.11 Chapter summary 163
4 Caching for Enterprise Web Application 166
4.1 Introduction 166
4.2 Impact on scalability, availability, and performance 168
4.3 Cache concepts 169
4.4 Cache design 171
4.4.1 Cache invalidation strategy 171
4.5 Caching patterns 174
4.6 Caching antipatterns 174
4.7 Caching strategy 177
4.8 Cache metrics and administration 179
4.8.1 Key caching metrics 179
4.8.2 Cache administration and monitoring 179
4.9 Chapter summary 181
5 Securing Enterprise Web Application 182
5.1 Introduction 182
5.2 Security strategy 182
5.3 Vulnerability, threat, and risk assessment 184
5.4 Designing security principles and policies 186
5.5 Implementing security policy at all levels 189
5.6 Security testing and monitoring 189
5.6.1 Security testing 190
5.7 Chapter summary 201
6 Enterprise Web Application Testing 202
6.1 Introduction 202
6.2 Web testing challenges 202
6.2.1 Brief introduction to Web 2.0 202
6.2.2 Analysis of testing methodologies in enterprise web projects 203
6.2.2.1 Testing challenges 203
6.3 Testing best practices 205
6.4 Testing estimation at each project phase 206
6.5 UCAPP testing model for enterprise applications 206
6.5.1 User-centric testing 207
6.5.2 Complete validation 210
6.5.3 Automated testing 211
6.5.4 Proactive defect prevention and detection 212
6.5.5 Performance focus 215
6.6 Other aspects of testing 216
6.6.1 Services testing 216
6.6.2 A special case of testing challenges in environment with layered caching 219
6.6.3 Testing metrics and business KPIs 220
6.7 Chapter summary 221
7 Project Management for Enterprise Applications 222
7.1 Introduction 222
7.2 Survey and analysis of enterprise software projects 222
7.3 Project management best practices during various phases of the software project 222
7.4 Lead indicators of quality issues 223
7.5 Proactive quality approach techniques 224
7.5.1 Comprehensive proactive quality governance framework 224
7.5.2 Automated quality control 231
7.5.3 Continuous and iterative development, integration, testing, release, and monitoring 231
7.5.4 Productivity improvement measures 235
7.5.5 Continuous quality improvement framework 236
7.6 Project quality tools and metrics 237
7.6.1 Quality mission control 237
7.6.2 Proactive project quality metrics 238
7.6.3 Proactive risk control 238
7.7 Governance 239
7.7.1 Program governance approach 239
7.7.2 Various dimensions of governance 240
7.7.3 Effective program management 241
7.8 Chapter summary 242
8 Operations and Maintenance 244
8.1 Introduction 244
8.2 Continuous build and deployment 244
8.3 Monitoring and notification 245
8.4 Production issue troubleshooting and incident handling 248
8.5 Production operations 253
8.6 Chapter summary 257
9 Enterprise Architecture Case Study: ElectronicsDeals Online 258
9.1 Case study context 258
9.2 ElectronicsDeals case study 258
9.3 Architecture solution 259
9.4 Designing initial architecture 260
9.5 Making the ElectronicsDeals online scalable 260
9.6 Adding high availability features for ElectronicsDeals online 267
9.7 Accelerated performance for ElectronicsDeals online 274
9.8 Securing ElectronicsDeals online 279
9.9 Project execution strategy of ElectronicsDeals Online 279
9.10 Logical architecture 280
9.11 Risk and mitigation strategy 281
Bibliography 288

1

Architecting Scalable Enterprise Web Applications


Scalability of an enterprise application is critical to the success of its online strategy and business. Business needs its online platform to be scalable to sustain the growth, and this requires the enterprise web applications to efficiently handle the increased user traffic and input data volume with acceptable performance.

In this chapter, we will look at various aspects of scalability such as scalability dimensions, key tenets, scalability challenges, scalability best practices, scalability patterns, and a comprehensive process to achieve scalability. A deep-dive analysis of scalability is elaborated, which includes layer-wise scalability, fault tolerance, distributed computing, sizing and capacity planning, scalable software design, load distribution, services scalability, database scalability, storage scalability, and virtualization techniques. The patterns, challenges, and best practices are all analyzed from hardware and software perspectives. The chapter also discusses various scalability testing methods and scalability-related anti-patterns. We then examine a case study at the end of this chapter where we look at a business scenario close to real world and apply the patterns and best practices discussed in the chapter to design a scalable system.

Keywords


Scalability dimensions; scalability best practices; scalability patterns; scalability challenges; fault tolerance; failover; redundancy; clustered deployment; horizontal clustering; vertical clustering; stateless session; lightweight design; on-demand data loading; resource pooling; replication; service-oriented architecture; virtualization; sizing and capacity planning; scalability testing; scalable software design; load distribution

1.1 Introduction


Scalability is the capability of the enterprise application and its ecosystem components to handle increased workload and demand without compromising its overall efficiency. Let us look closely at the different elements related to scalability, based on the above statement:

• Application and its ecosystem: Scalability is measured for various components at various levels. The ecosystem of an enterprise application generally includes the infrastructure elements like hardware components such as web server and database server, network interfaces, upstream/downstream systems, and all other components that participate in processing a web request. We can go further into granular level such as methods/functions used within the application, stored procedures of a database, or a web service to measure scalability.

• Increased workload: As various components in different layers consume different kinds of input, the workload also varies. For instance, a web server generally handles HTTP requests, and hence its primary workload is in the form of HTTP requests for a given time period. Similarly, for an enterprise web application, the number of page requests forms the workload; the workload for a database server is in the form of queries. Normally, all these components will be designed to handle the “normal” workload, meaning the average volume of input data for a given time period. Allocated resources, code design, network bandwidth, and all others will be according to the normal workload. Often, however, web traffic is unpredictable. Suddenly, the web server may start receiving a huge number of HTTP requests due to a spike in user traffic. In such cases, we need to know the behavior of all the systems and applications involved. The variation in their response time, CPU/memory utilization, and network consumption all need to be analyzed. If the system cannot cope with the increased workload then it affects the above-mentioned variables.

• Efficiency: The third aspect of scalability is the impact of increased workload on the efficiency of the system and application. Efficiency, in this scenario, is mainly non-functional in nature. This includes response times, Service Level Agreements (SLA), throughput (amount of data per second), number of pages served per second, and number of executed transactions per second (TPS), etc. An enterprise application has specific non-functional features that need to be satisfied. For instance, an enterprise application may be specified with a page response SLA of a 2-s time frame; a database server must handle 300 queries per second, and so on.

An application is said to be scalable if it can efficiently handle a higher workload without impacting or compromising its specified features. This does not mean that an application slightly deviating from the specified nonfunctional requirements or SLAs can be termed as “not scalable.” Normally, the non-functional feature specifications and SLAs will be specified in a range, except for a few scenarios that warrant a strict nonnegotiable SLA. For instance, in the above example, the page response time SLA has a range between 2 and 3 s, which means that if the page response time does not fall below 5 s then it is still acceptable. If the application can handle a peak load and respond within 3 s, then, also, it is termed as scalable.

Note

Though a range with an upper limit and a lower limit for the SLA is a normally followed practice, some systems and applications need to satisfy very strict SLAs. For instance, real-time systems, mission-critical applications, and healthcare related applications might need to adhere to stricter SLA values.

Little’s Law: The theorem is related to handling capacity of the system. This provides a high-level background for designing scalable and available systems. It states that for a system to be stable, the number of input requests should be equal to the product of the request arrival rate and the request handling time. Formally it is defined as:

=λ×W

where

L=Average number of requests in a stable system

λ=Average request arrival rate

W=Average time to service the request

It can be explained by a simple example for our scenario. Let us say that the system gets an average of 100 web requests per second and it takes 0.5 s to service each request, then the average total number of requests the system can handle is 100×0.5=50 requests concurrently. We can also see from the same equation that in order to increase the number of requests that can be handled concurrently, we have to optimize the request servicing time (W). Scalability mainly deals on how to optimize W using infrastructure and software components. Throughout this chapter we will see all techniques related to this concept.

Scalability in web applications

Scalability in modern-day enterprise web applications is more relevant now than ever. With the explosion of engaging web applications requiring increased input data, increased online access through mobility devices, and bandwidth improvements in developing economies, all of these result in increased web activity and online traffic. Many of the key business functions such as marketing and sales use online as their primary channel. Hence the business revenue and success of an enterprise is directly dependent on its online strategy. Scalability of a system is the prime indicator of how the business can handle future growth.

The following scenarios point to underlying scalability issues:

• An e-commerce web application starts responding slowly due to an unexpected spike in user traffic during a new product launch

• An online marketplace application faces intermittent connection drops when a huge number of bids are being placed for a specific product

• An online retail website faces problems in the checkout process during a sales season

In almost all cases, the scalability of an enterprise application involves a careful design of all its constituent components, systems, and layers. The application is as scalable as its weakest component; as a matter of fact, this principle of “a chain is as strong as its weakest link” holds true for all three quality attributes discussed in this book. Even a single non-scalable integration interface can pose a potential bottleneck and can bring down the system. This rule also holds true for other quality attributes such as performance and availability.

The primary focus of this chapter, as well as of the book, is enterprise web application. Hence, all aspects related to enterprise web application will be discussed from a practitioner viewpoint. Wherever needed, the chapter covers all related concepts complemented by examples.

Note

This book considers an in-house deployment option wherein the servers are owned, planned, maintained, and operated by the organization. A brief discussion of cloud option is covered wherever applicable.

1.2 Scalability layers


The previous section gave a brief glimpse of various layers involved in establishing end-to-end scalability. Let us look at this in more detail. Understanding various layers involved is the first step in understanding scalability. This helps us to look at challenges/issues in those layers, how to optimally address each of them, and the best practices and patterns applicable for each layer.

The layers depicted in Figure 1.1 are identified based on their sequence and order of contribution to scalability in the request processing chain. For example, when the user requests a web page in an...

Erscheint lt. Verlag 29.10.2014
Sprache englisch
Themenwelt Mathematik / Informatik Informatik Grafik / Design
Informatik Office Programme Outlook
Mathematik / Informatik Informatik Theorie / Studium
Mathematik / Informatik Informatik Web / Internet
ISBN-10 0-12-802528-X / 012802528X
ISBN-13 978-0-12-802528-4 / 9780128025284
Haben Sie eine Frage zum Produkt?
PDFPDF (Adobe DRM)
Größe: 10,9 MB

Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
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 eine Adobe-ID sowie eine kostenlose App.
Geräteliste und zusätzliche Hinweise

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.

EPUBEPUB (Adobe DRM)
Größe: 11,7 MB

Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
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 eine Adobe-ID sowie eine kostenlose App.
Geräteliste und zusätzliche Hinweise

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.

Mehr entdecken
aus dem Bereich