<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Serverless Italy</title>
    <description>The latest articles on DEV Community by Serverless Italy (@serverlessitaly).</description>
    <link>https://dev.to/serverlessitaly</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2953%2F99cc90c3-677e-41c9-9b49-3003a9ae079d.png</url>
      <title>DEV Community: Serverless Italy</title>
      <link>https://dev.to/serverlessitaly</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/serverlessitaly"/>
    <language>en</language>
    <item>
      <title>Architetture a microservizi, tra hype e casi d’uso — parte 1</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Tue, 16 Jun 2020 07:01:01 +0000</pubDate>
      <link>https://dev.to/serverlessitaly/architetture-a-microservizi-tra-hype-e-casi-d-uso-parte-1-4bi5</link>
      <guid>https://dev.to/serverlessitaly/architetture-a-microservizi-tra-hype-e-casi-d-uso-parte-1-4bi5</guid>
      <description>&lt;h3&gt;
  
  
  Architetture a microservizi, tra hype e casi d’uso — parte 1
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZVjdlP1j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2An5HkOuwhinc7UenWVKnG5g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZVjdlP1j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2An5HkOuwhinc7UenWVKnG5g.jpeg" alt="" width="800" height="599"&gt;&lt;/a&gt;Majestic Reflections of Shaik Zayed Grand Mosque. One of the world's most astonishing example of Islamic architecture. &lt;a href="https://unsplash.com/photos/CFbVdWD1RiI"&gt;Photo&lt;/a&gt; by Photo by &lt;a href="https://unsplash.com/@farhan5792"&gt;Farhan Khan&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Il mondo IT non è esente dal fascino delle &lt;em&gt;“mode del momento”&lt;/em&gt;: soluzioni che magari sono state adottate da aziende considerate punti di riferimento e che assumono nell’immaginario collettivo il ruolo di “no brainer” diventando il nuovo status quo, almeno per alcuni mesi, in attesa che la nuova “moda” prenda il posto della precedente. Il più delle volte si tratta di soluzioni che hanno più di un razionale forte nella loro adozione da parte delle aziende che le hanno proposte per prime. Si tratta, più in generale, di metodologie, architetture o tecnologie che vale la pena prendere in considerazione, ma è necessario avere ben chiari i problemi che si desidera risolvere ed il rapporto costi/benefici offerto da queste tecnologie.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Nessuna scelta tecnologica è esente da “costi”: compito di un buon architect è valutarne l’impatto in relazione ai benefici che si desidera ottenere.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Perché sono interessanti le architetture microservizi?
&lt;/h3&gt;

&lt;p&gt;In questo scenario è opportuno valutare adeguatamente l’impatto delle cosiddette architetture a microservizi. Vediamo cosa caratterizza le scelte tecnologiche alla base di questa metodologia per la definizione di architetture. In particolare un fattore fondamentale di queste soluzioni è legato alla &lt;strong&gt;scalabilità&lt;/strong&gt; intrinseca a queste architetture, soprattutto in presenza di pattern di scalabilità differenti per le diverse componenti del nostro sistema. Consideriamo, ad esempio, un portale e-commerce. Sappiamo ormai da quasi un decennio che il primo passo per garantire una buona scalabilità è la separazione quantomeno della componente client dalla parte backend dell’architettura. Questa scelta che oggi appare intuitiva, non lo era affatto solo pochi anni fa: numerose tecnologie affermatesi nel tempo, incentrate sulla semplicità ed il rapido time-to-market hanno invece proposto un approccio diametralmente opposto. Si tratta di framework come Django, Rails e soluzioni analoghe che solo recentemente hanno abbracciato quantomeno un’architettura multi-tenant, separando il client (ormai sempre più una Single Page App o “SPA”) dalle componenti relative al backend, richiedendo lo sviluppo di endpoint. In questo scenario si è affermato sempre più lo standard di sviluppo di backend che espongano verso i client, endpoint REST. Non si tratta ancora di architetture a microservizi, ma di una prima suddivisione di componenti con requisiti e molteplicità profondamente diversi: grazie all’avvento del mobile, oggi si considera sempre più spesso lo sviluppo di differenti client, magari costruiti con la medesima tecnologia, ma rivolti ad utenze diverse. Il sistema backend, in questo contesto diventa un oggetto software che ha il compito di esporre degli endpoint verso i client attraverso cui inviare o ricevere informazioni utili al soddisfacimento dei nostri requisiti. Tornando all’esempio del sto e-commerce, il backend offrirà ai client quantomeno endpoint relativi al catalogo, al carrello ed alla procedura di pagamento dei prodotti acquistati.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y8OFXhyF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/364/1%2AiTy5YQi6L1R-UQ1QWiMp5w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y8OFXhyF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/364/1%2AiTy5YQi6L1R-UQ1QWiMp5w.png" alt="" width="364" height="300"&gt;&lt;/a&gt;Progettare la scalabilità di un sistema richiede un’attenta analisi della variazione nel tempo delle differenti componenti dell’architettura&lt;/p&gt;

