{"id":1450,"date":"2020-06-12T13:31:53","date_gmt":"2020-06-12T11:31:53","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=1450"},"modified":"2021-03-17T15:18:51","modified_gmt":"2021-03-17T14:18:51","slug":"ottimizzazione-dei-costi-delle-applicazioni-serverless","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/","title":{"rendered":"Ottimizzazione dei costi delle applicazioni serverless."},"content":{"rendered":"

Siamo nel bel mezzo dell’era serverless.<\/strong> In un momento in cui i vantaggi di questo approccio diventano sempre pi\u00f9 evidenti. Uno tra i pi\u00f9 importanti per l’ascesa di questo paradigma \u00e8 sicuramente la promessa di significativi vantaggi economici.<\/strong>\u00a0<\/span><\/p>\n

Ma \u00e8 davvero cos\u00ec? Ancora pi\u00f9 importante: stai sfruttando appieno il paradigma serverless?<\/span><\/p>\n

Cos\u2019\u00e8 serverless?<\/span><\/h2>\n

Serverless \u00e8 un paradigma nativo del Cloud che consente di spostare sempre pi\u00f9 responsabilit\u00e0 operative verso il provider cloud, in questo caso AWS, aumentando l’agilit\u00e0<\/strong> e l’innovazione<\/strong>. Serverless consente di creare ed eseguire applicazioni e servizi senza pensare ai server fisici<\/strong> e quindi eliminando le attivit\u00e0 di gestione dell’infrastruttura come provisioning di server o cluster, patch, manutenzione del sistema operativo e provisioning della capacit\u00e0. Serverless ti aiuta a eseguire e ridimensionare l’applicazione mentre l’alta affidabilit\u00e0<\/strong> \u00e8 fornita in modo trasparente dai servizi impiegati.<\/span><\/p>\n

Durante la progettazione dell’architettura di un’applicazione serverless, \u00e8 necessario pensare a diversi ambiti, tra cui archiviazione<\/strong>, database<\/strong>, elaborazione<\/strong>, messaggistica<\/strong> e molti altri.<\/span><\/p>\n

AWS<\/strong> offre numerosi servizi che possono essere impiegati per creare un’applicazione serverless valida. Dal momento che \u00e8 necessario scegliere lo strumento giusto per ogni ambito, la conoscenza, almeno ad alto livello, di ogni servizio \u00e8 vitale per fare una scelta saggia.<\/span><\/p>\n

Non solo Lambda<\/span><\/h2>\n

Quando si pensa a serverless, il primo servizio AWS che viene in mente \u00e8 sicuramente Lambda, infatti la parte di computing<\/strong> di un’applicazione serverless \u00e8 probabilmente la pi\u00f9 iconica ed importante. <\/span>Tuttavia, un’architettura serverless non \u00e8 composta solo da lambda, ma anche da diversi servizi AWS gestiti<\/strong> che a loro volta devono essere serverless.<\/span><\/p>\n

Ecco un breve e non esaustivo elenco di servizi serverless, completamente gestiti, per ogni tier applicativo.<\/span><\/p>\n

Computing<\/span><\/h2>\n

Naturalmente abbiamo <\/span>AWS Lambda<\/span><\/a> e <\/span>Lambda@<\/span><\/a>edge, che sono solitamente associate a serverless ed attraggono la maggior parte dei framework e delle soluzioni di terze parti, ma anche <\/span>AWS<\/span><\/a> Fargate, che \u00e8 un container orchestrator serverless e fully managed costruito appositamente per docker container.<\/span><\/p>\n

Archiviazione<\/span><\/h2>\n

Amazon Simple Storage Service<\/span><\/a> (Amazon S3) fornisce storage a livello oggetti sicuro, durevole e altamente scalabile.<\/span><\/p>\n

Database<\/span><\/h2>\n

Amazon DynamoDB<\/span><\/a> \u00e8 un servizio di database NoSQL veloce e flessibile per tutte le applicazioni che richiedono una latenza costante e bassa ad ogni dimensione.<\/span><\/p>\n

Amazon Aurora Serverless<\/span><\/a> \u00e8 una configurazione su richiesta con scalabilit\u00e0 automatica per <\/span>Amazon Aurora<\/span><\/a>. Il database verr\u00e0 avviato, arrestato e ridimensionato automaticamente la capacit\u00e0 in base alle esigenze dell’applicazione.<\/span><\/p>\n

Proxy \/ API<\/span><\/h2>\n

Amazon API Gateway<\/span><\/a> \u00e8 un servizio completamente gestito e offre una piattaforma completa per la gestione delle API con supporto per l’autorizzazione, controllo accessi, monitoraggio e gestione delle versioni API.<\/span><\/p>\n

Integrazione delle applicazioni<\/span><\/h2>\n

Amazon SNS<\/span><\/a> \u00e8 un servizio di pub \/ sub messaggistica completamente gestito che semplifica il disaccoppiamento e il ridimensionamento di microservizi, sistemi distribuiti e applicazioni serverless.<\/span><\/p>\n

Amazon SQS<\/span><\/a> \u00e8 un servizio di accodamento messaggi completamente gestito che semplifica il disaccoppiamento e il ridimensionamento di microservizi, sistemi distribuiti e applicazioni serverless.<\/span><\/p>\n

AWS AppSync<\/span><\/a> semplifica lo sviluppo di applicazioni consentendo di creare un’API GraphQL flessibile per accedere, manipolare e combinare in modo sicuro i dati da una o pi\u00f9 fonti.\u00a0<\/span><\/p>\n

Orchestration<\/span><\/h2>\n

AWS Step Functions<\/span><\/a> semplifica il coordinamento dei componenti di applicazioni distribuite e microservizi mediante flussi di lavoro visivi. Step Functions \u00e8 un modo affidabile per coordinare i componenti il flusso di funzioni lambda dell’applicazione.<\/span><\/p>\n

Analytics<\/span><\/h2>\n

Amazon Kinesis<\/span><\/a> \u00e8 una piattaforma per lo streaming di dati su AWS, che offre potenti servizi per facilitare il caricamento e l’analisi dei dati di streaming e offre anche la possibilit\u00e0 di creare applicazioni di dati di streaming personalizzate per esigenze specializzate.<\/span><\/p>\n

Amazon Athena<\/span><\/a> \u00e8 un servizio di query interattivo che semplifica l’analisi dei dati in Amazon S3 utilizzando SQL standard. Athena \u00e8 serverless, quindi non c’\u00e8 alcuna infrastruttura da gestire e paghi solo per le query che esegui.<\/span><\/p>\n

AWS Lambda: pricing model e insidie<\/span><\/h2>\n

Quando si crea un’applicazione serverless, \u00e8 importante tenere presente il suo modello di pricing<\/strong> al fine di strutturare i servizi e i trigger in un modo che consenta di ottenere le migliori prestazioni al prezzo pi\u00f9 basso<\/strong>.<\/span><\/p>\n

AWS Lambda ha un pricing model davvero interessante se usato nel modo giusto; inoltre, puoi sfruttare un generoso free tier<\/strong> di 1 milione di richieste gratuite al mese e 400.000 GB-seconds di tempo di elaborazione al mese. Questo free tier non scade dopo il primo anno.<\/span><\/p>\n

Il modello dei prezzi Lambda \u00e8 incentrato su invocazioni e durata dell’esecuzione.<\/strong>\u00a0<\/span><\/p>\n

Lambda conta una richiesta ogni volta che inizia l’esecuzione in risposta a una notifica di evento o invocazione di una funzione. La durata viene calcolata dal momento in cui l’esecuzione del codice inizia al momento in cui termina, arrotondata per eccesso ai 100 ms pi\u00f9 vicini. Ci\u00f2 significa che il tempo di esecuzione viene pagato “a scatti” di 100 ms. Avere una funzione il cui tempo di esecuzione medio \u00e8 molto vicino alla soglia pu\u00f2 quindi aumentare considerevolmente il costo complessivo di esecuzione.<\/span><\/p>\n

Il prezzo di ogni “scatto” di 100 ms dipende dalla quantit\u00e0 di memoria allocata alla funzione. Un aumento delle dimensioni della memoria provoca un aumento equivalente della potenza di calcolo disponibile per la funzione.\u00a0<\/span><\/p>\n

Richieste: 0,20$ per 1 milione di richieste<\/span><\/p>\n

\"lambda<\/p>\n

I seguenti fatti possono quindi essere dedotti dal modello di prezzo:\u00a0<\/span><\/p>\n

    \n
  • L\u2019ottimizzazione del tempo di esecuzione<\/strong> \u00e8 cruciale, il codice deve usare le risorse disponibili al massimo e terminare nel minor tempo possibile.<\/span><\/li>\n
  • La taglia della funzione Lambda<\/strong> influisce sui tempi di risposta e sui costi complessivi. Occorre bilanciare il costo con i tempi di risposta, tenendo presente che il prezzo \u00e8 per uno scatto di 100ms, per cui le funzioni con un tempo di esecuzione vicino alla soglia dello scatto sono quelle da ottimizzare maggiormente.<\/span><\/li>\n
  • Una funzione lambda non dovrebbe mai essere in attesa di eventi esterni<\/strong>: trigger, code, step functions dovrebbero essere utilizzati per disaccoppiare i servizi e invocare Lambda solo quando necessario.<\/span><\/li>\n<\/ul>\n

    Un altro inconveniente comune \u00e8 quello di elaborare i messaggi da SQS in lotti 1 messaggio. Se la coda \u00e8 piena, \u00e8 bene utilizzare la stessa chiamata per elaborare il maggior numero possibile di messaggi poich\u00e9 ogni chiamata ha un tempo di avvio e un tempo di caricamento che si sommano abbastanza rapidamente se si elabora solo 1 messaggio alla volta.<\/span><\/p>\n

    AWS API Gateway<\/span><\/h2>\n

    API Gateway offre molte funzionalit\u00e0, che possono essere preziose per accelerare lo sviluppo<\/strong> di applicazioni complesse ed \u00e8 spesso considerata la soluzione naturale per i back-end serverless basati su Lambda. Tuttavia, il prezzo di ciascuna chiamata API \u00e8 da 5 a 15 volte il prezzo di una chiamata lambda e mentre questo prezzo \u00e8 adeguato per le funzionalit\u00e0 del servizio (ad es. gestione dell’autenticazione, memorizzazione nella cache, trasformazione richiesta \/ risposta, proxy), \u00e8 facile capire che se queste funzionalit\u00e0 non vengono utilizzate, Api Gateway non \u00e8 probabilmente la scelta migliore.<\/span><\/p>\n

    Esistono diverse situazioni in cui API Gateway viene utilizzato solo come proxy trasparente per passare l’intera richiesta HTTP a una funzione Lambda che quindi gestisce l’autenticazione, l’autorizzazione, l’analisi e la generazione della risposta. In questi casi, tuttavia ci sono spesso soluzioni pi\u00f9 economiche: per esempio, un Elastic Load Balancer pu\u00f2 anche essere utilizzato per inoltrare richieste HTTP a Lambda, e pu\u00f2 essere pi\u00f9 conveniente rispetto ad API Gateway per volumi elevati di invocazioni.<\/span><\/p>\n

    Quando il front-end \u00e8 l’unico dei consumatori delle API di back-end, \u00e8 possibile sfruttare Cognito per ottenere le credenziali IAM per gli utenti. Questi potranno poi invocare le funzioni lambda in modo sicuro utilizzando l’AWS Javascript SDK e le credenziali temporanee. Questa soluzione ti consente di ottenere sia l’autenticazione che l’autorizzazione tramite IAM, evitando la necessit\u00e0 di un gateway API al costo di funzionalit\u00e0 ridotte (devi preparare la tua richiesta sul frontend e gestire anche le risposte e gli errori nel tuo codice su lambda). Inoltre, non \u00e8 possibile proteggere il back-end con un WAF, quindi questa strada potrebbe non essere sempre percorribile.<\/span><\/p>\n

    In sostanza, o si sfruttano le funzionalit\u00e0 di alto livello di Api Gateway oppure \u00e8 meglio evitarlo per evitare di sprecare denaro.<\/span><\/p>\n

    Sistema di logging distribuito<\/span><\/h2>\n

    Il logging \u00e8 un’altra area in cui \u00e8 possibile risparmiare denaro senza perdere funzionalit\u00e0.<\/span><\/p>\n

    Per impostazione predefinita, viene utilizzato CloudWatch Logs<\/strong> per raccogliere i log di tutte le chiamate delle funzioni lambda.<\/span><\/p>\n

    La soluzione \u00e8 perfetta per iniziare e il costo aumenta in proporzione al numero di GB di log generati, a partire da 0$.<\/span><\/p>\n

    Tuttavia, il costo per GB \u00e8 piuttosto elevato e potresti essere sorpreso di vedere quanti GB di log sono generati da una tipica applicazione web serverless. Vi sono quindi casi in cui il costo di questo sistema di logging pu\u00f2 diventare eccessivo e difficile da giustificare.<\/span><\/p>\n

    Quindi, come \u00e8 possibile ottimizzare i costi di logging?<\/strong><\/p>\n

    Innanzitutto, \u00e8 necessario ridurre la quantit\u00e0 di log generati il \u200b\u200bpi\u00f9 possibile, \u00e8 quasi sempre conveniente riassumere le stesse informazioni in un formato pi\u00f9 compatto.<\/span><\/p>\n

    \u00c8 sempre meglio evitare messaggi lunghi e verbosi e registrare solo checkpoint o eventi importanti durante l’esecuzione, preferibilmente solo poche volte durante una singola chiamata.<\/span><\/p>\n

    Si consiglia inoltre di salvare i messaggi di log in un formato strutturato, come JSON, e di includere in un singolo messaggio tutte le informazioni necessarie per ricostruire l’evento che lo ha causato.<\/span><\/p>\n

    Ci sono anche casi in cui CloudWatch Logs \u00e8\u00a0 semplicemente non abbastanza avanzato da consentire un’adeguata analisi di problemi o situazioni eccezionali. In questi casi, \u00e8 possibile beneficiare di un’infrastruttura di logging creata con Kinesis Firehose per lo lo streaming dei log, ElasticSearch e Kibana per la consultazione.<\/span><\/p>\n

    Questa soluzione ha un costo fisso piuttosto elevato, ma che tende a rimanere costante e in alcuni casi (quando la quantit\u00e0 di messaggi di log \u00e8 stabile e alta) pu\u00f2 essere molto inferiore al costo generato dai log di CloudWatch.<\/span><\/p>\n

    \"serverless<\/p>\n

    Questi sono solo alcuni dei trucchi che possono essere utilizzati per ottimizzare i costi di un’applicazione serverless<\/strong>, ovviamente ci sono molti pi\u00f9 casi particolari e scenari specifici che possono beneficiare delle pi\u00f9 disparate personalizzazioni infrastrutturali.<\/span><\/p>\n

    In generale su AWS \u00e8 importante prendere in considerazione il modello di pricing di ciascun servizio e costruire sia l’infrastruttura che l’ applicazione al fine di trarne vantaggio anzich\u00e9 pagare di pi\u00f9 per utilizzare i servizi in modo non ottimale.<\/span><\/p>\n

    Non perdere i prossimi articoli per ulteriori suggerimenti sull’argomento!\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"

    Siamo nel bel mezzo dell’era serverless. In un momento in cui i vantaggi di questo approccio diventano sempre pi\u00f9 evidenti. […]<\/p>\n","protected":false},"author":8,"featured_media":1460,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[477],"tags":[255,257,261,259,263,265,267],"yoast_head":"\nOttimizzazione dei costi delle applicazioni serverless. - Proud2beCloud Blog<\/title>\n<meta name=\"description\" content=\"In questo articolo vi regaliamo alcuni trucchi per ottimizzare i costi di un'applicazione serverless.\" \/>\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\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ottimizzazione dei costi delle applicazioni serverless.\" \/>\n<meta property=\"og:description\" content=\"In questo articolo vi regaliamo alcuni trucchi per ottimizzare i costi di un'applicazione serverless.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/\" \/>\n<meta property=\"og:site_name\" content=\"Proud2beCloud Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-12T11:31:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-17T14:18:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.besharp.it\/wp-content\/uploads\/2020\/06\/copertine-blog-41.png\" \/>\n\t<meta property=\"og:image:width\" content=\"834\" \/>\n\t<meta property=\"og:image:height\" content=\"626\" \/>\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=\"Ottimizzazione dei costi delle applicazioni serverless.\" \/>\n<meta name=\"twitter:description\" content=\"In questo articolo vi regaliamo alcuni trucchi per ottimizzare i costi di un'applicazione serverless.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blog.besharp.it\/wp-content\/uploads\/2020\/06\/copertine-blog-41.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=\"8 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/\",\"url\":\"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/\",\"name\":\"Ottimizzazione dei costi delle applicazioni serverless. - Proud2beCloud Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.besharp.it\/it\/#website\"},\"datePublished\":\"2020-06-12T11:31:53+00:00\",\"dateModified\":\"2021-03-17T14:18:51+00:00\",\"author\":{\"@id\":\"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/e7262d28e51528c2e420327f9b18cd43\"},\"description\":\"In questo articolo vi regaliamo alcuni trucchi per ottimizzare i costi di un'applicazione serverless.\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.besharp.it\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ottimizzazione dei costi delle applicazioni 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\/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":"Ottimizzazione dei costi delle applicazioni serverless. - Proud2beCloud Blog","description":"In questo articolo vi regaliamo alcuni trucchi per ottimizzare i costi di un'applicazione serverless.","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\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/","og_locale":"it_IT","og_type":"article","og_title":"Ottimizzazione dei costi delle applicazioni serverless.","og_description":"In questo articolo vi regaliamo alcuni trucchi per ottimizzare i costi di un'applicazione serverless.","og_url":"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/","og_site_name":"Proud2beCloud Blog","article_published_time":"2020-06-12T11:31:53+00:00","article_modified_time":"2021-03-17T14:18:51+00:00","og_image":[{"width":834,"height":626,"url":"https:\/\/blog.besharp.it\/wp-content\/uploads\/2020\/06\/copertine-blog-41.png","type":"image\/png"}],"author":"Alessio Gandini","twitter_card":"summary_large_image","twitter_title":"Ottimizzazione dei costi delle applicazioni serverless.","twitter_description":"In questo articolo vi regaliamo alcuni trucchi per ottimizzare i costi di un'applicazione serverless.","twitter_image":"https:\/\/blog.besharp.it\/wp-content\/uploads\/2020\/06\/copertine-blog-41.png","twitter_misc":{"Scritto da":"Alessio Gandini","Tempo di lettura stimato":"8 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/","url":"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/","name":"Ottimizzazione dei costi delle applicazioni serverless. - Proud2beCloud Blog","isPartOf":{"@id":"https:\/\/blog.besharp.it\/it\/#website"},"datePublished":"2020-06-12T11:31:53+00:00","dateModified":"2021-03-17T14:18:51+00:00","author":{"@id":"https:\/\/blog.besharp.it\/it\/#\/schema\/person\/e7262d28e51528c2e420327f9b18cd43"},"description":"In questo articolo vi regaliamo alcuni trucchi per ottimizzare i costi di un'applicazione serverless.","breadcrumb":{"@id":"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.besharp.it\/it\/ottimizzazione-dei-costi-delle-applicazioni-serverless\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.besharp.it\/it\/"},{"@type":"ListItem","position":2,"name":"Ottimizzazione dei costi delle applicazioni 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\/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\/1450"}],"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=1450"}],"version-history":[{"count":0,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/posts\/1450\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/media\/1460"}],"wp:attachment":[{"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/media?parent=1450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/categories?post=1450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.besharp.it\/it\/wp-json\/wp\/v2\/tags?post=1450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}