Hur ser en serverdator egentligen ut?
När jag först började med utveckling hade jag en ganska vag fantasi om ‘servern’. Jag föreställde mig en gigantisk superdator som i The Matrix, med gröna bokstäver som regnade ner, otaliga kablar som slingrade sig överallt och enorma maskiner som lyste blått under ett mäktigt mekaniskt dån.
Men det första serverrum jag såg i verkligheten, ett IDC, liknade inte alls den bilden. De platta maskinerna i racken visade sig, när man öppnade dem, i slutändan bara vara ‘vanliga datorer’ med CPU, RAM och SSD, inte särskilt olika min laptop.
Vad är det då egentligen som gör att min laptop kallas ‘persondator’ medan den där robusta maskinen kallas ‘server’?

Den som ger (Server) vs. den som ber om något (Client)
Definitionen av en server är faktiskt mycket enkel. Det är den som ‘serve’, alltså tillhandahåller något. Klienten på andra sidan är den som gör en begäran.
Med andra ord blir till och med min gamla laptop en ‘server’ i samma stund som jag låter den vara på dygnet runt och tillåter externa anslutningar. Men varför använder vi då inte min laptop som server? Varför betalar vi mycket pengar för att hyra molnservrar som AWS EC2 och installerar det till synes krångligare ‘Linux’ på dem?
Varför just Linux? (Går inte Windows?)
Windows är verkligen bekvämt. Man kan bara klicka med musen och allt känns intuitivt. Så varför håller serverutvecklare fast vid Linux, som till synes bara är en svart skärm?
1. Ett GUI är en lyx (kostnad och effektivitet)
När Windows startar upp visas skrivbordet, ikonerna och muspekaren rör sig. För att hålla allt detta grafiska gränssnitt igång använder datorn ständigt CPU och minne. Men en server behöver ingen skärm. Den kan stå någonstans på andra sidan jorden och bara göra en sak: behandla data. En Linux-server i CLI-läge skalar bort all grafik och lämnar bara text. Om Windows använder 30 av 100 enheter kraft för att rita skärmen kan Linux lägga alla 100 på tjänsten själv.
2. Frihet från framtvingade uppdateringar (stabilitet)
Om man använder Windows tillräckligt länge stöter man förr eller senare på “Startar om för uppdateringar”. På en persondator är det mest irriterande. Man går iväg en stund och kommer tillbaka. Men om en server som ska vara igång dygnet runt plötsligt stänger av sig själv? Då är det en katastrof. Linux kan ofta rulla i flera år utan omstart, om inte något stort som en kerneluppdatering inträffar.
3. Licenskostnad (pengar)
Windows Server är dyrt. Ibland beror priset till och med på antalet CPU-kärnor. Linux däremot, som Ubuntu eller CentOS, är oftast gratis och open source. För ett företag som måste driva tusentals servrar är svaret ganska självklart.

Varför inte installera Linux ovanpå Windows? (Virtualiseringens upptakt)
Vid det här laget får en nybörjardeveloper, alltså mitt tidigare jag, en smart idé. “Om Windows är enklare, varför installerar vi då inte Windows Server och kör Linux inuti det som en ‘Virtual Machine’?”
Visst går det. Men det är som att resa ett tält inne i ett hus och bo där.
Husägaren, Windows, måste också äta, och hyresgästen, Linux, måste också äta. Resursslöseriet blir enormt. Därför började utvecklare ställa en bättre fråga: “I stället för att installera ett helt tungt OS, kan vi inte isolera och köra bara den ‘miljö’ vi faktiskt behöver?”
Det var just ur det resonemanget som Docker föddes, det vill säga containertekniken.
Nästa avsnitt: en värld utan mus
Nu förstår vi varför servrar lämnade Windows och valde Linux. Men att förstå något i huvudet och att faktiskt använda det med händerna är två olika saker. Första gången man ansluter till en Linux-server är det inte Windows trevliga Start-knapp som möter en, utan bara en blinkande markör på en svart skärm.
Nästa gång ska vi titta på grundläggande överlevnadskunskaper för den här obekanta Linux-terminalen, CLI: hur man hanterar filrättigheter och styr en server utan mus.