Evoluzione del DevOps

Evoluzione del DevOps. Il software “si sta mangiando il mondo”. Il software definisce la velocità dell’innovazione e continua a differenziare i vincitori dai perdenti. La trasformazione digitale continua a essere la chiave per la sopravvivenza delle aziende consolidate. I vincitori non devono solo essere in grado di creare software, ma devono essere eccezionali. Lo sviluppo del software richiede sempre più scala e velocità. Oggi, oltre il 70% dei team DevOps rilascia codice con una frequenza di una volta al giorno, con un aumento dell’11% rispetto al 2021.

Definizione di DevOps
DevOps è un insieme di pratiche e metodologie che riunisce sviluppatori di software (Dev) e team operativi (Ops) per fornire software efficiente su di una scala organizzativa:

  • I team che si occupano di sicurezza svolgono un ruolo fondamentale per garantire che il software venga fornito in modo sicuro.
  • I team di ingegneria pianificano, creano e verificano il codice.
  • I team operativi assicurano il rilascio, il confezionamento, la configurazione e il monitoraggio.

La costruzione di un processo di Evoluzione del DevOps efficace richiede una cultura deliberata di collaborazione continua. Pipeline, fusioni di codice, test, convalida e un alto grado di automazione sono necessari per spostare rapidamente e in modo sicuro il codice dalla progettazione e dalla creazione fino alla distribuzione e alla produzione. Ciò si riflette nella Continuous Integration / Continuous Delivery (CI/CD), una parte fondamentale del framework DevOps. La “CI” è la filosofia che prevede l’integrazione automatica dei test con il codice, mentre la “CD” implica la distribuzione frequente di tale codice. L’utilizzo di un processo continuo e iterativo per la creazione, il collaudo e la distribuzione può aiutare a evitare bug e malfunzionamenti del codice.

Le pratiche DevOps consentono ai team di sviluppo, sicurezza e gestione di collaborare e lavorare insieme per ridurre il ciclo di vita dello sviluppo del software, a volte da mesi a ore.

Come siamo arrivati qui
In passato, gli sviluppatori scrivevano ed eseguivano il codice sui loro personal computer. Quando era il momento di lanciarlo, avevano bisogno di grandi server monolitici e di processi per distribuirlo. Gli strumenti DevOps hanno permesso ai team software di distribuire il codice più volte al giorno per i loro utenti. Come descrive Justin Gage di Technically, solo 10 o 15 anni fa chi scriveva software doveva:

“Gestire manualmente i repository remoti (niente GitHub), gestire i propri data center o affittare quelli di qualcun altro (niente AWS), spostare il codice da una sede all’altra lentamente (niente internet a 1gbps) ed eseguire manualmente i test e i ping dei server per il monitoraggio (niente Datadog)”. Le nuove funzionalità e i rilasci dei prodotti erano molto infrequenti e lenti”.

Negli ultimi 10 anni il cloud computing e l’open source hanno svolto un ruolo fondamentale nel dare impulso a DevOps.

Sia il cloud computing che gli strumenti open source hanno offerto vantaggi di scala per la distribuzione del software e hanno reso l’intero processo più economico. Le organizzazioni stanno passando da architetture monolitiche (grandi server centralizzati) ad architetture a microservizi (applicazioni distribuite e più piccole). Ma più l’architettura è scalabile, più i processi sono caotici. Essere in grado di rilasciare software più velocemente non significa automaticamente poterlo fare in modo più intelligente. Aziende come GitHub e GitLab sono nate per aiutare ad automatizzare il flusso di consegna del software, dal codice alla distribuzione.

Poiché ogni azienda diventa un’azienda di software e la velocità di distribuzione del software accelera, la produttività degli sviluppatori diventa ancora più critica. I team operativi devono stare al passo con gli sviluppatori, in modo da poter gestire efficacemente la consegna e il monitoraggio delle applicazioni che gli sviluppatori inviano. Senza un’infrastruttura affidabile ed efficiente, gli sviluppatori non possono massimizzare i loro risultati.

DevOps è emerso come la soluzione per unire sviluppatori e sistemisti. Utilizzando un insieme di pratiche, flussi di lavoro e strumenti, i professionisti sperano di accelerare notevolmente la velocità dell’innovazione e di ridurre la quantità di lavoro ripetitivo. Gli strumenti DevOps, quindi, sono il kit di strumenti importanti per gli sviluppatori. Ma la rivoluzione DevOps è stata resa possibile da alcuni passi da gigante nello sviluppo del software: il cloud computing e l’open source.

