Cloud native architecture and design a handbook for modern day architecture and design with enterprise-grade examples
Build enterprise-grade cloud-native systems and learn all about cloud-native architecture and design. This book provides extensive in-depth details of patterns, tools, techniques, and processes with plenty of examples. Cloud Native Architecture and Design begins by explaining the fundamentals of clo...
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Berkeley, CA :
Apress
[2022]
|
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009634660406719 |
Tabla de Contenidos:
- Intro
- Table of Contents
- About the Author
- About the Technical Reviewer
- Acknowledgments
- Introduction
- Part I: The Cloud Native Journey, Principles, and Patterns
- Chapter 1: Introduction to Cloud Native Architecture
- Introduction to Cloud Native
- Cloud Adoption Across Industries
- Reducing Costs
- Adopting the Cloud Native Mindset
- What Is Cloud Native?
- Cloud Native Maturity Model
- Cloud Enablement Wave
- Cloud Native Transformation Wave
- Scalability and Flexibility Advantage
- Cloud Native Culture and Innovation Wave
- Blockchain as a Service
- Digital Twin
- Zero Trust Architecture
- 5G
- Quantum Computing
- Elements of Cloud Native Computing
- Microservices Architecture
- Serverless Architecture
- Event-Driven Architecture
- Cloud Computing
- Containers
- Agile Development
- DevSecOps
- How Is Cloud Native Different Than Cloud-Enabled?
- Cloud Native Journey
- Start with Lift and Shift
- Re-engineer Migration
- Benefits of Cloud Native
- Cloud Native Organization and Culture
- How Is Cloud Native Architecture Embraced Across Industries?
- Migrate
- Accelerate
- Scale and Innovate
- What Is a Software Architect's Role in Cloud Native?
- Summary
- Chapter 2: Cloud Native Services
- Evolution of Infrastructure Services
- Mainframe Services
- Minicomputer Services
- Personal Computing Service
- Client-Server Service
- Enterprise Computing Service
- Cloud and Mobile Computing Services
- IT Infrastructure Laws and Prediction
- Moore's Law
- The Laws of Mass Digital Storage
- Metcalfe's Law
- Communication Cost and Internet
- Evolution of Servers
- Bare-Metal Servers
- Virtual Machine Revolution
- Adoption of Virtual Machines
- Virtual Machines in the Cloud
- Container Revolution
- Understanding Cloud Services
- Infrastructure as a Service
- Platform as a Service.
- PaaS Taxonomy
- PaaS Architecture Styles
- PaaS Deployment Model
- Software as a Service
- SaaS Limitations
- Architectural Considerations: How to Decide on a Custom vs. SaaS Platform
- Cloud Computing Deployment Models
- Public Cloud
- Private Cloud or On-Premises Cloud
- Community Cloud
- Hybrid
- Cloud Services
- Summary
- Chapter 3: Cloud Native Architecture Principles
- What Are Architecture Principles?
- Cloud Native Design Principles
- API First Principle
- Monolithic Architecture Principle
- Polylithic Architecture Principle
- Applying the Polylithic Principle in Architecture
- Properties of Polylithic Principles
- Polyglot Persistence Principle
- Applying the Polyglot Persistence Principle in Architecture
- Modeled with Business Domain Principle
- Consumer First Principle
- Decentralize Everything Principle
- Culture of Automation Principle
- Always Be Architecting Principle
- Interoperability Principle
- Digital Decoupling Principle
- Single Source of Truth Principle
- Evolutionary Design Principle
- Cloud Native Runtime Principles
- Isolate Failure Principle (IFP)
- Deploy Independently Principle
- Be Smart with State Principle
- Location-Independent Principle
- Design for Failure Principle
- Security Principles
- Defense in Depth Principle
- Security by Design Principle
- SQL Injection
- Cross-Site Scripting (XSS)
- Software Engineering Principle
- Products Not Projects Principle
- Shift-Left Principle
- Shift-Left Security
- Shift-Left Performance
- Container Principles
- Single Concern Principle
- High Observability Principle
- Lifecycle Conformance Principle
- Image Immutability Principle
- Process Disposability Principle (PDP)
- Self-Containment Principle
- Runtime Confinement Principle
- Principles of Orthogonal
- Cohesion
- Types of Cohesion
- Function Cohesion.
- Sequence Cohesion
- Communication Cohesion
- Procedural Cohesion
- Temporal Cohesion
- Logical Cohesion
- Coincidental Cohesion
- Applying High Cohesion to Software Design
- Coupling
- Types of Coupling
- No Coupling
- Message Coupling
- Data Coupling
- Stamp Coupling (Data-Structured Coupling)
- Control Coupling
- External Coupling
- Common Coupling (Global Coupling)
- Content Coupling (Pathological Coupling)
- Law of Demeter (LoD) or Principle of Least Knowledge
- Applying Loose Coupling to Software Design
- Software Quality Principles
- KISS Principle
- Applying KISS to Software Design
- Don't Repeat Yourself
- Duplication Is Waste
- The DRY Principle in Polylithic and Polyglot Architecture
- How does the DRY principle reduce maintenance costs?
- Isolate
- What do we mean by isolation?
- Isolation in Cloud Native Applications
- Applying Isolation to Software Design
- Separation of Concern
- Applying SoC to Software Design
- Use Layering
- Layering in Traditional Application
- Layering in Cloud Native Application
- Applying Layering to Software Design
- Information Hiding
- Why Information Hiding?
- Applying Information Hiding to Software Design
- You Aren't Gonna Need It
- Idea of YAGNI
- How to Decide What You Need
- SOLID Design Principles
- Single Responsibility Principle
- Applying Single Responsibility to Microservice Design
- Open-Closed Principle
- Applying Open-Closed to Microservices
- Liskov Substitution Principle
- Applying Liskov Substitution to Microservices Design
- Interface Segregation Principle
- Dependency Inversion Principle
- Summary
- Chapter 4: Cloud Native Architecture and Design Patterns
- Evolution of Design Patterns
- What Are Software Patterns?
- Architecture Style, Architecture Pattern, and Design Pattern
- Anti-pattern.
- Cloud Native Data Management Pattern for Microservices
- Event Sourcing Pattern
- Stream
- Event Store
- Command and Query Responsibility Segregation Pattern
- Application Layer Command and Query
- Command and Query in the Database
- Data Partitioning Pattern
- Horizontal Partitioning or Sharding
- Range Based or Interval Partitioning/Sharding
- Hash Partitioning/Sharding
- List Partition
- Round-Robin Partitioning
- Vertical Partitioning
- Data Replication
- Leader-Based or Leader-Followers Replication
- How are the leaders selected?
- Quorum-Based Replication
- Cloud Native API Management Patterns for Microservices
- Idempotent Service Operation
- Optimistic Concurrency Control in API
- Circuit Breaker
- Service Discovery
- Client-Side Discovery Pattern
- Server-Side Discovery Pattern
- Service Versioning
- URI Versioning
- Header Versioning
- Cloud Native Event-Driven Patterns for Microservices
- Asynchronous Nonblocking I/O
- What is synchronous and asynchronous messaging?
- Stream Processing
- Cloud Native Design Pattern for Microservices
- Mediator
- Orchestration
- Strangler Pattern
- Bulkhead Pattern
- How does the bulkhead pattern work?
- Anti-corruption Pattern
- Cloud Native Runtime Pattern for Microservices
- Fail Fast
- Retry
- Sidecar
- Init Containers
- Saga Pattern
- Event Driven and Choreography
- Orchestrator-Based Saga Pattern
- Summary
- Part II: Elements of Cloud Native Architecture and Design
- Chapter 5: Microservices Architecture and Design
- Evolution of Microservices
- What Is a Microservices Architecture?
- Characteristics of Microservices
- Organized Around Business Capabilities
- Autonomous
- Smart Endpoints and Dumb Pipes
- What Is a Service Mesh?
- Smart Endpoints and Dumb Pipes with Service Meshes
- What Is an Event Mesh?
- Resilience in Microservices.
- Resilience Capabilities
- How to Build Resilient Microservices?
- Elasticity in Microservices
- Distributed State
- How to Handle Distributed State with Asynchronous microservices
- Independently Deployable
- Decentralization
- Decentralized Governance
- Decentralized Data
- Automation
- Containerization
- Design for Failure
- How Do You Design a Microservice for Failure and Stability?
- Living Continuous Design
- Self-Healing
- Hexagonal Architecture
- Enterprise Microservices Examples
- Case Study: Trade Finance
- What Is Trade Finance?
- Trade Finance Ecosystem
- Trade Finance Functional Architecture
- Case Study: Collateral Management
- Collateral Management Functional Architecture
- Collateral Management Architecture
- Microservices and User Interface: Micro Front End
- Routing
- Composition
- Communication
- Pros and Cons of Micro Front Ends
- Microservice Architecture in Artificial Intelligence
- AI Subcategories
- Microservices Vertical Components: Speech AI
- Summary
- Chapter 6: Event-Driven Architecture
- Evolution of Event-Driven Architecture
- Tightly Coupled World to Loosely Coupled World
- Message Broker World to Event World
- Event
- Business Events
- Technical Events
- Processing an Event
- Event Handling in Domain Context
- Event Governance
- What Is Event-Driven Architecture?
- How Does Event-Driven Architecture Work?
- Event-Driven Topologies
- Mediator Topology
- Broker Topology
- Choice of Topology
- Characteristics of Event-Driven Architecture
- Event-Driven Messaging Models
- Event Messaging
- Event Streaming
- Event Processing Styles
- Simple Event Processing
- Event Stream Processing
- Complex Event Processing
- Event-Driven Architecture Maturity Model
- Decoupling Use Case by Using Event-Driven Architecture
- Make Data Accessible
- How to Get Events and Make Data Accessible?.