Skip to content

Commit d8230ac

Browse files
committed
new post in the ahead.dockerized series
1 parent 0bb48cb commit d8230ac

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

public/assets/cloud-agnostic-1.png

50.9 KB
Loading
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: "Cloud Agnostic - introducing the AheadDockerized .NET Solution"
3+
slug: cloud-agnostic-1
4+
tags: [software-development, dotnet, web, azure]
5+
date: 2025-04-06 21:30:00
6+
topic: "azure-ahead"
7+
---
8+
9+
<TopicToc topicId="azure-ahead" active="Cloud Agnostic - introducing the AheadDockerized .NET Solution" />
10+
11+
Let's quickly revisit where we're coming from—and where we’re headed:
12+
13+
### Keep using as much code as possible from the azure-based product ahead
14+
15+
The existing code is split into multiple C# projects and the single page application frontend,
16+
a frontend built with Next.js and pre-rendered into static pages.
17+
The following posts won't cover the frontend - we assume that, given the same endpoints as today,
18+
it will keep working no matter where the backend code is hosted.
19+
20+
### Reduce dependencies on platform-as-a-service offerings from azure as much as possible to allow running ahead on EU servers offered by EU legal entities
21+
22+
As previously established, there is currently no alternative with the same breadth and depth of service offerings
23+
as the big US cloud platforms. So what we will have to do is to lean heavily into **containerization**.
24+
In Europe, providers can be found that will offer hosting containers, or [managed Kubernetes environments][1].
25+
While this adds a layer of complexity in terms of managing scalability, roll out upgrades and related operational tasks,
26+
it results in a more cloud-agnostic product.
27+
28+
### How is the proof of concept built?
29+
30+
Setting up a _cloud native_ .NET application today means that one must take a look at [Aspire][2].
31+
According to Microsoft
32+
33+
> .NET Aspire improves the experience of building apps that have a variety of projects and resources.
34+
> With dev-time productivity enhancements that emulate deployed scenarios, you can quickly develop
35+
> interconnected apps.
36+
37+
As the second, implicit, mission of the proof-of-concept (PoC) being built is to let me learn about how dotnet has advanced as a platform
38+
in the past years (evolving a product that earns money means you can't always throw the newest and shiniest at it) and as Aspire
39+
promises a great local development experience, which is ideal for a PoC,
40+
it seemed a natural choice to describe the solution and its dependencies with the aid of Aspire.
41+
42+
<Info icon={false}>
43+
If you want to know more about what Aspire aspires to be (those puns are impossible to avoid), David Fowler,
44+
who is leading the effort at Microsoft, has [been][4] [writing][5] [about][6] [it][7].
45+
</Info>
46+
47+
The basic structure of the solution (which you can [find here on github][3]) looks like this:
48+
49+
![Screenshot of the solution structure of AheadDockerized](/assets/cloud-agnostic-1.png)
50+
51+
* The **Web** project represents the user-facing process with web pages and endpoints.
52+
* The **Backend** project is the process that will handle asynchronous workloads
53+
* The **AppHost** project contains the code that is Aspire-specific and gives us the capability to have a local
54+
(i.e. developer machine) representation of how the different pieces of the solution interact with each other.
55+
56+
The next post will look at how we can go about replacing the *Azure Blob Storage* dependency.
57+
58+
[1]: https://european-alternatives.eu/category/cloud-computing-platforms
59+
[2]: https://learn.microsoft.com/en-us/dotnet/aspire/get-started/aspire-overview
60+
[3]: https://github.com/flq/ahead-dockerized
61+
[4]: https://medium.com/@davidfowl/bridging-the-gap-the-future-of-aspire-6eb421a92ab8
62+
[5]: https://medium.com/@davidfowl/making-software-like-lego-how-aspire-brings-the-pieces-together-d6a99c2c4cde
63+
[6]: https://medium.com/@davidfowl/aspire-a-platform-for-reusable-infrastructure-3a15582f8a5a
64+
[7]: https://medium.com/@davidfowl/the-aspire-compiler-f8ccdf4bca0c

0 commit comments

Comments
 (0)