Cloud: La scintilla del DevOps (Evoluzione del DevOps)
Negli anni ’90 la creazione di un’applicazione software richiedeva un enorme sforzo, non ultimo quello di creare i propri server fisici. In media, lo sviluppo di una nuova applicazione software poteva richiedere 3 anni. Il processo era così lento che spesso i progetti venivano abbandonati perché diventavano obsoleti ancor prima di essere implementati!

L’introduzione del cloud computing e la continua astrazione dei diversi componenti di programmazione attraverso l’uso di container, serverless e API hanno rapidamente aumentato il ritmo di produzione del software. Intere piattaforme sono costruite su fornitori di cloud: Shopify e Snap sono costruiti su GCP; Netflix vive su AWS.

Oggi è possibile ospitare la propria applicazione su AWS, archiviare i dati su Snowflake, servire i contenuti tramite Cloudflare, creare applicazioni lato client con Vercel, monitorare le applicazioni con Datadog e integrarsi direttamente con migliaia di altre applicazioni come Twilio, Stripe e Okta tramite API. Questa evoluzione ha spostato il ciclo di vita dello sviluppo del software da anni a mesi, se non settimane.

L’evoluzione del cloud è stata la trasformazione più importante per il modo in cui viene costruito il software. Questo, insieme al progresso dell’open source, significa che con una connessione a Internet, qualsiasi sviluppatore può accedere ai migliori strumenti per qualsiasi aspetto del processo di sviluppo. Tuttavia, questa velocità e la proliferazione di applicazioni rendono la gestione incredibilmente complessa. Questa complessità è stata la scintilla che ha reso DevOps una priorità.

L’Evoluzione del DevOps è cresciuta di pari passo con la crescente adozione del cloud computing ed è un approccio filosofico e culturale per gestire meglio la complessità delle operazioni cloud. DevOps offre una maggiore trasparenza e uno scopo unificato che aiuta a superare l’attrito tra sviluppatori e team operativi (i primi concentrati sulla velocità e i secondi sulla stabilità).

Open Source: Un fattore chiave per le piattaforme DevOps
Oltre al cloud, le piattaforme open source hanno svolto un ruolo fondamentale nell’adozione di DevOps. Per quanto riguarda l’effettiva implementazione di DevOps, se si considerano le aziende con almeno il 60% delle risorse DevOps open source, oltre il 54% di esse è pienamente implementato. Nel frattempo, solo il 20% delle aziende con bassi livelli di utilizzo dell’open source è riuscito a implementare efficacemente gli strumenti DevOps. L’open source è cresciuto in popolarità grazie all’economicità, alla facilità di adozione e alla capacità di integrarsi con altri strumenti per gli sviluppatori. Il software open source è costruito per funzionare e integrarsi con altri componenti software e aiutare le organizzazioni a sfruttare gli strumenti migliori per il lavoro, riducendo la complessità.

Molti dei principali fornitori DevOps hanno costruito il loro software sulla base di framework open-source. Una delle ragioni principali è che questo aiuta il fornitore ad adattarsi al panorama in continua evoluzione e a garantire una base di codice di alta qualità. Le basi di codice open-source sono talvolta esaminate da migliaia di sviluppatori per i loro progetti. La base di codice subisce continuamente un miglioramento di tipo Kaizen nel corso del tempo.

Questo è in netto contrasto con il codice proprietario, dove un fornitore ha un numero limitato di sviluppatori interni che gestiscono una base di codice che probabilmente consiste in decine di migliaia di linee di codice. In definitiva, questo è il motivo fondamentale per cui molti fornitori di software leader diventano piattaforme legacy obsolete, soprattutto se la loro base di codice ha una struttura monolitica che non ha adottato un’architettura a microservizi.

Nel settore della gestione del codice sorgente si è verificata una significativa innovazione open-source. Git, rilasciato nel 2005, è un repository gratuito e open-source per il codice sorgente che consente agli sviluppatori di gestire meglio il controllo delle versioni. Inevitabilmente, quando gli sviluppatori scrivono codice e poi lo testano, si imbattono in qualcosa di difettoso. Il controllo delle versioni consente loro di tornare a una versione precedente della base di codice che non contiene l’errore, in modo da facilitare la risoluzione dei problemi.

