System Design on AWS (ebook) Imielin

Enterprises building complex and large-scale applications in the cloud face multiple challenges. From figuring out the right tools to estimating the right provisioning, nearly every solution comes with a complicated set of choices and trade-offs. AWS provides a one-stop shop for building and …

od 203,15 Najbliżej: 41 km

Liczba ofert: 1

Oferta sklepu

Opis

Enterprises building complex and large-scale applications in the cloud face multiple challenges. From figuring out the right tools to estimating the right provisioning, nearly every solution comes with a complicated set of choices and trade-offs. AWS provides a one-stop shop for building and scaling these applications, and this practical guide helps you decide which pieces to use and how to fit them together.Authors Jayanth Kumar and Mandeep Singh equip software architects and engineers with essential AWS and system design knowledge to help you make good decisions and overcome the challenges of designing and scaling enterprise software architecture. By diving into specific use cases, you'll understand how these principles and resources can be applied to real-world problems.With this book, you will:Learn the basics and best practices of successful system designUnderstand key AWS services and their strengths and limitations for building large-scale systemsExamine engineering patterns and principles that best support large-scale systems, and learn how to design architecture with scalability, operations, and resilience in mindLearn what highly performant and cost-optimized architectures look like on AWS and the tools and frameworks that are best for specific use cases Spis treści: Foreword Preface How This Book Is Organized What This Book Isnt Who Should Read This Book Conventions Used in This Book OReilly Online Learning How to Contact Us Acknowledgments Mandeep Singh Jayanth Kumar I. System Design Basics 1. System Design Trade-offs and Guidelines System Design Concepts Communication Synchronous communication Asynchronous communication Consistency Consistency in distributed systems Consistency in data storage and retrieval Consistency spectrum model Availability Measuring availability Availability in parallel versus in sequence Ensuring availability Availability patterns Failover patterns Replication patterns Reliability Measuring reliability Mean time between failures Mean time to repair Reliability and availability Scalability Maintainability Fault Tolerance Replication Checkpointing Fallacies of Distributed Computing System Design Trade-offs Time Versus Space Latency Versus Throughput Latency, processing time, and response time Throughput and bandwidth Performance Versus Scalability Consistency Versus Availability CAP theorem PACELC theorem System Design Guidelines Guideline of Isolation: Build It Modularly Guideline of Simplicity: Keep It Simple, Silly Guideline of Performance: Metrics Dont Lie Guideline of Trade-offs: There Is No Such Thing as a Free Lunch Guideline of Use Cases: It Always Depends Conclusion 2. Storage Types and Relational Stores Data Storage Format File-Based Storage Block-Based Storage Object-Based Storage Relational Databases Relational Database Concepts SQL ACID ER model Schema normalization Keys Relational Database Management System Architecture Optimizing Relational Databases Indexes SQL tuning Denormalization Query federation Scaling Relational Databases Partitioning Hash partitioning Range partitioning Sharding Replication Synchronous replication Asynchronous replication Open Source Relational Database Systems MySQL PostgreSQL Conclusion 3. Nonrelational Stores Nonrelational Database Concepts Schema Flexibility Data Models Scalability High Availability and Fault Tolerance BASE Key-Value Databases Data Model No fixed schema or indexes Keys Data Access and Retrieval Operations Scaling Key-Value Stores Leaderless replication Consistent hashing Availability in Key-Value Stores Advantages, Trade-offs, and Considerations Dynamo: Key-Value Database Document Databases Data Model Availability in Document Stores Advantages, Trade-offs, and Considerations MongoDB: Open Source Document Database Columnar Databases Data Model Flexible schema design Keys Consistency Levels Eventual consistency Weak consistency Strong consistency Columnar Store Architecture Compaction strategies Tombstones for soft delete Advantages, Trade-offs, and Considerations Apache Cassandra: Open Source Columnar Database Graph Databases Data Model Data Access and Retrieval Advantages, Trade-offs, and Considerations Neo4j: Open Source Graph Database Conclusion 4. Caching Policies and Strategies Benefits of Caching Cache Eviction Policies Beladys Algorithm Queue-Based Policies Recency-Based Policies Frequency-Based Policies Allowlist Policy Cache Invalidation Caching Strategies Read-Intensive Strategies Cache-aside Read-through Refresh-ahead Write-Intensive Strategies Write-through Write-around Write-back Cache Deployment In-Process Caching Interprocess Caching Remote Caching Choosing a Cache Deployment Approach Caching Mechanisms Content Delivery Networks Push CDNs Pull CDNs CDN optimization techniques Content consistency in CDNs Open Source Caching Solutions Memcached Redis Availability in Redis deployments Durability in Redis deployment Memory management in Redis Conclusion 5. Load Balancing Approaches and Techniques Networking Components Benefits of Load Balancing LB Deployment and Placement Strategies Global Server Load Balancing Local Load Balancing Load Balancing Algorithms Static Load Balancing Algorithms Dynamic Load Balancing Algorithms Session Persistence in LBs Stateful Load Balancers Stateless Load Balancers Types of Load Balancers LB Types Based on Functionality DNS load balancers ECMP routers Network load balancers (L4 LBs) Application load balancers (L7 LBs) LB Types Based on Configuration Hardware LBs Software LBs Nginx: Open Source Load Balancer Conclusion 6. Communication Networks and Protocols Communication Models and Protocols OSI Model TCP/IP Model Network layer protocols Transmission Control Protocol User Datagram Protocol Hypertext Transfer Protocol Simple Mail Transfer Protocol Extensible Messaging and Presence Protocol Message Queuing Telemetry Transport Communication Types Pull Mechanism: HTTP Polling Push Mechanism: WebSockets Push Mechanism: Server-Sent Events Common Communication Protocol Standards Remote Procedure Call REST GraphQL Web Real-Time Communication Conclusion 7. Containerization, Orchestration, and Deployments Evolution of Application Deployment Containerization Docker Images Registry Containers Docker engine and runtime Container Orchestration Kubernetes architecture Kubernetes concepts Container Deployment Strategies CI/CD Pipeline with Gitflow and Automated Deployment Strategies Gitflow Workflow for Branch Management Continuous Integration Continuous Deployment Monitoring and Incident Management Conclusion 8. Architectural Designs and Patterns Change Data Capture Publisher-Subscriber Architecture Message Brokers Message Queues Choreography and Orchestration Choreography Orchestration Orchestrated, synchronous, and sequential pattern Orchestrated, synchronous, and parallel pattern Orchestrated, asynchronous, and sequential pattern Hybrid orchestration and choreography pattern Deciding Between Choreography and Orchestration Big Data Architecture Lambda Architecture Kappa Architecture Data Lake Architecture Solution Architecture Monoliths N-tier Architectures Microservices Event-Driven Architecture EDA Concepts and Implementations Paradigms of Event-Driven Implementations State-oriented implementation Event sourcing Common Cloud Architecture Patterns Event-Based Patterns: CQRS and Saga Failure-Tolerant Patterns: Circuit Breaker, Retry with Backoff, and Rate Limiter Domain-Based Patterns: Domain-Driven Design and Decompose by Subdomains API Routing Strategies and Patterns Other Cloud Architecture Patterns Open Source Distributed Systems Architecture HDFS HDFS architecture Hadoop ecosystem versus AWS Apache Kafka: Distributed Message Queue Kafka architecture Kafkas configuration levels Comparing HDFS and Kafka Conclusion II. Diving Deep into AWS Services 9. AWS Network Services Getting Started with AWS AWS Regions AWS Availability Zones AWS Local Zones AWS Edge Locations Introduction to AWS Networking Services Amazon VPC IP addresses IPv4 IPv6 Private and public IP addresses Elastic IP address Creating an Amazon VPC Subnets Internet Connectivity Route Tables Security Groups Network Access Control Lists Amazon VPC-to-Internet Connectivity Internet Gateway NAT gateway Connectivity Between Amazon VPCs Amazon VPC Peering AWS Transit Gateway AWS PrivateLink Hybrid Connectivity AWS Virtual Private Network AWS Direct Connect Amazon Route 53 AWS Elastic Load Balancer Amazon API Gateway Amazon CloudFront Conclusion 10. AWS Storage Services Cloud Storage on AWS Amazon Elastic Block Store Amazon Elastic File System Amazon Simple Storage Service S3 storage classes Frequently accessed objects Infrequently accessed objects Archived objects Lifecycle configurations Intelligent tiering Amazon S3 data security AWS Databases Amazon RDS Amazon DynamoDB Amazon DocumentDB Amazon Neptune Compute Storage Traffic distribution Caching Amazon ElastiCache Subnet Data tiering Redundancy and replication Multithreading Persistence Encryption and compliance Amazon DynamoDB Accelerator Amazon OpenSearch Amazon Timestream Amazon Keyspaces Conclusion 11. AWS Compute Services Amazon Elastic Compute Cloud Amazon Machine Image Instance Type Autoscaling AWS Lambda Containerization Services Amazon Elastic Container Service Amazon Elastic Kubernetes Service Conclusion 12. AWS Messaging, Orchestration, Monitoring, and Access Management Services Amazon Managed Streaming for Apache Kafka Amazon Kinesis Amazon Kinesis Data Streams Amazon Kinesis Data Analytics Amazon Kinesis Data Firehose Amazon Kinesis Video Streams Amazon Simple Queue Service Amazon Simple Notification Service Workflow Orchestration AWS Step Functions Amazon Managed Workflow for Apache Airflow Amazon CloudWatch Application Logs Metrics and Alarms Metrics Alarms Metric Alarm conditions Configurable actions Amazon CloudWatch Events AWS Identity and Access Management Amazon Cognito AWS AppSync Conclusion 13. Big Data, Analytics, and Machine Learning Services AWS Big Data and Analytics Amazon Elastic MapReduce EMRFS EMR cluster considerations AWS Glue Amazon Athena Amazon QuickSight Amazon Redshift Machine Learning on AWS Amazon SageMaker AWS ML Application Services AWS ML Infrastructure Conclusion III. System Design Use Cases 14. Designing a URL Shortener Service System Requirements Functional and Nonfunctional Requirements System Scale Storage Space Starting with the Design URL Shortening Algorithm Hashing Unique ID generation Key generation service System APIs System Considerations Database Selection URL shortener service KGS Custom Domain Support Launching the System on AWS Day Zero Architecture Scaling to Millions and Beyond Observability Storage layer Compute layer Day N Architecture Conclusion 15. Designing a Web Crawler and Search Engine System Requirements Functional and Nonfunctional Requirements System Scale Web crawler Search engine Starting with the Design Designing the Web Crawler Improving the URL frontier URL uniqueness and duplicate detection Designing the Search Engine Indexing strategies Improving search performance Data compression Relevance of search results Launching the System on AWS Day 0 Architecture Scaling to Millions and Beyond Day N Architecture Web crawler Search engine Conclusion 16. Designing a Social Network and Newsfeed System System Requirements Functional and Nonfunctional Requirements System Scale Starting with the Design Handling New Posts User post service databases Post workflow orchestration and memory cache User timeline service Managing User Connections Search Service Launching the System on AWS Day 0 Architecture Scaling to Millions and Beyond Storage on DynamoDB Scaling post comments Scaling the authentication system Moving from Day 0 to Day N Traffic replication on the new system Actual system migration Database migration Day N Architecture High availability of system Multiregion deployments Conclusion 17. Designing an Online Game Leaderboard System Requirements Functional and Nonfunctional Requirements System Scale Storage requirements Bandwidth and throughput Starting with the Design Concepts and Principles Data modeling Latency Eventual consistency Data partitioning and sharding Sorting algorithms Caching strategies A Rough System Design Score submission service Ranking service Leaderboard service Database Cache layer Messaging system Frontend API Additional components Launching the System on AWS Day 0 Architecture Scaling to Millions and Beyond Compute Storage Scaling data retrieval Total cost of ownership Initial costs Operational costs Maintenance costs Support and scaling costs Retirement costs Day N Architecture Scaling Redis System considerations Conclusion 18. Designing a Hotel Reservation System System Requirements Functional and Nonfunctional Requirements System Scale Starting with the Design Property Onboarding Architecture Property Search Architecture Elasticsearch configuration and scaling GraphQL federation for search Exploring points of interests Property Booking Architecture Data store selection Handling concurrent bookings Payment processing architecture Dynamic pricing in the system Property Reviews Architecture Launching the System on AWS Day 0 Architecture Scaling to Millions and Beyond Day N Architecture Conclusion 19. Designing a Chat Application System Requirements Functional and Nonfunctional Requirements System Scale Starting with the Design Messaging Architecture Protocol selection Direct messaging Message storage Multimedia system WhatsApp Architecture with Erlang System architecture Databases Launching the System on AWS Day 0 Architecture Scaling to Millions and Beyond Congestion handling WebSocket management services Multiregion deployment of messaging systems Day N Architecture Conclusion 20. Designing a Video-Processing Pipeline for a Streaming Service System Requirements Functional and Nonfunctional Requirements System Scale Starting with the Design Video Encoding Video-Quality Validation Content Indexing Content Distribution Launching the System on AWS Day 0 Architecture Scaling to Millions and Beyond Day N Architecture Conclusion 21. Designing an Online Stock-Trading Platform System Requirements Functional and Nonfunctional Requirements System Scale Starting with the Design Designing a Stock Tick System Live stock ticks Historical stock ticks Designing the Order Management System Designing Ultra-Low-Latency Systems Network connectivity Programming language Building the P&L Dashboard Launching the System on AWS Day 0 Architecture Scaling to Millions and Beyond Day N Architecture Market data delivery Market order execution System resilience Conclusion Index

Specyfikacja

Podstawowe informacje

Autor
  • Jayanth Kumar, Mandeep Singh
Rok wydania
  • 2025
Format
  • MOBI
  • EPUB
Ilość stron
  • 612
Kategorie
  • Programowanie