På Version2 har vi udviklet et lille machine learning-program, der kan gætte på emneord til nye artikler. Og den er faktisk ganske ferm til jobbet, bedømt på den daglige anvendelse. I hvert fald hvis man spørger programmøren.
Indtil videre har programmet bare kørt på min egen pc, men den løsning er ikke holdbar i længden. Nådesstødet til denne interimistiske ‘serverløsning’ kom, da vores it-afdeling strammede sikkerhedspolitikken på netværket, så vores almindelige pc’er ikke længere kan snakke sammen på det interne netværk - heller ikke, selvom man er en kendt bruger og benytter en kablet forbindelse.
Den politik kan man jo kun bifalde, sikkerheden er vigtig, men nu må vi kigge på andre løsninger, hvis mine kolleger også skal benytte den lille browser-udvidelse, som klistrer vores content management-system sammen med gætte-serveren.
Ergo skal vi i skyen, også kendt som ‘andre folks computere’. Det har jeg aldrig rigtigt prøvet, men hvor svært kan det være?
Via Linux Subsystem for Windows har jeg efterhånden fået en del erfaring med Bash-terminalen, som man nok skal bruge til en hovedløs server i skyen, gætter jeg på.
Det smarte er, at sky-leverandørerne giver gode tilbud, hvis man kan klare sig for lidt: Nul kroner i 12 måneder, lokker Amazon med, og konkurrenterne Microsoft og Google har samme slags tilbud.
Der er altså ikke meget at tabe, for os der gør det i skygge-it eller hobby-programmering. Vi vælger Amazon, men hvis det ikke lige er sagen, findes der altså alternativer.
I løvens hule
Hos Amazon starter rejsen mod de højere luftlag ved at logge ind i butikken, der også skal have ens telefonnummer og kreditkort-oplysninger. (Helt ‘gratis’ er det altså ikke.)
Når man først er inde i løvens hule, vælges en ‘support plan’ med navnet ‘basic plan’, der vælges ved at trykke på knappen ‘free’ - det ord kan vi li'.
Herefter mødes vi af skærmen ‘AWS Management’ hvor man kan vælge mellem en hulens masse produkter.
Vi vælger ‘EC2’, som står for elastic cloud - Amazons gammeldags server-instanser, uden dikkedarer.
Nu skal vi vælge en type, med hvilket der menes et styresystem, som er installeret og klar til brug. Her kigger vi efter dem, der er markeret som ‘free tier eligible’ - gratis. Jeg vælger en ‘Amazon Linux’, der vist bygger på Red Hats produkt og som har Java indbygget. Vores program er skrevet i Java, så jeg kan nemt komme i gang, tænker jeg.
I næste skridt skal man vælge en ‘instance type,’ som handler om, hvor mange hardware-resurser, man får til rådighed. Her er valget nemt, for der er kun én gratis mulighed: ‘t2.micro’. Den byder på én gigabyte hukommelse og én ‘virtuel’ cpu. Man får, hvad man (ikke) betaler for, og det er jo rimeligt nok.
Men det er ikke meget RAM at gøre godt med og de ordhyppigheds-tabeller, som maskinlærings-programmet benytter, fylder en hel del.
Jeg mærker rynkerne i panden, ligesom når man spotter en regnsky på en forårs-picnic, for nu at blive indenfor metaforikken.
Nøgler og notifikationer
Men vi haster videre, godkender vores opsætning med et klik på en knap og så i gang med det rigtige arbejde.
Punkt ét er at skabe et sæt nøgler, som benyttes til at autentificere brugeren med, når man skal snakke med sky-serveren via et terminal-program. Det gøres via webkonsollen og nøglerne downloades.
Man skal passe godt på nøglen, da den giver adgang til hele moletjavsen. På næste skærm meddeles det lystigt, at vores instans er ‘launching’ som en anden rumraket.
I mellemtiden kan man benytte lejligheden til at sætte notifikationer på regningen, så man ikke bruger penge, man ikke havde tænkt sig at bruge. Her i eksemplet går vi efter gratis, men hvis man skulle fristes til at købe sig til ekstra ydelser, er det meget godt at have styr på, at omkostningerne ikke løber løbsk.
Amazons kom-i-gang-vejledninger (som er nemme at læse) siger, at vi nu skal installere kommandolinje-værktøjet Awscli. Men det er egentlig ikke noget, jeg har haft brug for indtil videre, så her springer jeg bare dette skridt over.
Efter et par minutter er instansen oppe at køre, og så er vi parat til at gå ombord. Jeg benytter som nævnt Windows Subsystem for Linux (WSL), som vi har beskrevet i en tidligere artikel.
Det er en Bash-terminal, der kan klare alle de sædvanlige Linux-kommandoer, men man kan for eksempel også bruge Windows’ Powershell, hvis man er gladere for den.
Næsen i skyen
Jeg kopierer mine nøgler ind i WSL ved at navigere til min download-folder på Windows, som hedder /mnt/c/Users/tan/Downloads
inde i Bash, og kopierer nøglen med kommandoen
cp TaniasAWSNoegler.pem ~/TaniasAWSNoegler.pem
– som kopierer den til min ‘home’-mappe /home/tania
. Amazons vejledning siger, at vi skal skifte rettigheder på nøglefilen af hensyn til sikkerheden. Det gør vi med kommandoen
chmod 400 TaniasAWSNoegler.pem
ec2-18-223-114-109.us-east-2.compute.amazonaws.com
Og nu kan jeg logge ind med Bash-kommandoen
$ sudo ssh -i TaniasAWSNoegler.pem ec2-user@ec2-18-223-114-109.us-east-2.compute.amazonaws.com
Helledusseda! Nu er vi i skyen. Den terminal, Amazon Linux benytter, er også Bash, så kommandoerne er de samme som dem, jeg kender i forvejen. Det er næsten ikke til at kende forskel, på nær at terminalen skriver [ec2-user@ip-172-31-46-107]
i prompten.
Jeg starter med at teste den indbyggede Java-installation med kommandoen
$ java -version
Som kvitterer med:
java version "1.7.0_211" OpenJDK Runtime Environment (amzn-2.6.17.1.79.amzn1-x86_64 u211-b02) OpenJDK 64-Bit Server VM (build 24.211-b02, mixed mode)
For dælen. Det er Java 7, og det kan jeg ikke bruge. Det skyldes, at jeg er blevet meget glad for den nye typeinferens for lokale variable, som blev introduceret i Java 10, og Java 8's streams og closures. Den var værre…
Sikke en cliffhanger. Læs med i næste episode af sagaen, hvor vi installerer Java 11 på sky-serveren, får vores machine-learning op og køre, åbner en port i firewallen og støder på et mystisk problem i koden. Altså masser af spænding og dramatik. Bliv på kanalen.

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.