Uno dei maggiori valori aggiunti di Git è il suo modello di ramificazione, che consente allo sviluppatore di scrivere rami di codice indipendenti dal trunk della base di codice. Ciò offre agli sviluppatori la flessibilità di sperimentare nuove idee senza influenzare l’intera applicazione o di salvare alcune linee di codice solo per la produzione. Git consente di unire, eliminare o richiamare facilmente i rami quando necessario.

Valutare l’opportunità di DevOps (Evoluzione del DevOps)
Il numero di sviluppatori oggi è stimato in quasi 30 milioni. Solo il 50% delle aziende ha implementato DevOps in scala nella propria organizzazione e solo un’azienda su cinque dichiara di avere gli strumenti e l’automazione giusti per scalare DevOps. Molte aziende stanno ancora studiando e tentennando per colmare queste lacune. Ciò significa che la rivoluzione DevOps è ancora agli inizi.

I fornitori di DevOps hanno la grande opportunità di fornire il software necessario per facilitare una cultura più coesa e semplificare i flussi di lavoro. Sebbene la maggior parte delle organizzazioni sia nel bel mezzo dell’implementazione di DevOps, l’82% di esse si trova nella fase medio-bassa dell’implementazione di DevOps; tuttavia l’implementazione sta avvenendo.

Ora le aziende hanno l’opportunità di fornire i prodotti che accelereranno l’adozione di DevOps nelle organizzazioni di tutte le dimensioni. Si prevede che il mercato DevOps crescerà fino a 26 miliardi di dollari entro il 2027, rispetto ai 7 miliardi di dollari del 2021. Con la crescita del mercato, cresce anche la complessità della gestione di una serie di soluzioni individuali. Gartner stima che entro il 2024 il 60% delle organizzazioni sarà passato da soluzioni multiple a piattaforme di gestione del flusso di valore per ottimizzare la distribuzione delle applicazioni, rispetto al 20% del 2021.

Il consolidamento è in arrivo per il mondo DevOps. Ogni azienda valuta la dimensione della propria opportunità potenziale, che ruota attorno alla capacità di costruire una piattaforma DevOps, non solo una soluzione puntuale. Circa il 60% delle aziende dichiara di voler consolidare le piattaforme DevOps nei prossimi tre anni. Questo passaggio non sarà facile. La difficoltà di passare completamente a DevOps è in gran parte attribuita alle trasformazioni culturali e organizzative necessarie.

Lo stack dellEvoluzione del DevOps
DevOps è un cambiamento culturale che tocca diverse fasi del ciclo di vita dello sviluppo del software. Attualmente non esiste un’unica piattaforma onnicomprensiva che copra l’intero ambito. I team DevOps di solito mettono insieme una catena di strumenti personalizzata per collegare le varie persone e i vari flussi di lavoro che consistono in strumenti open-source e di fornitori. L’output di uno è un input per un altro, e così via. Questo porta a un panorama di fornitori molto frammentato.

Ogni organizzazione sceglie la catena di strumenti da utilizzare per i propri processi. Quando un’azienda sfrutta l’ Evoluzione del DevOps, la sua toolchain coprirà fasi come la pianificazione, la creazione, il test, il rilascio e il monitoraggio. La maggior parte dei fornitori DevOps è specializzata in una particolare area della catena di strumenti, come la pianificazione, il tracciamento dei problemi, il controllo del codice sorgente, la scrittura del codice, i test, la gestione della configurazione, la distribuzione o il monitoraggio.

Il software, nel complesso, è diventato sempre più frammentato, poiché gli utenti sfruttano l’opportunità di testare le soluzioni migliori della categoria. Con l’aumento della velocità dei cicli di produzione del software, la necessità di una catena di strumenti senza soluzione di continuità è diventata sempre più importante. Determinare quali strumenti DevOps utilizzare per un’organizzazione può essere complesso, visti i molteplici soggetti coinvolti. I dirigenti vogliono garantire i tempi di attività e controllare i costi, mentre gli sviluppatori si concentrano sulle prestazioni e sulla facilità d’uso. In primo luogo, ci soffermeremo su alcune delle principali piattaforme utilizzate nell’ambito del ciclo di vita DevOps. Poi parleremo del futuro di DevOps e di come sta cambiando.

