Bare start med at skrive...
Teknologier

Anvendelse af DevOps-praksis ved hjælp af Open Source i Microsoft Azure

Udgivet 11 marts, 2021

Maksim Kanev, stedfortrædende CTO og leder af DevOps-praksis hos WaveAccess, skitserer, hvordan man implementerer DevOps-værktøjer og -operationer til at oprette, implementere og støtte Open Source-projekter ved hjælp af Microsoft Azure. Han deler også nogle cases for at kaste mere lys over denne tilgang.

Anvendelse af DevOps-praksis ved hjælp af Open Source i Microsoft Azure

Forretningstransformationen starter med en dybdegående analyse af det større billede, og undersøgelsen af produktet og tjenesterne sker ud fra et kundetilfredshedsperspektiv. Med denne tilgang og efter at problemet er klart og tydeligt skitseret, oprettes der et selvstændigt transformationsprojekt, og der dannes en separat arbejdsgruppe - med medarbejdere, der ikke er involveret i andre opgaver. Dette er normalt dyrere end at bruge eksisterende ressourcer (selv under hensyntagen til overarbejde og bonusser), men i det lange løb er denne tilgang fuldt ud berettiget, fordi det er mere rimeligt at investere i analysetiden end at ødelægge hele projektet.

Det er vigtigt for det nye transformationsteams at dokumentere de eksisterende forretningsprocesser og kritiske funktioner.

I sådanne tilfælde giver det mening at teste nye teknologier, hvor Microsoft Azure er et meget sandsynligt valg. Du kan midlertidigt tildele nogle af ressourcerne til at teste nye servere, færdige løsninger til dataindsamling og -behandling og til levering af indhold til klienten (hvis nødvendigt).

Herefter implementeres færdige løsninger, og den første gruppe af interesserede brugere opfordres til at udtrykke deres mening om de foreslåede tjenester. Hvis feedbacken er positiv på dette tidspunkt, er det fornuftigt at designe implementeringen af disse løsninger i den eksisterende infrastruktur.

Opdatering af et eksisterende it-landskab med Microsoft Azure

Køreplanen for en effektiv og omkostningseffektiv opgradering af it-landskabet med Azure cloud-teknologi inkluderer flere trin:

  • Kontrol af dokumentationssættet til de eksisterende undersystemer i softwarekomplekset

  • Etablering af forretningskrav til det opdaterede system, der er i direkte kontakt med slutbrugere

  • Definition af den første gruppe af tjenester, der overflyttes til den nye infrastruktur

  • Valg og test af teknologier til erstatning for eksisterende

Det er vigtigt enten at få det komplette datasæt fra den eksisterende database, eller af-identificere det (for eksempel i tilfælde af medicinske data, hvor adgangen til oplysningerne er reguleret af strikse love, personlige data og en del af oplysningerne om den medicinske historik fjernes eller erstattes).

  • Oprettelse af "Proof of Concept" baseret på nye teknologier til udførelse af belastningstest

En lille version af systemet med et par funktioner vil blive implementeret, og dette vil tydeligt demonstrere overholdelsen af ikke-funktionelle krav (belastning, sikkerhed, fejltolerance).

  • Opbygning af et MVP (Minimum Viable Product, produkt med minimumsfunktionssættet) baseret på nye teknologier til pilotdrift

I denne tilstand har de tidlige brugere, inklusiv arbejdsgruppen, slutbrugere og virksomhedsledere, mulighed for at teste løsningen, komme med deres kommentarer og forslag.

  • Fuldstændig idriftsættelse af de opdaterede tjenester til kommerciel drift - efter at alle krav er taget i betragtning

Det kan udføres på servere i det gamle it-landskab eller på nyindkøbt udstyr (kravene til et nyt datacenter skabes ud fra trin 5 og 6).

  • Analyse af resultaterne og overflytning af den næste gruppe af tjenester

Efter at have analyseret resultaterne bør du ikke nøjes med en færdiglavet løsning - en ny gruppe af tjenester vælges og overføres derefter til et nyt it-landskab.