&lt;p&gt;Ovviamente dal punto di vista della scalabilità questi insiemi di endpoint avranno requisiti molto diversi tra loro: il catalogo subirà un traffico legato ad eventuali campagne promozionali, mentre il carrello (oppure un’eventuale wish list) avranno traffico necessariamente minore. In molti casi si sperimenta non solo un differente volume di chiamate, ma anche pattern tra loro alquanto diversi, soggetti alle iniziative del business che hanno lo scopo di servire: ad esempio offerte “flash” da Black Friday generano traffico molto diverso da normali periodi di esercizio. Supportare differenti pattern di accesso con una medesima architettura impone di trovare un minimum comune denominatore tra le varie esigenze. Le architetture a microservizi consentono di separare i vari endpoint, in base alle necessità imposte dai requisiti business per meglio soddisfarle. Si accetta quindi un maggiore costo “gestionale” giungendo a differenti configurazioni di deploy, così da consentire una gestione più efficiente del sistema con un migliore profilo di costi. L’impatto di queste scelte risulta ancora più evidente quando si considera la persistenza dei dati relative alla soluzione realizzata.&lt;/p&gt;

&lt;h3&gt;
  
  
  A ciascun servizio la sua persistenza
&lt;/h3&gt;

&lt;p&gt;La separazione delle varie componenti di un’architettura in microservizi offre la possibilità di valutare per ciascuna di esse il miglior database disponibile in base alla struttura dati. Si tratta di un cambiamento quasi epocale nella gestione dei dati, poiché per quasi tre decadi l’unico approccio disponibile, considerato da molti un vero e proprio “silver bullet”, è stato l’utilizzo di modelli di dati strutturati, che venivano poi calati su database relazionali (spesso impropriamente detti SQL per via del linguaggio di query utilizzato da questi DBMS). Prodotti di mercato del calibro di Oracle, IBM DB2 e Microsoft SQL Server, affiancati negli anni da soluzioni open source come MySQL e PostgreSQL, hanno suggerito come unica soluzione alla gestione della persistenza dei dati la riduzione del modello nella cosiddetta “forma normale” così da minimizzarne la ridondanza informativa. Questi database provengono da un’epoca in cui lo storage aveva costi decisamente maggiori della potenza computazionale che, nella maggior parte dei casi applicativi, si trovava ad essere largamente sotto-utilizzata. L’avvento del cloud e la comparsa dei primi servizi di computazione on-demand, unitamente alla disponibilità di memorie a basso costo, ha ribaltato questa prospettiva.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mxq_dDL8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1000/1%2Ab5vneT_J4-dKejbYH4o5qg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mxq_dDL8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1000/1%2Ab5vneT_J4-dKejbYH4o5qg.png" alt="" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Non si tratta però di un solo fattore economico: negli ultimi vent’anni l’adozione in modo pervasivo di tecnologie mobile e la digitalizzazione di interi comparti industriali hanno portato alla nascita di casi d’uso che mettevano in crisi il modello unico relazionale su temi di scalabilità e consistenza di dati spesso acceduti e modificati da varie parti del globo. In particolare la pubblicazione nel 2000 del &lt;a href="https://en.wikipedia.org/wiki/CAP_theorem"&gt;teorema CAP&lt;/a&gt; ha dimostrato come un sistema software sia sempre il risultato di una serie di compromessi che ne determinano l’architettura e l’impatto che tali scelte hanno sulla persistenza dei dati rischia di essere non trascurabile. In particolare negli ultimi anni, si è affermato il modello dei &lt;a href="https://www.allthingsdistributed.com/2018/06/purpose-built-databases-in-aws.html"&gt;purpose-built database&lt;/a&gt;, contrapposti alla scelta di un solo DBMS per tutto il nostro applicativo. In questo scenario diventa puerile la diatriba SQL vs NoSQL che ha appassionato architect e developer per quasi un decennio: il database migliore dipende dai requisiti di un sistema che deve soddisfare un determinato caso d’uso e, nel caso di architetture a microservizi, non esiste una risposta univoca. In particolare queste architetture offrono la possibilità di &lt;a href="https://thenewstack.io/selecting-the-right-database-for-your-microservices/"&gt;scegliere il miglior database per un determinato insieme di endpoint&lt;/a&gt;, incoraggiando quindi una pluralità di modelli dati all’interno della stessa soluzione. All’interno del perimetro di ciascun servizio, è possibile valutare le esigenze degli specifici schemi di accesso ai dati ed in base alle esigenze della logica di business, scegliere la persistenza più adatta.&lt;/p&gt;

