Skip to content

Development Environment with Aspire #479

Description

@gingters

This relates to RelayServer v3, which is currently still in the feature/dotnet-core branch.

.NET Aspire could be a good enhancement for our Dev-environment.
The dev- and test environment is defined in src/docker, with a docker-compose.yml file.

This currently spins up:

  • 2 RabbitMQ nodes, clustered
  • 1 PostgreSQL database
    optional: 1 MSSQL Server, as we also support this
  • 1 Keycloak identity provider
  • 1 Seq server for viewing logs from all of our services
  • 1 startup-container that performs DB migrations (same docker image as RelayServer, just run with additional parameters, and shuts down after migration)
  • 1 Management API (ASP.NET Core project)
  • 1 startup-container that performs seeding of data via the management api (makes HTTP request and shuts down)
  • 2 RelayServer instances
  • 4 Connector instances, that connect to the relayserver

The Database -> Migration (needs db) -> Management API (needs migrated db) -> seed (needs management API) steps for initial setup were tricky to set up with compose; maybe this is easier with Aspire, too.

RelayServer, Management API and Connectors are all ASP.NET projects with their own dockerfile (a bit adjusted from the template).

The Aspire Dashboard could replace the Seq instance and also provide additional overview over Rabbit, the database and maybe even Keycloak if that supports OTel).

We currently don't have OTel gathering enabled in our example RelayServer, Management API and Connector projects, but this could hopefully be added too.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions