Bill Gates ha detto che tendiamo a sovrastimare gli avanzamenti tecnologici dei prossimi due anni e a sottostimare quelle dei prossimi dieci.
Al momento ci sono due forze opposte nel mondo dell’IT:
- Da un lato i provider cloud, i container (=K8s per intenderci) sembrano portare verso un mondo di servizi agili e leggeri. In Java l’application server sta concettualmente morendo, se ne parla sempre meno e sa di “vecchio”. Le mesh di reti coordinate con K8s possono fare tutto quello che faceva un application server, e scalare molto di più.
I server in cloud non bruciano né si rompono, e la loro capacity può essere regolata in modo elastico (entro certi limiti). - Dall’altro lato AMD ha sdoganato nel mondo consumer una CPU da 64 processori e 128 thread, che benché sia sbilanciata sulla potenza computazionale pura renderà sempre più economico avere un server in casa piuttosto che affittarne uno sul cloud. Questo perché AMD sta tenendo il costo per thread intorno ai 30$.
Realisticamente un Threadripper entry-level da 24 core (3960x) viene intorno ai 1600€ su Amazon. Possiamo supporre che questo costo scenda (o che il numero di CPU si alzi a parità di costo) anche senza che la legge di Moore ci supporti più di tanto. Il trend potrebbe essere leggermente più lento, ma sarà inesorabile. Non è ancora comparabile con una soluzione in Cloud, che è certamente troppo diversa e tendezialmente più flessibile come combinazione di memoria e CPU.
Il software però si trova stretto in una certezza: il numero di CPU aumenterà in modo significativo (nell’ordine delle decine, almeno) e quindi bisognerà adeguarsi sempre di più a questo nuovo contesto.
Le soluzioni basate su micro-servizi promettono di poter scalare in ogni direzione, ma il peso sull’architettura software è immenso: in particolare le nuove architetture richiedono una serie di servizi infrastrutturali complessi come:
- Bilanciamento e ribilanciamento automatico (da evolvere in service mesh, vedi Istio)
- Sistema di consolidamento del logging (logstash, kibana ecc)
- Sistema di metrica real time (es Prometheus)
Qui la lotta è aperta: solo sui sistemi di deploy K8s sembra uno standard affermato: su tutto il resto vi sono diverse proposte open source, alcune in sovrapposizione.
L’incertezza sui futuri trend è massima.