Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Practical Site Reliability Engineering

You're reading from  Practical Site Reliability Engineering

Product type Book
Published in Nov 2018
Publisher Packt
ISBN-13 9781788839563
Pages 390 pages
Edition 1st Edition
Languages
Authors (3):
Pethuru Raj Chelliah Pethuru Raj Chelliah
Profile icon Pethuru Raj Chelliah
Shreyash Naithani Shreyash Naithani
Profile icon Shreyash Naithani
Shailender Singh Shailender Singh
Profile icon Shailender Singh
View More author details

Table of Contents (19) Chapters

Title Page
Dedication
About Packt
Contributors
Preface
1. Demystifying the Site Reliability Engineering Paradigm 2. Microservices Architecture and Containers 3. Microservice Resiliency Patterns 4. DevOps as a Service 5. Container Cluster and Orchestration Platforms 6. Architectural and Design Patterns 7. Reliability Implementation Techniques 8. Realizing Reliable Systems - the Best Practices 9. Service Resiliency 10. Containers, Kubernetes, and Istio Monitoring 11. Post-Production Activities for Ensuring and Enhancing IT Reliability 12. Service Meshes and Container Orchestration Platforms 1. Other Books You May Enjoy Index

Chapter 6. Architectural and Design Patterns

Architecture and design are the foundation blocks of everything during service or microservice development, and they give you clarity and the direction to implement any logic in the cloud era. It was not only used in tradition monolithic setup, but will be used for future setups and will always remain a building block that will continue to help you build your service from scratch. I see it as a kit given to interns to build their initial system and continue to rebuild and redesign by keeping these architecture and design statements in their minds. Software architecture and design is a process that includes several contributory factors, such as business strategy, human dynamics, quality attributes, design, and IT environment.

Architecture pattern


Some of the following points provide clarity about an architectural pattern definition:

  • It serves as blueprint for your system
  • It is general and reusable in nature
  • It gives you a functional understanding about how components are going to interact with one another
  • Architecture styles are also known as architecture patterns
  • Non-functional decisions are formed and divided by the functional requirements
  • A well-laid architecture reduces the business risks associated with the building solution and helps you define a clear-cut understanding between business and technical requirements, and it also builds relationships among those components

The following mind map diagram gives different types of Architectural Patterns used in the IT world where you have easily heard about the Client Server Pattern, the Master Slave Pattern, the Model-View-Controller Pattern, and Peer to Peer Pattern:

Design pattern: Functional requirements are defined in it, and it helps you decompose a system into...

Design pattern


It is very important to consider all design patterns before designing any service, as it helps you build a predictable service that is secured, resilient, performant, scalable, available, and reliable with the following foundation pillars that gives maturity to your application. Traditionally, these patterns were not considered formally, but in the cloud era, we have much more flexibility to choose and consider these patterns during our design process, as these patterns are the building blocks for the cloud vendor service, and even they use the same pattern in designing their own infrastructure. 

We are going to cover the following six design patterns. These topics are so broad that we can write a complete chapter on them, but we are going to give you a glimpse into these subtopics so that we can consider them while we are performing some practical implementation:

  • Security
  • Resiliency
  • Performance
  • Scalability
  • Availability
  • Reliability

The following diagram shows the design pattern pillar...

Summary


In this chapter, we covered architectural patterns, design patterns, software-inclined design patterns, and patterns that are currently distribute as cloud-dominated Software as a Service (SaaS) inclined markets, and they are trying to explore more patterns that can be easily achieved and implemented. We have given an overview of how to design your application around those patterns, and we have provided a good pictorial view, using mind maps that can be easily referred to during such discussion and implementation. We covered circuit breakers, rate limit, and throttling, which will help you build resilient services that can handle any distributed attacks and give a good experience to customers hosted on a multi-tenant environment. We covered circuit breakers thoroughly to give you an idea about how to implement them and how to use them in a situation where you are experiencing a heavy load or your backend-serving services are down. We have given tips for availability and reliability...

lock icon The rest of the chapter is locked
You have been reading a chapter from
Practical Site Reliability Engineering
Published in: Nov 2018 Publisher: Packt ISBN-13: 9781788839563
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €14.99/month. Cancel anytime}