09:00 - 17:00 (UTC+01)
Building and testing resilient services
Users' patience with services not working is gradually decreasing as the quality of services online is improving. With current trends of moving services to the cloud and building smaller and network-intensive services, meeting these expectations can be challenging for us developers. We want to be able to build services that we can run confidently despite partial failures and outages.
In this workshop, you will learn how to simulate latency and failures in your web application and how to add strategies to deal with this. We will learn how changing the different parameters change the behavior of our application under load, and what trade-offs we ultimately must make.
We will start with introducing Polly, a resiliency and transient-fault-handling library for .NET applications.
We will then move on to using k6 for load testing a .NET Core web API. For resiliency strategies, we will use Polly and we will use Simmy for fault injection. This is red-green testing, but for performance and resiliency. As you work through the challenges, you will learn about service level indicators, service level objectives, and how to formulate and test such requirements. We will also work on some .NET specifics that we need to master regarding asynchronous programming to make sure the mechanisms work as intended.
In the last part of the workshop, we will focus on writing high-level tests in k6. We will share some of our experiences with such tests, and a simple process to help ensure system-level reliability and organizational coordination. You will gain a better understanding of k6, and reflect about some of the non-technical challenges of building reliable systems.
There are no prerequisites for the workshop, but you should have some experience building web applications to get the most out of the workshop. The workshop should be valuable to developers, testers and architects working with or with an interest in robustness and scalability.