1 Getting Started with Distributed Systems and Aspire
This chapter covers
- Distributed applications and the challenges they face
- The concept of an orchestrator inside distributed applications
- Overview of Aspire (formerly known as .NET Aspire)
- Using service discovery in Aspire
Running one application is easy. Running an application made from several independently executing parts is rather more difficult.
Consider an online shopping system. Such a system couldn’t function if it were just a simple website. It has many moving parts. Its storefront needs a catalogue API. The catalogue API will eventually need a database and a distributed cache. Checkout will publish messages to a broker, background services will process orders, and every component will produce logs, traces, and metrics.
In production, these parts work together as one system. On a development machine, however, they often have to be started separately. Each resource needs the correct configuration. Services need to know where their dependencies are running. Containers need ports and volumes. One service may start before another is ready. When something fails, its logs may be hidden in one of several terminal windows.
If you are a .NET developer, then there’s a tool that solves this major pain point of cloud application development. It’s called Aspire (formerly known as .NET Aspire).