"Building Future-Ready Apps with .NET 8 and Azure Serverless Ecosystem", Stanislav Lebedenko.pdf

fwdays 194 views 35 slides Jul 20, 2024
Slide 1
Slide 1 of 35
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35

About This Presentation

.NET 8 brought a lot of improvements for developers and maturity to the Azure serverless container ecosystem. So, this talk will cover these changes and explain how you can apply them to your projects. Another reason for this talk is the re-invention of Serverless from a DevOps perspective as a Plat...


Slide Content

Building Future-Ready Apps:
.NET 8 and Azure Serverless Ecosystem
Stanislav Lebedenko
Cloud architect @Solidify

■20+ years in TECH
■Microsoft Azure MVP
■Cloud architect & MCT
■#MSUGODUA & IT2SCHOOL
■Mentor and Engineer
■Working @Solidify AB
■Have different perspective
■Your friend and neighbor :)
BIO

Agenda
1.Bigger picture
2..NET 8 maturity
3.Azure Container Apps maturity
4.Azure functions maturity
5.App platform maturity
6.Summary and obstacles

Bigger picture

Bigger picture

Responsibilities

Comfort zone

.NET Maturity

Native ahead-of-time compilation

Native resilience

.NET Aspire

Integration testing -.NET Aspire

Integration testing -Testcontainers

Container maturity

Chiseled containers

Azure Container Apps (ACA)

ACA sample architecture

■Developer centric
■No DevOps overhead
■Fast time-to-market
■No vendor lock*
■DAPR/KEDA/Envoy powered
■Perfect abstraction over K8s
■Operation centric
■Orchestration problem
■Patching problem
■Security hardening
■Complex network
■CPU/Memory/GPU intensive apps
Azure Container Apps vs Kubernetes
Serverless Kubernetes

Element Description
Plans Consumption -serverless with instance size limit
Dedicated -fully managed with CPU/Memory/GPU optimized compute
Environment (VNet) Two types -Workload profiles and Consumption (internal/public)
Provides secure network boundary around apps and jobs.
Containers Linux-based x86-64, app revisions, sidecars in single app, init containers, job templates
Revisions Immutable, versioned, historical revisions, multiple revisions concurrent run, blue/green
Jobs Single unit-of-work with finite duration, manual/scheduled/event based start
Network Limited auto VNet, full functionality with existing VNet + Dedicated environment
Resiliency Timeouts, Retries, Circuit breakers, Connection pools
Replica (K8s Pod) Instance of microservice or Kubernetes Pod
ACA key elements

ACA/DAPR Resiliency

ACA Dapr pubsub component Kubernetes Dapr pubsub component
Manifest difference

■Containerizing legacy IIS apps
■Lifting Actors to cloud
■New service for existing solution
■Downgrade with simple integrations
■Batch jobs with complex workloads
■Lifting CPU/Memory heavy Functions
■Cheap dev/stage environments
■Portability to other clouds/platforms
Scenarios

Future

Functions maturity

■Isolated worker model only from 2026
■New Flex Consumption plan
Network, instance size & concurrency
■<PublishReadyToRun>true</PublishReadyToRun>
<PublishAot>true</PublishAot>
■Functions on Container Apps
■DAPR triggers only for ACA and K8s
■Unification of .NET app boilerplate
■Functions scaler intro to App Service
Azure Functions

Isolated worker startup

Roadmap

App platform maturity

Radius project –Platform abstraction

Demo

■Developer centric .NET tool
■Using specific dependencies
■For building distributed .NET apps
■Apps Integration testing
■Lessons from .NET Tyeproject
■One Visual Studio to rule them all
■Platform engineer centric
■Abstracting dependencies
■Defining platform setup
■Cloud agnostic
■BICEP as language
■Templates & guardrails
Aspire vs Radius
.NET Aspire Radius project

Summary and obstacles

Serverless containers

Bigger picture

Thank you!
LinkedInTwitterGitHub