Overvej at skifte til cloud
Når man overvejer at skifte til cloud er det vigtigt at overveje sikkerhedsproblemer, omkostningsfordele og tilgængelighed. At flytte en applikation fra en server til en cloudbaseret platform kan være en fordel, da brugerne kan udnytte clouds skalerbarhed, høje tilgængelighed og sikkerhed. Det er også velegnet, når der er en forretningsmæssig eller teknisk grund til at skifte, f.eks. behovet for at håndtere trafikspidser eller bedre styre variationer i efterspørgslen efter tjenester. Det er også velegnet når en virksomhed ønsker at reducere infrastruktur- og vedligeholdelsesomkostninger, eller når den søger et højt niveau af data- og applikationsredundans og sikkerhed.
Der er selvfølgelig flere faktorer, der kan påvirke om det er hensigtsmæssigt at skifte til cloud. En vigtig faktor er applikationens moderniseringsniveau, hvor ældre og større applikationer kan være mere udfordrende at migrere. For at lette sådanne migreringer tilbyder AWS, Google Cloud Platform og Microsoft Azure forskellige tjenester til applikationsmodernisering. Disse tjenester sigter mod at løfte en applikation og nedbryde den for at opgradere tjenesterne.
En oversigt over forskellige cloudbaserede services
Valget af den bedst egnede type cloud-tjeneste afhænger af brug og ansvarsniveau. Her er en oversigt over forskellige cloud-baserede tjenester:
Infrastructure as a Service (IaaS)
IaaS-platforme og tjenester leverer infrastruktur i cloud, herunder servere, netværk, operativsystemer og lagerplads. Brugerne har mere ansvar og kontrol over infrastrukturen. Amazon Web Services (AWS) EC2 er et eksempel på en IaaS-tjeneste, der gør det muligt at oprette og administrere virtuelle maskiner (VM’er) på en cloudbaseret infrastruktur uden at bekymre sig om den underliggende fysiske infrastruktur.
Platform as a Service (PaaS)
PaaS er en type cloud tjeneste, der giver brugerne et komplet udviklingsmiljø. Brugerne har mindre ansvar og kan fokusere på at udvikle applikationen, mens cloududbyderen tager sig af alt andet. OpenShift er et eksempel på en PaaS tjeneste, der tilbyder et omfattende udviklingsmiljø.
Software as a Service (SaaS)
SaaS er en “klar til brug” tjeneste, der ejes af en tredjepart og kan tilgås af alle typer brugere via nettet. Brugerne har det mindste ansvar, da alt allerede er tilgængeligt. Dropbox er et eksempel på en SaaS tjeneste hvor alt er klar, og brugerne kan bruge det direkte uden at skulle tage ansvar for infrastrukturen.
Kom godt i gang med AWS som eksempel
AWS er en cloud-platform leveret af Amazon, som giver brugerne adgang til et globalt netværk af datacentre. Sammen med over 200 forskellige tjenester leverer Amazon skalerbare, sikre og omkostningseffektive løsninger til din applikation. På bare et par minutter, eller endda sekunder for nogle tjenester, kan du distribuere dit produkt til enhver del af verden.
Det første skridt er selvfølgelig at oprette en AWS-konto. Mange går dog ikke videre end til dette første trin fordi det også kræver, at man tilmelder sig med et kreditkort for at forbinde alle sine udgifter. Derefter får du adgang til et stort “sandkassemiljø”, hvor du kan eksperimentere som du vil, uanset om det er at oprette en S3 Bucket (til fillagring) eller til at have en instans af en EC2 (virtuel server), der kører kontinuerligt. Det er i øvrigt to af de ældste tjenester.
Arbejdet ved dashboardet er i høj grad drevet af ens interesser såsom at arbejde med databaser, netværk eller sikkerhed for at forstå, hvordan tingene er forbundet med hinanden. Et af mine første projekter var at følge et kodeeksempel fra Amazon om opsætning af en simpel pipeline. Med blot et par klik på en knap og lidt copy-pasting af eksempelkode kan du opsætte en hel pipeline, der henter kildekode fra GitHub, bygger den og implementerer en grundlæggende webservice. Du kan selvfølgelig også rive den ned, hvis du vil.
Tips til trin du kan følge, når du skifter til skyen
Når man tager skridtet mod cloud er der nogle gode råd man bør følge. For det første skal man være forberedt på at det er en langsigtet investering, som kræver ekspertise og tid til at migrere eksisterende systemer. Det første skridt er at beregne omkostninger og risici.
Dernæst kan du begynde at se på de tekniske aspekter, såsom at udføre en “lift and shift” af eksisterende databaser til en EC2-instans. Derefter kan du udforske tjenester der kan erstatte eksisterende systemer som RDS eller Aurora.
Endelig kan du opgradere dine applikationer og udforske mulighederne for at bruge “Serverless” tjenester som Lambda.
Det er vigtigt at skræddersy disse trin i forhold til størrelsen og kompleksiteten af de eksisterende systemer. Mindre og mere komplekse systemer kan migreres lettere, mens store monolitiske applikationer måske skal opdeles i mindre mikroservices ved hjælp af IaaS-services.
Almindelige sprog og værktøjer der bruges i AWS
Inden for AWS omfatter almindelige sprog og værktøjer Java, .NET og Python, som kan bruges i AWS Lambda, en serverløs tjeneste der gør det muligt at afvikle inline-kode.
For at bygge infrastruktur fra kode kan du bruge AWS’ egen tjeneste CloudFormation, eller værktøjer som Terraform. YAML-formatet bruges ofte til at beskrive og opbygge infrastruktur.
Til overvågning kan du bruge AWS CloudWatch og CloudTrail, men der findes også mange tredjepartsværktøjer til dette formål såsom Prometheus, Datadog, Sumo Logic og andre. Generelt er fokus inden for AWS på infrastrukturkode, men en forståelse af test og overvågning af kommunikation mellem forskellige servere og ressourcer er også nødvendig.