Følgende er vårt nyhetsbrev for desember 2022.
Måten websider, webtjenester og IT-systemer bygges på er i stadig endring. I dette nyhetsbrevet tar vi for oss hva som er moderne skyløsninger nå, og hvilke kvaliteter disse har.
«Cattle, not pets»
Alle IT-systemer må kjøre på fysiske servere, selv løsninger som omtaler seg selv som «serverless». Tradisjonelt har man hatt én eller flere servere som man er helt avhengig av, og som man passer svært godt på. Litt som kjæledyr, er de på en måte uerstattelige. Blir det problemer med en server, blir systemene utilgjengelige og man må enten rette feilen eller skaffe en ny server og gjenopprette dataene fra siste tilgjengelige backup.
Moderne skyløsninger baserer seg heller på ideen om at servere er som kveg. Man har mange servere som bidrar til å kjøre IT-systemene. Hvis én av serverne får problemer, kan man kjapt erstatte den med en annen server: De er ikke lenger som kjæledyr, men heller som kveg på en stor gård, sies det i analogien. Man har ikke et spesielt forhold til hver og én. De kan alle enkelt erstattes.
Når serveren tjenestene dine kjører på får problemer, har moderne skyløsninger programvare som automatisk sørger for at tjenestene fortsetter å kjøre på en annen server. Dette kalles orkestreringssystemer. Her finner vi løsninger som Kubernetes og Ceph. Kubernetes vil sørge for at programmene dine starter på en annen server. Ceph vil sørge for at dataene dine replikeres til en annen disk. Ingen servere er spesielle, men alle bidrar til å kjøre systemene dine.
Deploi tilbyr administrert Kubernetes hvor du kan komme raskt i gang. I vår løsning lagres alle data redundant i vår nettverksdiskløsning bygget på Ceph.
«Infrastructure as code»
Inntil for få år siden, har man alltid måttet sette opp servere manuelt. Ønsker man endringer i ettertid, blir disse også utført manuelt av serveradministratorer. Disse blir da sittende på kunnskapen om hvordan selskapets servere konfigureres, og hva som har blitt gjort så langt.
I moderne skyløsninger ønsker man heller å ha all serverkonfigurasjon samlet i et kildekontrollsystem, slik at hele historikken er dokumentert til enhver tid. Utviklerne i et prosjekt setter opp alle innstillingene de ønsker i egne tekstfiler. Disse filene brukes som input til spesielle verktøy som Kubernetes eller Ansible. Verktøyene setter da opp serverne automatisk.
Dermed er det ikke lenger bare serveradministratoren som vet hva som har blitt gjort. Man kan når som helst se på filene for å se hva som er situasjonen nå, fordi alle endringer kommer fra disse filene. Derav navnet «Infrastructure as code». «Infrastructure» refererer til serverinnstillingene. «Code» refererer til filene man gir verktøyene. Altså er serverinnstillingene i filer i stedet for i noens hukommelse.
Hos Deploi kan du enkelt benytte deg av Kubernetes eller Ansible for å ta i bruk «infrastructure as code».
Horisontal skalerbarhet
Tidligere var det vanlig å ha en databaseserver og en webserver. Fikk man mye trafikk på nettsiden, trengte man ofte både en større databaseserver og en større webserver. Dette kalles vertikal skalering. Se for deg at serverne vokser i høyden.
Det er flere ulemper med denne fremgangsmåten. For eksempel finnes det alltid en grense for hvor stor én enkelt server kan bli. I tillegg er det slik at denne ene serveren blir et single-point-of-failure: Feiler denne, får man ikke betjent noen av kundene.
I moderne skyløsninger ønsker man heller å kunne vokse i bredden: Legge til flere servere i stedet for at den ene serveren må bli større.
Ofte er det vanskelig å tilpasse et IT-system som skalerer i høyden til å også skalere i bredden. Da må systemet lages på nytt på en måte som gjør at det lar seg skalere horisontalt. Hvis man bruker hyllevare, er dette ofte ikke et alternativ, og man må i stedet bytte til et system som støtter horisontal skalering.
Cluster, ikke enkeltservere
Flere servere som jobber sammen kalles et cluster. I moderne skyløsninger interagerer man ikke lenger med enkeltservere, men med et cluster av servere som en helhet. Dette betyr at man ikke lenger logger inn på en server for å utføre oppgaver. Man bruker heller en klient, et API eller et nettleser-basert dashboard som snakker med hele clusteret.
Har man Kubernetes, bruker man kommandolinjeverktøyet «kubectl» eller Kubernetes sitt API. Bruker man Ansible eller Ceph, har de hver sine klienter og biblioteker.
Ressurser på forespørsel
Før måtte man ofte planlegge en utvidelse av ressursene til et IT-system. Med moderne skyløsninger, spør man etter mer ressurser med klienten man bruker. Skyleverandøren passer på å ha nok reserver til enhver tid for å dekke forespørsler om mer ressurser. Disse leveres sømløst som en utvidelse av den eksisterende løsningen, enten det er prosessorkraft, minne, båndbredde eller disk.
En stor kanon
Moderne skyløsninger er en stor kanon som kan håndtere selv de største IT-systemene. Det bør nevnes at om man har et relativt lite IT-system, så er det ikke sikkert det er verdt den økte kompleksiteten. Hvert ekstra system eller programvare man introduserer i et IT-system er en mulig feilkilde, og man trenger kunnskap om hvordan det skal feilsøkes hvis problemer skulle oppstå.
Kontakt oss gjerne om du ønsker å diskutere teknologivalg for din IT-løsning.
Hjelp
Trenger du råd eller bistand i forbindelse med dette, er det som alltid mulig å kontakte oss på chat, telefon eller e-post.
Kommende nyhetsbrev:
- januar: Vi lanserer administrert Kubernetes
- februar: Vi lanserer administrert WordPress
- mars: Feilsøking og retting av ytelsesproblemer, del 4: Nettverk