Le prime cinque tendenze di sviluppo software del 2018 - Di Igor Lebedev, CTO di SONM

Pubblicato: 2021-08-09

Finora, il 2018 è stato un anno di trasformazione per gli sviluppatori. Lo sviluppo del software ha superato se stesso con nuove versioni e soluzioni di qualità superiore che rendono le attività computerizzate più semplici ed efficienti che mai. I database sono ora in grado di quantificare grandi quantità di informazioni senza interruzioni, i server vengono venduti in serie anziché in unità singole e la blockchain ha aperto le porte utilizzando un sistema decentralizzato. Queste sono le cinque principali tendenze di sviluppo software che stanno prendendo d'assalto il mondo della tecnologia quest'anno:

Grandi dati

La crescita costante dei dati aziendali e pubblici porta a una situazione in cui i tradizionali database e strumenti di archiviazione non sono più in grado di utilizzare e gestire il volume di dati. I vecchi approcci non funzionano più, avendo visto in prima persona che gli RDBMS (Relational Database Management Systems) non sono più in grado di contenere tutto. Ciò porta all'emergere di nuovi strumenti e approcci, ma, cosa più importante, porta alla fine del dominio dei tradizionali database monolitici. Il nuovo approccio consiste nell'archiviare i dati condivisi su un numero multiplo di nodi. I dati principali sono ancora archiviati in database centralizzati tradizionali, ma un volume maggiore di dati viene archiviato separatamente e la quota di database monolitici è ridotta. La sfida dei big data nel 2018 è che richiedono di riscrivere le applicazioni convenzionali in un modo nuovo in modo da gestire grandi pool di dati.

Scalabilità orizzontale

La soluzione di ridimensionamento tradizionale consisteva sempre nell'acquistare un server più nuovo e più grande. Questo nuovo server avrebbe più core, modalità cache, frequenze più alte, banchi di memoria più grandi, bus più veloci e più dischi. Tuttavia, questa soluzione di ridimensionamento presenta dei limiti e tali limiti sono già stati raggiunti. Lo chassis del server comune può avere al massimo 2 o 4 CPU e non è possibile aggiungere CPU senza limiti poiché non è possibile aumentare le frequenze. Ad un certo punto, il ridimensionamento verticale raggiunge i suoi limiti. Il passaggio successivo è il ridimensionamento orizzontale. Ciò significa che invece di acquistare un server più grande per sostituire quello vecchio, acquisti uno o più server aggiuntivi dello stesso tipo da aggiungere al tuo pool esistente. Questo approccio sembra più flessibile, ma richiede un'architettura software diversa e, ancora una volta, richiede la riscrittura del software. Se lo fai, ricevi i vantaggi di una migliore gestione delle risorse con la possibilità di condividere le risorse. Qui vediamo i microservizi, l'esecuzione senza stato e Kubernetes come tendenze.

Decentramento

I cambiamenti che vediamo nel mondo, portano nuove sfide. Possono essere collegati alla politica, ai costi di consegna, alla fiducia o alle situazioni di mercato, ma la tendenza rimane che le aziende tendano a decentralizzare i propri servizi e software. Le reti di distribuzione dei contenuti distribuiscono server presso il tuo ISP, i fornitori SaaS aprono i DC nel tuo paese e le aziende pensano al ripristino in caso di catastrofe. Questo porta le aziende a non avere più un unico data center principale, ma due o più, mentre richiedono ai loro ingegneri di pensare a cambiare alcuni aspetti della loro architettura applicativa.

Elaborazione della nebbia

L'uso dell'elaborazione dei dati aumenta ogni giorno. L'IoT genera sempre più dati ai margini della rete. Questi dati vengono tradizionalmente elaborati nei controller di dominio o nel cloud. Tuttavia, considerato il fatto che le moderne linee ottiche sono velocissime e il throughput della rete aumenta di anno in anno, la quantità di dati cresce di un certo numero di ordinanze più velocemente. Le reti sono e sono sempre state il “collo di bottiglia” dell'elaborazione globale dell'informazione. Se non tecnicamente (per larghezza di banda e latenza), allora economicamente (per prezzo per trasmissione). Attualmente, il modo più veloce ed economico per migrare il tuo data warehouse in un altro DC è chiamare un veicolo cargo e trasportare letteralmente gli HDD in una nuova posizione. No, non è uno scherzo.

Questo porta all'idea fondante del settore dell'elaborazione Edge and Fog, il che significa che il maggior numero possibile di dati deve essere elaborato localmente. Le principali aziende IT lavorano su soluzioni per elaborare e servire i dati vicino ai dispositivi. Questo tipo di elaborazione è la nebbia. Ci sono difficoltà in questo. Non puoi semplicemente copiare il codice dal cloud e sperare che funzioni, perché nel cloud tutti i dati sono accessibili localmente, mentre nella nebbia nessun singolo nodo ha tutti i dati e deve chiedere a un altro nodo le informazioni richieste. Richiede agli sviluppatori di applicazioni di adottare la propria architettura e riscrivere il codice, in modo che le attività possano essere risolte in modalità MPP (elaborazione parallela di massa). Questo dà un motivo in più per riscrivere il codice e IaaS decentralizzato; fino a diventare una piattaforma attraente per ospitare la tua applicazione appena nata.

Tolleranza ai guasti

Viviamo in un'epoca in cui è più difficile vendere qualcosa che produrre. La concorrenza del mercato aumenta e le aziende che gestiscono software pensano a SLA migliori per avere un vantaggio e creare fiducia da parte degli utenti. Con i punti menzionati in precedenza, la probabilità di guasto di un singolo componente del sistema aumenta in modo critico. Non si può fare affidamento sulla capacità del cluster di database Oracle di gestire l'arresto anomalo perché gran parte dei dati risiede all'esterno. Invece di avere un paio di server super affidabili con doppia alimentazione, ora possono esserci 10 o anche 100 server e l'aspettativa matematica di un guasto a un singolo nodo raggiunge quasi 1 (uno, 100%). Probabilmente qualcosa non funzionerà e le aziende dovranno prepararsi nuovamente a questo esaminando l'architettura dell'applicazione. Il mondo, e l'IT in particolare, è in continua evoluzione e si muove a un ritmo incredibilmente veloce. I vecchi approcci non funzionano. Le aziende stanno riscrivendo il loro software con big data, scalabilità orizzontale, decentralizzazione ed elaborazione della nebbia, tutto al centro. Gli ingegneri tengono costantemente presente le tolleranze ai guasti dal lato dell'applicazione.

Queste tendenze di sviluppo del software hanno portato all'emergere di nuovi requisiti relativi all'hardware e alla sua disponibilità, che è meno critica per il guasto di un singolo nodo e con più opzioni di scalabilità orizzontale. Guardando al futuro, prevediamo un surplus di ulteriori tendenze in via di sviluppo, che si spera possano tenere il passo con la nostra tecnologia in evoluzione e la necessità di un maggiore supporto hardware.

A proposito di Igor Lebedev:

Igor Lebedev è uno specialista in informatica con oltre 15 anni di esperienza IT. La sua esperienza risiede in architetture di sistema classiche, classi di sistema, database, fog computing, sistemi di trading automatizzati, contratti intelligenti e microelettronica. Igor attualmente ricopre il ruolo di CTO e capo del team di sviluppo SONM da luglio 2017. In qualità di CTO, Igor fornisce informazioni e un prezioso contributo alla visione del prodotto e al processo di sviluppo complessivo, costruendo continuamente un team di sviluppatori che creano il fog computing, progetto SONM .