Modernisering af applikationer behøver ikke være en byrde – det er nu enklere end nogensinde: Del 3

Tættere relation mellem applikationsmodernisering, cloud og DevOps.

Et vigtigt element i applikationsmodernisering, er behovet for DevOps-processer og Cloud IaC (Infrastructure as Code). Det kan lyde voldsomt, men der er mening med den tætte relation. Her vil jeg nævne nogle elementer omkring denne relation:

Automatisering og konsistent

IaC (Infrastructure as Code) spiller en afgørende rolle i at understøtte anstrengelserne inden for anvendelsesmodernisering ved at tilbyde en måde at automatisere provisionering og konfiguration af den underliggende infrastruktur på. Dette sikrer konsistent infrastruktur på tværs af forskellige miljøer, og reducerer risikoen for konfigurations afvigelser. Den anvendes til udvikling af flere konsistente miljøer, såsom udviklings-, test- og produktionsmiljøer.

Bedre oppetid: Ved at basere ændringer på kode, der er rullet ud gennem en struktureret proces, hvor en kollega har godkendt ændringer, opnår I bedre kvalitet i koden. Hvis det alligevel går galt, er det nemmere at rette fejl ved at rulle tilbage til den tidligere version.

Skalerbarhed og Fleksibilitet

Moderniserede applikationer kræver ofte en fleksibel og skalerbar infrastruktur. IaC tillader organisationer nemt at skalere deres infrastruktur op eller ned baseret på applikationskrav, hvilket muliggør et mere smidigt og responsivt miljø.

Samarbejde og DevOps

Både applikationsmodernisering og IaC er tæt knyttet til DevOps-praksisser. Ved at bruge IaC og versionsstyring for applikationskoden kan udviklings- og driftsteams samarbejde mere effektivt, hvilket muliggør kontinuerlig integration og levering CI/CD-pipelines. Dette fremskynder moderniseringsprocessen og sikrer, at ændringer i både applikationer og infrastruktur implementeres problemfrit. Ved at have en struktureret versionsstyring opnås bedre sporbarhed, historik og mulighed for samtidig udvikling, dette er afgørende for et vellykket og smidigt udviklingsmiljø.

Ressourceoptimering

IaC hjælper med at optimere ressourceforbruget ved at give organisationer mulighed for at definere og styre infrastrukturrelaterede ressourcer programmatiske. Dette harmonerer med målene for anvendelsesmodernisering, hvor effektivitet og omkostningseffektivitet er nøgleovervejelser.

Understøttelse af Cloud og Hybridmiljøer

Når organisationer moderniserer deres applikationer, benytter de sig ofte af cloud-tjenester. IaC er velegnet til at administrere infrastruktur i cloud- og hybridmiljøer og giver en konsistent tilgang til distribution og styring af ressourcer på forskellige platforme.

Sammenfattende er IaC og anvendelsesmodernisering sammenkoblede komponenter i en bredere strategi for at forbedre IT-kapaciteterne. IaC understøtter målene for anvendelsesmodernisering ved at levere den nødvendige automatisering og konsistens til effektiv styring af den underliggende infrastruktur.

Hvilke cloud teknologi skal jeg vælge til min applikationer?

AKS (Azure Kubernetes Service), Web App Service Container, Web App Service native, Container Apps, Azure Functions, og mange andre - det er jo en jungle af services, så hvilken skal jeg vælge til min applikation? Vi hører ofte fra kunder om udfordringen ved at vælge den rigtige løsning.

Med flere års erfaring inden for forskellige løsninger kan vi rådgive og vejlede om valg af arkitektur og løsning. For eksempel vælger mange AKS-løsningen på grund af dens skalerbarhed, men AKS er ikke altid let at vedligeholde for udviklere. Derfor kan en løsning som Container App være et fornuftigt valg, til at bygge noget der er skalerbart og nemt at drive.

Vi er klar over, at valget af den rigtige service kan påvirke både ydeevnen og vedligeholdelsen af din applikation. Derfor står vi til rådighed for at hjælpe med at identificere den mest hensigtsmæssige løsning baseret på dine specifikke behov og krav.

Hvad ved dine udviklere om cloud-teknologi?

En afgørende faktor for cloud transformation og applikationsmodernisering er typisk viden og eller erfaring hos eksisterende udviklerteams.

