Fino a qualche anno fa, la piattaforma ARM era considerata la prima scelta per i progetti degli hobbisti grazie al suo prezzo contenuto, e ideale per le applicazioni alimentate a batteria, come gli smartphone o i tablet, grazie ai suoi bassi requisiti energetici. Dall'introduzione del set di istruzioni a 64 bit nel 2012 ci sono stati diversi tentativi di rendere ARM adatto ai server, ma solo ora si intravede una svolta.
Nel complesso, la storia della piattaforma di processori ARM è una storia di successo. Quello che era nato come processore per computer domestici è oggi la piattaforma di processori leader nel settore degli smartphone ed è installato in miliardi di dispositivi embedded. Negli ultimi anni, la famiglia ARM ha avuto ramificazioni verso il basso (microcontrollori) e da dieci anni dispone di una variante a 64 bit (teoricamente) compatibile con i server. Questa è anche la base dei processori Apple, che portano ARM sul desktop.
Tuttavia, ci è voluto un po' di tempo prima che ARM prendesse piede nel mercato dei server. Ad esempio, i moduli ARM per la piattaforma Moonshot di HPE, consegnati a partire dall'autunno 2014, non hanno soddisfatto le elevate aspettative riposte in loro, e tre anni dopo quasi nessuno ne parlava ancora. L'azienda Ampere Computing, fondata nel 2017 e che fornisce processori per le piattaforme cloud di Google e Oracle, tra le altre, sta portando nuovo slancio al mercato.
Aspettare l'adozione di ARM nel settore dei server prima di acquistare hardware ARM o effettuare il porting del software? Si è trattato di un dubbio legittimo da parte di Checkmk, così come per molti dei nostri clienti.
Una rispettabile quota di mercato del 5%
Nel frattempo, la piattaforma ARM è cresciuta fino a raggiungere una quota di mercato del 5% nel settore del cloud, che, se si considera l'infrastruttura interna di Amazon, potrebbe addirittura raggiungere il 15%. C'è ancora un ulteriore potenziale di crescita. Il fatto che attori come Google, Microsoft e Amazon siano in gioco - in parte con i propri processori, ma soprattutto con i processori Ampere di cui sopra - conferma che la piattaforma è qui per restare.
Iniziare con un agente
Per noi questo significa innanzitutto concentrarci sul monitoraggio dei sistemi basati su ARM: Questo è già possibile con l'agente legacy. In futuro, tramite un pacchetto agente Linux e il minor sforzo di configurazione possibile, dovrebbe essere facile utilizzare l'intera gamma di funzioni dell'agent controller introdotto in Checkmk 2.1 (crittografia, fiducia reciproca, modalità push opzionale, registrazione automatica, ecc.) I pacchetti di agenti che funzionano su ARM sono quindi una priorità per noi.
Tuttavia, non vogliamo ignorare ARM nemmeno per il server Checkmk, soprattutto perché la piattaforma, con le sue enormi possibilità di parallelizzazione, si adatta all'architettura di Checkmk. La nostra attenzione si concentrerà sul centro dati, perché i gestori di grandi installazioni di Checkmk saranno potenzialmente quelli che beneficeranno maggiormente dei risparmi sui costi energetici.
Non tutti gli ARM sono uguali
Se stiamo già migrando verso una nuova famiglia di processori, non vediamo alcun motivo per garantire la retrocompatibilità con le versioni precedenti. Ci sono indicazioni che il set di istruzioni ARMv8.2-A abbia una buona penetrazione sul mercato, da un lato, e dall'altro che abbia caratteristiche che favoriranno le prestazioni di Checkmk.
Per fare un confronto: I core Cortex A72 sono molto popolari nei computer a scheda singola (SBC) come il Raspberry Pi. Questi utilizzano ancora la prima versione del set di istruzioni a 64 bit di ARM, ARMv8-A, introdotta nel 2012. Una penalizzazione delle prestazioni sull'attuale hardware professionale per essere compatibile con gli SBC non è semplicemente giustificabile per i clienti con grandi installazioni Checkmk.
Intel per l'Edge
Il funzionamento degli Edge Sites nel monitoraggio distribuito è stato spesso citato come argomento per una versione che funziona anche su ARMv8-A (Raspberry Pi 4, Rockchip 3399...). Le prestazioni della memoria e della CPU di un Raspberry Pi potrebbero in effetti essere sufficientemente potenti per questo scopo. Nella pratica, però, molti fattori si oppongono all'uso di SBC. Ad esempio, le memorie di massa e le reti sono spesso collegate in modo inefficiente, a volte tramite una USB interna. Le schede SD non sono dotate di Wear Levelling, il che significa che non è possibile garantire una sicurezza dei dati adeguata all'applicazione.
La potenza di calcolo di questi sistemi è spesso sufficiente per il puro monitoraggio. Tuttavia, non appena si accede all'interfaccia utente in parallelo, si possono verificare rapidamente colli di bottiglia nelle risorse. Ciò compromette l'esperienza dell'utente e provoca un'inutile frustrazione.
Per le installazioni più piccole, consigliamo quindi i processori Intel. Se il prezzo di Intel è vicino a quello di un Raspberry Pi, sono disponibili molti barebone con Intel Celeron a risparmio energetico e supporto NVMe, senza dover cercare un alimentatore adatto e un alloggiamento con raffreddamento sufficiente. Se avete bisogno di più potenza in uno spazio ridotto, scegliete un NUC: anche un cluster Kubernetes può essere eseguito su questi dispositivi quando necessario. Per coloro che vogliono ancora utilizzare un Raspberry Pi, sono disponibili le build comunitarie della Raw Edition.
Dall'Edge al Cloud senza deviazioni
Inoltre, alcuni sviluppi già inclusi nella versione 2.2.0, come la modalità Push dell'agente Checkmk, riducono la necessità di piccoli siti edge. Il lavoro per il quale alcuni utenti vorrebbero utilizzare Raspberry Pis viene così gestito in modo più sicuro e affidabile da un server virtuale affittato a basso costo.
Porting e integrazione continua (CI)
Una sfida è rappresentata dal porting e dall'eventuale integrazione nella nostra Continuous Integration (CI). Infatti, due dei nostri componenti (Checkmk Micro Core e Livestatus) contengono ottimizzazioni che richiedono adattamenti per la particolare piattaforma utilizzata. La semplice ricompilazione su piattaforme diverse da x86/64 significa quindi che le ottimizzazioni del compilatore che comportano il riordino delle istruzioni non possono essere utilizzate. Pertanto, la scelta è tra prestazioni inferiori a quelle della controparte x86/64 o l'esecuzione di modifiche che richiedono ottimizzazioni analoghe per ARM. Le differenze nella gestione della memoria su ARM richiedono ulteriori modifiche per poter garantire un funzionamento sicuro delle funzioni.
Saranno necessari ulteriori sforzi per l'inclusione nell'IC. Anche se consideriamo solo una singola versione di Checkmk, saranno necessarie build continue. Per dirla in numeri: Da Checkmk 2.2.0, in ciascuna delle sue tre edizioni, si stanno creando almeno 13 pacchetti di installazione per quattro distribuzioni.
Quasi 100 build giornaliere aggiuntive
Se volessimo rendere il supporto per ARM altrettanto completo di quello per Checkmk, tenendo conto dei vari rami, si dovrebbero aggiungere quasi 100 build giornaliere in più a quello che, in definitiva, sarebbe un duplicato completo dell'infrastruttura di build su ARM.
Nel definire le priorità della roadmap di Checkmk, teniamo sempre conto del quadruplice equilibrio tra portata, impatto, fiducia e impegno.

