Welcome to Orleans, a virtual actor framework from Microsoft that allows a single developer to create immensely scalable, available applications while maintaining a high throughput. This guide is designed to give you a foundational understanding of Orleans, an overview of its implementations, and plenty of hands-on coding experience. Side-by-side monolithic and microservice patterns alongside Orleans' framework features are also discussed, to help readers without an actor model background understand how they can enhance applications.
Author Nelson's approach is to introduce patterns as needed for business requirements, including monolithic microservices and to convert monolithic to microservices, in order to keep a microservice from growing into a monolithic application. Orleans is a good choice for either of these scenarios as the next step to build your backend services and reduce unnecessary orchestration, overhead, and tooling.
The Orleans framework was designed to handle tedious overhead, allowing the developer to focus on the solution. You will learn how Orleans can support billions of virtually parallel transactions while sustaining low latency and high availability. In addition, you will glimpse under the hood at Orleans to discover its useful attributes. All key learning points include hands-on coding examples to reinforce understanding.
This book goes beyond what Orleans is to explain where it fits within the realm of development. You will gain an in-depth understanding to build a foundation for future growth.
What You Will Learn
- Understand how Orleans can benefit your monolithic and/or microservice applications
- Gain a brief overview of actor models and how they relate to Orleans
- Observe the design patterns and how Orleans can simplify or reduce tooling requirements
- Know the pros and cons of microservices and Orleans to determine the best course of action based on the needs of an application
- Discover Orleans' design patterns and practices, including life cycle, messaging guarantees, cluster management, streams, load balancing, and more
- Build your first Orleans' application; build base knowledge of application structure, unit testing, dashboard, scheduled events
This book is for developers. A basic understanding of .NET development and an understanding of service concepts is helpful. Readers will need a connection to download Nuget packages and a code editor (Community Edition Visual Studio or VS Code).
Thomas Nelson, a Lead Cloud Architect and a Microsoft Certified Azure Solutions Architect Expert, has worked in several technical fields spanning from the graphic design of websites to development and architecture. During his 10 years of backend development, his interest has gravitated towards DevSecOps and automation. He enjoys teaching others and is often found at local meetups presenting various technologies, patterns, and software examples. He is thrilled to be using Orleans and considers it one of those wonderful and valuable frameworks that should be in the tool kit of every architect and backend developer. Also, he is pleased to have graduated from monolithic and microservice systems to build cloud-native solutions, including actor model backends. He has an associate's degree in Graphic Design, bachelor's degree in Computer Information Systems, and is currently attending Harvard Extension pursuing his master's degree in Information Management Systems.
Autorentext
Thomas Nelson, a Lead Cloud Architect and a Microsoft Certified Azure Solutions Architect Expert, has worked in several technical fields spanning from the graphic design of websites to development and architecture. During his 10 years of backend development, his interest has gravitated towards DevSecOps and automation. He enjoys teaching others and is often found at local meetups presenting various technologies, patterns, and software examples. He is thrilled to be using Orleans and considers it one of those wonderful and valuable frameworks that should be in the tool kit of every architect and backend developer. Also, he is pleased to have graduated from monolithic and microservice systems to build cloud-native solutions, including actor model backends. He has an associate's degree in Graphic Design, bachelor's degree in Computer Information Systems, and is currently attending Harvard Extension pursuing his master's degree in Information Management Systems.
Inhalt
Chapter 1: A Primer on Microsoft Orleans and Actor Models
Goal: This chapter will describe the reasons Orleans was created, it's background, and why it is a better mousetrap (Better use of Actor Model pattern).
1.1 Origins of Orleans
1.2 Actor Models Brief History
1.3 Differences between Actor Models and Orleans (Virtual Actors/Grains)
1.4 Production uses and history
Chapter 2: Introducing Microsoft Orleans
Goal: Orleans intrinsically makes cloud development easier.
2.1 Cloud native, highly-elastic, highly-available, created by single dev
2.2 Common uses of fabric services
2.3 Single developer can create and maintain
2.4 Community and constant advancements
2.5 Cloud/Server agnostic2.6 Resource Management and expansion
2.7 Failover
2.8 Streaming
2.9 Persistence
2.10 Cache
Chapter 3: Lifecycle
Goal: An in-depth understanding of the Orleans framework anatomy.
3.1 Nuget packages
3.2 Silos
3.3 Grains
3.4 Interfaces
3.5 Database handling
3.6 Clusters
3.7 Lifecycle
Chapter 4: Comparing Monolithic, Traditional Micro-services (3 tier) and Orleans (Can be broken into several chapters)
Goal: Compare MS Orleans fabric with 3-tier microservice models and monolithic applications which supports the developer with technology decisions
Orleans is a strong framework, however like any tool it has its place. This chapter compares when Orleans, Micro-services, and monolithic applications should be chosen based on the project requirements.
4.1 General Comparison
4.2 Elasticity/Availability comparison
4.4 Business logic complexity4.5 Transaction time
4.6 Deployment
Chapter 5: Build Your first Orleans application
Goal: Learn how to debug an Orleans application and how two ways to connect with the Orleans backend.
5.1 API/Service Connectivity to Orleans
5.2 Debugging process
5.3 Orleans Dashboard
Chapter 6: Build a Smart-cache Application
Goal: Learn how to create a "smart-cache" application. Since Orleans' grains are instantiated in RAM, an architectural pattern can use grains to temporarily store -or cache-responses.
6.1 Diagram
6.2 Code walkthrough
Chapter 7: Persistent Data/Transactions or stream sets or MQ connectivity (depends on the better topic, or both)
Goal: learn how to create a persistent data grain or stream sets
7.1 Diagram
7.2 Code walkthrough
Chapter 8: Production Ready Deployment
Goal: We will learn how and why to split the project into separate projects for enterprise deployment
8.1 Separation of concerns (nuget Interface and silo separated from grains)
8.2 Reasons for each
8.3 How to maintain
Chapter 9: CI/CD Deployment in Azure DevOps (This may be talked about with images rather than a walkthrough due to having to explain devops principles, tools, accounts, agents, etc.)
Goal: Set up a pipeline to deploy your Orleans application
9.1 Rolling update logic explained
9.2 Create a build pipeline
9.…