{"id":5209,"date":"2022-12-09T09:00:00","date_gmt":"2022-12-09T08:00:00","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=5209"},"modified":"2022-12-07T16:49:23","modified_gmt":"2022-12-07T15:49:23","slug":"lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/","title":{"rendered":"Lambda at scale: Tips & Tricks per far scalare la tua applicazione Serverless"},"content":{"rendered":"\n

NOTA: tutte le quotas riportate in questo articolo fanno riferimento alla data di scrittura dell\u2019articolo, potrebbero cambiare nel corso del tempo.<\/em><\/p>\n\n\n\n

Introduzione<\/h1>\n\n\n\n

Serverless, serverless e serverless.. Se siete frequentatori del nostro blog, questa parola vi sar\u00e0 entrata assolutamente in testa!<\/p>\n\n\n\n

Questa tecnologia permette di focalizzarsi sul codice applicativo dimenticandosi della gestione dell’infrastruttura e pagando solo la potenza computazionale effettivamente utilizzata.<\/p>\n\n\n\n

Quando si parla di serverless computing, per\u00f2, sono molti gli aspetti da tenere in considerazione per evitare spiacevoli sorprese (magari in produzione). Le nostre applicazioni non dovranno essere soltanto Cloud-native, ma anche Serverless-native.<\/p>\n\n\n\n

In questo articolo vi daremo molti spunti e consigli da tenere in considerazione quando si sviluppa un\u2019applicazione su Lambda at scale, in particolare quando si lavora con Lambda su grandi numeri.<\/p>\n\n\n\n

1. Attenzione alla concurrency<\/h2>\n\n\n\n

Quando si lavora su Lambda, uno dei primi limiti da tenere a mente \u00e8 la concorrenza massima per region, di default 1000. Questo vuol dire che potranno esserci al massimo 1000 esecuzioni di Lambda contemporanee per ciascuna region AWS. Questo limite \u00e8 condiviso tra tutte le istanze di Lambda, essendo un vincolo a livello di region.<\/p>\n\n\n\n

Se si hanno quindi pi\u00f9 workload nella stessa region, potrebbe essere utile configurare delle reserved concurrency<\/em> per ogni workload, in modo da settare un cap massimo per ognuna di essi ed evitare comportamenti di difficile analisi e risoluzione.<\/p>\n\n\n\n

In questo modo, i vari workload non si \u201cruberanno\u201d la disponibilit\u00e0 di Lambda se mai uno di questi dovesse scalare fortemente.<\/p>\n\n\n\n

In molti casi potrebbe essere che il limite di 1000 non sia sufficiente. Per fortuna, questo limite \u00e8 di tipo soft<\/em>, quindi pu\u00f2 essere aumentato direttamente dalla console di AWS fino a qualche migliaio. Ricordatevi che la molte volte bisogna \u201cgiustificare\u201d ad AWS molti aumenti di quotas.<\/p>\n\n\n\n

E se ancora non bastasse? <\/p>\n\n\n\n

Potrebbe essere che l\u2019organizzazione dei tuoi account AWS abbia bisogno di una piccola revisione, magari \u00e8 necessario configurare opportunamente un\u2019Organization AWS e creare account AWS per ogni workload e ogni ambiente.<\/p>\n\n\n\n

Se voleste rinfrescarvi la memoria su termini come provisioned concurrency, reserved concurrency e cold start time, fate un salto in questo articolo<\/a> in cui analizziamo nel dettagli questi aspetti.<\/p>\n\n\n\n

Tutti i suggerimenti che troverete in questo articolo derivano dall\u2019aver aumentato il limite di Lambda da 1000 a 10.000 per una nostra applicazione di produzione. L\u2019increase di per s\u00e9 \u00e8 molto semplice, ma comporta una serie di possibili side-effects.<\/p>\n\n\n\n

2. Chiamate a servizi esterni (Amazon S3 e AWS Secrets Manager)<\/h2>\n\n\n\n

Molto probabilmente, la nostra applicazione dovr\u00e0 chiamare dei servizi AWS esterni.<\/p>\n\n\n\n

Ad esempio, tra la varie best practice (non solo di AWS) vige quella di non hardcodare dati sensibili nel codice applicativo, ma di salvarli su servizi opportuni, magari cifrati at rest<\/em> e in transit<\/em> gestendo in maniera granulare le policy di accesso.<\/p>\n\n\n\n

Parliamo ad esempio di AWS Secrets Manager e Parameter Store, ma avete mai dato un’occhiata alle loro quotas?<\/p>\n\n\n\n

Con Secrets Manager siamo abbastanza tranquilli, siccome la quotas per recuperare un segreto \u00e8 di 10.000 al secondo. Per Parameter Store, il limite \u00e8 invece di 40 al secondo. Il limite \u00e8 ovviamente aumentabile, ma bisogna tenerne conto prima del rilascio in produzione.<\/p>\n\n\n\n

Sapevate che \u00e8 anche possibile cachare i valori dei nostri segreti? Ebbene si, grazie alle Lambda Extension<\/strong> \u00e8 possibile estendere le funzionalit\u00e0 delle nostre Lambda per scopi di monitoraggio, osservabilit\u00e0 e governance. \u00c8 possibile utilizzare estensioni sviluppate da altri partner per integrarsi direttamente con loro, ad esempio per inoltrarvi log applicativi. <\/p>\n\n\n\n

Sono anche presenti software per Parameter Store e Secret Manager che ci permettono di cachare i vari parametri e segreti, senza che dobbiamo farlo noi nel codice della Lambda.<\/p>\n\n\n\n

Vi interessa sapere di pi\u00f9 su come funzionano le Lambda Extension? Non siete i soli: presto uscir\u00e0 un articolo dedicato! <\/p>\n\n\n\n

Magari la nostra Lambda dovr\u00e0 anche scaricare un file da S3. Vediamo quindi le quotas di questo servizio: per la scrittura e lettura dei dati ha limiti molto particolari, ovvero 3500 PUT\/COPY\/POST\/DELETE e 5000 GET\/HEAD richieste al secondo, per partitioned prefix.<\/strong><\/p>\n\n\n\n

Questo limite non \u00e8 condiviso a livello di account o di region, ma vale per ogni singolo bucket. Se dovete scaricare un singolo file molte volte da Lambda (migliaia di volte in qualche secondo), potreste incorrere in questo limite. Ecco il nostro suggerimento: provate a copiare il file in partizioni diverse.<\/p>\n\n\n\n

In generale \u00e8 bene ricordarsi di prestare attenzione alle quotas di tutti i servizi con cui la nostra applicazione dovr\u00e0 interagire.<\/p>\n\n\n\n

3. File system & \/tmp storage<\/h2>\n\n\n\n

E se dobbiamo accedere ad un file system durante la fase di computing su Lambda? Ad esempio nel caso in cui occorra scaricare un dato da S3 per analizzarne il contenuto? Per fortuna, su Lambda puoi utilizzare il mounting point \/tmp per questo tipo di operazioni.<\/p>\n\n\n\n

Ovviamente non \u00e8 persistente; quando la Lambda ritorna \u201cfredda\u201d AWS penser\u00e0 a svuotare quella porzione di storage affinch\u00e8 sia libera per l\u2019esecuzione successiva.<\/p>\n\n\n\n

Questo limite \u00e8 da poco aumentabile: dai precedenti 512 MB, fino a 10GB. Per necessit\u00e0 di pi\u00f9 spazio, era comunque possibile agganciare un\u2019EFS mettendo la Lambda in VPC.<\/p>\n\n\n\n

Cosa Abbiamo scoperto? In fase di scaling rapido e massivo, non \u00e8 detto che la Lambda abbia questa porzione di storage vuoto, assicuratevi quindi di farne pulizia qualora doveste farci operazioni, potreste trovarvi dati vecchi!<\/p>\n\n\n\n

4. Database connection<\/h2>\n\n\n\n

Molto probabilmente la nostra Lambda non dovr\u00e0 solo richiamare servizi esterni o scrivere qualcosa sullo storage, ma dovr\u00e0 anche collegarsi ad un database per effettuare delle operazioni di lettura e scrittura. Avete mai provato ad aprire 5000 connessioni temporaneamente ad un database di produzione? Lasciamo le conseguenze alla vostra immaginazione!<\/p>\n\n\n\n

Per evitare di sovraccaricare il database con operazioni di questo tipo vi consigliamo di utilizzare un pool di connessione e interfacciarvi con esso. Su AWS, esiste RDS Proxy, un servizio gestito per questo tipo di operazioni. Potete quindi dimenticarvi di gestire il connection pool con il database.<\/p>\n\n\n\n

5. Serverless application at scale<\/h2>\n\n\n\n

Fino ad ora abbiamo sottolineato l’importanza di valutate sempre in anticipo le metriche della vostra applicazione e controllate se vanno bene con quanto avete progettato.<\/p>\n\n\n\n

E qualora non avete metriche pregresse da utilizzare, come nel nostro caso? Seguendo uno dei pillar del AWS Well Architect Framework<\/a>, ovvero l’Operational Excellence, siamo riusciti a riadattare ed evolvere in tempi decisamente brevi la nuova infrastruttura. <\/p>\n\n\n\n

Purtroppo i numeri avuti in produzione non potevano andare bene per un\u2019infrastruttura rilasciata in una sola region. Abbiamo quindi sfruttato l\u2019infrastruttura globale di AWS deployando l\u2019infrastruttura in diverse Region e facendo load balancing tra di esse.<\/p>\n\n\n\n

Aggiungiamo un po\u2019 di routing cross-region con Route 53, ed ecco che la nostra infrastruttura globale \u00e8 pronta!<\/p>\n\n\n\n

Sappiate quindi che se il vostro workload supera i limiti in una sola region, potrebbe essere giunta l\u2019ora di diventare Global! Per fortuna su AWS \u00e8 molto semplice. Se abbiamo poi generato l\u2019infrastruttura seguendo il paradigma dell\u2019Infastructure-as-Code (IaC) sar\u00e0 questione di qualche click!<\/p>\n\n\n\n

<\/p>\n\n\n

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

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

6. News da reinvent 2022: SnapStart<\/h2>\n\n\n\n

Siamo tornati da poco dal AWS re:Invent 2022 (tranquilli, uscir\u00e0 un articolo a riguardo a breve!) dove hanno annunciato una funzionalit\u00e0 molto interessante per Lambda: SnapStart.<\/p>\n\n\n\n

Questa feature \u00e8 disponibile solo per Java, siccome mira a risolvere i problemi noti del cold start time elevato per questo engine.<\/p>\n\n\n\n

Il funzionamento \u00e8 abbastanza semplice: ad ogni versione della Lambda ne viene fatto uno snapshot, ovvero una sorta di AMI per Lambda, che verr\u00e0 utilizzata nelle successive esecuzioni.<\/p>\n\n\n\n

E\u2019 quindi possibile utilizzare degli hook appositi per istanziare il client dell\u2019SDK di AWS, il cui tempo \u00e8 noto per Java, e magari salvarsi alcuni segreti o informazioni che normalmente verrebbero raccolti in fase di startup della Lambda.<\/p>\n\n\n\n

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

AWS ci offre un\u2019infrastruttura globale unica in termini di funzionalit\u00e0 e affidabilit\u00e0, oltre ad una serie di \u201cbuilding blocks\u201d per poter creare delle infrastrutture performanti e cost-effective, anche Serverless. <\/p>\n\n\n\n

Ricordiamoci per\u00f2 di progettare il tutto affinch\u00e8 l\u2019applicazione sia scalabile anche su grandi numeri, qualora sia necessario.<\/p>\n\n\n\n

Avete altri suggerimenti? Fatecelo sapere nei commenti!<\/p>\n\n\n\n

Ci vediamo tra 14 giorni con un nuovo articolo su Proud2beCloud!<\/p>\n\n\n\n


\n\n\n\n

About Proud2beCloud<\/h4>\n\n\n\n

Proud2beCloud \u00e8 il blog di beSharp<\/a>, APN Premier Consulting Partner italiano esperto nella progettazione, implementazione e gestione di infrastrutture Cloud complesse e servizi AWS avanzati. Prima di essere scrittori, siamo Solutions Architect che, dal 2007, lavorano quotidianamente con i servizi AWS. Siamo innovatori alla costante ricerca della soluzione pi\u00f9 all’avanguardia per noi e per i nostri clienti. Su Proud2beCloud condividiamo regolarmente i nostri migliori spunti con chi come noi, per lavoro o per passione, lavora con il Cloud di AWS. Partecipa alla discussione!<\/p>\n","protected":false},"excerpt":{"rendered":"

NOTA: tutte le quotas riportate in questo articolo fanno riferimento alla data di scrittura dell\u2019articolo, potrebbero cambiare nel corso del […]<\/p>\n","protected":false},"author":14,"featured_media":5228,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[477],"tags":[263,267],"yoast_head":"\nLambda at scale: Tips & Tricks per far scalare la tua applicazione Serverless - Proud2beCloud Blog<\/title>\n<meta name=\"description\" content=\"Cosa dobbiamo ricordare quando sviluppiamo un'applicazione Serverless con Lambda at scale? In questo articolo tutti i nostri consigli!\" \/>\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\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Lambda at scale: Tips & Tricks per far scalare la tua applicazione Serverless\" \/>\n<meta property=\"og:description\" content=\"Cosa dobbiamo ricordare quando sviluppiamo un'applicazione Serverless con Lambda at scale? In questo articolo tutti i nostri consigli!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/\" \/>\n<meta property=\"og:site_name\" content=\"Proud2beCloud Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-09T08:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-07T15:49:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.besharp.it\/wp-content\/uploads\/2022\/12\/Copertina-blog-9-12-22-copia_09-12-22-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=\"Alessandro Bertini\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Lambda at scale: Tips & Tricks per far scalare la tua applicazione Serverless\" \/>\n<meta name=\"twitter:description\" content=\"Cosa dobbiamo ricordare quando sviluppiamo un'applicazione Serverless con Lambda at scale? In questo articolo tutti i nostri consigli!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blog.besharp.it\/wp-content\/uploads\/2022\/12\/Copertina-blog-9-12-22-copia_09-12-22-social-ita.png\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alessandro Bertini\" \/>\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\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/\",\"url\":\"https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/\",\"name\":\"Lambda at scale: Tips & Tricks per far scalare la tua applicazione Serverless - Proud2beCloud Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.besharp.it\/it\/#website\"},\"datePublished\":\"2022-12-09T08:00:00+00:00\",\"dateModified\":\"2022-12-07T15:49:23+00:00\",\"author\":{\"@id\":\"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/06e173694a005ed650e6de35e965e0c9\"},\"description\":\"Cosa dobbiamo ricordare quando sviluppiamo un'applicazione Serverless con Lambda at scale? In questo articolo tutti i nostri consigli!\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.besharp.it\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lambda at scale: Tips & Tricks per far scalare la tua applicazione Serverless\"}]},{\"@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\/06e173694a005ed650e6de35e965e0c9\",\"name\":\"Alessandro Bertini\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6138dfdbb6ddab5ec54e7b8be0bbef73?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6138dfdbb6ddab5ec54e7b8be0bbef73?s=96&d=mm&r=g\",\"caption\":\"Alessandro Bertini\"},\"description\":\"DevOps Engineer @ beSharp. I deal with Cloud-Native software development, strongly oriented to the serverless paradigm! Passionate about board games and video games (as the best geeks do!)\",\"url\":\"https:\/\/blog.besharp.it\/it\/author\/alessandro-bertini\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Lambda at scale: Tips & Tricks per far scalare la tua applicazione Serverless - Proud2beCloud Blog","description":"Cosa dobbiamo ricordare quando sviluppiamo un'applicazione Serverless con Lambda at scale? In questo articolo tutti i nostri consigli!","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\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/","og_locale":"it_IT","og_type":"article","og_title":"Lambda at scale: Tips & Tricks per far scalare la tua applicazione Serverless","og_description":"Cosa dobbiamo ricordare quando sviluppiamo un'applicazione Serverless con Lambda at scale? In questo articolo tutti i nostri consigli!","og_url":"https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/","og_site_name":"Proud2beCloud Blog","article_published_time":"2022-12-09T08:00:00+00:00","article_modified_time":"2022-12-07T15:49:23+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/blog.besharp.it\/wp-content\/uploads\/2022\/12\/Copertina-blog-9-12-22-copia_09-12-22-social-ita.png","type":"image\/png"}],"author":"Alessandro Bertini","twitter_card":"summary_large_image","twitter_title":"Lambda at scale: Tips & Tricks per far scalare la tua applicazione Serverless","twitter_description":"Cosa dobbiamo ricordare quando sviluppiamo un'applicazione Serverless con Lambda at scale? In questo articolo tutti i nostri consigli!","twitter_image":"https:\/\/blog.besharp.it\/wp-content\/uploads\/2022\/12\/Copertina-blog-9-12-22-copia_09-12-22-social-ita.png","twitter_misc":{"Scritto da":"Alessandro Bertini","Tempo di lettura stimato":"7 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/","url":"https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/","name":"Lambda at scale: Tips & Tricks per far scalare la tua applicazione Serverless - Proud2beCloud Blog","isPartOf":{"@id":"https:\/\/blog.besharp.it\/it\/#website"},"datePublished":"2022-12-09T08:00:00+00:00","dateModified":"2022-12-07T15:49:23+00:00","author":{"@id":"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/06e173694a005ed650e6de35e965e0c9"},"description":"Cosa dobbiamo ricordare quando sviluppiamo un'applicazione Serverless con Lambda at scale? In questo articolo tutti i nostri consigli!","breadcrumb":{"@id":"https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.besharp.it\/it\/lambda-at-scale-tips-tricks-per-far-scalare-la-tua-applicazione-serverless\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.besharp.it\/it\/"},{"@type":"ListItem","position":2,"name":"Lambda at scale: Tips & Tricks per far scalare la tua applicazione Serverless"}]},{"@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\/06e173694a005ed650e6de35e965e0c9","name":"Alessandro Bertini","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6138dfdbb6ddab5ec54e7b8be0bbef73?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6138dfdbb6ddab5ec54e7b8be0bbef73?s=96&d=mm&r=g","caption":"Alessandro Bertini"},"description":"DevOps Engineer @ beSharp. I deal with Cloud-Native software development, strongly oriented to the serverless paradigm! Passionate about board games and video games (as the best geeks do!)","url":"https:\/\/blog.besharp.it\/it\/author\/alessandro-bertini\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/posts\/5209"}],"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\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/comments?post=5209"}],"version-history":[{"count":0,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/posts\/5209\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/media\/5228"}],"wp:attachment":[{"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/media?parent=5209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/categories?post=5209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/tags?post=5209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}