1. DEFINIZIONI
- Perché Serverless / Cos’è Serverless
- Le promesse di serverless
- Use case
2. I PRODOTTI DISPONIBILI
- Confrontare prodotti serverless
- Il mercato FaaS
- La famiglia AWS serverless
4. STRUMENTI E BEST PRACTICE
- Strumenti AWS
- Framework e ambienti di sviluppo
- Testing
- Debug, log, monitoraggio
3. DESIGN E ARCHITETTURA
- Performance e Capacity
- Deploy e Release
- Gestione costi
Cloud Computing reale: le basi, il presente ed il futuro del Cloud Computingfestival ICT 2016
L’Ing. Leoncino ci parlerà dell’infrastruttura e dei software che stanno alla base del Cloud Computing, di come e quando è vantaggioso utilizzare questa nuova tecnologia e dei nuovi sviluppi che si avranno in questo campo nel medio periodo. Capo progetto di uno dei primi servizi di Cloud Computing IAAS in Italia, l’Ing. Leoncino ci guiderà tramite esempi facilmente assimilabili alle proprie realtà, per farci comprendere i vantaggi dell’utilizzo di questa nuova tecnologia che sta cambiando l’approccio operativo dei professionisti del web.
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2MongoDB
MongoDB Atlas è il servizio DBaaS (Database-as-a-Service) che ti consente distribuire, gestire e scalare un database MongoDB in ambiente cloud con pochi clic.
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...Daniele Mondello
Gestire infrastrutture in cloud con la semplicità di scrivere file di configurazione. Tutto ciò grazie a Terraform, soluzione Open Source per gestire infrastrutture cloud indipendentemente dal Cloud.
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
Il TechAdvisor Michelangelo Uberti spiega come realizzare un servizio di Database-as-a-Service basato su MySQL e Docker.
I punti trattati durante la presentazione sono:
- DB-as-a-Service: la semplicità del concept
- I possibili approcci
- Architettura di alto livello
- Focus sul Management Agent
- Orchestration at work
- Da cgroups a Docker
- Le sfide principali
- Quale futuro?
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/dbaas-con-docker-un-caso-di-studio
Cloud Computing reale: le basi, il presente ed il futuro del Cloud Computingfestival ICT 2016
L’Ing. Leoncino ci parlerà dell’infrastruttura e dei software che stanno alla base del Cloud Computing, di come e quando è vantaggioso utilizzare questa nuova tecnologia e dei nuovi sviluppi che si avranno in questo campo nel medio periodo. Capo progetto di uno dei primi servizi di Cloud Computing IAAS in Italia, l’Ing. Leoncino ci guiderà tramite esempi facilmente assimilabili alle proprie realtà, per farci comprendere i vantaggi dell’utilizzo di questa nuova tecnologia che sta cambiando l’approccio operativo dei professionisti del web.
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2MongoDB
MongoDB Atlas è il servizio DBaaS (Database-as-a-Service) che ti consente distribuire, gestire e scalare un database MongoDB in ambiente cloud con pochi clic.
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...Daniele Mondello
Gestire infrastrutture in cloud con la semplicità di scrivere file di configurazione. Tutto ciò grazie a Terraform, soluzione Open Source per gestire infrastrutture cloud indipendentemente dal Cloud.
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
Il TechAdvisor Michelangelo Uberti spiega come realizzare un servizio di Database-as-a-Service basato su MySQL e Docker.
I punti trattati durante la presentazione sono:
- DB-as-a-Service: la semplicità del concept
- I possibili approcci
- Architettura di alto livello
- Focus sul Management Agent
- Orchestration at work
- Da cgroups a Docker
- Le sfide principali
- Quale futuro?
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/dbaas-con-docker-un-caso-di-studio
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
OVERVIEW: Java secondo Microsoft
STRUMENTI:Java nel cloud
MODALITA’: Il Development life cycle secondo Microsoft
APPROCCIO: Stack cloud native basato su JAVA ed Azure
CAMBIAMENTO: Know how necessario per lo sviluppo su AZURE con Java
OPPORTUNITA: Use case di implementazione «first approach»
Serverless si é imposto negli ultimi anni come tecnologia chiave per un ampio ventaglio di use case, ricoprendo soluzioni di computazione, storage, database e machine learning. Con i servizi Serverless abbiamo ridotto i costi di gestione dell'infrastruttura e ottimizzato i costi operativi. Non sono sempre state rosa e fiori. Qualche lezione l'ho portata a casa e la vorrei condividere con chi inizia e con chi ha già qualche anno di esperienza.
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Natale Vinto
My Master Degree in Computer Engineering Dissertation about delivering an open source extendible hybrid cloud solution for Platform-as-a-Service with Openshift, integrated in an Infrastructure-as-a-Service deployment with Openstack Grizzly RDO
"Sistemi managed in alta affidabilità e in open source" by Andrea Di MarcoThinkOpen
13/02/2018
Il mondo del cloud computing: point of failure, sia a livello architetturale che fisico, dei servizi oggi presenti sul mercato, ma anche nuove possibili soluzioni per l'alta affidabilità.
Introduction to Cloud Computing seminar.
Diritto dell'Informatica at Informatica, Dipartimento di Scienze matematiche e informatiche, scienze fisiche e scienze della terra, Università degli Studi di Messina.
By Lorenzo Carnevale.
Come configurare ed eseguire un applicativo PHP su Serverless in ambiente AWS; quali considerazioni mettere in campo per la gestione delle risorse, fino a far funzionare un applicativo basato su Laravel che espone delle API
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Codemotion
Realizzare un’unica piattaforma che garantisce Omni-channel, Zero-downtime, Functional-decomposition e Auto-scaling è possibile? Vi raccontiamo un caso reale di come, utilizzando Zuul, Eureka, SpringBoot, Docker abbiamo realizzato i desideri del cliente e attuato questa trasformazione.
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetessparkfabrik
In this talk we will talk about how to ensure the security and quality of the software we deploy on Kubernetes using open-source tools like Sigstore, Kyverno and Syft/Grype.
We will explain what a secure supply chain is, why it is important and how to implement it with these tools. We will also show you how to generate and verify SBOMs (Software Bill of Materials) of your OCI (Open Container Initiative) artifacts. And finally, we will show you some practical examples of how to use these technologies in action.
We hope you enjoy it and find it useful!
This document discusses application-driven infrastructure using Crossplane. It introduces Crossplane as a Kubernetes-native framework that allows platform teams to assemble infrastructure from multiple vendors and expose higher-level APIs. This enables development teams to consume infrastructure services without having to write custom code. Crossplane uses the concepts of providers, managed resources, and composite resources to map external services to Kubernetes and provide opinionated APIs through self-service resources. It aims to simplify infrastructure provisioning and management for both platform and application teams.
More Related Content
Similar to Progettare e sviluppare soluzioni serverless con AWS
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
OVERVIEW: Java secondo Microsoft
STRUMENTI:Java nel cloud
MODALITA’: Il Development life cycle secondo Microsoft
APPROCCIO: Stack cloud native basato su JAVA ed Azure
CAMBIAMENTO: Know how necessario per lo sviluppo su AZURE con Java
OPPORTUNITA: Use case di implementazione «first approach»
Serverless si é imposto negli ultimi anni come tecnologia chiave per un ampio ventaglio di use case, ricoprendo soluzioni di computazione, storage, database e machine learning. Con i servizi Serverless abbiamo ridotto i costi di gestione dell'infrastruttura e ottimizzato i costi operativi. Non sono sempre state rosa e fiori. Qualche lezione l'ho portata a casa e la vorrei condividere con chi inizia e con chi ha già qualche anno di esperienza.
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Natale Vinto
My Master Degree in Computer Engineering Dissertation about delivering an open source extendible hybrid cloud solution for Platform-as-a-Service with Openshift, integrated in an Infrastructure-as-a-Service deployment with Openstack Grizzly RDO
"Sistemi managed in alta affidabilità e in open source" by Andrea Di MarcoThinkOpen
13/02/2018
Il mondo del cloud computing: point of failure, sia a livello architetturale che fisico, dei servizi oggi presenti sul mercato, ma anche nuove possibili soluzioni per l'alta affidabilità.
Introduction to Cloud Computing seminar.
Diritto dell'Informatica at Informatica, Dipartimento di Scienze matematiche e informatiche, scienze fisiche e scienze della terra, Università degli Studi di Messina.
By Lorenzo Carnevale.
Come configurare ed eseguire un applicativo PHP su Serverless in ambiente AWS; quali considerazioni mettere in campo per la gestione delle risorse, fino a far funzionare un applicativo basato su Laravel che espone delle API
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Codemotion
Realizzare un’unica piattaforma che garantisce Omni-channel, Zero-downtime, Functional-decomposition e Auto-scaling è possibile? Vi raccontiamo un caso reale di come, utilizzando Zuul, Eureka, SpringBoot, Docker abbiamo realizzato i desideri del cliente e attuato questa trasformazione.
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetessparkfabrik
In this talk we will talk about how to ensure the security and quality of the software we deploy on Kubernetes using open-source tools like Sigstore, Kyverno and Syft/Grype.
We will explain what a secure supply chain is, why it is important and how to implement it with these tools. We will also show you how to generate and verify SBOMs (Software Bill of Materials) of your OCI (Open Container Initiative) artifacts. And finally, we will show you some practical examples of how to use these technologies in action.
We hope you enjoy it and find it useful!
This document discusses application-driven infrastructure using Crossplane. It introduces Crossplane as a Kubernetes-native framework that allows platform teams to assemble infrastructure from multiple vendors and expose higher-level APIs. This enables development teams to consume infrastructure services without having to write custom code. Crossplane uses the concepts of providers, managed resources, and composite resources to map external services to Kubernetes and provide opinionated APIs through self-service resources. It aims to simplify infrastructure provisioning and management for both platform and application teams.
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirtsparkfabrik
Agilità oltre il software? Ma se è una fatica di Sisifo applicarla già solo AL software?
A 22 anni dalla pubblicazione del Manifesto ancora lamentiamo scarsi risultati e aspettative sbagliate. Il mondo non ci capisce, ma noi ci facciamo l'occhiolino e custodiamo la chiave segreta per il successo. O no?
È tempo di smettere di lamentarci e iniziare a chiederci perché è così difficile convincere il mondo che abbiamo ragione noi.
E se vestissimo i panni di chi paga? Come clienti, qual è la nostra propensione al rischio? Nella nostra vita privata, procediamo sempre in modo empirico?
E come sviluppatori, cosa vogliamo ottenere davvero? Siamo certi che il resto del mondo rifiuti il nostro mindset, o magari non vediamo che l'agilità si esprime già su scale e in industrie differenti?
Facciamo un po' di retrospettiva su questi 22 anni, sul mercato dell'Agile, sulle nostre convinzioni e su "gli individui e le interazioni" al primo punto del nostro amato manfesto. Magari ne usciamo con qualche esperimento.
2023 - Drupalcon - How Drupal builds your pagessparkfabrik
Have you ever wondered what happens when a HTTP request reaches your Drupal web site? How does Drupal find the correct code to execute? Which parts of the page come from the cache and which ones are built from scratch? Which queries are executed against the database? And, why not, how much time and memory the request requires to be converted into a response?
Whether you are a contrib developer or a simple curious person the answers to those questions will let you better understand how Drupal 10 works.
The WebProfiler module can help you in discovering how all the different subsystems of Drupal 10 interact to take a request and return a response. WebProfiler collects data during the build of each page of the site and lets you easily explore the internals of Drupal 10.
Follow the journey of a request entering the stack middleware, passing the routing component and the controller through the ViewSubscriber and Twig. Discover how services provide functionalities and how events give the opportunity (or the chance) to write decoupled code.
Knowing your system will allow you to find bottlenecks, reduce resources and lower the costs.
2023 - TAC23 - Agile HR - Racconti dal frontesparkfabrik
Nel 2020 ho avuto il piacere di essere ospite della Agile Community Torino, per raccontare come in SparkFabrik avessimo organizzato i processi di reclutamento secondo quanto appreso dalla nostra esperienza di sviluppo agile.
Non ho parlato di tecnologia, ma di approcci. Non di strumenti ma di valori.
Sono passati già tre anni da quell'intervento e il nostro reparto Human Relations non ha mai smesso di innovare e sperimentare, non solo nelle fasi di recruiting ma in tutta la filiera di supporto al personale.
Vi racconterò cosa è stato fatto per snellire, efficientare e rendere trasparente il nostro ramo. Discuteremo delle sfide ancora aperte e di alcuni elefanti nella stanza che sempre più spesso - a mio avviso - vengono ignorati nelle discussioni di questo settore.
E come mio solito, non ci andrò per il sottile.
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...sparkfabrik
In this talk I’ll explain what is the Software Supply Chain, common threats and mitigations and how they apply to IAC ecosystem too. I’ll show off security threats using Terraform and its ecosystem and finally i’ll talk about OCI images talking about digital signatures and SBOM using Sigstore and Syft. I’ll do a live coding session showing off how to deploy secure OCI images on K8S cluster with security policies built with Kyverno, the session includes also security scanning using the generated SBOM.
What is the Secure Supply Chain and the Current State of the PHP Ecosystemsparkfabrik
In this talk I’ll present the current state of the software supply chain, the big global recent events (SolarWinds, log4shell, codecov, packagist) and the state of the PHP and Drupal ecosystem, the threats and the mitigations that can be applied using tools like Sigstore, Syft, and Grype for digital signatures, SBOM generation, and automatic vulnerability scanning and how to use them for real-world projects to gain unprecedented levels of knowledge of your digital artifacts.
There will be also a demo of the mentioned tools in action to implement a secure supply chain pipeline for your Drupal projects.
Quanto è sostenibile la UX per il nostro Pianeta? Che si tratti di utilizzare Internet per lavoro, per accrescimento personale o semplicemente per staccarsi dalla realtà, tutto questo ha un costo e un forte impatto ambientale. Infatti, la prima frase citata nel Sustainable Web Manifest è la seguente: ''Se Internet fosse un Paese, sarebbe il settimo più grande inquinatore'. Progettare siti web sostenibili per l'ambiente significa tenere conto di parametri come velocità, performance e usabilità: ironicamente, si tratta di caratteristiche che gli utenti in primis premiano. Quindi perchè il web contribuisce ancora così tanto alle emissioni di CO2?
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...sparkfabrik
This document discusses the secure software supply chain and current state of the PHP ecosystem. It begins with introductions and defines a software supply chain as a network involved in creating and delivering a product to consumers. It then discusses threats in modern software supply chains like dependencies and demonstrates building a software bill of materials (SBOM) to analyze dependencies. It also covers recent supply chain attacks on PHP infrastructure and tools like Composer and PEAR. Finally, it recommends mitigations like using signed container images to verify integrity and provenance and generating SBOMs to detect vulnerabilities.
Deep dive nella supply chain della nostra infrastruttura cloudsparkfabrik
The document discusses software supply chain security and infrastructure as code. It describes how malicious modules and containers could potentially compromise infrastructure. It emphasizes the importance of using tools to detect issues like unauthorized access from modules. The document also discusses using digital signatures, software bills of materials, and initiatives like Sigstore and the OpenSSF to help secure the software supply chain and increase integrity and transparency of artifacts. It provides examples of how infrastructure as code could be exploited and recommends best practices like static analysis and generating signatures and software bills of materials to help prevent issues.
KCD Italy 2022 - Application driven infrastructure with Crossplanesparkfabrik
Crossplane allows users to extend their Kubernetes clusters using CRDs. The CRDs map any infrastructure or managed service, ensuring that the creation process for the users is as simple as the Kubernetes resources creation. Using a collection of YAML manifests, the development teams can assemble the needed cloud services for their applications removing this duty from the operation teams: this is "shift left" at its best. All this powerfulness comes with a cost in terms of security, governance, cognitive load and maintenance. In this talk we'll discuss strategies and techniques to better map the complexity of this infrastructure.
Hai mai pensato a cosa succede quando una richiesta HTTP arriva al tuo sito Drupal? Come Drupal trova il codice corretto da eseguire? Quali parti di una pagina provengono dalla cache e quali sono costruite da zero? Quante e quali query vengono eseguite sul database? E, perché no, quanto tempo e quanto memoria richiede convertire la richiesta in una risposta?
Che tu sia una persona che sviluppa moduli o solo curiosa, le risposte a queste domande ti aiuteranno a comprendere meglio come funziona internamente il tuo CMS preferito (perché se non lo è già, lo diventerà).
Per fare questo useremo il modulo Webprofiler, che ci aiuterà a capire come le varie componenti di Drupal interagiscono per convertire una richiesta in una risposta. Webprofiler raccoglie dati durante la costruzione di ogni pagina del sito e ci permette di esplorare facilmente cosa succede all’interno di Drupal.
Seguiremo il percorso di una richiesta iniziando dai middleware, passeremo dal routing al controller per finire a Twig. Scopriremo come i servizi forniscono funzionalità e come gli eventi danno la possibilità (o l’opportunità) di scrivere codice disaccoppiato. Il tutto senza perdere di vista le performance e tenendo un occhio sulle risorse, il tempo, le cache e le query.
Drupal 10: un framework PHP di sviluppo Cloud Native modernosparkfabrik
I detrattori parlano di un declino di Drupal: sempre meno developer lo scelgono per realizzare siti. Eppure se osserviamo la qualità dei progetti basati su Drupal, è evidente che si tratti di progetti di impatto sempre maggiore, per lo più a livello enterprise, in grado di garantire vere e proprie esperienze digitali innovative.
Drupal rimane non solo il più potente e sicuro CMS open source enterprise-grade, ma è diventato un CMF solido che ha saputo rinnovarsi seguendo i principi del framework MACH che promuove piattaforme basate su microservizi, che siano API-first, cloud native ed headless. Quindi no, nessun declino, Drupal è al passo con le migliori tecnologie esistenti sul mercato.
Ecco di cosa parliamo oggi: la nuova major release di Drupal è alle porte e vogliamo raccontarvi tutte le novità per utenti e developer.
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)sparkfabrik
This document discusses observability tools for distributed systems like Drupal websites. It recommends using Monolog for structured logging, the Prometheus monitoring system for metrics collection, and OpenTelemetry with Tempo for distributed tracing. The Observability suite module can integrate all three for Drupal. Monolog logs are scraped by Promtail and sent to Loki. Metrics are exposed via Prometheus and scraped. OpenTelemetry instruments code and sends traces to Tempo. This provides insights across logs, metrics and traces for observability of distributed applications.
Do you know what your Drupal is doing_ Observe it!sparkfabrik
Our Drupal 8 websites are true applications, often very complex ones.
More and more workload is delegated to external systems, usually microservices, that are used for many different tasks.
Architectures are always more distributed and fragmented.
To trace the lifecycle of a single request that origins in a client, passes throught all Drupal subsytems, reaches external (micro)services and comes back will become mandatory to track down problems and to optimize for performances. This is often time consuming and without the right tools may became very difficult.
A simple unstructured log stream isn't enough anymore, we need to find a way to observe the details of what is going on.
Observability is all about this and is based on structured logs, metrics and traces. In this talk we will see how to implement these tecniques in Drupal, which tools and which modules to use to trace and log all requests that reach our website and how to expose and display useful metrics.
We will integrate Drupal with OpenTracing, Prometheus, Monolog, Grafana and many more.
From React to React Native - Things I wish I knew when I startedsparkfabrik
INTRO
Why RN
Welcome to the Mobile world
The app bundle
UI COMPONENTS/NAVIGATION
Android Jetpack
iOS UIKit
React Navigation
THE JAVASCRIPT ENGINE
JavaScriptCore
Chrome V8
Hermes
THE LOCAL DEVELOPMENT
Metro
Flipper
Gradle
CocoaPods
Fastlane
Headless Drupal: A modern approach to (micro)services and APIssparkfabrik
Drupal offre agli sviluppatori un ambiente di lavoro moderno, che permette di modellare dati ed esporli via API nativamente; questo lo rende un ottimo candidato sia per sviluppare un CMS headless usando un frontend framework moderno, sia per lo sviluppo di microservizi.
In questo talk vi presenteremo alcuni casi d’uso per sfruttare al meglio le potenzialità di Drupal fuori dal classico contesto CMS.
L’evoluzione delle pratiche di sviluppo, delle architetture e delle infrastrutture è un processo che anche Drupal ha abbracciato, trasformandosi da un CMS per community a un framework PHP moderno.
Drupal oggi permette di creare un'esperienza developer-friendly e può essere la base su cui costruire la vostra applicazione cloud-native.
Mobile Development: una introduzione per Web Developerssparkfabrik
Dal native coding agli attuali framework per lo sviluppo mobile: Ionic e React Native la fanno da padroni. Quali sono le caratteristiche peculiari e perché utilizzarli?
Il nostro Lead Developer Edoardo Dusi ne parla diffusamente per poi planare in chiusura su una comparativa tra le due soluzioni. Ah, abbiamo dedicato un piccolo spazio anche a Flutter, il framework multipiattaforma di Google (con 110k+ star su Github!) per creare apps e interfacce native composte da widget realizzati ad hoc e renderizzati da un motore interno ad altissime prestazioni.
Retro gaming machine made with Javascript and Kubernetes sparkfabrik
This document discusses the history of early digital games and computers. It then describes a case study of a company called Additron Games that has developed a new games engine. Additron Games is proposing to use Kubernetes and container orchestration to automate the provisioning of their platform on public and private clouds, as well as low-end devices. This would help meet their business needs of scaling globally while controlling costs and launching a new offline console product.
Summary of: “A Perspective Vision of Micro/Nano Systems and Technologies as E...francescoiancis
Tesi di laurea triennale in Ingegneria Elettronica e Informatica, curriculum Elettronica e IoT - Università degli Studi di Trieste
Fonte del lavoro: Jacopo Iannacci, “A Perspective Vision of Micro/Nano Systems and Technologies as Enablers of 6G, Super-IoT, and Tactile Internet”, in “Proceedings of the IEEE”, 111, 1 (January 2023), pp. 5-18
eBPF per il filtraggio HTTP/HTTPS nei router: analisi e Proof of ConceptIvanAntonutti
Slide di presentazione di eBPF per il filtraggio HTTP/HTTPS
nei router: analisi e Proof of Concept
Slide di presentazione della tesi di laurea magistrale in Ingegneria Informatica
React Query - gestione efficiente dei dati nelle app React - Updated (Eduard ...EduardCapanu
Nel mondo dello sviluppo web moderno, recuperare e gestire dati è una parte essenziale del processo di creazione di applicazioni dinamiche e interattive.
In questo talk esploreremo come React Query, una libreria sviluppata da TanStack, possa rivoluzionare il modo in cui affrontiamo questa sfida nelle nostre applicazioni React.
Event link: https://www.youtube.com/watch?v=s8aFrVdr0ak
Ing. Carmelo Dellisanti - Nuovo Codice Contratti Pubblici - Parte 1Carmelo Dellisanti
L'Ing. Carmelo Dellisanti, in questa prima parte, descrive I soggetti esecutori del Nuovo codice dei contratti Pubblici.
N.B. I Contenuti sono protetti su Blockchain.
Summary of: “A Perspective Vision of Micro/Nano Systems and Technologies as E...francescoiancis
Presentazione tesi di laurea triennale in Ingegneria Elettronica e Informatica, curriculum Elettronica e IoT - Università degli Studi di Trieste
Fonte del lavoro: Jacopo Iannacci, “A Perspective Vision of Micro/Nano Systems and Technologies as Enablers of 6G, Super-IoT, and Tactile Internet”, in “Proceedings of the IEEE”, 111, 1 (January 2023), pp. 5-18
3. Mattino
● Panoramica su soluzioni disponibili
● Considerazioni sul design
● Demo su concetti e soluzioni
presentati
Pomeriggio
● Hands-on!
● Implementazione pratica di un piccolo
progetto
● Lavoro a gruppi
4. Non sarà possibile parlare in modo approfondito
di ogni servizio AWS citato
AWS
disclaimer!
5. Di cosa parleremo…
1. DEFINIZIONI
Perché Serverless / Cos’è Serverless
Le promesse di serverless
Use case
2. I PRODOTTI DISPONIBILI
Confrontare prodotti serverless
Il mercato FaaS
La famiglia AWS serverless
4. STRUMENTI E BEST PRACTICE
Strumenti AWS
Framework e ambienti di sviluppo
Testing
Debug, log, monitoraggio
3. DESIGN E ARCHITETTURA
Performance e Capacity
Deploy e Release
Gestione costi
7. Serverless:
origini
● 2008: Google App Engine
● 2010: PiCloud
Focus su applicazioni, primi FaaS con molti
limiti: supporto solo per Python, timeout,
storage
● 2014-2015: Lambda
● 2016-: Google Cloud Functions, IBM, Microsoft
Azure, Cloudflare, Oracle, Alibaba…
Focus su architettura event-driven, supporto
per più linguaggi
… e poi serverless Data Storage, Containers, API
Management, Messaging…
8. Serverless:
evoluzione
Direzioni evoluzione servizi serverless (FaaS):
● Supporto per più runtime + custom runtime
● Supporto per più fonti di eventi
● Maggiore flessibilità nella scelta di risorse di
computing e storage
● @Edge
9. Serverless
● Competenza del cloud provider: gestire i
server e l'allocazione di risorse in modo
dinamico
● Costi basati su consumo effettivo di risorse
● Scaling, capacity planning e manutenzione
possono essere resi trasparenti rispetto a
sviluppatori e operatori
● Applicazioni serverless possono essere
costituite anche da elementi server-based, o
rappresentare architetture interamente
serverless
Wikipedia
10. Serverless
● Servizi di backend tariffati in base all'utilizzo
● Per effettuare deployment non serve
occuparsi di infrastruttura
● Applicazioni event-driven ed eseguite in
edge-computing»
Cloudflare
11. Serverless
● Creare ed eseguire applicazioni senza dover
gestire i server
● Il codice viene rilasciato in container
● Il modello di esecuzione è event-driven
● Esecuzioni, scaling e billing basati sulla
precisa richiesta di servizio
● Risolve il problema di chi deve gestire
capacity imprevedibili o altamente variabili
CNCF
12. Serverless
● Tecnologia per eseguire codice, gestire dati,
integrare servizi, senza dover gestire server
● No attività di gestione dell'infrastruttura da
parte dell’utente
● Scaling automatico
● High Availability (replica automatica su AZ
multiple) inclusa
● Costo per uso effettivo
AWS
13. Perché
Serverless?
● Migliorare prestazioni e affidabilità (cfr. SRE)
● Migliorare la sicurezza, circoscrivendo il
perimetro della soluzione da proteggere: solo
business logic, all’infrastruttura pensa AWS
● Tenere sotto controllo i costi evitando
overprovisioning
● Aumentare l’agilità, la capacità di rispondere al
cambiamento e alla richiesta di innovazione
● Migliorare l’esperienza degli sviluppatori
riducendo la complessità che devono gestire,
standardizzando gli strumenti
15. Promesse da
serverless…
● Nessuna gestione dei server
● Scaling automatico in base all’uso
● Nessun addebito per il tempo di non
utilizzo
● High Availability e tolleranza degli
errori incluse
17. Promesse da
serverless…
Focus sullo sviluppo del prodotto e sulle
sue caratteristiche uniche, possibilità di
non preoccuparsi dell’integrazione con i
servizi, che è inclusa e non richiede
faticose configurazioni
AWS
18. Promesse da
serverless…
Nessun bisogno di gestire server: il ciclo
di release e deployment è più rapido e
meno complesso, aumentando
(potenzialmente) la frequenza di rilasci e
il time-to-market
AWS
21. Serverless non
può
promettere…
#NoOps: i sistemi non richiedono
amministrazione, ma le applicazioni
richiedono monitoraggio, debug,
pipeline di QA e dei deployment…
Questo però può essere semplificato con
strumenti IaC per configurare i servizi
cloud
24. Trasformazione
Cloud Native
Prima di elencare use case “tecnici”, qualche
considerazione strategica
● Serverless può essere considerato un approdo
o una tappa nella migrazione delle applicazioni
a un approccio Cloud Native
● FaaS per esempio implementa o abilita alcuni
dei principi di 12-factor app (codebase,
dependencies, build-release-run, processes,
concurrency)
The twelve-factor app
25. Trasformazione
Cloud Native
Possibili percorsi di modernizzazione di un’app
● Da architettura basata su VM/EC2 a
Serverless, passando per una fase intermedia
che usa i container
● Da architettura basata su container a
Serverless (eventualmente usando container
runtime in Lambda)
● Serverless-first, creando direttamente come
FaaS i nuovi servizi e migrando
progressivamente gli altri
Lego Case Study (re:Invent 2020)
26. Trasformazione
Cloud Native
Serverless è inoltre compatibile e abililtante per
l’approccio DevOps, grazie all’automazione,
fornisce agli sviluppatori strumenti per gestire
rapidamente cambiamento e innovazione
● Provisioning infrastruttura: da CloudWatch,
si può implementare un approccio
event-based, grazie a IaC (CloudFormation)
● Soprattutto è possibile creare un workflow
CI/CD di sviluppo e rilasci (QA inclusa)
● È un’ottima base per costruire una Developer
Platform
34. Fattori nel
confronto di
prodotti
serverless
● Integrazione con altri servizi
(ecosistema vendor)
● Facilità d’uso / Developer UX
● Prestazioni: disponibilità “@Edge” e
possibilità di configurare servizio
secondo usi previsti
35. ● Pricing e billing
○ http://serverlesscalc.com/
○ Da considerare anche eventuale
presenza di free tier
Fattori nel
confronto di
prodotti
serverless
37. Vendor lock-in
● Disponibilità dei linguaggi (oggi
problema abbastanza circoscritto)
● Formati proprietari di eventi - legati a
integrazione con ecosistema vendor
● Sistemi proprietari di packaging e
deploy per le funzioni
38. Vendor lock-in
Soluzioni? Progetti open - CNCF
● CloudEvents: standard per descrivere
i dati degli eventi
● Vari prodotti da eseguire on-premises
e in-cloud (es. Knative)
CNCF Serverless Landscape
39. Confronto tra vendor FaaS
AWS Lambda
Azure Functions
Google Cloud Functions
IBM Cloud Functions
Oracle Cloud Functions
Cloudflare Workers
Alibaba Cloud Function Compute
Netlify Functions
42. Prodotti serverless AWS
Storage
● S3
Data Store
● DynamoDB (NoSQL)
● Aurora Serverless (RDB)
● RDS Proxy
API
● API Gateway
● AppSync (GraphQL)
43. Prodotti serverless AWS
Stream di dati e messaggi
● SNS
● SQS
● Kinesis
● EventBridge
Analytics
● Athena (serverless SQL su dati provenienti da S3)
46. Lambda
● Lambda è l’implementazione FaaS di
AWS
● Esegue on-demand e scala a zero
● Perno di ecosistema serverless AWS,
ma non tutte le implementazioni
serverless passano da Lambda (es.
RDB Aurora Serverless, Fargate per i
container)
47. Lambda:
sicurezza e
permessi
● IAM per gestire l’accesso a funzioni e
altre risorse (versioni, alias, config) da
parte di utenti o altri servizi AWS
● Execution role: assegnato a funzione
per interagire con altri servizi
○ Di base contiene accesso a
CloudWatch
○ Serve anche per accedere ai servizi
che funzionano da trigger (es. S3)
48. Lambda:
componenti in
AWS Console
● Lambda (codice, layer)
● Trigger (origini eventi)
● Destinazioni (possono essere diverse,
anche in base a successo esecuzione)
● Versioni e Alias
● Configurazione (specifica per
elemento selezionato: Lambda,
trigger o destinazione)
49. Anatomia di
una funzione
Lambda
● Handler: la funzione che viene
eseguita
● Event Object: dati (JSON) dell’evento
che ha invocato la funzione
● Runtime: ambiente in cui viene
eseguita la funzione (es. NodeJS)
● Context: metodi e proprietà disponibili
in base a runtime
51. Lambda: altre
configurazioni
● Concurrency
● Comportamento async
○ Numero retry
○ Età max evento
○ Queue per eventi falliti (SQS)
● Monitoraggio (CloudWatch, X-Ray,
Lambda Insight)
52. Lambda: altre
configurazioni
● Tag
● Variabili d’ambiente
● Collegamenti a risorse altri servizi
○ File System (EFS)
○ VPC
○ DB Proxy (interazione con RDS)
57. API Gateway
● Servizio managed per creare API HTTP
(RESTful), REST, Websocket
● Permette di delegare:
○ Routing
○ Autenticazione
○ CORS
○ Versioning
58. Utenti di API
Gateway
● Sviluppatori di API/Funzioni
○ Configurano API per fornire le
funzionalità richieste
○ Configurano l’accesso
● Sviluppatori di app che consumano
API per accedere a dati e funzionalità
59. Integrare API
REST con
Lambda
● Lambda proxy integration
○ Richieste inviate direttamente a
Lambda, che provvede a eventuali
trasformazioni e a fornire risposta
● Lambda non-proxy integration
○ Richieste processate da API
Gateway, che provvede anche a
fornire risposta
61. Aggiornamenti
Lambda
● Disponibilità hardware Graviton2
come opzione (adatto a uso intenso
risorse, in certi scenari più
efficiente/cost-effective)
● Accesso cross-account a immagini
container su ECR
● Migliore capacità di filtrare eventi, per
evitare invocazioni inutili e rimuovere
codice non applicativo da funzioni
62. Aggiornamenti
API Gateway
● Supporto per certificati di terze parti,
non forniti da ACM
● Integrazione con Step Functions, che
ora possono invocare un endpoint:
combinazione di SF e AG permette di
avere in servizi managed gestione
errori, autenticazione e controllo sul
carico di richieste
63. Aggiornamenti
Step Functions
● Tool visuale “Workflow Studio” per
disegnare e implementare il flusso di
esecuzione
● Supporto AWS SDK per migliore
integrazione con altri servizi, senza
dover aggiungere codice alle funzioni
● Supporto per AWS Batch
● Capacità di inviare eventi su bus di
EventBridge
67. Concurrency
limits
● Concurrency : FaaS = Horizontal
Scaling : EC2
● Quante istanze della funzione possono
essere eseguite allo stesso tempo
68. Cold start
● Problema visibile soprattutto in caso
di scaling (rischia di allungare tempi e
ridurre efficacia)
● Soluzioni primitive prevedevano di
“pingare” periodicamente una funzione
per tenerla “calda”
● AWS offre soluzione (per $)
69. Cold start
● Fattori che influenzano cold start
○ Linguaggio (ling. compilati
richiedono ambienti più complessi e
più tempo)
○ Dimensioni pacchetto
○ Risorse assegnate (+ risorse, -
tempo)
○ Numero di dipendenze
Ricerca
70. AWS:
concurrency
● Limite regionale per tutte le funzioni
● Reserved concurrency
○ Riserva slot di esecuzione non
utilizzabili da funzioni unreseved
○ Imposta un limite alla concurrency
della funzione
71. AWS:
concurrency
● Provisioned concurrency
○ Mitiga il problema del cold-start,
esegue codice di inizializzazione
prima dell’invocazione delle funz.
● Application autoscaling
○ Automatizza la quantità di
provisioned concurrency in base al
carico
72. AWS: limiti di
configurazione
Lambda
● Esecuzioni contemporanee: base
1000
● Storage: base 75GB (512MB per /tmp)
● Memoria: 128 > 10240 (1MB incr.)
● Timeout: max 15 minuti
● Payload: 6MB sync / 256KB async
75. AWS Lambda:
deployment
● Gestione manuale per singole funzioni
con versioni e alias
● Gestione stack (CloudFormation)
come “Applications”
○ Da console
○ Con SAM CLI
○ Con altri framework (es. Serverless
Framework)
76. AWS Lambda:
deployment
● Con le versioni è possibile taggare un
determinato stato della funzione
(codice, runtime, impostazioni)
● A ogni versione è assegnato un ARN
specifico, referenziato per esempio da
un API Gateway endpoint
77. AWS Lambda:
deployment
● Con gli alias è possibile referenziare
una versione per mantenere stabile il
riferimento a ARN
● Nel definire un alias si possono
referenziare 2 versioni e quindi
realizzare un deployment graduale
(“traffic shifting”)
78. AWS Lambda:
application
deployment
● Tramite la console e (via CLI) con SAM
o altri framework è possibile gestire il
deployment di interi stack (funzioni,
trigger/origini di eventi, API endpoint)
basati su CloudFormation
● In questo caso si può usare il
versioning di Lambda ma di solito è
preferibile una gestione del codice
con git o equivalente
79. AWS Lambda:
best practice
per
deployment
● Usare i layer (max 5 per funzione) per il
codice condiviso tra funzioni (es.
logging)
● Usare integrazione di CodeDeploy
(anche in SAM)
○ Versionamento funzioni
○ Traffic shifting: spostamento
graduale del traffico su nuove
versioni
80. AWS Lambda:
best practice
per
deployment
● Traffic shifting
○ Canary: 2 fasi. Config intervallo tra
fasi e % traffico spostato nella
prima fase
○ Linear: spostamento a intervalli
regolari. Config durata e % traffico
spostato per ogni intervallo
● Allarmi CloudWatch possono essere
usati per controllare deployment ed
eventualmente fare rollback
82. Pricing
Lambda
● Numero di richieste
● Durata*memoria utilizzata
● Traffico in/out (stessi prezzi EC2)
○ Traffico gratuito verso servizi AWS
dell’ecosistema serverless: S3, SQS,
DynamoDB, SNS e altri
● Costi per richieste e durata superiori
per provisioned concurrency
83. Pricing
DynamoDB
● On-demand (RRU/WRU) / Provisioned
(RCU/WCU)
● Storage
● Backup
● Extra per Global Tables e DAX
● Traffico out gratis verso altri servizi
AWS in stessa regione
85. Pricing
Lambda
best practice
● Non aumentare oltre il necessario il
timeout per le funzioni
● Ottimizzare al massimo l’uso della
memoria
● Usare CloudWatch per controllare
concurrency, errori/retry e utilizzo
memoria
● Usare AWS Budget
86. Pricing
Lambda
architettura
● Un’architettura basata su richieste
sincrone può anche scalare
indefinitamente, ma rischia di costare,
oppure di generare errori se si
imposta concurrency bassa
● Architettura event-driven basata su
richieste async permette di tenere
sotto controllo costi legati allo scaling,
senza sacrificare affidabilità
87. Pricing
serverless
costi da
controllare
● Servizi esterni che possono rallentare
esecuzione
● Cold start
● Retry in caso di errori
● Richieste e traffico API Gateway
● Traffico Lambda verso servizi non
serverless o verso internet
Approfondimento
89. Strumenti AWS per lo sviluppo serverless
4. STRUMENTI E BEST PRACTICE
90. Applicazioni
Lambda in
Lambda
Console
● Applicazioni: combinazioni di funzioni
Lambda, origini di eventi e altre
risorse usate per eseguire task
● Lambda Console permette di gestire
le applicazioni
● Elenca gli stack CloudFormation che
contengono risorse Lambda
92. Applicazioni
Lambda in
Lambda
Console
● Creare un’applicazione configura
anche i servizi consigliati per gestirne
il ciclo di vita
○ Permessi e Ruoli
○ CodeCommit (git)
○ CloudFormation
○ CodePipeline
○ CodeBuild
93. Serverless
Application
Model
● Estensione di CloudFormation
● Template YAML che definiscono
risorse e configurazione
● Parametri per gestire input e creare
stack dinamici da stesso template
95. Serverless
Application
Model
● Fornisce sintassi per definire
○ Funzioni (runtime, codice, handler)
○ API endpoint
○ Tabelle DB (DynamoDB)
○ Mapping di origini eventi
○ Policy di accesso / permessi
● In quanto estensione di
CloudFormation, è possibile definire
anche risorse non-serverless
97. SAM CLI
● Interfaccia da terminale per
○ Build
○ Test
○ Debug
○ Deployment
● Permette anche di eseguire e testare
in locale le funzioni
98. CDK
Cloud Development Kit
● Permette di definire e creare risorse
cloud utilizzando linguaggi di
programmazione diffusi (es. Java,
Python)
● Permette quindi anche di definire
Lambda usando lo stesso linguaggio
del codice da eseguire, es. Python
99. Serverless
Application
Repository
● Archivio di applicazioni riutilizzabili
● Possono essere condivise
pubblicamente o con specifici
account AWS
● Pacchetti basati su template SAM +
link a codice funzioni (per applicazioni
pubbliche)
101. Ambiente di
sviluppo
serverless
● Architettura applicazioni serverless è
basata su integrazione tra servizi AWS
● Costruire un ambiente locale di
sviluppo non è banale
● Framework, IDE aiutano a questo
scopo
103. Serverless
framework
● CLI + hosted dashboard
● Rispetto a SAM, aggiunge monitor,
alert, strumenti di supporto ai test
Link
104. Serverless
framework vs
SAM
● SAM è più opinionato (si intuisce
vedendo la struttura del progetto base
creato)
● Efficacia della rimozione delle risorse
dello stack è migliore in SF (SAM non
rimuove automaticamente S3)
105. Serverless
framework vs
SAM
● Il supporto community è migliore per
SF (più attività su Github/StackOF, più
disponibilità di esempi e tutorial,
ecosistema plugin)
● SF supporta multi-cloud
● SAM include strumenti per testing
106. IDE
● AWS CLoud9
● Plugin per Eclipse (Java) e Visual
Studio (.NET)
● Visual Studio Code AWS Toolkit
108. Testing best
practice
● Scrivere funzioni secondo design
pattern che le rendano facilmente
oggetto di unit test
● Focus su unit test e test di
integrazione
● Non eseguire test di integrazione su
simulazioni locali dei servizi
● Eseguire test end-to-end in cloud,
possibilmente in ambiente creato per
ogni singola esecuzione test
112. Strumenti per
debugging in
cloud
● Postman per chiamate API
● AWS Lambda Console (permette di
scrivere event object di test per le
funzioni)
● AWS CloudWatch (un log group per
ogni Lambda)
113. Strumenti per
logging
avanzato in
cloud
● AWS X-Ray: dati approfonditi su
eventi/trigger, chiamate API,
esecuzione funzioni, chiamate ai
servizi di destinazione
● Lambda Insights: aggiunge
automaticamente layer a funzioni per
monitoraggio più approfondito tramite
estensione di CloudWatch
115. Best Practice
per gestione
applicazione in
FaaS
Usare più possibile automazione:
● Usare Infrastructure as Code
● Creare pipeline di deploy
● Monitoraggio da subito, anche come
fonte di eventi
● Automatizzare testing e controlli di
sicurezza
Tutto questo aumenta agilità per
velocizzare sviluppo e feedback loop
116. Best Practice
architettura
Serverless
● Approccio “Serverless-first” per i nuovi
servizi
● Preferire architettura basata su queue
e messaging, per tenere sotto
controllo le invocazioni
● EventBridge per integrazione con
servizi custom e SaaS
● AWS Well Architected Tool: verifiche a
ogni iterazione
Well Architected Tool