DevOps-utvecklarna har bråda dagar, det händer mycket och tidigare lärdomar blir snabbt gårdagskvällens skåpmat. För många har introduktionen av Docker och deras sätt att deploya applikationer i containers heligt, det är så man gör. Andra deployar i VMs och kan också nyttja hög decoupling och flexibilitet. Men varken containers och VMs anses vara framtiden längre utan den platsen har tagits av nya Unikernels.

Credit: includeOS via InfoQ presentation om Unikernels

Även om det ännu är för tidigt att kasta bort dina containers så är det bra börja fundera på vad Unikernels är, vad skillnaden är och varför det skulle vara bättre än nuvarande setups. En Unikernel är ändå i grunden lik en container eller VM, den möjliggör deployment av en eller flera applikationer i en egen miljö.

Skillnaden mot containers och VMs är att en Unikernel är byggd som en maskin image där utvecklaren lagt till endast de bibliotek och annat som behövs för att exekvera applikationen, det finns inget externt operativsystem i unikerneln vilket möjliggör stora förbättringar med högre prestanda och säkerhet. Bland de största hoten säkerhetsmässigt mot containers och VMs idag anses av flera vara att de delar gemensamma operativsystem även om applikationerna är olika, och det är dessa som hackas och skapar möjliga oönskade ingångar.

Även om Unikernels inte behöver ett operativsystem så körs den inte helt bare metal utan den kör med en hypervisor så även om nästan all kraft kan nyttjas till att köra applikationen så krävs lite till hypervisorn. Men inte alls lika mycket som containers och VMs kräver. Men även om Unikernels optimerats för att plocka ut det ”bästa”, dvs portabiliteten från VMs och effektiviteten från containers så kommer det troligen ta ett tag innan de blir mainstream. Det är ännu relativt komplicerat att bygga en Unikernel och kräver djup specialistkunskap samt finns det ännu inga större deploymentsystem om du vill deploya hundratals eller tusentals Unikernels med kontroll.

Credit: Yancy MinUnsplash