Skip to main content

2018 | Buch

Scalability Patterns

Best Practices for Designing High Volume Websites

insite
SUCHEN

Über dieses Buch

In this book, the CEO of Cazton, Inc. and internationally-acclaimed speaker, Chander Dhall, demonstrates current website design scalability patterns and takes a pragmatic approach to explaining their pros and cons to show you how to select the appropriate pattern for your site. He then tests the patterns by deliberately forcing them to fail and exposing potential flaws before discussing how to design the optimal pattern to match your scale requirements. The author explains the use of polyglot programming and how to match the right patterns to your business needs. He also details several No-SQL patterns and explains the fundamentals of different paradigms of No-SQL by showing complementary strategies of using them along with relational databases to achieve the best results. He also teaches how to make the scalability pattern work with a real-world microservices pattern.

With the proliferation of countless electronic devices and the ever growing number of Internet users, the scalability of websites has become an increasingly important challenge. Scalability, even though highly coveted, may not be so easy to achieve. Think that you can't attain responsiveness along with scalability? Chander Dhall will demonstrate that, in fact, they go hand in hand.

What You'll Learn

Architect and develop applications so that they are easy to scale.

Learn different scaling and partitioning options and the combinations.

Learn techniques to speed up responsiveness.

Deep dive into caching, column-family databases, document databases, search engines and RDBMS.

Learn scalability and responsiveness concepts that are usually ignored.

Effectively balance scalability, performance, responsiveness, and availability while minimizing downtime.

Who This Book Is For

Executives (CXOs), software architects , developers, and IT Pros

Inhaltsverzeichnis

Frontmatter
Chapter 1. Introduction
Abstract
In this world of ever-increasing data usage, scalability has become more of a necessity than a luxury. This can very well be attributed to the tremendous growth in the size of smartphones and tablet users. According to Internet Live Stats (www.InternetLiveStats.com), we have about 3,915,062,366 users (as of May 9, 2018). With the world population being roughly 7.6 billion users, this number will only continue to grow. With the advent of mobile devices and the constant dependency on these, there is a big need of a “Scalability First” approach or “Cloud Oriented Architecture.”
Chander Dhall
Chapter 2. Scaling – An Art and a Science
Abstract
No matter how well thought out, an architecture that is created on a slide deck without any real-world implementation may fail. The bottom line is that a theoretical architecture created without much real-world experience can lead us to failure. An architecture that works well for a particular app or a particular company doesn’t fall under that category. But even that can fail for a different app and a different organization. Just because it has worked well in practice doesn’t mean it will always work. A good example of this is an app created with some Single Point of Failure (SPFs). It’s very possible that the organization never had an SPF that actually failed. This doesn’t mean it’s an architecture that will be successful all the time. Even theory doesn’t guarantee everything 100%, which is the same in the case of practical implementations. They don’t guarantee 100% success either. It is in our interest to use the best of both worlds. Both theory and practical knowledge are needed to create a world-class architecture. When Dhall Architecture (to be defined later) had to be implemented for the first time, failure was not an option. Quite fortunately, it succeeded. Later, I tried this on bigger environments and bigger applications and it was successful. There was one thing consistent in my approach, and it has been since I started architecting software; and that’s failing the architecture on the slide deck first. I utilized sessions of brainstorming followed by deliberate attempts to fail the architecture. The process is simple
Chander Dhall
Chapter 3. Scaling – Advanced Concepts
Abstract
In this Chapter we build on the SPOFs discovered previously and make our architecture better. Concepts like caching, partitioning and scaling are discussed in detail. If you remember the figure from the previous chapter (Figure 3-1), you might recall that we have two single points of failure (SPOF). In this case, we had the database and the load balancer as the SPOFs
Chander Dhall
Chapter 4. Concepts We Tend to Ignore
Abstract
Before we get to the next level and create the best architecture, it’s advisable to look in to some concepts that we tend to ignore. It’s not a full list of concepts that are needed to make scalable architecture. The idea behind this list is to create awareness and stress the need for looking out of the box for similar concepts and ideas that keep coming in with new technologies, frameworks, hardware, and technological paradigms that keep changing and improving over a period of time. For example, we won’t be talking about security at all. This does not mean security is not important. However, the assumption is that it is the most important part of any application and it will be taken care of. The focus of the book is only about scalability concepts.
Chander Dhall
Chapter 5. Relational vs. No-Sql
Abstract
Quite contrary to what it sounds, No-Sql means Not Only Sql. So far in the book we have been assuming that the persistence layer is only relational database or a scaled-out version of it. Before we actually talk about the architecture using No-Sql databases, it’s worth understanding the differences and appreciating the different kinds of No-Sql databases out there and understanding the different strengths they bring to the table. No-Sql databases are of many different kinds. The name given to the entire category of databases is kind of unfair. In my personal experience, some very good architects have made the mistake of thinking of Relational and No-Sql databases as an either-or, which is not the best way to approach architecting systems of scale.
Chander Dhall
Chapter 6. Polyglot Persistence
Abstract
So far, we have seen that no single database, be it Sql or No-Sql, has been able to satisfy all the business needs. Prior to mass flooding of the world with mobile devices (cell phones and tablets) and even IoT devices, it might have been fine to use a relational database for most applications. However, the advent in social media and the ever-increasing number of users have led to polyglot persistence being the panacea for scalability. In Figure 3-10, we had arrived at an architecture that could scale most of the business applications. We had created a scalable set, and we displayed two sets that were being fed traffic by a system-level redirector.
Chander Dhall
Backmatter
Metadaten
Titel
Scalability Patterns
verfasst von
Chander Dhall
Copyright-Jahr
2018
Verlag
Apress
Electronic ISBN
978-1-4842-1073-4
Print ISBN
978-1-4842-1074-1
DOI
https://doi.org/10.1007/978-1-4842-1073-4