Skal du kjøre koden din i ditt eget datasenter (on-prem), leie plass til serverne i noen andres datasenter (co-location), eller kanskje kjøre alt sammen i en av de store skytjenestene fra for eksempel Microsoft, Google eller Amazon?
Vi er fulle av spørsmål om sky generelt og Azure spesielt, så vi spurte Hovard A. F. Berg, sjefkonsulent og teknologileder i Twoday.
Han er en erfaren .NET-utvikler med tung ekspertise innenfor blant annet Microsoft Azure.
Hovard, kan du kort forklare hva Azure er for noe?
Azure er Microsofts skyplattform med hundrevis av tjenester tilgjengelige for utviklere.
I sin enkleste form kan du, i Azure, leie basis infrastruktur som nettverk, datalagring og virtuelle maskiner. Det er også mulig å kjøpe container-clustere og «managed services» hvor skyleverandøren tar ansvaret for den underliggende driften.
Jeg foretrekker «managed services» ettersom jeg da kan fokusere mer på å utvikle applikasjoner fremfor å sette opp og konfigurere infrastruktur og servere. Med «klare til bruk» web-servere, databaser og analyseverktøy kommer man fort i gang med å utvikle og levere en løsning.
I Azure har vi også tilgang til avanserte teknologier som kunstig intelligens, maskinlæring og analyseplattformer med bare noen enkle klikk. Det er veldig raskt å komme i gang.
Hva er greia med Terraform og infrastruktur som kode? - Bratt læringskurve
Hva er fordelene med å bruke Azure?
Det er mange fordeler og få ulemper.
For det første er de store skyplattformene, i motsetning til hva mange tror, mye sikrere enn on-prem drift. Microsoft investerer milliarder i året for å sikre sin skyplattform og Azure har flere sikkerhetssertifiseringer enn noen annen drifts- og skyleverandør.
Det at vi kan bestille en ny tjeneste, oppskalere eller nedskalere, og at endringer skjer umiddelbart er en stor fordel ikke bare for mer optimal ressursutnyttelse, men også når det kommer til effektivitet og smidighet i et leveranseløp.
Skyleverandørene har enorm kapasitet i sine datasentere, både per lokasjon og antall datasentere rundt om i verden. Ved å ha gode overvåkingsmekanismer og automatiserte prosesser for ressursskalering kan vi utnytte dette.
Vi har kunder som opplever store sessongsvingninger i trafikk og det er veldig tilfredstillende å se automatikken rundt skalering håndtere plutselige spikes på millioner av etterspørsler.
«Jeg har vært borti tunge prosesser med tradisjonell on-prem-drift hvor basis web-serveroppsett har tatt måneder å få på plass.»
Jeg har vært borti tunge prosesser med tradisjonell on-prem-drift hvor basis web-serveroppsett har tatt måneder å få på plass. Dette problemet er ikke-eksisterende i skyen.
Her kommer vi inn på hvordan, AWS, det som regnes som den første skyplattformen ble til. I tradisjonell on-prem drift kjøpes gjerne hardware etter estimert "peak-last" og du får dermed dårlig utnyttelse av ressurser utenfor peak-perioder. AWS ble til fordi Amazons nettbutikk hadde mye ledig kapasitet i sine driftssentere utenfor de store shoppingdagene, som black friday. Ved å selge denne kapasiteten kunne de tjene penger på hardware de hadde, men i perioder ikke brukte – genialt!
De store skyleverandørene har datasentre spredd rundt i verden. Det betyr at infrastruktur kan bli plassert nærmere sluttbrukere, spesielt nyttig om man har en global brukermasse. Det kan også utnyttes som redundans og flere backuplokasjoner. Jeg har satt opp flere kritiske applikasjoner i Azure med både lokal- og georedundante databaser og webservere for å oppnå svært høye oppetidsgarantier.
De store skyleverandørene tilrettelegger også bedre for behovene vi har i dag til moderne applikasjonsutvikling ved at de tilbyr en bredde av verktøy og automatisering av prosesser innenfor utvikling, testing, deploy, overvåking og varsling.
Er det store forskjeller mellom Azure, Google eller AWS?
Amazon var først ute med sin skyplattform, AWS, og har fortsatt størst markedsandel på verdensbasis.
Alle disse skyplattformene har sine styrker, ikke minst fordi verdens største selskaper står bak. Det som er helt sikkert er at det blir vanskeligere for andre å tilby en bredere portefølje av tjenester enn disse godt etablerte gigantene.
Den største fordelen med skytjenestene er at du slipper å ha maskinvare og konfigurere servere med tjenester selv.
Er ønsket å migrere eller sette opp noe fra Microsoft-stacken, for eksempel Windows server eller SQL Server vil jeg si det er hensiktsmessig å velge Microsofts skyplattform. Azure er også godt integrert med andre Microsoft-produkter, som Office 365 og Active Directory.
Sånn ser River Securitys verktøy ut under panseret: - Samler enorme mengder data
Kan du gi et overblikk over noe av det Azure kan tilby?
Azure har mange hundre tjenester å by på. I hovedsak kan tjenestene kategoriseres innenfor disse skymodellene:
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
I en IaaS-modell håndterer Microsoft underliggende maskinvare, mens du selv tar ansvaret for det meste av drift og vedlilkehold som for eksempel patching av operativsystem.
For PaaS-tjenester håndterer Microsoft det meste når det kommer til underliggende infrastruktur, basis drift og vedlikehold (for eksempel patching av underliggende virtuelle maskiner) slik at utviklere kan fokusere på utvikling og leveranse av applikasjoner direkte til allerede kjørende tjenester.
Office 365 er en SaaS-løsning som kjøres i Azure.
«Bare med denne tjenesten vil jeg tørre å påstå at enkelte større komplekse systemer sparer hundrevis av timer årlig i feilsøk.»
Tjenestene jeg bruker desidert oftest er App Services for web hosting, MS SQL (og PostgreSQL) for relasjonsdatabaser, CosmosDB (eller enkel table storage) for lagring av strukturerte data egnet for NoSQL, samt blob storage for lagring av rådata.
Application Insights er en analyse- og overvåkingstjeneste som gir god innsikt og er gull verdt i forbindelse med feilsøk av applikasjoner og overvåking av ytelse.
Bare med denne tjenesten vil jeg tørre å påstå at enkelte større komplekse systemer sparer hundrevis av timer årlig i feilsøk ved hjelp av oversikten AI gir. Sett web-løsningen bak en kombinert firewall og CDN som Cloudflare eller Azure Front Door så har du en vinner. 😊
Hvem passer Azure best for?
Jeg vil si Azure passer for virksomheter i alle størrelser.
Ettersom jeg var ferdig med studier i 2010, året Azure ble lansert, og ønsket å utvikle i .NET, var det for min del naturlig å satse på Microsofts skyplattform. Jeg har siden ikke sett meg tilbake.
Jeg har flere hobbyprosjekter kjørende i Azure, og jeg har bidratt til at flere virksomheter er blitt modernisert og migrert til Azure. Jeg mener det bør være svært gode grunner til at nye applikasjoner ikke skal deployes til skyen i dag. Standard bør være cloud-first.
Det er ikke utelukkende Microsoft-teknologi i Azure. Det sies faktisk at det er flere Linux- enn Windows-maskiner i Azure, og for å nevne noen programmeringsspråk som er støttet utover .NET har du:
- Java
- Python
- PHP
- Node.js
- Go
- Powershell
- C/C++
Du kan velge og vrake i en bred portefølje med tjenester og velge teknologier som passer best til hver løsning.
Tilgang til avanserte tjenester som for eksempel kognitive tjenestene som lar deg analysere bilder, tekster og så videre med offisielle Microsoft SDK-er lar deg komme raskt i gang selv med avanserte løsninger.
Koden bak pantehullet i veggen: – Ufattelig komplisert på baksiden!
Er skytjenester billigere eller dyrere enn å kjøre ting i eget datasenter?
Det er nok ikke så enkelt som å si at skytjenester alltid er billigst. Det kommer an på mange faktorer som størrelse, investeringer gjort i eget datasenter, driftsform (IaaS, PaaS), hvilken kompetanse som er tilgjengelig og behov/krav som stilles til driftsmiljø.
Skyleverandører tilbyr ikke bare ferdige tjenester, men også verdiøkende støtteverktøy som gjør utviklingsteam selvbetjente og at nærmest alt kan automatiseres. Det gjør at applikasjonsutviklere kan være mer fleksible og effektive. Her mener jeg det spares enormt med tid som er svært vanskelig å kvantifisere i kroner og som derfor er vanskelig å ta med inn i regnestykket sky vs tradisjonell on-prem.
«De flinkeste og mest ambiøse utviklerne jeg kjenner foretrekker å jobbe i sky.»
Min erfaring er at tradisjonelle driftsleverandører ligger langt bak de største skyleverandørene innenfor selvbetjening og automatisering.
Skyprosjekter tiltrekker seg ofte bedre utviklere som igjen gir merverdi som er vanskelig å kvantifisere. De flinkeste og mest ambiøse utviklerne jeg kjenner foretrekker å jobbe i sky og valget er ganske klart om det står mellom to tilsvarende prosjekter, ett med sky og ett med tradisjonelt «VM»-oppsett.