Containrar äter upp världen. Om du har byggt och distribuerat en applikation i produktion under de senaste åren är oddsen att du har distribuerat din kod i containrar. Du kanske har skapat och distribuerat individuella behållare (Docker, Linux LXC, etc.) direkt i början, men snabbt övergått till en containerorkestreringsteknik som Kubernetes (K8s) eller Swarm när du behövde koordinera flernodsinstallationer och hög tillgänglighet (HA). Hur kommer framtiden för applikationsstacken att se ut i denna containerdrivna värld? Låt oss börja med vad vi behöver från denna "framtida" applikationsstack.
Vad behöver vi av denna framtida applikationsstapel?
-
Cloud Agnostic
Vi vill vara molnagnostiska med möjligheten att distribuera till valfritt moln. Helst kan vi till och med blanda in olika leverantörer i en enda distribution.
-
På plats
Vi måste kunna köra vår applikationsstack på plats med vår egen anpassade hårdvara, privata moln och internt hanterade datacenter.
-
Språkagnostiker
Det går nästan som att säga, men jag lägger till det för fullständighetens skull. Den framtida öppna stacken måste stödja alla populära programmeringsspråk.
The Future Application Stack
Den framtida applikationsstacken kommer att bestå av en triad av teknologier – K8s, Platform-as-a-Service (PaaS) och Database-as-a-Service (DBaaS) :
K8s
Kubernetes är en portabel, utbyggbar plattform med öppen källkod för att hantera containeriserade arbetsbelastningar och tjänster, och du kan distribuera dina appar direkt till K8s-containrar. För kunder med befintliga applikationer är det perfekt att paketera och distribuera dina befintliga applikationer till K8s direkt.
The Future Of The Application Stack:K8s, PaaS &DBaaSClick To Tweet
Alla offentliga molnleverantörer ger starkt inbyggt stöd för K8s, och du kan också köra ditt eget K8s-kluster på plats. Docker har nu också hoppat på K8s tåget – så du har full flexibilitet. Det råder ingen tvekan om att K8s är kung av kullen idag. Om några år kan det bli utslaget av en annan lösning, men teknologin för containerorkestrering är här för att stanna.
PaaS-lösningar
Om du skapar en ny applikation från grunden erbjuder Platform-as-a-Service-lösningar som Cloud Foundry och OpenShift övertygande fördelar som du kan utnyttja för att påskynda din applikationsutveckling livscykel. Är en PaaS ett måste? Absolut inte, men jag tycker att det är värt att överväga om du skapar en ny applikation.
I vissa fall kan PaaS-lösningarna köras på K8s eller sitta bredvid – ur ett applikationsperspektiv spelar det ingen roll. Om din IT-organisation distribuerar PaaS-lösningen kanske de gillar det om den bara körs på deras befintliga K8s-kluster. PaaS-lösningarna som nämns ovan är också tillgängliga på alla offentliga moln. Så återigen, du har den fulla flexibiliteten du behöver från din plattform.
DBaaS-lösningar
Att driva och hantera ett produktionsdatabassystem är inte för svaga hjärtan. Om du tror att du ska installera din produktionsdatabas på tre behållare och den kommer att fungera lyckligt i alla sina dagar, har du en annan sak på gång. Genom att använda en Database-as-a-Service-lösning kommer de att hantera alla operativa aspekter av din databashantering så att du är förberedd på allt oväntat.
Din DBaaS kan eller kanske inte körs på K8s. Kanske vissa delar av DBaaS körs på K8s, men oddsen är att det inte gör det. Varför är det så?
- Utanför de populära offentliga molnen finns det ingen bra lösning för lagring/volymer som är upp till EC2 Elastic Block Storage (EBS)-kvalitet. Leverantörer som PortWorx och OpenEBS arbetar med det, men det är inte där än. Utan en bra lagringslösning är det praktiskt taget omöjligt att lägga data i dina behållare.
- Om du kör en stor, flera TB produktionsdatabasserver är det inte meningsfullt att köra den i behållare – du kommer att ha stora dedikerade maskiner med snygga SSD:er .
- För mycket dynamik – ja, du kan få för mycket av det goda. Ibland, när saker misslyckas, vill du att de ska förbli misslyckade så att du kan ta en titt och se vad som händer. StatefulSets i Kubernetes är ett bra steg i rätt riktning för att lösa det här problemet.
På ScaleGrid är vår vision att leverera på DBaaS-delen av denna framtida applikationsstack. Vi är multimoln idag och kan även köra på plats eller i ditt eget privata datacenter. Dessutom är vår plattform ett polyglotsystem som stöder flera databaser, inklusive MongoDB®, Redis™*, MySQL och PostgreSQL.
För enkelhetens skull har jag uteslutit vissa andra delar av applikationsstackarna som objektlagring, filsystemlagring etc. I princip förväntar jag mig dessa komponenter kommer att likna DBaaS-komponenten. Det här blogginlägget har inspirerats av en Silicon Valley PostgreSQL-träff som jag deltog i för några veckor sedan, och jag ropar ut till Dave Nielsen (@davenielsen) från RedisLabs för att ha startat diskussionen om detta ämne.