Utveckling av moln baserade applikationer 2020

Kurs från 2020-08-31 till 2020-10-08

Virtuelle maskiner och infrastruktur som kod

Lektion 2 av 12, onsdag den 2:a september 2020

Målet med denna lektion är komma på gång att använda virtuella maskiner och infrastructure as code (IaC).

Där finns fler olika IaC system, men vi kommer att fokusera på det system som hettar Pulumi.

Ni kommer att jobba med virtuelle Linux maskiner, så om du är osäker på Linux kolla bakgrunds litteraturen. Anledningen till detta är att Linux typ är standard OS i molnen.

Lektionsplan

Lektion från kl. 8:30 till kl. 16:30

Lunch 12:00 till 13:00

Lektionsteori

Detta är material (artiklar, videoer, blogs, podcasts etc) som är den teoretiska bas för denna lektion, det antas att du har läst/set/lystnad detta innan lektionen starter.

Azure

Virtual machines

Infrastructure as Code

Pulumi

Total:

Bok: Learn Azure In A Month of Lunches

Detta är vilka delar av den frivilliga bok (Learn Azure In A Month of Lunches) som är releavant för denna lektion

Bakgrundsmaterial

Detta är litteratur som är frivillig, och som kan kan används till at få en djupare insikt i dagens ämnen. Oftast förklara det bakgrunden till dagens lektionsteori, går mer på djupet med ämne eller han har en annan vinkel på det samma material.

Virtual machines

Infrastructure as Code

Azure Resource Manager

Pulumi

Terraform

Annat ramverk till att göra IaC

Linux

Getting started with Linux

Archicture as code

Architecture as Code

Architecture as Code: Virtual Machines

Buddy uppgifter

Dagens blogg

Dagens blogg ska innehålla:

OBS Akta vad ni skriver i eran blogg, så att ni inte skriver lösenord etc.

Diskussion

Gör en SWAT analys på en virtuell maskin mot en fysik maskin, ha följande i åtanke:

Få en virtuell maskin att köra lokalt på eran dator

Ladda ner ett VM image, t.ex. en Ubuntu från osboxes.org samt en matchande hypervisor t.ex. Oracle VirtualBox.

Få en “Hello world” .NET Core webb applikation att köra på ert VM.

Host ASP.NET Core on Linux with Nginx

Install .NET Core SDK or .NET Core Runtime on Ubuntu v18.04

Klona test appilkationen

git clone https://github.com/skjohansen/SimpleWebHalloWorld.git

Starta den med .NET

dotnet run

Azure virtual machine

Skåpa en virtuell maskin på dissa tre sätt, logg in och kör igång “Hallo world” .NET Core webb applikationen att köra på ert VM.

Använd evt B1S som är en del av student konto

  1. Set up a virtual linux machine using the Azure Web Portal
  2. Install a linux virtual machine using the Azure CLI
  3. Create a virtual machine in Azure using Pulumi (använd C#/.NET)
    • Web Server Using Azure Virtual Machine
    • Hint
      • Klona ner det repo som innehåller exemplet (kan typ köras rakt av) : https://github.com/pulumi/examples.git (detta repo innehåller ALLA Pulumi exemplen)
      • I region northeuropemåste man använda Standard_A2_v2 istället för Standard_A2

Webb applikation

För att köra webb applikationen följ dissa steg

git clone https://github.com/skjohansen/SimpleWebHalloWorld.git

dotnet run --urls http://0.0.0.0:5000 (0.0.0.0 gör att webbläsaren lystnare på alla IP adresser)

Testa med din webbläser på din egen dator om du kan öppna sidan: http://x.x.x.x:5000 (ersätt x.x.x.x med ditt VMs IP)

För att kunna komma åt port 5000 måste man öppna för denna på den virtuella maskin i Azure.

Release build av applikation

Man kan också köra en riktig release build av webb applikation. För att kunna det måste man göra en publish och sen köra sen dll som genereras.

dotnet publish --configuration Release

gå till : SimpleWebHalloWorld/bin/Release/netcoreapp3.1/publish

dotnet SimpleWebHalloWorld.dll --urls http://0.0.0.0:5000

IaC och VM - avancerat

Skåpa ett script (Bash eller Powershell) som ser till att installera alt (primärt .NET Core) som behöves för att köra webb applikationen på servern.

Samt kör igång webb sitet

Kör scriptet som en del av ert Pulumi program