936 formations: TIC

SBM

Architecting microservices and cross platform apps in .NET 5 on Azure

  • par SBM

Word Future Proof microservices Software Architect .NET5 - Software Architect van de 3de generatie!

We passen in de opleiding Azure Devops toe als source control, build en release omgeving waarin de te bouwen code vanuit SCRUM planning ontwikkeld zal worden. Daabij staan we stil bij verschillende branching/merging strategieën en zetten de verschillende deployment omgevingen op in Azure en dit zowel met en als zonder Docker.

Daarnaast is er ook aandacht voor SOLID C# ontwikkeling en worden nieuwe C#9.0 taalelementen voor het programmeren van clean code behandeld. Het IOC patroon wordt terug bekeken vanuit de .NET services container invalshoek waarbij we de vraag stellen of een externe ICO container nog nodig is.

Een terugkerende gedachtegang in de opleiding is dat we steeds de pro’s en con’s van een bepaalde technologie of patroon naast elkaar zetten om zo binnen een specifieke context een doordachte en correcte keuze te maken.

In deze opleiding kijken we ook af en toe naar nieuwe technologie en architectuur patronen.  Hoe matuur deze zijn en wat ze als voordeel kunnen bieden op lange termijn. We onderzoeken wat bv. gRPC als alternatief voor REST API’s kan betekenen.

Ook is het zinvol om alternatieven voor reeds gekende en toegepaste technologieën van naderbij te bekijken. We stellen ons bv. de vraag waarom Git eventueel beter is dat TFSC source control bij complexere applicaties.

Inhoudelijk is alles doorweven met best practices die vanuit de praktijkervaring van de trainer zijn opgedaan. Dit resulteert in een bruikbare en duidelijke guidance naar standaardisatie van coderichtlijnen, het verhogen van loosely coupling en een manier voor efficiënte samenwerking in het development team.

Ten slotte bekijken we ook de kost van hosting en ontwikkeling. Het is immers ook een verantwoordelijkheid van de architect om de kostprijs van de softwareontwikkeling te begroten en te beheersen tijdens de uitvoering van de project. En tevens het evenwicht te behouden met de gecreëerde business value ism de opdrachtgever. Hier zien we dat een Linux hosting heel wat goedkoper is en dat de mogelijkheid om een browser applicatie volledig in de vertrouwde .NET omgeving te maken (waardoor geen investering in aanleren TypeScript/Angular) de ontwikkelkost sterk verlaagd.

 

Module 1: .Net 5.0

 

  • What is er nieuw in .Net 5.0
  • Migratie vanuit .NET Core 3.x
  • Cross platform aspecten.
  • Self containing executables
  • IServiceCollection
  • De StartUp Class
  • Configuratie Modellen
  • HTTP Middleware

 

Module 2:  Microservices Design

 

  • Hoe microservices designen ?
  • CAP Theorem
  • Business driven approach
  • Migreren van bestaande monolitische database
  • Messaging bus contracten definieren
  • Gelaagdheid van API’s
  • Semantic versioning an API’s
  • Commands/Queries/Events

 

Module 3: REST API’s + Open API specification

 

  • REST Principles
  • Type vs. untyped methods in controllers
  • Code first vs. Open API specification first.
  • Code generatie (NSwag)
  • Unit of work patterns in API’s.
  • Een vooruitblik op gRPC als alternatief
  • GraphQL based API’s.

 

Module 4: oAuth Authenticatie (Azure Active Directory/IdentityServer)

 

  • Single sign on principles
  • oAuth/Open ID Connect
  • JWT tokens en claims
  • 2FA Authentication
  • Authentication flows (SPA, Mobile, Machine-to-machine)
  • Opzetten Identity Server 4.0
  • Opzetten Azure Active Directory (B2B, B2C)
  • External identities

 

Module 5: API Resiliency, Health monitoring

 

  • Resiliency Patterns (Retry, Bulkhead Isolation, Circuit breaker)
  • Logging
  • Polly als resiliency framework toepassen
  • Health monitoring API’s
  • Kubernetes als monitoring platform.

 

Module 6: BFF/API Gateways

 

  • Service Discovery patterns
  • Onafhankelijk ts. Client en API via BFF
  • Design van Backend-for-frontend web API’s.
  • De nood voor API Gateways
  • Consul, Azure API management, KONG

 

Module 7: Azure ServiceBus/RabbitMQ

 

  • Asynchrone messaging voor data uitwisseling tussen microservices
  • Pub/Sub patronen
  • Topic/Filters
  • Cloud based messaging vs. RabbitMQ
  • RabbitMQ in een docker container opzetten.

 

Module 8: Advanced Microservices Patterns

 

  • CQRS
  • Event Sourcing
  • Transactional Outbox
  • Caching (Redis cache in container)
  • Sagas

 

Module 9: Azure Devops

 

  • Git based source control
  • Feature branches en Pull Request
  • CI/CD Pipelines opzette.
  • Infrastructure as code
  • Release management

 

Module 10: Docker/Kubernetes deployment op Azure

 

  • Windows vs. Linux containers
  • 3th party containers in dockerhub Database
  • Multi stage builds
  • Docker en Docker Compose files opzetten
  • Docker file share en networking
  • Azure Container registry
  • Docker image als Azure App Service opzetten.
  • Intro Azure Kubernetes Services

 

Alle bovenstaande modules komen niet noodzakelijkerwijs in deze volgorde aan bod, maar geven hierbij wel een gedetailleerde inhoud terug van wat u in deze opleiding mag verwachten.

Bij aanvang van elke sessie zullen de deelnemers toegang krijgen tot de uitgewerkte oplossing van de vorige sessie. Zo kan iedereen steeds terug instappen en gaat er geen tijd verloren tijdens de opleiding.


Software architecten die nood hebben aan een &, 39;upgrade&, 39; van hun kennis naar de meest recente technologie met als doel een nieuwe microservices referentie Software Arhitectuur in .NET 5 op te bouwen en hiervoor zelf de tijd niet hebben om dit autonoom te realiseren. Deze opleiding biedt ze alle kennis en inzichten voor deze &, 39;kennis&, 39; migratie naar deze nieuwe microservices referentie Software Architectuur.

Lead Developers die willen doorgroeien naar architecten rol waarbij van hen verwacht wordt dat zij de nieuwe generatie applicaties ontwerpen (gebaseerd op deze nieuwe microservices referentie Software Architectuur in .NET 5). Deze applicaties dienen snel en efficiënt inzetbaar en aanpasbaar te zijn en uiteraard perfect afgestemd te blijven op continue wijzigende business vereisten. Op basis hiervan kan de lead Developer de nodige guidance/richtlijnen voor zijn team opstellen, zodanig dat iedereen deze referentie Software Architectuur op dezelfde wijze gaat toepassen.

Iedere developer die deze nieuwe nieuwe microservices referentie Software Arhitectuur en bijhorende technologieën/patronen wil leren kennen vanuit de noodzaak om binnenkort niet achter te blijven met een &, 39;legacy applicaties die gebaseerd zijn op een verouderde monolithische Architectuur&, 39;.

Enseignants

Kurt Claeys