GitHub
Git è un software che uno sviluppatore installa e utilizza localmente sulla propria postazione di lavoro. Con l’avvento del cloud computing, è emerso anche GitHub, che è diventato la più grande piattaforma basata sul cloud che estende i vantaggi di Git. Ciò che potrebbe confondere è che, sebbene il software di GitHub sia closed-source, in realtà è il luogo di riferimento per quasi tutti gli sviluppatori e i non-coder per creare e condividere i loro progetti open-source. Il fattore chiave del successo di GitHub è la sua comunità.

Con GitHub è facile condividere il codice con gli altri membri del team. È possibile visualizzare, modificare e commentare il codice degli altri. I repository Git possono essere consultati in remoto dal personale autorizzato. In sostanza, Git facilita i team DevOps a coordinare la scrittura del codice, mentre il modello di ramificazione di GitHub consente agli sviluppatori di contribuire con codice nuovo o modificato che può essere convalidato senza sovrascrivere il codice esistente nel ramo principale.

Nel 2018 Microsoft ha acquisito GitHub per 7,6 miliardi di dollari. Con GitHub, Microsoft ha iniziato a fare passi avanti per ricostruire il suo rapporto con la comunità open-source. L’ex CEO di Microsoft, Steve Ballmer, aveva precedentemente definito Linux un cancro. Sotto l’ombrello di Microsoft, GitHub ha continuato a crescere. Nell’ottobre del 2022, GitHub ha raggiunto 1 miliardo di dollari di ARR e 90 milioni di utenti attivi, rispetto ai 200-300 milioni di dollari dell’epoca dell’acquisizione. GitHub ha anche beneficiato della piattaforma di Microsoft, compresa la partnership con OpenAI. I modelli linguistici di grandi dimensioni (LLM) hanno aiutato la piattaforma di GitHub a verificare il codice, a generare codice e ad automatizzare i test di sicurezza.

GitLab
Man mano che l’ Evoluzione del DevOps diventa la metodologia di fatto per la produzione di software, sempre più attori hanno cercato di estendere la propria piattaforma. GitLab ha occupato una posizione unica nel mercato, dichiarando chiaramente fin dall’inizio che stava cercando di costruire una piattaforma di base aperta da estendere a tutto il ciclo di vita DevOps.

La differenza fondamentale tra GitHub e GitLab è che GitHub si concentra sul repository di codice e consente agli utenti di integrarsi facilmente con strumenti CI/CD di loro scelta (ad esempio, Jenkins, CircleCI). GitLab include non solo il proprio CI/CD, ma anche un’intera suite di strumenti DevOps in un’unica piattaforma in modo che, se l’utente lo sceglie, non c’è bisogno di altri strumenti di terze parti. GitLab è anche molto pubblico per quanto riguarda le caratteristiche del prodotto, la road map e la comparabilità con altri strumenti. GitLab ha persino pubblicato un’analisi della maturità delle sue funzionalità rispetto agli standard del settore per GitHub e GitLab. GitLab si è classificato all’82% di completezza rispetto a GitHub al 56%.

GitLab è uno dei leader emergenti nel mondo DevOps. L’azienda ha effettuato l’IPO nell’ottobre 2021 e nell’ottobre 2022 ha raggiunto 333 milioni di dollari di fatturato LTM, con una crescita del 70% su base annua. Uno dei principali fattori di spinta di GitLab è il suo approccio unico di diventare una catena di strumenti multi-prodotto. L’azienda è riuscita a posizionarsi come un’unica applicazione in grado di fornire soluzioni DevOps complete end-to-end, con notevoli capacità nel campo della sicurezza. Il CI/CD di GitLab automatizza i passaggi necessari per costruire, testare e distribuire il codice in produzione. La piattaforma è in grado di fornire automaticamente l’infrastruttura e di gestire le modifiche all’infrastruttura, il ticketing e il versioning dei rilasci.

Mentre altre piattaforme hanno un punto di forza (ad esempio, repository di codice, test delle applicazioni) e consentono integrazioni con altri strumenti DevOps di terze parti, GitLab è unica in quanto cerca di offrire strumenti per l’intero stack DevOps. La capacità di possedere l’intera catena di strumenti rende la collaborazione più fluida tra i vari utenti.

