{"id":3989,"date":"2021-12-24T13:59:00","date_gmt":"2021-12-24T12:59:00","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=3989"},"modified":"2021-12-22T16:14:37","modified_gmt":"2021-12-22T15:14:37","slug":"migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/","title":{"rendered":"Migrazione graduale e refactoring di applicazioni verso l’approccio serverless attraverso l’utilizzo di Amazon API Gateway"},"content":{"rendered":"\n

Oggigiorno sempre pi\u00f9 applicazioni, servizi e progetti vengono sviluppati seguendo l’approccio serverless.<\/p>\n\n\n\n

Molteplici applicazioni potrebbero sfruttare il suddetto approccio per migliorare le proprie performance e al contempo ottenere alta disponibilit\u00e0 ed elasticit\u00e0. Tuttavia, \u00e8 necessario che queste vengano migrate e rifattorizzate nel dettaglio.<\/p>\n\n\n\n

Migrare un’applicazione verso il paradigma serverless implica spesso una parziale riscrittura della codebase al fine di implementare un modello di esecuzione che sia adatto al FaaS selezionato. Inoltre, l’architettura complessiva dovrebbe accogliere l’approccio a microservizi e un flusso basato sugli eventi favorendo, dove possibile, il processamento asincrono e il disaccoppiamento attraverso servizi di messaggistica.<\/p>\n\n\n\n

Lo sforzo e le tempistiche richieste per ottenere le sopra citate specifiche, specialmente nel caso di applicazioni complesse, possono facilmente raggiungere elevati ordini di grandezza. A volte, inoltre, \u00e8 preferibile non rifattorizzare completamente un’applicazione prima del suo rilascio.<\/p>\n\n\n\n

Il presente articolo vi illustrer\u00e0 una tecnica che, attraverso API Gateway, si occuper\u00e0 del routing e dell’adattamento delle richieste dello user, permettendo la graduale migrazione e la rifattorizzazione di applicazione complesse senza compromettere la loro disponibilit\u00e0.<\/p>\n\n\n\n

Perch\u00e9 API Gateway?<\/h2>\n\n\n\n

Amazon API Gateway \u00e8 un servizio managed che rappresenta la front door della propria applicazione. Il servizio funziona come un gateway managed per il backend, pu\u00f2 essere anche direttamente integrato con altri servizi AWS supportati per indirizzare il carico verso il processore adeguato o un sistema di messaggistica.<\/p>\n\n\n\n

API Gateway si occupa di centinaia di migliaia di chiamate API concorrenti, gestisce il traffico, il CORS, l’autorizzazione, il controllo degli accessi, il throttling, il monitoraggio e il versionamento delle API.<\/p>\n\n\n\n

La tecnica utilizzata in questo articolo sfrutta le potenzialit\u00e0 di API Gateway per farlo agire da proxy per l’intero applicativo, per accettare richieste, apportare le modifiche necessarie al formato del payload ed eseguire il routing tra l’applicazione legacy e gli endpoint rifattorizzati.<\/p>\n\n\n\n

Replatforming e rifattorizzazione nella teoria<\/h2>\n\n\n\n

Il metodo proposto in questo articolo permette di mappare tutti gli endpoint dell’applicazione sottoposti a migrazione verso un unico API Gateway, il quale agir\u00e0 da punto di accesso centralizzato dell’applicazione.<\/p>\n\n\n\n

Una volta che l’intero flusso di richieste si dirige verso un singolo oggetto infrastrutturale, sar\u00e0 possibile mantenere due versioni distinte dell’applicazione: il modello legacy e la nuova versione, che possiamo implementare incrementalmente.<\/p>\n\n\n\n

<\/p>\n\n\n\n

\"infrastructure<\/figure><\/div>\n\n\n\n

<\/p>\n\n\n\n

Una volta mappati tutti gli endpoint all’API Gateway, \u00e8 necessario configurarlo per proxare l’infrastruttura dell’applicazione corrente. Per farlo, possiamo usare un’integrazione specifica chiamata “HTTP”, per la quale \u00e8 necessario abilitare l’opzione proxy come mostrato nell’immagine seguente.<\/p>\n\n\n\n

<\/p>\n\n\n\n

\"enable<\/figure><\/div>\n\n\n\n

<\/p>\n\n\n\n

A questo punto, API Gateway pu\u00f2 diventare l’unico punto di accesso dell\u2019applicazione. Dovrebbe essere possibile azionare il DNS per puntare il dominio al nuovo punto d’ingresso e vedere tutto il traffico fluire attraverso il Gateway senza che sia necessaria alcuna modifica dell’applicazione.<\/p>\n\n\n\n

Terminata l’appena citata configurazione, \u00e8 possibile rielaborare alcune componenti dell’applicazione; una buona strategia consiste nel migrare a singoli microservizi ove possibile. In caso di servizi estesi o applicazioni monolitiche, vi \u00e8 la possibilit\u00e0 di migrare singoli endpoint, rifattorizzarli secondo l’approccio serverless e cambiare le impostazioni di questi endpoint per instradare le richieste alla nuova versione.<\/p>\n\n\n\n

\u00c8 possibile operare anche un semplice A\/B testing, raccogliere le metriche inerenti alle performance dei nuovi endpoint e all’esperienza dello user ed infine tornare all’applicazione legacy precedente qualora, per qualsiasi ragione, la nuova risulti essere non adatta.<\/p>\n\n\n\n

Siccome tutto il traffico passa per l’API Gateway, \u00e8 possibile ottenere metriche di valore dal servizio, tra cui si citano quelle inerenti al volume del traffico, al tempo di risposta e ai ratei di errore.<\/p>\n\n\n\n

In aggiunta \u00e8 possibile sfruttare il servizio CloudWatch per monitorare le richieste e configurare allarmi e notifiche push.<\/p>\n\n\n\n

Considerazioni speciali sulle applicazioni monolitiche<\/h2>\n\n\n\n

La tecnica illustrata in questo articolo \u00e8 piuttosto semplice, tuttavia, ci sono alcune considerazioni da fare nel caso in cui si stia cercando di migrare un’applicazione monolitica. Per questa tipologia di applicazioni, infatti, \u00e8 generalmente necessario prevedere effort extra per “spezzare” il monolita, oltre ad eventuali modifiche all’infrastruttura esistente per trarre il massimo beneficio dai servizi Cloud.<\/p>\n\n\n\n

Non sempre \u00e8 necessario rompere le applicazioni monolitiche per migrarle verso serverless; ad esempio nel caso in cui si stia migrando un back-end che espone semplici API RESTFUL e stateless. In questo caso \u00e8 possibile percorrere diverse strade tra cui:<\/p>\n\n\n\n

– Realizzare un wrapper per inglobare l’intero back-end in una singola lambda function<\/p>\n\n\n\n

– Effettuare una riscrittura a medio\/basso effort utilizzando un framework come AWS Chalice adatto alla realizzazione di semplici API.<\/p>\n\n\n\n

Qualora si intenda apportare modifiche pi\u00f9 estese alla codebase ha sicuramente senso considerare una riscrittura volta alla separazione in gruppi di endpoint con funzionalit\u00e0 strettamente correlate, anche chiamati microservizi, ed implementarli in Lambda function separate.<\/p>\n\n\n\n

Al crescere della complessit\u00e0 del back-end possono essere impiegati servizi di orchestrazione come AWS Step Functions, servizi di messaggistica (bus, code) come SQS ed Amazon EventBridge.<\/p>\n\n\n\n

In caso l’applicazione monolitica comprenda anche un front-end, questo deve generalmente essere separato dal resto dell’applicazione e riscritto per diventare un’applicazione completamente separata. Questo implica generalmente la riscrittura dell’applicazione e la formalizzazione di una API di backend che riesca a soddisfare tutte le necessit\u00e0 dell’applicazione di frontend.<\/p>\n\n\n\n

Infine, se l’applicazione mantiene una sessione occorre gestirne il refactoring per permettere al backend di essere sviluppato mediante microservizi. Il modo pi\u00f9 semplice ed immediato prevede di spostare lo storage dei dati di sessione all’interno di un database che possa essere raggiunto dalle Lambda functions.<\/p>\n\n\n\n

Per lo scopo \u00e8 possibile considerare di utilizzare un database gi\u00e0 utilizzato dall’applicazione, oppure di scegliere una soluzione specifica come ad esempio un in memory DB oppure DynamoDB.<\/p>\n\n\n\n

L’operazione di esternalizzazione della sessione pu\u00f2 rivelarsi un aspetto oneroso della migrazione, e rappresenta sicuramente una delle prime parti che \u00e8 possibile realizzare durante la migrazione progressiva.<\/p>\n\n\n\n

AWS migration HUB<\/h2>\n\n\n\n

AWS Migration Hub \u00e8 uno sportello unico per la migrazione e la modernizzazione del cloud, che fornisce le risorse necessarie per semplificare e accelerare l\u2019utilizzo di AWS.<\/p>\n\n\n\n

AWS ha annunciato una nuova funzionalit\u00e0 di Migration Hub durante re:Invent 2021 ed \u00e8 ora in anteprima: AWS Migration Hub Refactor Spaces. Quest\u2019ultimo \u00e8 in grado di rifattorizzare le applicazioni esistenti in applicazioni distribuite e cloud-native.<\/p>\n\n\n\n

Usando Migration Hub, \u00e8 possibile sfruttare sfruttare AWS Application Migration Service per semplificare la migrazione e il refactoring di un\u2019applicazione, sia usando il metodo descritto in questo articolo che la strategia di tua scelta.<\/p>\n\n\n\n

Conclusioni<\/h2>\n\n\n\n

Come appena visto, l\u2019approccio serverless permette di migliorare le performance degli applicativi, sia monolitici che a microservizi, garantendo al contempo alta disponibilit\u00e0 ed elasticit\u00e0.<\/p>\n\n\n\n

La migrazione degli applicativi verso un approccio serverless, tuttavia, non \u00e8 un compito semplice a causa, per esempio, della necessit\u00e0 time consuming di rifattorizzare una parte del codice orginale.<\/p>\n\n\n\n

Il servizio API Gateway di AWS risulta essere una soluzione efficiente alle problematiche sopra riportate, in quanto questi pu\u00f2 agire come proxy per l\u2019intero applicativo, o altrimenti come unico access point. Agendo da proxy, API Gateway \u00e8 in grado di gestire efficientemente le richieste ed esegue il routing dell\u2019applicazione legacy con gli endpoint rifattorizzati.<\/p>\n\n\n\n

Inoltre, essendo API Gateway il punto di confluenza dell\u2019intero traffico, \u00e8 possibile ottenere metriche, ad esempio, inerenti al volume dello stesso.<\/p>\n\n\n\n

Nell\u2019articolo sono state illustrate anche delle criticit\u00e0 nella migrazione delle applicazioni monolitiche, ma altrettanto \u00e8 stata proposta una soluzione in grado di risolverle.<\/p>\n\n\n\n

Sebbene questa risulti essere una tecnica semplice, siamo convinti che rappresenti un buon punto di inizio per l\u2019elaborazione di strategie complesse e che sia in grado di gestire organicamente la migrazione di applicazioni estese senza causare interruzioni di servizio.<\/p>\n\n\n\n

Come siete riusciti a gestire la migrazione di applicazioni verso l\u2019approccio serverless? Fateci sapere nei commenti.<\/p>\n\n\n\n

Rimanete collegati per ulteriori interessanti articoli.<\/p>\n","protected":false},"excerpt":{"rendered":"

Oggigiorno sempre pi\u00f9 applicazioni, servizi e progetti vengono sviluppati seguendo l’approccio serverless. Molteplici applicazioni potrebbero sfruttare il suddetto approccio per […]<\/p>\n","protected":false},"author":8,"featured_media":3998,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[477],"tags":[255,526,267],"yoast_head":"\nMigrazione graduale e refactoring di applicazioni verso l'approccio serverless attraverso l'utilizzo di Amazon API Gateway - Proud2beCloud Blog<\/title>\n<meta name=\"description\" content=\"Migrazione di applicativi verso un approccio serverless utilizzando il servizio API Gateway di AWS.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Migrazione graduale e refactoring di applicazioni verso l'approccio serverless attraverso l'utilizzo di Amazon API Gateway\" \/>\n<meta property=\"og:description\" content=\"Migrazione di applicativi verso un approccio serverless utilizzando il servizio API Gateway di AWS.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/\" \/>\n<meta property=\"og:site_name\" content=\"Proud2beCloud Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-12-24T12:59:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-22T15:14:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.besharp.it\/wp-content\/uploads\/2021\/12\/Copertina-blog-24-12-21_24-12-21-social-ita.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Alessio Gandini\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Migrazione graduale e refactoring di applicazioni verso l'approccio serverless attraverso l'utilizzo di Amazon API Gateway\" \/>\n<meta name=\"twitter:description\" content=\"Migrazione di applicativi verso un approccio serverless utilizzando il servizio API Gateway di AWS.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blog.besharp.it\/wp-content\/uploads\/2021\/12\/Copertina-blog-24-12-21_24-12-21-social-ita.png\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alessio Gandini\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/\",\"url\":\"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/\",\"name\":\"Migrazione graduale e refactoring di applicazioni verso l'approccio serverless attraverso l'utilizzo di Amazon API Gateway - Proud2beCloud Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.besharp.it\/it\/#website\"},\"datePublished\":\"2021-12-24T12:59:00+00:00\",\"dateModified\":\"2021-12-22T15:14:37+00:00\",\"author\":{\"@id\":\"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/e7262d28e51528c2e420327f9b18cd43\"},\"description\":\"Migrazione di applicativi verso un approccio serverless utilizzando il servizio API Gateway di AWS.\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.besharp.it\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrazione graduale e refactoring di applicazioni verso l’approccio serverless attraverso l’utilizzo di Amazon API Gateway\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.besharp.it\/it\/#website\",\"url\":\"https:\/\/blog.besharp.it\/it\/\",\"name\":\"Proud2beCloud Blog\",\"description\":\"il blog di beSharp\",\"alternateName\":\"Proud2beCloud Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.besharp.it\/it\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/e7262d28e51528c2e420327f9b18cd43\",\"name\":\"Alessio Gandini\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/eeb98518768d999bff24f8358b464fe2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/eeb98518768d999bff24f8358b464fe2?s=96&d=mm&r=g\",\"caption\":\"Alessio Gandini\"},\"description\":\"Cloud-native Development Line Manager @ beSharp, DevOps Engineer e AWS expert. Computer geek da quando avevo 6 anni, appassionato di informatica ed elettronica a tutto tondo. Ultimamente sto esplorando l'esperienza utente vocale e il mondo dell'IoT. Appassionato di cinema e grande consumatore di serie TV, videogiocatore della domenica.\",\"url\":\"https:\/\/blog.besharp.it\/it\/author\/alessio-gandini\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Migrazione graduale e refactoring di applicazioni verso l'approccio serverless attraverso l'utilizzo di Amazon API Gateway - Proud2beCloud Blog","description":"Migrazione di applicativi verso un approccio serverless utilizzando il servizio API Gateway di AWS.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/","og_locale":"it_IT","og_type":"article","og_title":"Migrazione graduale e refactoring di applicazioni verso l'approccio serverless attraverso l'utilizzo di Amazon API Gateway","og_description":"Migrazione di applicativi verso un approccio serverless utilizzando il servizio API Gateway di AWS.","og_url":"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/","og_site_name":"Proud2beCloud Blog","article_published_time":"2021-12-24T12:59:00+00:00","article_modified_time":"2021-12-22T15:14:37+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/blog.besharp.it\/wp-content\/uploads\/2021\/12\/Copertina-blog-24-12-21_24-12-21-social-ita.png","type":"image\/png"}],"author":"Alessio Gandini","twitter_card":"summary_large_image","twitter_title":"Migrazione graduale e refactoring di applicazioni verso l'approccio serverless attraverso l'utilizzo di Amazon API Gateway","twitter_description":"Migrazione di applicativi verso un approccio serverless utilizzando il servizio API Gateway di AWS.","twitter_image":"https:\/\/blog.besharp.it\/wp-content\/uploads\/2021\/12\/Copertina-blog-24-12-21_24-12-21-social-ita.png","twitter_misc":{"Scritto da":"Alessio Gandini","Tempo di lettura stimato":"7 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/","url":"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/","name":"Migrazione graduale e refactoring di applicazioni verso l'approccio serverless attraverso l'utilizzo di Amazon API Gateway - Proud2beCloud Blog","isPartOf":{"@id":"https:\/\/blog.besharp.it\/it\/#website"},"datePublished":"2021-12-24T12:59:00+00:00","dateModified":"2021-12-22T15:14:37+00:00","author":{"@id":"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/e7262d28e51528c2e420327f9b18cd43"},"description":"Migrazione di applicativi verso un approccio serverless utilizzando il servizio API Gateway di AWS.","breadcrumb":{"@id":"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.besharp.it\/it\/migrazione-graduale-e-refactoring-di-applicazioni-verso-lapproccio-serverless-attraverso-lutilizzo-di-amazon-api-gateway\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.besharp.it\/it\/"},{"@type":"ListItem","position":2,"name":"Migrazione graduale e refactoring di applicazioni verso l’approccio serverless attraverso l’utilizzo di Amazon API Gateway"}]},{"@type":"WebSite","@id":"https:\/\/blog.besharp.it\/it\/#website","url":"https:\/\/blog.besharp.it\/it\/","name":"Proud2beCloud Blog","description":"il blog di beSharp","alternateName":"Proud2beCloud Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.besharp.it\/it\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/e7262d28e51528c2e420327f9b18cd43","name":"Alessio Gandini","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/eeb98518768d999bff24f8358b464fe2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eeb98518768d999bff24f8358b464fe2?s=96&d=mm&r=g","caption":"Alessio Gandini"},"description":"Cloud-native Development Line Manager @ beSharp, DevOps Engineer e AWS expert. Computer geek da quando avevo 6 anni, appassionato di informatica ed elettronica a tutto tondo. Ultimamente sto esplorando l'esperienza utente vocale e il mondo dell'IoT. Appassionato di cinema e grande consumatore di serie TV, videogiocatore della domenica.","url":"https:\/\/blog.besharp.it\/it\/author\/alessio-gandini\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/posts\/3989"}],"collection":[{"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/comments?post=3989"}],"version-history":[{"count":0,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/posts\/3989\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/media\/3998"}],"wp:attachment":[{"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/media?parent=3989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/categories?post=3989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/tags?post=3989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}