|
| 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 | + |
| 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