Bygga moderna system
Martin Mosegaard Amdisen
Martin is a former employee of Praqma (acquired by Eficode in 2019).
Vilken Dilbert-vd som helst kan rita ett moln på en whiteboard och säga: ”Där kör vi vår mjukvara!” Så vad är egentligen Cloud Native, och varför bör vi bry oss?
Det är svårt att hitta en enda, kortfattad definition av vad Cloud Native är. Orden ”Cloud Native” kan antyda mjukvara som är utformad för att köras i molnet. Du kanske har hört termen från Cloud Native Computing Foundation. Deras stadgar beskriver Cloud Native som ett nytt datorparadigm optimerat för moderna, skalbara miljöer med distribuerade system. Det är open source, leverantörsoberoende och avsett att hjälpa till att bygga hållbara system. Mjukvara som paketeras i containrar, orkestreras och hanteras dynamiskt samt bygger på en mikrotjänstarkitektur.
Om mjukvara skapas av utvecklare, vad är då Cloud Native-utvecklare? Cloud Native-utvecklare ansvarar för applikationens hela livscykel. Utöver att skriva applikationskoden arbetar de även med områden som driftsättning, orkestrering och övervakning. Det här är DevOps när det är som bäst!
Det låter mycket som att vara full-stack-utvecklare eller att känna till 12-factor apps. Det är svårt att säga emot dessa tolv principer. Ändå stöter vi fortfarande på mjukvara som inte är tillräckligt robust i övergången från utveckling till drift.
Cloud Native Computing Foundation (CNCF) vill förbättra detta genom att erbjuda en uppsättning verktyg som hjälper dig genom hela livscykeln.
Löste inte containrar allt?
Docker har blivit ett välkänt buzzword eftersom paketering och körning av mjukvara i containrar har många fördelar. Till exempel: infrastruktur som kod, portabel driftsättning och reproducerbara miljöer.
Men att bara gå över till containrar innebär inte att du kan glömma driften. Som Kris Buytaert påpekade på CoDe Conf 2017 behöver du fortfarande hantera driftaspekter som övervakning, loggning, skalning och mycket mer.
Cloud Native är ett ekosystem av verktyg för mjukvara som körs i containrar. Cloud Native Computing Foundation granskar och väljer ut teknikerna med hjälp av erfarna personer i en teknisk tillsynskommitté.
Är Cloud Native rätt för mig?
Ja! Tanken på att ha kontroll över din mjukvarumiljö bör tilltala alla. Cloud Native fokuserar på containerteknik, men det behöver inte hindra dig.
Du kanske redan har börjat paketera din mjukvara i containerimages. Om du till exempel började med att driftsätta i molnet med Docker Compose kan du ha nytta av att i stället gå över till Kubernetes-orkestrering. Och om du verkligen behöver övervakning är Prometheus byggt med containrar i åtanke.
Även om containrar började med Linux utvecklas området även av Microsoft. Om din mjukvara körs på Windows kan du ta en titt på deras dokumentation om Windows-containrar och Praqmas guide för att komma igång.
Kanske är din mjukvara ännu inte redo för containrar. Börja i så fall med din CI-miljö: till exempel en Jenkins master, Artifactory-server eller Chef-server. Då får du erfarenhet av att använda en ny driftmodell, samtidigt som bara en begränsad grupp användare påverkas.
Kombinera detta med att konfigurera dina system som kod, till exempel Jenkins master, så hanterar du dina CI-servrar som ett proffs! Använder du Atlassian? Lägg din Atlassian-stack i Kubernetes för att göra uppgraderingar och skalning enkla.
Att komma igång med mikrotjänster kan vara rätt val för dig – eller inte. Ofta börjar man inte med att skriva mikrotjänster. Faktum är att Martin Fowler argumenterar för att ett slags ”mikrotjänstpremie” gör detta fullt rimligt. Det krävs en insats för att lära sig arkitekturstilen, och det är inte meningsfullt för enkla system.
Med Cloud Native kan du fokusera på hur mjukvara byggs och driftsätts, inte var. Det möjliggör DevOps-arbetssätt, som att dela miljödefinitioner mellan utvecklare och driftteam och att underlätta kontinuerliga experiment.
En växande community
Precis som med mycket annat inom open source ger Cloud Native dig möjlighet att dra nytta av en växande community. Cloud Native Computing Foundation fungerar först och främst som en ingång till teknikerna. Dessutom har många Cloud Native-meetup-grupper vuxit fram under det senaste året. Vi är stolta värdar för Cloud Native-träffar i Köpenhamn, Oslo, Aarhus och Göteborg. Vi håller även en heldagsworkshop på Cloud Native Oslo. Det finns också relevanta Slack-grupper, som Kubernetes Slack och Danish Cloud Native Slack.
Varför inte komma och vara med?
- Cloud
Subscribe to our newsletter
Related blogs