Sådan lanceres en startup ved hjælp af Azure

Et par af vores vigtigste anbefalinger at være opmærksom på, når du starter et nyt projekt:

  • Det er værd at fokusere på færdige metoder

  • Lean Startup er blandt dem: ingen udvikling begynder, før hypotesen er bekræftet

  • Opgaver defineres i henhold til SMART-kriterier (specifikt, målbart, opnåeligt, relevant, tidsbundet)

  • Det er især vigtigt at generere en liste over opgaver, der kan udføres på kort tid og med et målbart resultat, mens målingen af de anvendte Azure-ressourcer kører

  • Brug af Open Source-teknologier giver dig mulighed for at minimere omkostninger i alle faser af produktudviklingen. levere denne funktionalitet og reducere omkostningerne ved implementeringen

Brug af Azure DevOps og Teams i distribueret teamkommunikation giver dig mulighed for at have en enkelt infrastruktur i en enkelt sky, der dækker hele udviklingscyklussen.

Ikke-åbenlyse måder at reducere omkostningerne på i en veletableret infrastruktur

Virksomheder står ofte over for en situation, hvor de modtager fakturaer for tjenester, som ingen synes at have bestilt. Men det viser sig, at udvikleren simpelthen glemte at deaktivere en kørende funktion. Eller forestil dig en anden sag: Virksomheden lancerer et stort antal virtuelle maskiner og er tvunget til at betale for stigningen i forbruget.

Lad os overveje en tilgang, der hjælper med at undgå sådanne situationer ved hjælp af eksemplet på replikering af machine learning-tjenester.

Case: replikering af machine learning-tjenester

Projektets opgave var at udvikle en platform til bestemmelse af uregelmæssigheder på satellitbilleder baseret på Open Source-teknologier.

Værktøjet var nødvendigt for at give operatøren mulighed for at uploade et billede. Dette billede blev derefter analyseret ved hjælp af machine learning, og visse uregelmæssigheder blev identificeret i landskabet.

Deri lå et stort problem: billedstørrelsen kunne komme op på 14 GB (tif med information om terrænet, fremskrivninger og andre tekniske data, der blev brugt i beregningerne).

Løsningen skulle skaleres til flere regioner, mens den isoleredes imellem dem. Det vil sige, at hver operatør måtte få sin egen grænseflade, og indlæsning af billeder og modtagelse af svar skulle implementeres i realtid.

At opbevare en dyr virtuel maskine med en GPU for hver region ville være uoverkommeligt dyrt. Ved hjælp af dokumentationen og en udregner leveret af Azure beregnede WaveAccess den optimale forbrugsmulighed ved at danne en kø for operatører og aftale svartiden med forretningsanalytikere. Som et resultat behandles billederne gennem Python i en stor virtuel maskine, og svaret returneres til køen, hvilket sikrer asynkron behandling.

Dette sikrer igen, at de Azure-ressourcer, du bruger, kører løbende. Med et stort antal brugere og replikerende tjenester til regionerne opnås en mere effektiv brug af virtuelle maskiner i løbet af arbejdsdagen.

Løsningens nøglefunktioner omfattede:

  • Hentning af billeder i stor størrelse (6-14 GB)

  • Kontinuerlig behandling af information fra forskellige regioner (træning + forudsigelse)

  • Jupyter Notebooks understøtter udvikling af machine learning-modeller

Som et resultat tillader det udviklede system behandling af data fra seks regioner ved kun at bruge to reserverede instanser.

Om nødvendigt sættes yderligere kapacitet midlertidigt i drift for at udføre brugeropgaver (f.eks. til træningsformål). Hvis der pludselig opstår en ændring ved en eller anden specifik egenskab ved billedet, der påvirker beregningsnøjagtigheden, starter systemet yderligere træning af machine learning-modellen. Til gengæld har dette gjort det muligt for modulet at foretage justeringer af dets egne karakteristika og indikatorer, og de nye uploadede billeder i det nye format er blevet behandlet med større nøjagtighed.

