- How does Microsoft Azure work, https://youtu.be/KXkBZCe699A
- Browse Architectures, https://docs.microsoft.com/en-us/azure/architecture/browse/
- Introduction to Containersand Docker
- Choosing Between .NET 5 and .NET Framework for Docker Containers
- Architecting Container and Microservice Based Applications
- Development Process for Docker Based Applications
- Designing and Developing Multi Container and Microservice Based .NET Applications
- Tackling Business Complexity in a Microservice with DDD and CQRS Patterns
- Implementing Resilient Applications
- Securing .NET Microservices and Web Applications
- Key takeaways
Patterns | Summary |
---|---|
Cache-Aside | Load data on demand into a cache from a data store |
CQRS | Segregate operations that read data from operations that update data by using separate interfaces. |
Event Sourcing | Use an append-only store to record the full series of events that describe actions taken on data in a domain. |
Index Table | Create indexes over the fields in data stores that are frequently referenced by queries. |
Materialized View | Generate prepopulated views over the data in one or more data stores when the data isn't ideally formatted for required query operations. |
Sharding | Divide a data store into a set of horizontal partitions or shards. |
Static Content Hosting | Deploy static content to a cloud-based storage service that can deliver them directly to the client. |
Valet Key | Use a token or key that provides clients with restricted direct access to a specific resource or service. |
Patterns | Summary |
---|---|
Ambassador | Create helper services that send network requests on behalf of a consumer service or application. |
Anti-Corruption Layer | Implement a façade or adapter layer between a modern application and a legacy system. |
Backends for Frontends | Create separate backend services to be consumed by specific frontend applications or interfaces. |
CQRS | Segregate operations that read data from operations that update data by using separate interfaces. |
Compute Resource Consolidation | Consolidate multiple tasks or operations into a single computational unit |
External Configuration Store | Move configuration information out of the application deployment package to a centralized location. |
Gateway Aggregation | Use a gateway to aggregate multiple individual requests into a single request. |
Gateway Offloading | Offload shared or specialized service functionality to a gateway proxy. |
Gateway Routing | Route requests to multiple services using a single endpoint. |
Leader Election | Coordinate the actions performed by a collection of collaborating task instances in a distributed application by electing one instance as the leader that assumes responsibility for managing the other instances. |
Pipes and Filters | Break down a task that performs complex processing into a series of separate elements that can be reused. |
Sidecar | Deploy components of an application into a separate process or container to provide isolation and encapsulation. |
Static Content Hosting | Deploy static content to a cloud-based storage service that can deliver them directly to the client. |
Strangler Fig | Incrementally migrate a legacy system by gradually replacing specific pieces of functionality with new applications and services. |
Patterns | Summary |
---|---|
Asynchronous Request-Reply | Decouple backend processing from a frontend host, where backend processing needs to be asynchronous, but the frontend still needs a clear response. |
Claim Check | Split a large message into a claim check and a payload to avoid overwhelming a message bus. |
Choreography | Have each component of the system participate in the decision-making process about the workflow of a business transaction, instead of relying on a central point of control. |
Competing Consumers | Enable multiple concurrent consumers to process messages received on the same messaging channel. |
Pipes and Filters | Break down a task that performs complex processing into a series of separate elements that can be reused. |
Priority Queue | Prioritize requests sent to services so that requests with a higher priority are received and processed more quickly than those with a lower priority. |
Publisher-Subscriber | Enable an application to announce events to multiple interested consumers asynchronously, without coupling the senders to the receivers. |
Queue-Based Load Leveling | Use a queue that acts as a buffer between a task and a service that it invokes in order to smooth intermittent heavy loads. |
Scheduler Agent Supervisor | Coordinate a set of actions across a distributed set of services and other remote resources. |
Sequential Convoy | Process a set of related messages in a defined order, without blocking processing of other groups of messages. |