L'impegno continuo solo per il CI, così come il significativo sforzo una tantum per il porting, significa che nel breve termine non possiamo dare a questo compito una priorità nella tabella di marcia.
Per il momento ci concentreremo quindi sul monitoraggio delle infrastrutture ARM.
Detto in soldoni
- Checkmk riconosce il potenziale di ARM e le esigenze dei nostri clienti.
- Il nostro obiettivo è il monitoraggio continuo, quindi gli agenti per ARM saranno il punto di partenza.
- Funzionamento del server Checkmk
- Nello sviluppo di Checkmk, continuiamo a lavorare per la neutralità della piattaforma e quindi raggiungeremo la compatibilità con ARM nel tempo. Tuttavia, al momento non siamo concentrati su questo compito e non possiamo quindi fornire una tempistica concreta.
- Un'attenzione particolare ai moderni processori per server: Per motivi di prestazioni ottimali, non è possibile prevedere il supporto per computer a scheda singola (come Raspberry Pi).
Il vostro feedback è ben accetto
State già utilizzando Linux su server ARM e vorreste monitorare in modo ottimale l'infrastruttura esistente o addirittura utilizzarla per gestire un server Checkmk? In caso affermativo, vi preghiamo di indicarci l'hardware che utilizzate, le distribuzioni con cui lavorate e la quota ARM del vostro attuale ambiente di sistema, nonché l'importanza che attribuite al funzionamento di Checkmk sui server ARM. Fatecelo sapere inviando un'e-mail a product@checkmk.com!