La strategia multi-prodotto di GitLab ha anche permesso di generare una fidelizzazione netta del 130%. Gli sviluppatori provano GitLab per una particolare esigenza e poi confrontano le altre funzionalità di GitLab con strumenti analoghi di terze parti. Avendo a disposizione tutti gli strumenti in un’unica piattaforma, gli utenti spesso scelgono di adottare altri prodotti di GitLab, generando così un’elevata retention in dollari netti. Aziende come T-Mobile e UBS sono state in grado di aumentare la velocità di implementazione di 10 volte grazie a una piattaforma dell’ Evoluzione del DevOps unificata di GitLab.

Il coinvolgimento di GitLab nell’open-source ha svolto un ruolo fondamentale nel sostenere l’innovazione dei prodotti. GitLab riceve frequenti feedback sulle funzionalità dalla comunità di sviluppatori che contribuiscono alla componente open-source del codice aziendale.

HashiCorp (Evoluzione del DevOps)
HashiCorp sta rapidamente diventando un nome affermato nel settore DevOps e ha lanciato la sua IPO nel dicembre 2021. È più integrata verticalmente rispetto alla maggior parte degli altri venditori DevOps, in quanto fornisce servizi di provisioning dell’infrastruttura in ambienti multi-cloud. Il prodotto Infrastructure-as-Code (IaC) di HashiCorp, Terraform, è diventato molto popolare tra gli sviluppatori rispetto a strumenti come Chef, Puppet e Ansible.

HashiCorp presenta tutti i suoi prodotti come multi-cloud, il che li posiziona favorevolmente per gli sviluppatori e gli ingegneri che devono distribuire su più fornitori di cloud diversi. Come GitLab, HashiCorp rende il suo codice visibile alla comunità open-source, con una serie di vantaggi, tra cui una maggiore sicurezza (cioè i bug vengono trovati più rapidamente) e un software di qualità superiore che beneficia di un miglioramento continuo. Migliaia di sviluppatori hanno contribuito al suo sviluppo e continueranno a cercare di ottimizzare il codice.

L’approccio open-source di HashiCorp le ha permesso di instaurare un legame profondo con la comunità degli sviluppatori, a sostegno della sua strategia GTM principale, che consiste nel costruire relazioni con i decisori dell’Evoluzione del DevOps, piuttosto che in un approccio dall’alto verso il basso per attirare l’attenzione dei dirigenti. Un indizio della risposta della comunità di sviluppatori si può vedere dalla crescita delle stelle (simili a un “mi piace”) su GitHub per alcuni dei suoi prodotti più popolari.

CircleCI
CircleCI è una piattaforma di integrazione continua (CI) utilizzata da oltre 1 milione di sviluppatori. CircleCI consente agli sviluppatori di creare test automatici, monitorare le build e individuare i problemi in modo da poterli iterare e risolvere. Il prodotto aiuta gli sviluppatori a connettersi a repository di codice come GitHub, a integrarsi con toolchain tramite integrazioni precostituite, webhook (integrazioni personalizzabili) e API, e quindi a distribuire il prodotto nell’ambiente prescelto, come AWS. L’azienda offre una serie di opzioni per gli utenti, tra cui ambienti cloud e self-hosting e servizi in abbonamento con prezzi basati su posti e tempo.

CircleCI offre funzionalità aziendali relative alla sicurezza e all’amministrazione. CircleCI è uno degli unici strumenti CI/CD ad aver ottenuto la certificazione FedRAMP. Supporta ambienti di esecuzione isolati, tra cui Docker, Linux, macOS, Android, Windows e runtime self-hosted. Supporta inoltre le integrazioni OpenID Connect per un migliore controllo delle identità.

Jenkins (Evoluzione del DevOps)
Jenkins è un altro strumento software open-source molto popolare. Il suo prodotto CI/CD utilizza l’automazione per suggerire frammenti di codice. Inoltre, assiste nella creazione della base di codice, gestisce l’integrazione dei rami di codice nel ramo principale, esegue i test, esegue il debug continuo della base di codice, comunica i problemi con i rispettivi sviluppatori e porta il codice convalidato in produzione. Ad alto livello, Jenkins fornisce una pipeline con strumenti di supporto per aiutare gli sviluppatori a scrivere codice in modo sicuro, testarlo e inviarlo in produzione.