Cloud transformation og applikationsmodernisering behøver ikke være en sort/hvid løsning. I nogle tilfælde har virksomheden allerede en kodebase, der er moderne, men måske ikke nødvendigvis klar til cloud på grund af manglende viden om hvordan man kan afvikle applikationen i cloud. Dette kan relativt hurtigt gøres, hvor vi kan bringe den nødvendige viden til teamet, så de selv kan varetage den videre kodevedligeholdelse og det, de er gode til.

Et andet eksempel kunne være, at virksomheden har noget legacy code, som ikke kan omskrives til cloud. Virksomheden ønsker at gå cloud-vejen, men på grund af manglende viden går projektet i stå, eller det skrider alt for langsomt frem. Her kan vi også bidrage, blandt andet ved at hjælpe teamet videre med nogle forslag til arkitektur og en Proof of Concepts (PoC) baseret på aktuelle behov, som kan bringe teamet på rette kurs mod cloud transformation og gøre applikationsmodernisering til en oplevelse snarere end en hindring.

I et tredje eksempel for nylig havde vi en kunde, der ønskede at skifte til Azure. Deres kodebase var klar, men de vidste ikke, hvordan de skulle oprette den nødvendige infrastruktur og vælge en teknologistak, der både kunne løse deres komplekse infrastrukturelle udfordringer og samtidig gøre det så økonomisk som muligt. For denne kunde har vi leveret en løsning i form af Infrastructure as Code baseret platform, og en løsning baseret på Container App. Derved kan de med få klik oprette infrastrukturen og implementere deres software. Løsningen inkluderer også videndeling og omfattende dokumentation om, hvordan de kan flytte deres eksisterende software til Azure cloud. Og netop fordi deres kode var skrevet på en god måde, gjorde det det muligt for os at levere en fuldendt løsning på kun 5 uger - fra starten af projektet til en fuldt operationel produktionsløsning.

Endeligt har vi også haft et eksempel, hvor kunden havde udfordringer med en overbelastet database, hvor hardwaren ramte maksimale grænser. Her kunne vi anbefale kunden brug af Azure Service Bus, hvor vi igen bragte vores know-how i spil. Vores opgave var mere rådgivende, og vi præsenterede nogle Proof of Concepts, hvor kundens eget udviklerteam overtog udviklingsopgaven. På den måde accelererede vi leverancen til kunden, samtidig med at kundens egne udviklere følte sig trygge ved teknologien.

Hele pointen med ovenstående eksempler er, at der findes mange services og features i cloud, og det behøver ikke være svært at komme i gang med det, hvis man har den rigtige viden og bliver vejledt i den rigtige retning.

Afsluttende tanker

Applikationsmodernisering er afgørende for organisationers evne til at tilpasse sig det skiftende forretningslandskab og udnytte de seneste teknologiske fremskridt. Ved at omfavne cloud-teknologi og implementere moderne arkitekturemodeller kan virksomheder opnå øget effektivitet, fleksibilitet og innovation. Sammen med en effektiv integration af DevOps-processer og kultur kan applikationsmodernisering bliver en kilde til konkurrencefordel og en nøglefaktor for succes i den digitale æra.

Hvordan kan vi hjælpe

Vores tilgang til projekter indbærer at udføre en grundig vurdering, foretage analyser og eventuelt udføre en Proof of Concept. Når alle disse skridt giver mening, på begynder vi udviklingsfasen i samarbejder med jeres udviklingsteam og/eller deler den nødvendige viden med jeres udviklingsteam for at sikre en vellykket implementering.

Hos Fellowmind har vi mange dygtige kolleger med hver deres bredde og specialiserede viden, der dækker en 360 graders helhedsorienteret IT forretningsløsning for din virksomhed.

Kontakt os gerne for en uforpligtende samtale om jeres kommende projekter inden for DevOps-processer, etablering af Cloud-infrastruktur ved hjælp af kode eller applikationsmodernisering.

Læs også: Del 1

Del 1 udforsker hvordan Azures moderne features, gør applikationsmodernisering til en mere overskuelig og gennemførlig proces, samt hvordan det kan være nøglen til at styrke din virksomheds digitalisering.

Læs også: Del 2

Valget af arkitektur er afgørende for udviklingen af software, og det afhænger af forskellige faktorer, herunder kompleksiteten af applikationen, behovet for skalerbarhed, vedligeholdelse og udvidelse over tid.

Maytham Fahmi
Senior Architect,
Cloud, Infrastructure & Security
maytham.fahmi@fellowmind.dk