Architecting High Performing, Scalable and Available Enterprise Web Applications
eBook - ePub

Architecting High Performing, Scalable and Available Enterprise Web Applications

  1. 288 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Architecting High Performing, Scalable and Available Enterprise Web Applications

About this book

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

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Architecting High Performing, Scalable and Available Enterprise Web Applications by Shailesh Kumar Shivakumar in PDF and/or ePUB format, as well as other popular books in Computer Science & Business Intelligence. We have over one million books available in our catalogue for you to explore.
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:
image
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 ...

Table of contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Dedication
  6. Preface
  7. About the Author
  8. Acknowledgments
  9. 1. Architecting Scalable Enterprise Web Applications
  10. 2. Ensuring High Availability for Your Enterprise Web Applications
  11. 3. Optimizing Performance of Enterprise Web Application
  12. 4. Caching for Enterprise Web Application
  13. 5. Securing Enterprise Web Application
  14. 6. Enterprise Web Application Testing
  15. 7. Project Management for Enterprise Applications
  16. 8. Operations and Maintenance
  17. 9. Enterprise Architecture Case Study: ElectronicsDeals Online
  18. Bibliography