Crafting Cloud friendly or Cloud native system or ecosystem is hard. We need to shift our mind on many topics, changing the way we articulate our code base, coping with a lot of new things - such as resilience, observability, authentication, failure - and all of those devops stuff we are not used to. Last but not least, we have to manage a compelling stack we can daily exercise. It often ends up with scripts, helpers, hacks and more. And eventually, it becomes both hard to operate and maintain. And it is not that portable… And at the end of the day, it is not our job. We are building application, not pipeline or engine. Microsoft luckily made the same journey and recently beta released .NET Aspire, the next Big Thing.
Core
.NET Aspire is designed to improve the experience of building .NET cloud-native apps. It provides a consistent, opinionated set of tools and patterns that help you build and run distributed apps. .NET Aspire is designed to help you with:
- Orchestration:
.NET Aspire
provides features for running and connecting multi-project applications and their dependencies, including service discovery, network management and stack monitoring. - Components:
.NET Aspire
components are NuGet packages for commonly used services, such asRedis
orPostgres
, with standardized interfaces ensuring they connect consistently and seamlessly with your app. It also means extensibility for outsiders to plug their own application or languages. - Ready to use:
.NET Aspire
provides built-in support forOTEL
, healthcheck, service default, … All stuff you should probably deal with early in the project lifecycle if you like peacefully living.
Why you should probably look at…
You have a sizable ecosystem to deploy and you’d like to decrease your mental load. Memorizing all those endpoints addresses, as well as logs location, executables status, and how to diagnose the whole when something fails..
Why not tasting .NET Aspire
orchestration facility through its dashboard to really focus on what matters?
You have an heterogenous stack to deploy involving executables, source and containers, and you’re becoming crazy with port forwarding, localhost
dissociative identity disorder, without speaking about juggling between docker engine, VPN and plain old executables.
Why not leveraging .NET Aspire
to shape your deployment once for all and then forget about all of this?
You’re aware even interested about those trendy things like O11y
, Oauth 2.0
but because you cannot exercise them easily and daily you forget about them.
Why not testing .NET Aspire
OpenTelemetry stack and see how it can drastically decrease your diagnostic loop?
You are tired of the discrepancy between local and remote. Because everything works but doesn’t scale. Or scales but doesn’t work anymore.. You’d like a remote siblings but stays local.
Why not using .NET Aspire
built-in components to gently scale?
You are afraid of how demanding the scaling process in term of tech seems to be (docker, compose, kubernetes, helm) and you’re right.
Why not trusting .NET Aspire
to auto-generate docker
compose or kubernetes
manifests for you instead?
You are not a .NET
developer - no worries, everyone cannot be that lucky - and would like to benefit from a sustainable developer experience.
Why not engaging with .NET Aspire
and see how a couple of C#
lines can change your daily life?
You are a .NET
developer and you want to develop the way it should be.
No why not there, .NET Aspire
is a no brainer.
If you recognized yourself above, I do advocate giving .NET Aspire
a try. It’s worth it.