Anslut till Senaste Tekniska Nyheter, Bloggar, Recensioner

Nästa generations öppen datorhårdvara: beprövad och testad

För fyra år sedan recenserade vi Facebooks egendesignade server med öppen källkod, Freedom. Samtidigt som de släppte sin datacenterdesign grundade de Open Compute Foundation och skapade ett hem för designdokumenten, licenserna och samlade leverantörer under ett tak.

Idag går det bra för Open Compute Foundation. Många högprofilerade företag som Yandex, IBM och Intel är medlemmar, och 2014 Microsoft gick med i initiativet som en andra stor partner för öppen hårdvara; släpper sin Open Cloud Server-design till en pool av öppen hårdvara som spänner över allt från servrar och switchar till datacenter. Det internationella samfundet har vuxit avsevärt, med toppmöten på alla större kontinenter som lockar en större publik varje gång. Mer så, antalet företag som tar till sig hårdvara från OCP och bidrar tillbaka ökar också, och med goda skäl: Mark Zuckerberg indikerade vid toppmötet 2015 i San Diego att Facebook uppnådde en 2 miljarder USD (USD) kostnadsminskning (!), uppnås delvis genom att använda öppen specialbyggd hårdvara istället för vanlig proprietär utrustning.

Att följa och gilla, i skala

När Facebook pratar om de otroliga mängder pengar det har sparat genom att använda Open Compute, kom ihåg att även om fåfänga-free hårdvaran är designad för att vara kostnadseffektiv, det är själva mjukvaran som möjliggör hårdvarueffektivitet. Företaget har alltid försökt använda allmänt tillgängliga programvarukomponenter för att bygga sina tjänster, och när det valde en, spenderas mycket tid och pengar på prestandautveckling för att optimera programvaran. Prestandateknik som gör det möjligt för Facebook att hantera 6 miljarder gilla-markeringar, 930 miljoner foton och 12 miljarder meddelanden varje dag, och dessa siffror representerar bara aktivitet som dess sociala nätverksprodukt genererar; Instagram och WhatsApp är inte precis leksaksarbetsbelastningar heller.

Facebook har genomfört många förbättringar i projekt med öppen källkod, eller startat nya implementeringar, de flesta av dem bidragit tillbaka till samhället, bra karma verkligen. Anmärkningsvärda prestandarelaterade projekt är HHVM — en förkortning för HipHop VM, en virtuell PHP-maskin med JIT’s egen PHP-språkdialekt som kallas Hack, som lägger till statisk typning i mixen. HHVM är annonserade som ‘ett mer förutsägbart PHP’, och om Wikipedias migration fungerar som en indikation på att det gör befintliga PHP-drivna webbplatser ganska mycket snabbare också. Ett annat initiativ som kallas rocksdb, implementerar ett korrekt skalbart, beständigt nyckel-värdelager för snabb lagring skrivet i C++ och presto, en distribuerad SQL-motor för Big Data lagrad i vanliga lagringssystem som Cassandra, JDBC DBs och HDFS. Presto tillhandahåller funktionalitet som liknar Hive och används för närvarande på Dropbox och Airbnb.

Skala dina Devops

En (dev)ops-ingenjör på Facebook kan begära vilken typ av hårdvarukonfiguration han gillar, så länge det är en av följande fem:

Att öka antalet delar som används i dina system ökar exponentiellt mängden pengar och tid som kommer att läggas på inköp, validering och underhåll. Och kom ihåg att för att undvika inlåsning av leverantörer måste varje konfiguration vara tillgänglig från minst två leverantörer, så det är lätt att föreställa sig varför FB föredrar att hålla det enkelt när det kommer till servrar: 5 SKU:er som använder samma basplattform , var och en inriktad på en viss typ av applikation.

SKU:erna som nämns är varianter av Facebooks senaste Xeon E5-serverplattform, Leopard, som granskas i detalj i den här artikeln. Webbnivån sysslar med att samla in varje bit information från hela stacken och rendera den till HTML/JSON, för vilken den behöver en anständig CPU, men inte mycket annat. Objektlagring, som foton, är tvärtom, och kräver bara en enkel CPU (Atom C2000) för att betjäna objekt från en stor lagringsbackend. I andra änden av spektrumet har du dataknäppningsenheterna som kräver en anständig bit processorkraft, minneskapacitet och I/O.