Programinstallationstyper

Fuldført

Der er flere måder at installere Java-programmer på i cloudmiljøet. I dette undermodul udforskes de forskellige muligheder, så du i det næste undermodul bedre kan forstå de tjenester, som Azure leverer.

Virtuelle maskiner, objektbeholdere eller platform som en tjeneste?

Det vigtigste spørgsmål er, om du vil eller har brug for at installere dit program på en virtuel maskine (VM), i en objektbeholder eller som en PaaS-løsning (platform as a service).

  • Med virtuelle maskinerer du i en verden, der ligner et lokalt eller et klassisk datacentermiljø. Azure indeholder et sæt forudkonfigurerede VM'er, der kører de primære operativsystemer (Windows og Linux), og du skal konfigurere og vedligeholde disse maskiner.

    Vi foreslår, at du til at starte med anvender denne løsning, fordi den er tættest på det, som de fleste virksomheder allerede bruger, før de flytter til cloudmiljøet. De installerer normalt deres egen konfigurationsstyringssoftware, installerer deres foretrukne version af Java og kan derefter køre deres Java-arbejdsbelastning på en måde, der ligner den, de tidligere har gjort det.

    VM-løsningen fungerer godt, hvis du har et erfarent driftsteam, der konfigurerer og vedligeholder dem, og hvis du har specifikke use cases. Du bruger f.eks. nogle oprindelige biblioteker eller noget beskyttet software, f.eks. Oracle WebLogic Server eller IBM WebSphere Application Server.

  • Med objektbeholderehar du stadig det meste af det kontrolelement, du har med VM'er, men med en mindre handlingsindsats. Du kan installere din egen JVM (Java Virtual Machine) eller en bestemt software, så kører dine objektbeholdere enten lokalt eller på en hvilken som helst cloududbyder.

    Da objektbeholdere giver en masse frihed, lider de under nogle af de samme problemer som VM'er. Hvis du angiver din egen JVM, skal du opdatere og reparere den efter behov. Derfor kræver Docker-billeder en god kontinuerlig integration og kontinuerlig levering (CI/CD) værktøjskæde for at vedligeholde objektbeholdere korrekt. Da Docker-billeder kan køre lokalt og er lettere end VM'er, giver de også en fantastisk udvikleroplevelse.

  • Med en platform som en tjeneste løsning håndterer cloududbyderen det meste af vedligeholdelses- og driftsbyrden. Operativsystemopdateringer, Java-programrettelser, sikkerhed og overholdelse af angivne standarder leveres alle. Derfor er denne mulighed som regel mere sikker og billigere. Det leveres også med nogle skalerbarhedsfunktioner, som bør gøre det muligt for dit program at tilpasse sig bedre til dine kunders behov. Det resulterer også i bedre ydeevne under belastning og lavere omkostninger, når der er mindre trafik.

    Du kan opnå mere ved hjælp af en PaaS-løsning. Du kan konfigurere automatisk konfiguration, administrere og indlæse hemmeligheder (f.eks. ved hjælp af Azure Key Vault), overvåge dit program, starte en liveprofileringssession og aktivere installation uden nedetid.

Installationsindstillinger

Uanset om du bruger VM'er, objektbeholdere eller en PaaS-løsning, kan du normalt udrulle dine Java-programmer i cloudmiljøet på to måder:

  • udrulning af kildekode: Du kan sende din kildekode til et Git-lager, og cloududbyderen kører en proces, der kompilerer, bygger og pakker programmet.
  • JAR-, WAR- eller EAR-filinstallation: Du pakker dit program, normalt som en eksekverbar JAR-fil (Java ARchive), men WAR (Web Application ARchive), EAR (Enterprise Application ARchive) og andre filformater er også mulige. Cloududbyderen kører derefter den eksekverbare fil.

Disse to installationsindstillinger er klassiske måder at køre Java-programmer på. For begge muligheder er buildprocessen normalt den samme, og den største forskel er, hvor processen køres. Det er enklere at lade cloududbyderen udføre buildet, og med denne fremgangsmåde anvender cloududbyderen sine egne sikkerhedskontroller og programrettelser. Når du bygger programmet lokalt eller ved hjælp af en CI/CD-platform, f.eks. GitHub-handlinger, får du mere fleksibilitet og kontrol.

Serveruafhængige funktioner

Serveruafhængige funktioner, eller mere specifikt Azure Functions, er en blanding af forskellige løsninger, vi har set og tilbyder en meget specifik funktion: Serveruafhængige funktioner er beregnet til at køre i korte perioder. Normalt vækkes en funktion af en hændelse, f.eks. en HTTP-anmodning, og den forbliver "varm" i et par minutter, indtil den går tilbage til slumretilstand.

Funktioner deler funktioner med PaaS-løsningen, som vi beskrev tidligere. I Azure er vores PaaS-løsning (Azure App Service) og vores serverløse løsning (Azure Functions) teknisk ens og deler nogle almindelige kode og tjenester.

Funktioner fungerer normalt sammen med JAR-filer i forbindelse med udrulningsindstillinger. Andre indstillinger, f.eks. Docker, er tilgængelige, men de er mindre populære og fungerer normalt ikke så godt. Det skyldes, at den underliggende platform ikke kan optimere dem på samme måde, som den kan for JAR-filer.

Serveruafhængige funktioner skal i sagens natur kodes specifikt. Deres funktioner afhænger af den cloududbyder, de kører på, og deres korte levetid gør det kompliceret at bruge traditionelle løsninger, f.eks. cachelagring eller HTTP-sessionreplikering.

Serveruafhængige funktioner kan skaleres godt, og de giver den bedste pris for miljøer med lavt forbrug. Samtidig kan de reagere på de mest krævende trafikbelastninger.