Helion


Szczegóły ebooka

Distributed .NET with Microsoft Orleans

Distributed .NET with Microsoft Orleans


Building distributed applications in this modern era can be a tedious task as customers expect high availability, high performance, and improved resilience. With the help of this book, you'll discover how you can harness the power of Microsoft Orleans to build impressive distributed applications.

Distributed .NET with Microsoft Orleans will demonstrate how to leverage Orleans to build highly scalable distributed applications step by step in the least possible time and with minimum effort. You'll explore some of the key concepts of Microsoft Orleans, including the Orleans programming model, runtime, virtual actors, hosting, and deployment. As you advance, you'll become well-versed with important Orleans assets such as grains, silos, timers, and persistence. Throughout the book, you'll create a distributed application by adding key components to the application as you progress through each chapter and explore them in detail.

By the end of this book, you'll have developed the confidence and skills required to build distributed applications using Microsoft Orleans and deploy them in Microsoft Azure.

  • Distributed .NET with Microsoft Orleans
  • Contributors
  • About the authors
  • About the reviewers
  • Preface
    • Who this book is for
    • What this book covers
    • To get the most out of this book
    • Download the example code files
    • Download the color images
    • Conventions used
    • Get in touch
    • Share Your Thoughts
  • Section 1 - Distributed Applications Architecture
  • Chapter 1: An Introduction to Distributed Applications
    • Technical requirements
    • Monolithic applications versus distributed applications
      • Common issues with monolithic apps
      • N-tier distributed applications
    • Challenges with distributed applications
      • Design and implementation
      • Data management
      • Messaging
    • Designing applications for scalability
      • Vertical scaling or scaling up
      • Horizontal scaling or scaling out
      • Load balancers
      • Caching
      • Distributed caching
      • Sharding
    • Designing applications for high availability
      • Azure data centers
      • Azure regions
      • Azure paired regions
      • Azure Traffic Manager
      • Availability sets and availability zones
      • SQL Always On availability groups
      • Architecture for high availability
    • Summary
    • Questions
  • Chapter 2: Cloud Architecture and Patterns for Distributed Applications
    • Technical requirements
    • A primer on common design principles
      • Design principles
    • Understanding cloud architecture styles
      • Microservices architecture
      • Event-driven architecture
    • Understanding cloud design patterns
      • The gateway aggregation pattern
      • The CQRS pattern
      • The cache-aside pattern
      • The priority queue pattern
      • The external configuration store pattern
      • The pipes and filters pattern
    • Summary
    • Questions
  • Section 2 - Working with Microsoft Orleans
  • Chapter 3: Introduction to Microsoft Orleans
    • Understanding the actor model for distributed systems
    • The origin of Microsoft Orleans
    • The Orleans runtime
      • The messaging system
      • The hosting system
      • The execution system
    • Orleans design choices
      • Serialization
      • Strong isolation
      • Asynchrony
      • The distributed directory
      • Eventual consistency
      • Message guarantees
      • Reliability
      • Cooperative multitasking
      • Single threading
    • Why should I learn about Orleans?
    • When to choose Orleans
    • Summary
    • Questions
  • Chapter 4: Understanding Grains and Silos
    • Technical requirements
    • Say hello to Orleans
      • Cloud-native objects grains
      • Hosting silos
    • Creating your first Orleans application
      • What is happening behind the scenes?
    • Naming a grain
    • Stateless worker grains
    • Request scheduling in Orleans
      • Interleaving grain code execution
    • Co-hosting silos with ASP.NET core
    • Summary
    • Questions
  • Chapter 5: Persistence in Grains
    • Technical requirements
    • Understanding grain state persistence
      • Adding grain state persistence using Azure Cosmos DB
    • Custom persistence provider
    • Grains with multiple states
    • Grains directly interacting with storage
    • Summary
    • Further reading
    • Questions
  • Chapter 6: Scheduling and Notifying in Orleans
    • Technical requirements
    • Understanding and implementing timers
      • Implementing a timer in a HotelGrain
    • Understanding and implementing reminders
      • Configuration
      • Implementing reminders in a grain
    • Understanding and implementing notifications
      • Implementing notifications in a grain
    • Summary
    • Questions
  • Chapter 7: Engineering Fundamentals in Orleans
    • Technical requirements
    • Setting up the Orleans dashboard
      • Dashboard features
      • Dashboard APIs
      • Silo Stats
    • Understanding unit testing in Orleans
    • Adding real-time telemetry
      • Enabling application logging in Application Insights
    • Summary
    • Questions
  • Section 3 - Building Patterns in Orleans
  • Chapter 8: Advanced Concepts in Orleans
    • Technical requirements
    • Streaming in Orleans
      • Implicit subscriptions
    • Looking into heterogeneous silos
    • Understanding grain interface versioning
      • Grain activation with versions
      • How to deploy new versions of grains
    • Summary
    • Questions
  • Chapter 9: Design Patterns in Orleans
    • Technical requirements
    • Distributed cache
    • Batch message processing with Dispatcher
    • Cadence with timers
    • Aggregating with the Reduce pattern
    • Summary
    • Questions
  • Section 4 - Hosting and Deploying Orleans Applications to Azure
  • Chapter 10: Deploying an Orleans Application in Azure Kubernetes
    • Technical requirements
    • Understanding Azure Kubernetes
      • Steps to run an Orleans application in Azure Kubernetes
    • Leveraging Azure Kubernetes hosting
    • Creating a Docker image
    • Pushing the Docker image to Azure Container Registry
    • Deploying to Azure Kubernetes
    • Summary
    • Questions
    • Further reading
  • Chapter 11: Deploying an Orleans Application to Azure App Service
    • Technical requirements
    • Introduction to Azure App Service
      • What is included in an App Service plan?
    • Creating the required Azure resources
    • Configuring the application to run on App Service
      • Geographically distributing the application
    • Deploying an Orleans application to App Service
    • Summary
    • Questions
    • Why subscribe?
  • Other Books You May Enjoy
    • Packt is searching for authors like you