Start Till mål:

bild.png
Skapa en Dockerfile i din projektmapp för din .net-applikation
Skapa en Github Actions Workflow som lyssnar på en push mot valfri bransch och som sedan bygger en docker Image från din Dockerfile och pushar upp denna till din Docker Hub registry
( så den kan nås av servern )
Testa nu att pusha till din bransch, klicka in dig på “actions”-fliken i din Github repo och se hur den stegvis bygger ihop och pushar din Docker Image.
Denna kan nu användas av din server och Kubernetes-klustret (Samlingen av pods och VMs)

Servermiljön (deploy-stegen)
Skapa en VM (kodnamn K för Kubernetes ) i Azure (som vi ska köra vår faktiska applikation på)
Spara den privata SSH-nyckeln och publika IP-adressen

Se till att denna har portarna 80 ( för vanlig HTTP-trafik) , 443 (för HTTPS-trafik) och 22 (för SSH). Testa att ansluta med din genererade pem.
Sätt upp en till VM (kodnamn V för VPN) , spara den nya SSH-nyckeln för denna med, se till att 22-porten är öppen och SSHa in dig på denna med din Pem-fil.

Installera OpenVPN på denna VM (V).
Notera ditt användarnamn och lösenord (eller lägg till fler users i /admin-vyn för OpenVPN)
Installera OpenVPN Connect på din dator (V3 eller 2.7) , koppla upp dig mot din OpenVPN

Ändra nu så att din första VM (K) bara tillåter trafik från VPN-serverns IP (VM (V)
Installera Kubernetes , Docker och Minikube på din Kluster-VM (K) där din applikation ska köras och starta upp ditt kluster.
Deploya (kör i molnet) din applikations-image som du genererat tidigare och sätt den med minst 2 st replicas ( podder)

Exponera deployment som en service (Antingen med kubectl expose eller med en yaml-fil) och se din Kubernetes service IP är nåbar utifrån.

Du kan behöva göra en port forward på ditt minikub kluster.
Använd nginx eller ingress för att reverse proxy vilken URL man ska nå din applikation på
Du kan nu besöka din applikation på din offentliga IP och se så att din applikation syns utåt
Gör en självsignering på din VM (k) med din DNS som du fått från Azure (eller om du har en helt egen domän som du köpt/äger utanför skolan).
(Kräver en URL-domän DNS från tex Azure) samt att port 443 är öppen på din virtual machine

Koppla din befintliga Github Actions Workflow nu även mot ditt kluster så att du kan få ditt kluster att ta in den senaste Docker imagen och göra en ny deploy med rollout ( så att appen inte går ner).
Du kan nu lägga in en grundläggande DDOS-minimering via Nginx och koppla en Defender och Firewall till din VM(K) I azure för att monitora och säkra upp din miljö
Koppla din autoskalning i Azure Portalen
Du har nu en servermiljö med grundläggande säkerhet , grundläggande skalning och som automatiskt tar den kod du pushar mot din live- eller releasebransch på Github, testar den och lägger automatiskt upp senaste versionen utan att det påverkar din livemiljö för användarna negativt.

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.