&lt;h4&gt;
  
  
  Cicli di vita e rilasci incrementali
&lt;/h4&gt;

&lt;p&gt;Un beneficio interessante spesso sottovalutato delle architetture a microservizi è la capacità di parallelismo del ciclo di vita delle varie componenti: ciascun team è in buona parte indipendente dagli altri e quindi può procedere con iterazioni di sviluppo più brevi e minori rischi di regression poichè la base di codice da manutenere risulta più piccola. Questo significa che i componenti del team non devono necessariamente conoscere il dettaglio di tutti gli aspetti del sistema, mentre un maggiore valore è dato al ruolo dell’architect che svolge una funzione importante della condivisione del know-how necessario alla realizzazione dei macro-requisiti di business.&lt;/p&gt;

&lt;p&gt;Questo aspetto evidenzia anche alcuni punti di attenzione che le architetture a microservizi presentano: la &lt;a href="https://en.wikipedia.org/wiki/Separation_of_concerns"&gt;separation of concern&lt;/a&gt; è garantita by design da questa metodologia richiede ovviamente un’attenzione particolare alla gestione della comunicazione tra i vari microservizi.&lt;/p&gt;

&lt;h4&gt;
  
  
  Nella seconda parte..
&lt;/h4&gt;

&lt;p&gt;Nella seconda parte di questo articolo vedremo quali criticità pongono le architetture a microservizi e come possono essere superate mediante l’adozione di tecniche quali API Façade e comunicazione event-based.&lt;/p&gt;

&lt;h3&gt;
  
  
  Informazioni sull’autore
&lt;/h3&gt;

&lt;p&gt;Sviluppatore e Cloud Architect da oltre un decennio, Luca Bianchi segue in qualità di CTO, lo sviluppo della tecnologia e dei prodotti &lt;a href="http://www.neosperience.com"&gt;Neosperience&lt;/a&gt;, Technology partner AWS, con particolare focus su &lt;strong&gt;serverless&lt;/strong&gt; e &lt;strong&gt;machine learning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Dal 2015 è co-organizer del &lt;a href="https://www.meetup.com/it-IT/Serverless-Italy/"&gt;Serverless Italy Meetup&lt;/a&gt; e dal 2016 collabora all’organizzazione del capitolo italiano di &lt;a href="http://italy.serverlessdays.io"&gt;ServerlessDays&lt;/a&gt;. Autore di numerose pubblicazioni, talk e video è da sempre appassionato di tecnologia, con particolare attenzione allo sviluppo di applicativi &lt;em&gt;serverless&lt;/em&gt;, ai modelli di &lt;em&gt;machine learning&lt;/em&gt; e al mondo &lt;em&gt;IoT&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Potete contattare Luca su &lt;a href="https://twitter.com/bianchiluca"&gt;Twitter&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/lucabianchipavia/"&gt;LinkedIn&lt;/a&gt; e &lt;a href="https://medium.com/@aletheia"&gt;Medium&lt;/a&gt;&lt;/p&gt;




</description>
      <category>microservices</category>
      <category>architecture</category>
      <category>cloud</category>
      <category>designpatterns</category>
    </item>
    <item>
      <title>Come abilitare la regione italiana di AWS e primi test di connettività</title>
      <dc:creator>Luca Bianchi</dc:creator>
      <pubDate>Mon, 01 Jun 2020 12:09:59 +0000</pubDate>
      <link>https://dev.to/serverlessitaly/come-abilitare-la-regione-italiana-di-aws-e-primi-test-di-connettivita-4o5k</link>
      <guid>https://dev.to/serverlessitaly/come-abilitare-la-regione-italiana-di-aws-e-primi-test-di-connettivita-4o5k</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sDOKixcY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AflsLolONsgCuj5Llasfcbw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sDOKixcY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AflsLolONsgCuj5Llasfcbw.jpeg" alt="" width="800" height="533"&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@cristina_gottardi?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Cristina Gottardi&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/milan?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Amazon Web Services ha rafforzato la sua presenza in Europa mediante l’introduzione di una region dedicata agli utilizzatori dei servizi AWS in Italia, prevedendo nei prossimi anni uno sviluppo significativo di questo mercato.&lt;/p&gt;

