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.
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
Molte aziende hanno costruito negli anni sistemi informatici complessi che gestiscono i processi interni e i processi di gestione i clienti/fornitori. Con il cambiamento delle abitudini dei consumatori quello che una volta si faceva intermediato da un agente, commesso o addetto che usava il sistema gestionale per rispondere alla richiesta del cliente ora si fa in modalità self service semplicemente con uno smartphone, il cliente si aspetta di essere autonomo nel rapporto con l’azienda. L’esperienza che ci si aspetta come consumatore è quella che si vive usando piattaforma native digitali come ad esempio Netflix e Spotify. Il problema è che la maggior parte delle aziende non è partita nativamente digitale e non è possibile azzerare tutto e ripartire da capo senza correre rischi di business continuity importanti che vedono milioni di clienti coinvolti e impatti significativi a livello economico in caso di down. Se non è possibile ripartire da zero, quindi come fare? Una risposta è un approccio graduale di evoluzione architetturale e tecnologica dove Kubernetes, e il suo ecosistema, giocano un ruolo chiave. In questa presentazione vedremo i tre principi cardine sulla quale si basa questa strategia: API as a Product; architetture evolutive; fast data con pattern CQRS; che si uniscono per creare una strategia di Modernizzazione delle Applicazioni utilizzando i componenti dell’ecosistema del landscape CNCF (https://landscape.cncf.io). Da qui capiremo quali siano i benefici nel breve, medio e lungo termine e quali passi iniziare a fare per avviare questa strategia.
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.
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
Molte aziende hanno costruito negli anni sistemi informatici complessi che gestiscono i processi interni e i processi di gestione i clienti/fornitori. Con il cambiamento delle abitudini dei consumatori quello che una volta si faceva intermediato da un agente, commesso o addetto che usava il sistema gestionale per rispondere alla richiesta del cliente ora si fa in modalità self service semplicemente con uno smartphone, il cliente si aspetta di essere autonomo nel rapporto con l’azienda. L’esperienza che ci si aspetta come consumatore è quella che si vive usando piattaforma native digitali come ad esempio Netflix e Spotify. Il problema è che la maggior parte delle aziende non è partita nativamente digitale e non è possibile azzerare tutto e ripartire da capo senza correre rischi di business continuity importanti che vedono milioni di clienti coinvolti e impatti significativi a livello economico in caso di down. Se non è possibile ripartire da zero, quindi come fare? Una risposta è un approccio graduale di evoluzione architetturale e tecnologica dove Kubernetes, e il suo ecosistema, giocano un ruolo chiave. In questa presentazione vedremo i tre principi cardine sulla quale si basa questa strategia: API as a Product; architetture evolutive; fast data con pattern CQRS; che si uniscono per creare una strategia di Modernizzazione delle Applicazioni utilizzando i componenti dell’ecosistema del landscape CNCF (https://landscape.cncf.io). Da qui capiremo quali siano i benefici nel breve, medio e lungo termine e quali passi iniziare a fare per avviare questa strategia.
Anche lo sviluppo del software ha un impatto importante sul clima e sull’ambiente.
Qualche esempio?
I Bitcoin producono tra 22 e 22.9 milioni di tonnellate di anidride carbonica all’anno
Minecraft, il videogioco più giocato al mondo, ha prodotto nella sua vita 600 milioni di kg di CO2
Gli sviluppatori che hanno realizzato questi software non pensavano di avere un impatto così importante sul clima mondiale.
Ora, però, è il momento di pensarci per il futuro.
Per questo ho realizzato kube-green, un progetto OSS su GitHub che ha l’obiettivo di ridurre la carbon footprint di applicativi Cloud Native.
In questo talk vedremo come funziona, una live demo e la sua roadmap per avere un mondo sempre più pulito e un software funzionante e scalabile.
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.
Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017Codemotion
DomusDotNet, DotNetCode & dotNET{podcast} Meetup - Serverless Computing
Giorgio Di Nardo, Luca Congiu
Il Serverless Computing è l'ultima frontiera della rivoluzione "cloud" della programmazione ed enfatizza ulteriormente la produttività caratteristica delle offerte PaaS. Azure Functions è la soluzione di Serverless Computing integrata in Azure, con cui poter raggiungere rapidamente l'obiettivo di organizzare la propria applicazione a microservizi, o di integrarsi in maniera flessibile con applicazioni esterne, senza preoccuparsi dell'infrastruttura sottostante. Azure Functions Deep Dive - Giorgio Di Nardo ASP.NET Core with Azure Functions - Luca Congiu
Molto spesso in tutta la gestione della vita del software si pensa al database come una cosa mistica, scritto nella pietra, con sue regole e tempi. Questo talk vuole portare un pò di chiarezza su come le nuove tecnologie ma soprattutto le nuove metodologie come il DevOps, permettono di gestire il database come se fosse una componente viva dell'applicazione, versionabile e manutendibile. Con l'aiuto di due prodotti opensource come Liquibase e Flyway a confronto per avere le idee chiare da subito, su come utilizzarlo in casa.
Meetup Azure DevOps
Introduzione ad Azure DevOps e panoramica sulle principali funzionalità per il CI ed il CD del proprio software
Speaker: Simone Natalini
Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa
Come poter scegliere un framework da utilizzare in un progetto per una web applications? Durante questo workshop analizzeremo le parti fondamentali di AngularJs e React, in modo da capire pregi e difetti di ognungo dei due principali strumenti di sviluppo.
Progettare e sviluppare soluzioni serverless con AWSsparkfabrik
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
Anche lo sviluppo del software ha un impatto importante sul clima e sull’ambiente.
Qualche esempio?
I Bitcoin producono tra 22 e 22.9 milioni di tonnellate di anidride carbonica all’anno
Minecraft, il videogioco più giocato al mondo, ha prodotto nella sua vita 600 milioni di kg di CO2
Gli sviluppatori che hanno realizzato questi software non pensavano di avere un impatto così importante sul clima mondiale.
Ora, però, è il momento di pensarci per il futuro.
Per questo ho realizzato kube-green, un progetto OSS su GitHub che ha l’obiettivo di ridurre la carbon footprint di applicativi Cloud Native.
In questo talk vedremo come funziona, una live demo e la sua roadmap per avere un mondo sempre più pulito e un software funzionante e scalabile.
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.
Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017Codemotion
DomusDotNet, DotNetCode & dotNET{podcast} Meetup - Serverless Computing
Giorgio Di Nardo, Luca Congiu
Il Serverless Computing è l'ultima frontiera della rivoluzione "cloud" della programmazione ed enfatizza ulteriormente la produttività caratteristica delle offerte PaaS. Azure Functions è la soluzione di Serverless Computing integrata in Azure, con cui poter raggiungere rapidamente l'obiettivo di organizzare la propria applicazione a microservizi, o di integrarsi in maniera flessibile con applicazioni esterne, senza preoccuparsi dell'infrastruttura sottostante. Azure Functions Deep Dive - Giorgio Di Nardo ASP.NET Core with Azure Functions - Luca Congiu
Molto spesso in tutta la gestione della vita del software si pensa al database come una cosa mistica, scritto nella pietra, con sue regole e tempi. Questo talk vuole portare un pò di chiarezza su come le nuove tecnologie ma soprattutto le nuove metodologie come il DevOps, permettono di gestire il database come se fosse una componente viva dell'applicazione, versionabile e manutendibile. Con l'aiuto di due prodotti opensource come Liquibase e Flyway a confronto per avere le idee chiare da subito, su come utilizzarlo in casa.
Meetup Azure DevOps
Introduzione ad Azure DevOps e panoramica sulle principali funzionalità per il CI ed il CD del proprio software
Speaker: Simone Natalini
Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa
Come poter scegliere un framework da utilizzare in un progetto per una web applications? Durante questo workshop analizzeremo le parti fondamentali di AngularJs e React, in modo da capire pregi e difetti di ognungo dei due principali strumenti di sviluppo.
Progettare e sviluppare soluzioni serverless con AWSsparkfabrik
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
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.
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.
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.
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
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
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLPar-Tec S.p.A.
In occasione del MySQL Day 2019 di Roma il TechAdvisor Michelangelo Uberti e Marco Carlessi - MySQL Principal Sales Consultant di Oracle - hanno fornito una panoramica sui concetti chiave, sui benefici e sulle opportunità offerte dalle architetture a microservizi.
I punti trattati durante la presentazione sono:
- Le architetture a microservizi
- Dai monoliti ai microservizi
- Un esempio concreto: Netflix
- Architetture a microservizi: vantaggi e punti di attenzione
- Dalla virtualizzazione ai container
- Containerizzazione: vantaggi e punti di attenzione
- Come superare i limiti dei container
- MySQL e le architetture a microservizi
- Microservizi e i dati
- Microservizi e database: due approcci
- MySQL può girare dentro i container
- Deploy MySQL 8.0 con Docker
- Oracle MySQL Operator for Kubernetes (Alpha)
- MySQL 8.0: un multi-model DB
- MySQL Enterprise licensing
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su https://www.par-tec.it/le-architetture-a-microservizi-e-mysql
Webinar: Come semplificare l'utilizzo del database con MongoDB AtlasMongoDB
In questo webinar ti presentiamo MongoDB Atlas, il nostro servizio DBaaS (Database-as-a-service) che offre tutte le funzionalità di MongoDB senza richiedere lo stesso impegno operativo, il tutto con i vantaggi di un modello di pagamento al consumo su base oraria.
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
Molte organizzazioni sfruttano i vantaggi del cloud migrando i propri carichi di lavoro Oracle e assicurandosi notevoli vantaggi in termini di agilità ed efficienza dei costi.
La migrazione di questi carichi di lavoro, può creare complessità durante la modernizzazione e il refactoring delle applicazioni e a questo si possono aggiungere rischi di prestazione che possono essere introdotti quando si spostano le applicazioni dai data center locali.
In queste slide, gli esperti AWS e VMware presentano semplici e pratici accorgimenti per facilitare e semplificare la migrazione dei carichi di lavoro Oracle accelerando la trasformazione verso il cloud, approfondiranno l’architettura e dimostreranno come sfruttare a pieno le potenzialità di VMware Cloud ™ on AWS.
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!
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.
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 talk "What is the secure software supply chain and the current state of the PHP ecosystem" discusses 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.
Deep dive nella supply chain della nostra infrastruttura cloudsparkfabrik
L'infrastruttura come codice e le applicazioni cloud-native consentono di raggiungere livelli senza precedenti di efficienza e governance dei nostri servizi cloud, rendendoci capaci di creare infrastrutture immutabili e ripetibili, di poterci operare come se fossero applicazioni quindi versionando il codice, qa e test automatici e procedure di rilascio automatiche verso gli ambienti di destinazione. Più inseriamo codice nelle nostre infrastrutture, più estendiamo la superficie di attacco. In questo talk, esaminerò gli attacchi alla catena di approvvigionamento a diversi livelli, come rilevarli e le tecniche per mitigarli e come scrivere codice IaC più sicuro.
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
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 originates in a client, passes through all Drupal subsystems, reaches external (micro)services and comes back, it will become mandatory to track down problems and to optimize for performances. This is often time consuming and without the right tools may become 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 techniques 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 OpenTelemetry, Monolog and Grafana to collect, scrape, store and visualize telemetry data.
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.
GitOps è un nuovo metodo di CD che utilizza Git come unica fonte di verità per le applicazioni e per l'infrastruttura (declarative infrastructure/infrastructure as code), fornendo sia il controllo delle revisioni che il controllo delle modifiche. In questo talk vedremo come implementare workflow di CI/CD Gitops basati su Kubernetes, dalla teoria alla pratica passando in rassegna i principali strumenti oggi a disposizione come ArgoCD, Flux (aka Gitops engine) e JenkinsX
3. Oggi
● Panoramica su soluzioni disponibili
● Considerazioni sul design
● Demo su concetti e soluzioni
presentati
Domani
● 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. DEFINIZIONE
FaaS/BaaS/IaaS/PaaS
Le promesse di serverless
Use case
2. I PRODOTTI DISPONIBILI
Il mercato serverless
La famiglia AWS serverless
4. STRUMENTI E BEST PRACTICE
Framework e ambienti di sviluppo
Testing
Debug, log, monitoraggio
3. DESIGN E ARCHITETTURA
Strumenti AWS
Performance e Capacity
Deploy e Release
Gestione costi
7. 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
8. 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
9. Serverless
● Creare ed eseguire applicazioni senza dover
gestire i server
● Applicazioni = bundle di una o più funzioni
● Caricate su una piattaforma
● Esecuzioni, scaling e billing basati sulla
precisa richiesta di servizio
CNCF
10. Serverless
● Architettura nativa dei servizi cloud
● Non si deve pensare ai server
● No attività di gestione dell'infrastruttura da
parte dell’utente
● Managed high availability (replica automatica
su AZ multiple)
AWS
11. Serverless
riguarda prima
di tutto
la UX degli
sviluppatori!
● Efficienza nei costi e nell’utilizzo di risorse
(possibile scaling a ZERO)
● Utilizzo (e pagamento) on-demand
● Automazione per scaling e recovery
13. IaaS:
Infrastructure
as a Service
Servizi che permettono tramite API di richiedere
risorse (networking, computing, storage, ecc.) ,
delegando al provider la gestione e la
configurazione dell’infrastruttura
14. PaaS:
Platform as a
Service
Servizi Cloud che permettono di sviluppare,
eseguire e gestire applicazioni rimuovendo la
complessità di creare e mantenere
l’infrastruttura
15. BaaS:
Backend as a
Service
Fornisce alle applicazioni servizi di storage e API
integrate per funzionalità comuni
(autenticazione e gestione utenti, notifiche,
integrazione social network…)
16. FaaS:
Functions as a
Service
Servizio che permette di eseguire e gestire il
codice delle applicazioni come singole funzioni
che sono chiamate attraverso eventi o richieste
HTTP
17. FaaS:
Functions as a
Service
La più importante differenza operativa tra PaaS e
FaaS è lo scaling: che con FaaS può diventare
completamente trasparente per chi usa il
servizio
19. 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
21. Promesse da
serverless…
Focus sullo sviluppo del prodotto e sulle
sue caratteristiche uniche, possibilità di
non preoccuparsi di implementazione (e
costi) dei backing services (BaaS)
AWS
22. Promesse da
serverless…
Nessun bisogno di gestire server: il
perimetro di release e deployment è più
circoscritto, riducendo la complessità,
aumentando (potenzialmente) la
frequenza di rilasci e il time-to-market
AWS
37. Serverless (FaaS) vendor
AWS Lambda
Azure Functions
Google Cloud Functions
IBM Cloud Functions
Oracle Cloud Functions
Cloudflare Workers
Alibaba Cloud Function Compute
38. Fattori nel
confronto di
prodotti
serverless
● Supporto per linguaggi
● Integrazione con altri servizi
(ecosistema vendor)
● Facilità d’uso / Developer UX
● Prestazioni: disponibilità “@Edge” e
tempo di cold-start
41. 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
42. 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
48. 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)
49. 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)
50. Lambda:
componenti in
AWS Console
● Lambda (codice, layer)
● Trigger (origini eventi)
● Destinazioni (possono essere diverse,
anche in base a successo esecuzione)
● Versioni e Alias -> performance
● Configurazione (specifica per
elemento selezionato: Lambda,
trigger o destinazione)
51. 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
53. Lambda: altre
configurazioni
● Concurrency
● Comportamento async
○ Numero retry
○ Età max evento
○ Queue per eventi falliti (SQS)
● Monitoraggio (CloudWatch, X-Ray,
Lambda Insight)
54. Lambda: altre
configurazioni
● Tag
● Variabili d’ambiente
● Collegamenti a risorse altri servizi
○ File System (EFS)
○ VPC
○ DB Proxy (interazione con RDS)
59. API Gateway
● Servizio managed per creare API HTTP
(RESTful), REST, Websocket
● Permette di delegare:
○ Routing
○ Autenticazione
○ CORS
○ Deployment
○ Mapping risorse (es. tabelle
DynamoDB)
60. Utenti di API
Gateway
● Sviluppatori di API
○ Configurano API per fornire le
funzionalità richieste
○ Configurano l’accesso
● Sviluppatori di app che consumano
API per accedere a dati e funzionalità
61. 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
63. 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
65. 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
66. Serverless
Application
Model
● Estensione di CloudFormation
● Template YAML che definiscono
risorse e configurazione
● Parametri per gestire input e creare
stack dinamici da stesso template
68. 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
70. SAM CLI
● Interfaccia da terminale per
○ Build
○ Test
○ Debug
○ Deployment
● Permette anche di eseguire e testare
in locale le funzioni
71. 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)
74. Concurrency
limits
● Concurrency : FaaS = Horizontal
Scaling : EC2
● Quante istanze della funzione possono
essere eseguite allo stesso tempo
75. 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” (timeout per vita di
una funzione: 10, max 15 minuti)
● AWS offre soluzione (per $)
76. 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
77. 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
78. 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
79. AWS: limiti di
configurazione
Lambda
● Esecuzioni contemporanee: base
1000
● Storage: base 75GB (512MB per /tmp)
● Memoria: 128 > 3008MB (64MB incr.)
● Timeout: max 15 minuti
● Payload: 6MB sync / 256KB async
82. 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)
83. 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
84. 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”)
85. 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
86. 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
87. 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
89. 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
90. 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
92. 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
93. 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
96. 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
98. Serverless
framework
● CLI + hosted dashboard
● Rispetto a SAM, aggiunge monitor,
alert, strumenti di supporto ai test
Link
99. 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)
100. 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
101. IDE/CLI
● AWS SAM CLI
● AWS CLoud9
● Plugin per Eclipse (Java) e Visual
Studio (.NET)
● Visual Studio Code AWS Toolkit
103. 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
107. 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)
108. 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