Datacenter + sky: hvorfor har du brug for Azure Kubernetes Service og multi-cloud

Nogle virksomheder er ivrige efter at udvikle tjenester effektivt, men er begrænset af budgetbegrænsninger og tidshorisonten. Samtidig kræver de specifik funktionalitet til deres udvikling og andre projekter, men er desværre ikke klar til at levere kildekode og distributioner i deres miljø.

Case: integreret softwareudviklingsmiljø

Lad os overveje et projekt implementeret for en innovativ teknologivirksomhed. De tjenester, der blev brugt af virksomhedens medarbejdere, var placeret i datacentrene, men ledelsen var ikke klar til at lade tredjeparter komme ind i dette miljø fra et sikkerhedsmæssigt synspunkt. Det var nødvendigt at oprette et softwareudviklings- og testmiljø isoleret fra produktionsmiljøet, hvilket WaveAccess-teamet valgte Azure til.

Nøglefunktionerne i løsningen, der tilbydes af WaveAccess involverer:

  • Organisering af flere kontraktansattes arbejde i et integreret udviklingsmiljø

Der er en Azure Kubernetes Service-klynge, hvor flere miljøer er indstillet til forskellige produkter og forskellige teams: de overlapper ikke hinanden, har adgang til et begrænset antal ressourcer i abonnementet og udvikler al funktionalitet under kontrakten. Kommunikationen blev gennemført via sagssystemet i Jira. At give adgang eller udvide klyngen med hensyn til kapacitet udstedes også hurtigt via en sag i Jira.

  • Tilvejebringelse af værktøjer til projektledelse, testautomatisering og resultatlevering

  • Begrænset sky-integration med et privat netværk

Dette viste sig at være et virkelig vigtigt træk ved løsningen. En multi-cloud installation af Kubernetes gav mulighed for at flytte tjenester fra udviklingsmiljøer til et præproduktionsmiljø i et privat netværk. Det vil sige, at kundens ingeniører let kunne overføre indstillingerne og reproducere miljøet, kontrollere sikkerhed og kodekvalitet. CI/CD blev implementeret baseret på Azure Pipelines. Adgangen til miljøet og tjenesterne på stedet krævede yderligere overflytning på grund af virksomhedens sikkerhedspolitik.

  • Nem overførsel af indstillinger og arbejdsresultater fra udviklingsmiljøet til produktion og tilbage igen

Som et resultat blev et Microsoft Azure-baseret udviklingsmiljø bygget og integreret med Azure DevOps Server i et privat netværk. Entreprenører fik adgang til miljøet i Azure Kubernetes Service og projekter i Azure DevOps Services.

  • Kubernetes som en bro

Azure Kubernetes Service fungerer ofte som en "lim". I flere projekter er vi stødt på en situation, hvor en virksomhed både havde et offentligt netværk med et Kubernetes-baseret udviklingsmiljø og et privat netværk, hvor kapacitet og tjenester blev overført til præproduktionsdrift - efter at alt arbejdet er afsluttet.

***

Vedtagelse af en DevOps-filosofi kombineret med overflytning til Open Source med Microsoft Azure leverer kommercielle teknologifri løsninger af højere kvalitet og til lavere omkostninger. Vi inspirerer vores kunder til at transformere deres processer, og vi er også her for at hjælpe med at skabe innovation og gøre din virksomheds processer mere rentable.

Relaterede services

IT-rådgivning
Softwareoptimering
Applikationsudvikling

Hvordan vi behandler dine persondata

Når du indsender den udfyldte formular, bliver dine persondata behandlet af WaveAccess Nordics ApS. Grundet vores internationale tilstedeværelse kan dine data bliver overført og behandlet uden for det land, hvor du bor eller befinder dig. Du har ret til at trække dit samtykke tilbage når som helst.
Du bedes læse vores Privatlivspolitik for yderligere oplysninger.