&lt;p&gt;La nuova region prende il nome di &lt;strong&gt;eu-south-1&lt;/strong&gt; oppure &lt;strong&gt;AWS Europe (Milan)&lt;/strong&gt;. Sebbene sia disponibile a tutti gli utenti AWS, non è abilitata di default quindi è necessario effettuare alcune semplici operazioni per poter accedere ai servizi localizzati nel nostro paese.&lt;/p&gt;

&lt;p&gt;Infatti, selezionando la region eu-south-1 dal menu a discesa si viene portati ad una pagina che ci informa che è necessario chiedere l’abilitazione. Questo processo è totalmente gratuito, ma richiede un’autorizzazione esplicita e qualche minuto di attesa.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--azOy_ntS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/986/1%2AlOINJh7fRHwpN0UBPctviw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--azOy_ntS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/986/1%2AlOINJh7fRHwpN0UBPctviw.png" alt="" width="800" height="329"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dopo aver cliccato su &lt;strong&gt;Continua&lt;/strong&gt; si viene portati all’elenco delle region attive sul nostro account, tra cui è possibile vedere come &lt;em&gt;Europe (Milan)&lt;/em&gt; sia indicata come “Disabilitata”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PvyJsrF7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/701/1%2AKY6229i-QbWmLdpz_irPIw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PvyJsrF7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/701/1%2AKY6229i-QbWmLdpz_irPIw.png" alt="" width="701" height="679"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dopo aver cliccato su &lt;strong&gt;Enable&lt;/strong&gt; è necessario confermare una seconda volta la scelta. Completato l’operazione si riceve un messaggio che avvisa che la region sarà disponibile una volta terminata la preparazione delle risorse da parte di AWS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i8ntjzxw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/736/1%2APYw2YZrAqJke5SAmYaqoUg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i8ntjzxw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/736/1%2APYw2YZrAqJke5SAmYaqoUg.png" alt="" width="736" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Il tempo di preparazione può richiedere fino ad alcuni minuti, entro i quali se si prova ad accedere dal menu a discesa si riceve un messaggio di attesa.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--o95IcHPD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/968/1%2ADog34vgsnC6yhwGVjdyjlQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o95IcHPD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/968/1%2ADog34vgsnC6yhwGVjdyjlQ.png" alt="" width="800" height="202"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finalmente, al termine dell’operazione potremo accedere alla region eu-south-1, con la garanzia che le nostre risorse cloud siano localizzate in più availability zone (almeno 3) all’interno del territorio italiano.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_f91mMH5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/805/1%2AsJfCJIxctF0evW1m1XRggA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_f91mMH5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/805/1%2AsJfCJIxctF0evW1m1XRggA.png" alt="" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Non tutti i servizi AWS sono disponibili all’interno di questa nuova region ed i costi delle risorse risultano leggermente più alti di &lt;strong&gt;eu-west-1&lt;/strong&gt; (ma comunque in media con le altre region AWS e decisamente più contenuti di &lt;strong&gt;eu-central-1&lt;/strong&gt; ).&lt;/p&gt;