Altri strumenti open source comuni per gli sviluppatori sono ELK (per il logging e il monitoraggio), Ansible (per il provisioning dell’hardware e la gestione della configurazione), Chef (anch’esso per il provisioning dell’hardware e la gestione della configurazione) e Apache Kafka (gestione dello streaming dei dati in tempo reale). In generale, c’è un oceano di attori che affrontano un componente del ciclo di vita DevOps o un altro. Ma il modo in cui questo panorama può evolversi potrebbe far apparire lo spazio molto diverso da come appare oggi.

Il futuro dell’ Evoluzione del DevOps

HashiCorp offre prodotti gratuiti e commerciali. I prodotti di HashiCorp sono stati scaricati oltre 100 milioni di volte. L’azienda vende poi software proprietario in aggiunta ai suoi prodotti open-source, concentrandosi sulle grandi imprese. A ottobre 2022, l’azienda ha registrato un fatturato LTM di 393 milioni di dollari, con una crescita del 52% su base annua. L’azienda ha anche un tasso di fidelizzazione del 133%, il che indica un’espansione dei portafogli dei clienti.
Il ritmo di sviluppo del software è aumentato in modo esponenziale. Il volume dei dati mondiali è aumentato di oltre 15 volte solo negli ultimi 10 anni. Negli anni ’70 e ’80, il mondo della tecnologia ha vissuto una “crisi del software”: il software stava diventando sempre più importante, ma la sua produzione era spesso fuori budget e fuori programma. Nel corso del tempo, lo sviluppo del software si è evoluto, passando dall’efficienza alla qualità e alla scalabilità. La tecnologia è diventata sempre più il centro dell’universo in termini di come vengono costruite le cose e di come le persone vivono la loro vita. Di conseguenza, abbiamo bisogno di costruire tecnologie in grado di scalare in modo significativo, e di farlo molto più rapidamente rispetto al passato.

Quando si pensa a quale sarà il futuro dell’ Evoluzione del DevOps, si guarda di fatto al futuro della produzione tecnologica. Le tendenze che influenzano lo sviluppo del software sono versatili come le capacità del software stesso, ma ci sono tre tendenze che si distinguono per le loro implicazioni generali sul modo in cui il software sarà sviluppato in futuro:

  • Catena di strumenti consolidata: Poiché diventa sempre più importante l’efficienza del ciclo di vita dello sviluppo del software, le aziende cercheranno di spostare una parte maggiore del loro stack DevOps sulla stessa piattaforma. Questo favorirà le aziende che hanno costruito piattaforme multi-prodotto rispetto alle migliori soluzioni puntuali, e porrà le basi per le aziende che diventeranno dominanti nel DevOps in futuro.
  • DevSecOps: con il continuo aumento del ritmo di sviluppo del software, non c’è più tanto spazio per le revisioni di sicurezza a posteriori prima della spedizione. Lo spostamento a sinistra è l’integrazione della revisione della sicurezza all’interno del ciclo di vita dello sviluppo e diventerà sempre più un punto di riferimento per tutte le aziende che sperano di diventare una delle principali piattaforme DevOps.
  • Infusione di AI/ML: L’intelligenza artificiale sta diventando sempre più pervasiva in ogni settore, ma viene sfruttata soprattutto in ambienti in rapida evoluzione e con risorse limitate. Quasi nessuna catena del valore al mondo è così rapida e con risorse limitate come il software. Dalla revisione del codice assistita dall’intelligenza artificiale allo sviluppo completo tramite l’intelligenza artificiale, sono molti i modi in cui l’automazione avrà un impatto sulle modalità di creazione del software.

(fonte)

Innovaformazione, scuola informatica specialistica promuove la cultura DevOps nel monto IT fra le aziende.

Nell’offerta formativa trovate una serie di corsi rivolti alle aziende proprio su questi argomenti. I link diretti all’elenco corsi Microservices e DevOps è presente QUI.

L’elenco corsi in ambito Cloud Computing è presente QUI.

INFO: info@innovaformazione.net / tel. 3471012275 (Dario Carrassi) .

Vuoi essere ricontattato? Lasciaci il tuo numero telefonico e la tua email, ti richiameremo nelle 24h:

    Ti potrebbe interessare

    Articoli correlati