&lt;p&gt;Per renderci conto della latenza della nuova region, sperimentiamo il deploy di una API mediante &lt;strong&gt;Amazon API Gateway&lt;/strong&gt;. Nel menu della console selezioniamo il servizio, poi &lt;strong&gt;Create new API&lt;/strong&gt; ed impostiamo le opzioni come segue:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P0JWNCq2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1011/1%2Ak5ydP9Xcb_5AlLSMokCWwQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P0JWNCq2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1011/1%2Ak5ydP9Xcb_5AlLSMokCWwQ.png" alt="" width="800" height="675"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In questo modo effettueremo il deploy della &lt;em&gt;pet store api&lt;/em&gt;, una API di test offerta da API Gateway che sarà perfetta per provare i tempi di risposta della nostra region. Dopo aver selezionato &lt;strong&gt;Import&lt;/strong&gt; occorre effettuare il deploy della API, scegliendo &lt;strong&gt;New Stage&lt;/strong&gt; ed assegnando un nome allo stage di deploy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nR633ofy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/601/1%2AegUabZahb82mX4W5suWq2Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nR633ofy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/601/1%2AegUabZahb82mX4W5suWq2Q.png" alt="" width="601" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Completata l’operazione copiamo l’indirizzo riportato accanto a &lt;strong&gt;Invoke URL&lt;/strong&gt; e proviamo una semplice richiesta &lt;strong&gt;GET&lt;/strong&gt; con Postman. L’API PetStore appena generata si comporta come proxy verso una API resa disponibile da AWS nella region (raggiungibile all’url &lt;a href="http://petstore.execute-api.eu-south-1.amazonaws.com/petstore/pets"&gt;http://petstore.execute-api.eu-south-1.amazonaws.com/petstore/pets&lt;/a&gt;), che, essendo realizzata mediante Lambda, potrebbe sperimentare il problema del cold start e quindi tornare tempi maggiori per la prima invocazione (pur sempre nell’ordine di qualche millisecondo). Per i nostri test, ignoriamo questi dati effettuando più chiamate, a distanza di qualche secondo e vediamo i tempi di risposta riportati da Postman:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5qbzIeVd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2ANJ9Z-uym6RhfHgBI9X2ABg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5qbzIeVd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2ANJ9Z-uym6RhfHgBI9X2ABg.png" alt="" width="800" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Il tempo di risposta dell’intera API è &lt;strong&gt;13ms&lt;/strong&gt;. Non c’è male considerando che alle latenze di rete si sommano anche le latenze dovute alla banda del provider di connettività e la computazione per la generazione della risposta. Test diretti alla semplice latenza collocano la region Milano al primo posto tra quelle in Europa con minore latenza rispetto alla nostra posizione (dal momento che siamo in Italia) e di ben un’ordine di grandezza inferiore alla latenza per region oltreoceano.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Attenzione: questi test sono stati effettuati su connettività fibra, da una posizione relativamente vicina alla region (qualche decina di km a sud di Milano). Le latenze potrebbero variare, restando comunque sempre contenute&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KyI4NdCV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/976/1%2AZ5XWsY4yEp6INy5PY9Fh8Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KyI4NdCV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/976/1%2AZ5XWsY4yEp6INy5PY9Fh8Q.png" alt="" width="800" height="473"&gt;&lt;/a&gt;Latenze verso le region AWS calcolate utilizzando il sito web &lt;a href="https://ping.psa.fun/"&gt;&lt;/a&gt;&lt;a href="https://ping.psa.fun/"&gt;https://ping.psa.fun/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nei prossimi articoli continueremo a sperimentare le risorse disponibili all’interno di questa nuova region, iniziando a pubblicare alcuni servizi &lt;strong&gt;serverless&lt;/strong&gt; ed a realizzare le nostre app con tecnologie all’avanguardia.&lt;/p&gt;

&lt;p&gt;Nel frattempo, non mancate giovedì 4 giugno dalle 9:45 al primo evento gratuito interamente in lingua italiana sul mondo serverless. Registrazioni ed agenda su &lt;a href="http://italy.serverlessdays.io"&gt;italy.serverlessdays.io&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Informazioni sull’autore
&lt;/h4&gt;

&lt;p&gt;Sviluppatore e Cloud architect da oltre un decennio, Luca Bianchi segue in qualità di CTO, lo sviluppo della tecnologia e dei prodotti Neosperience, Technology partner AWS, con particolare focus su &lt;strong&gt;serverless&lt;/strong&gt; e &lt;strong&gt;machine learning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Dal 2015 è co-organizer del &lt;a href="https://www.meetup.com/it-IT/Serverless-Italy/"&gt;Serverless Italy Meetup&lt;/a&gt; e dal 2016 collabora all’organizzazione del capitolo italiano di ServerlessDays. Autore di numerose pubblicazioni, talk e video è da sempre appassionato di tecnologia, con particolare attenzione allo sviluppo di applicativi &lt;em&gt;serverless&lt;/em&gt;, ai modelli di &lt;em&gt;machine learning&lt;/em&gt; e al mondo &lt;em&gt;IoT&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Potete contattare Luca su &lt;a href="https://twitter.com/bianchiluca"&gt;Twitter&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/lucabianchipavia/"&gt;LinkedIn&lt;/a&gt; e &lt;a href="https://medium.com/@aletheia"&gt;Medium&lt;/a&gt;&lt;/p&gt;




</description>
      <category>milano</category>
      <category>aws</category>
      <category>italiano</category>
    </item>
  </channel>
</rss>
