Structured Streaming è il modulo di Stream Processing costruito sul motore Spark SQL. In poche parole garantisce l'esecuzione di un messaggio esattamente una volta, è scalabile e fault-tolerant. È possibile definire le analisi stream nello stesso modo in cui si definirebbe un calcolo batch sui dati usando i Dataset/DataFrame API in Scala, Java, Python or R utilizzando l'engine SQL di Spark.
Durante la sessione vedremo un'overview delle funzionalità e un esempio di di come sia possibile eseguire l'ingestion dei dati con Event Hub (Kafka enabled) eseguire un'analisi con Spark e salvare i risultati su Cosmos DB.
Manuel Toniato e Simone Caretta: Migliorare le performance di ricerca con Ela...Meet Magento Italy
Per un utente di un sito eCommerce la “buca” di ricerca è lo strumento preferenziale per l’inizio dell’esperienza di acquisto. Allo stesso tempo per il venditore può diventare un canale privilegiato per veicolare messaggi mirati. In questo talk Manuel e Simone analizzeranno la possibilità di integrare Magento con il motore di ricerca open source Elasticsearch (utilizzato fra gli altri da github, stackoverflow e mozilla). Ci mostreranno quali sono le peculiarità della soluzione rispetto a quelle offerte “out of the box” da Magento CE, parleranno brevemente dell’ecosistema di Elasticsearch, delle integrazioni disponibili e delle peculiarità rispetto ad altri full text search engine come Solr. Esamineranno, in particolare, una soluzione che utilizza Elasticsearch come engine per le collection Magento evidenziandone vantaggi e criticità.
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
In questa sessione vedremo come utilizzare Windows Azure per velocizzare e semplificare la realizzazione di applicazioni ASP.NET. Dallo sviluppo al deploy, passando per lo storage...andremo in dettaglio su varie funzionalità che ci faranno apprezzare ancora più la piattaforma Windows Azure.
Structured Streaming è il modulo di Stream Processing costruito sul motore Spark SQL. In poche parole garantisce l'esecuzione di un messaggio esattamente una volta, è scalabile e fault-tolerant. È possibile definire le analisi stream nello stesso modo in cui si definirebbe un calcolo batch sui dati usando i Dataset/DataFrame API in Scala, Java, Python or R utilizzando l'engine SQL di Spark.
Durante la sessione vedremo un'overview delle funzionalità e un esempio di di come sia possibile eseguire l'ingestion dei dati con Event Hub (Kafka enabled) eseguire un'analisi con Spark e salvare i risultati su Cosmos DB.
Manuel Toniato e Simone Caretta: Migliorare le performance di ricerca con Ela...Meet Magento Italy
Per un utente di un sito eCommerce la “buca” di ricerca è lo strumento preferenziale per l’inizio dell’esperienza di acquisto. Allo stesso tempo per il venditore può diventare un canale privilegiato per veicolare messaggi mirati. In questo talk Manuel e Simone analizzeranno la possibilità di integrare Magento con il motore di ricerca open source Elasticsearch (utilizzato fra gli altri da github, stackoverflow e mozilla). Ci mostreranno quali sono le peculiarità della soluzione rispetto a quelle offerte “out of the box” da Magento CE, parleranno brevemente dell’ecosistema di Elasticsearch, delle integrazioni disponibili e delle peculiarità rispetto ad altri full text search engine come Solr. Esamineranno, in particolare, una soluzione che utilizza Elasticsearch come engine per le collection Magento evidenziandone vantaggi e criticità.
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
In questa sessione vedremo come utilizzare Windows Azure per velocizzare e semplificare la realizzazione di applicazioni ASP.NET. Dallo sviluppo al deploy, passando per lo storage...andremo in dettaglio su varie funzionalità che ci faranno apprezzare ancora più la piattaforma Windows Azure.
Simple Cloud API: accesso semplificato al cloud computingFrancesca1980
In questa sessione verrà presentato il progetto open source Simple Cloud API per l'accesso semplificato ai servizi di cloud computing. Il progetto, nato dalla volontà di Zend Technologies, IBM e Microsoft, offre un API semplificata per l'accesso a differenti servizi di cloud computing. I servizi attualmente implementati sono di File Storage, Document Storage e Simple Queue sui sistemi cloud di Amazon, Windows Azure e Nirvanix (in futuro anche Rackspace e GoGrid). Nella presentazione, dopo una breve introduzione ai servizi di cloud computing ed alla loro rilevanza dal punto di vista dello sviluppo delle applicazioni web, verranno presentati degli esempi in PHP per l'utilizzo del Simple Cloud API
In Azure there are many different app models to choose among to satisfy our needs. One is the component workflow oriented Azure Logic Apps. Compose a workflow of Api Api calls.
What's New in ASP.NET 4.5 and Visual Studio 2012Andrea Dottor
Slide e codice lo potete trovare a questo link:
http://blog.dottor.net/post/2012/09/18/Codice-e-slide-della-sessione-Whats-New-in-ASPNET-45-and-Visual-Studio-2012.aspx
Il Microsoft .NET Framework è in continua evoluzione, e con la prossima versione verranno rilasciate interessanti funzionalità riguardanti ASP.NET.All'interno di questa sessione conosceremo tutte queste novità, ed andremo invece più in dettaglio in alcune di esse, permettendo a chi conosce già ASP.NET di poter essere più produttivo (Strongly Typed Data Controls, Model Binding, Asynchronous, WebSocket, ... ), mentre, per chi invece non ha molta esperienza con questa tecnologia, potrà vedere come i nuovi template di progetto e Visual Studio 2012 potranno aiutarlo ad approcciare correttamente queste tipologie di applicazioni.
Global Azure Bootcamp 2018 - Verona.
Scalare una applicazione con le proprie applicazioni con Azure Functions.
All'interno è presente la spiegazione di Durable Functions con qualche esempio completo
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»
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
Azure Saturday Pordenone 2018 IoT real time processing for lazy developerAlessio Biasiutti
In this session I explained how to develop a IoT E2E solution writing as less code as possible. I designed the solution using Azure Event Hub, Azure Service Bus, Azure Logic Apps e Azure SQL Database
Kubernetes as HA time series server, a proposalGiuliano Latini
Grazie allo IoT e al basso costo della connettività mobile possiamo acquisire grosse quantità di dati eterogenei. Un possibile modo per organizzarli nell'ottica del monitoraggio e dell'analisi proattiva è l'uso dei Time Series Database come InfuxDB. Durante la sessione varrà proposta un'architettura in alta affidabilità, utilizzando il servizio AKS di Microsoft Azure, per implementare un sistema di raccolta e classificazione dati in serie temporali con console di visualizzazione, pronti per alimentare altri servizi presenti nell'infrastruttura Microsoft Azure. Una parte del talk sarà dedicata a mostrare l'uso dell'architettura proposta.
I database No-SQL sono sempre più diffusi ed utilizzati nelle applicazioni. Vediamo come Microsoft ha deciso di implementare questa strategia dentro Azure con DocumentDB.
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-serviceMarco Pozzan
Power BI Dataflow è il componente di trasformazione dei dati in Power BI. È un processo di Power Query che viene eseguito nel cloud. Bene, questa potrebbe non sembrare una funzionalità molto nuova, giusto? Quindi cosa c'è di nuovo con Dataflow? Le risposte alle vostre domande saranno nella mia sessione :-)
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!DotNetCampus
Vedremo come impiegare SignalR al massimo per realizzare una infrastruttura che serva a semplificare la creazione di HubHost da poter usare sia in modo tradizionale sia à-la WCF Service da sfruttare anche al di fuori dell'ambiente web per la comunicazione tra processi, approfondendo inoltre anche i meccanismi della Pipeline dell ErrorHandling per implementare Listener e Logger. Aggireremo inoltre una limitazione dell HubClient creandone una versione strong-typed completamente event-based.
(in)Sicurezza nella PA: la storia di uno dei tanti problemi di sicurezza che abbiamo scoperto e segnalato, esempi pratici di vulnerabilità in applicativi web e cosa ci riserva il futuro. Lo sviluppo sicuro delle applicazioni web spiegato ai fornitori di tecnologia della Pubblica Amministrazione.
Azure Day Rome Reloaded 2019 - ML.NET Model Lifecycle with Azure DevOpsazuredayit
Are you a developer? Are you a Architect? You must have the focus about on the application lifecycle! Building, maintaining, and continuously updating the end-user business application. No news here, but if we add also ML, for example a ML.NET model what we must to do? We need a update and extend a new type of lifecycle: Machine Learning Model Lifecycle.
Azure Day Rome Reloaded 2019 - Reactive Systems with Event Gridazuredayit
Event Grid Può essere usato in modo estremamente pervasivo e versatile per costruire architetture serverless reattive, ad esempio nel mondo IoT delle Smart Things, a costo “quasi zero”. Con Event GRid è possibile creare sistemi potenzialmente giganteschi (e impossibili da ricreare on premises), che si autogovernano, espandono (e cambiano!!!) sulla base delle logiche di campo.
More Related Content
Similar to Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Managament senza utilizzo di codice
Simple Cloud API: accesso semplificato al cloud computingFrancesca1980
In questa sessione verrà presentato il progetto open source Simple Cloud API per l'accesso semplificato ai servizi di cloud computing. Il progetto, nato dalla volontà di Zend Technologies, IBM e Microsoft, offre un API semplificata per l'accesso a differenti servizi di cloud computing. I servizi attualmente implementati sono di File Storage, Document Storage e Simple Queue sui sistemi cloud di Amazon, Windows Azure e Nirvanix (in futuro anche Rackspace e GoGrid). Nella presentazione, dopo una breve introduzione ai servizi di cloud computing ed alla loro rilevanza dal punto di vista dello sviluppo delle applicazioni web, verranno presentati degli esempi in PHP per l'utilizzo del Simple Cloud API
In Azure there are many different app models to choose among to satisfy our needs. One is the component workflow oriented Azure Logic Apps. Compose a workflow of Api Api calls.
What's New in ASP.NET 4.5 and Visual Studio 2012Andrea Dottor
Slide e codice lo potete trovare a questo link:
http://blog.dottor.net/post/2012/09/18/Codice-e-slide-della-sessione-Whats-New-in-ASPNET-45-and-Visual-Studio-2012.aspx
Il Microsoft .NET Framework è in continua evoluzione, e con la prossima versione verranno rilasciate interessanti funzionalità riguardanti ASP.NET.All'interno di questa sessione conosceremo tutte queste novità, ed andremo invece più in dettaglio in alcune di esse, permettendo a chi conosce già ASP.NET di poter essere più produttivo (Strongly Typed Data Controls, Model Binding, Asynchronous, WebSocket, ... ), mentre, per chi invece non ha molta esperienza con questa tecnologia, potrà vedere come i nuovi template di progetto e Visual Studio 2012 potranno aiutarlo ad approcciare correttamente queste tipologie di applicazioni.
Global Azure Bootcamp 2018 - Verona.
Scalare una applicazione con le proprie applicazioni con Azure Functions.
All'interno è presente la spiegazione di Durable Functions con qualche esempio completo
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»
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
Azure Saturday Pordenone 2018 IoT real time processing for lazy developerAlessio Biasiutti
In this session I explained how to develop a IoT E2E solution writing as less code as possible. I designed the solution using Azure Event Hub, Azure Service Bus, Azure Logic Apps e Azure SQL Database
Kubernetes as HA time series server, a proposalGiuliano Latini
Grazie allo IoT e al basso costo della connettività mobile possiamo acquisire grosse quantità di dati eterogenei. Un possibile modo per organizzarli nell'ottica del monitoraggio e dell'analisi proattiva è l'uso dei Time Series Database come InfuxDB. Durante la sessione varrà proposta un'architettura in alta affidabilità, utilizzando il servizio AKS di Microsoft Azure, per implementare un sistema di raccolta e classificazione dati in serie temporali con console di visualizzazione, pronti per alimentare altri servizi presenti nell'infrastruttura Microsoft Azure. Una parte del talk sarà dedicata a mostrare l'uso dell'architettura proposta.
I database No-SQL sono sempre più diffusi ed utilizzati nelle applicazioni. Vediamo come Microsoft ha deciso di implementare questa strategia dentro Azure con DocumentDB.
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-serviceMarco Pozzan
Power BI Dataflow è il componente di trasformazione dei dati in Power BI. È un processo di Power Query che viene eseguito nel cloud. Bene, questa potrebbe non sembrare una funzionalità molto nuova, giusto? Quindi cosa c'è di nuovo con Dataflow? Le risposte alle vostre domande saranno nella mia sessione :-)
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!DotNetCampus
Vedremo come impiegare SignalR al massimo per realizzare una infrastruttura che serva a semplificare la creazione di HubHost da poter usare sia in modo tradizionale sia à-la WCF Service da sfruttare anche al di fuori dell'ambiente web per la comunicazione tra processi, approfondendo inoltre anche i meccanismi della Pipeline dell ErrorHandling per implementare Listener e Logger. Aggireremo inoltre una limitazione dell HubClient creandone una versione strong-typed completamente event-based.
(in)Sicurezza nella PA: la storia di uno dei tanti problemi di sicurezza che abbiamo scoperto e segnalato, esempi pratici di vulnerabilità in applicativi web e cosa ci riserva il futuro. Lo sviluppo sicuro delle applicazioni web spiegato ai fornitori di tecnologia della Pubblica Amministrazione.
Azure Day Rome Reloaded 2019 - ML.NET Model Lifecycle with Azure DevOpsazuredayit
Are you a developer? Are you a Architect? You must have the focus about on the application lifecycle! Building, maintaining, and continuously updating the end-user business application. No news here, but if we add also ML, for example a ML.NET model what we must to do? We need a update and extend a new type of lifecycle: Machine Learning Model Lifecycle.
Azure Day Rome Reloaded 2019 - Reactive Systems with Event Gridazuredayit
Event Grid Può essere usato in modo estremamente pervasivo e versatile per costruire architetture serverless reattive, ad esempio nel mondo IoT delle Smart Things, a costo “quasi zero”. Con Event GRid è possibile creare sistemi potenzialmente giganteschi (e impossibili da ricreare on premises), che si autogovernano, espandono (e cambiano!!!) sulla base delle logiche di campo.
Azure Day Rome Reloaded 2019 - Building serverless microservices in azureazuredayit
Serverless e microservizi sono due temi molto discussi nel mondo delle architetture moderne: unire questi due mondi consente di avere il massimo della flessibilità dal punto di vista architetturale e infrastrutturale. In questa sessione vedremo quali sono le best practice e gli aspetti chiave per realizzare una applicazione orientata a microservizi con la piattaforma FaaS di Microsoft Azure.
Azure Day Rome Reloaded 2019 - Cloud Journey – FastTrack for Azureazuredayit
Starting from a scenario with obsolete legacy infrastructure services, we moved the entire .NET application landscape to Azure Platform as a Service.
The migration strategy was based on Azure Database Migration and was completed in a month and a half using Azure PaaS (Database as a Service, App Service and Application Gateway).
With minimal application changes, we were able to provide workload optimization, management optimization and Infrastructure as Code, which resulted in a reduction in the number of servers (from 30 to 5), in management effort (-70%) and in deployment time for the client.
Azure Day Rome Reloaded 2019 - Azure: a cloud with a purposeazuredayit
In un momento particolarmente critico per il nostro pianeta, le tecnologie digitali ed il cloud in particolare, possono essere un modo per indirizzare alcune delle sfide più importanti per il nostro futuro. In questa sessione vederemo il contributo di Azure e capiremo il ruolo che ciascuno di noi, come sviluppatori, possiamo fare a riguardo.
Azure Day Rome Reloaded 2019 - Getting Started with Unity, AR/VR and Azure Co...azuredayit
We all see the cool demos of how augmented and virtual reality are going to be the future of our interaction with devices, but it often feels like there’s a significant barrier to getting started in building these types of apps.
This session is here to help. If you’ve ever thought about developing for Oculus Rift S, HTC VIVE or the Windows Mixed Reality headsets, but haven’t known where to start, this is the session for you.
At Azure day, I will present what I learned building a small game, set in a mysterious dungeon using Unity, the SteamVR plugin and Azure Cognitive Services. We'll explore how to import assets from the Unity store, how to implement locomotion techniques and interactions using the motion/touch controllers, including some tips for optimising performance and avoid motion sickness.
Come along, there’ll be .NET code, demos and we’ll have some fun looking at how you can get started on your first VR/AR project enhanced by Azure and the intelligent cloud.
Azure Day Rome Reloaded 2019 - Azure Sentinel: set up automated threat respon...azuredayit
We will create a security playbook, that is a collection of procedures that can be run from Azure Sentinel in response to an alert. It will help automate and orchestrate that response, and can be run manually or set to run automatically when specific alerts are triggered
Azure Day Rome Reloaded 2019 - Azure Application Insights Overviewazuredayit
Monitorare le vostre applicazioni web, anche on-premise, gestendo in modo rapido ed efficiente i problemi, impostando alert e integrando i bug con Azure DevOps
Azure Day Rome Reloaded 2019 - Deconstructing Kubernetes using AKSazuredayit
The session shows you how to use Kubernetes to deploy container-based distributed applications. You'll start with an overview of Docker and Kubernetes before building your first Kubernetes cluster. We'll gradually expand our application, adding features and deepening your knowledge of Kubernetes architecture and operation
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...azuredayit
(EN) How to use Visual Studio Code to develop a Python Flask application that uses Azure Cosmos DB, How To create our Docker image and store It using Azure Container Registry: without stress.
(IT) Come sviluppare in Visual Studio Code un'applicazione Python Flask e Azure Cosmos DB, creare un'immagine Docker e archiviarla in Azure Container : senza stress.
Azure Day Rome 2019 Reloaded - Strangle(r pattern) your legacy application ru...azuredayit
In questa sessione verrà presentato un Business Case che vede la conversione di un applicativo monolitico legacy ASP.NET Framework che gira su Virtual Machines Windows On-Premises, in un docker container e il suo rilascio in un pool di nodi Windows orchestrati da Kubernetes (AKS). Solo successivamente, attraverso lo Strangle Pattern, verrà dimostrato come in modo graduale sia possibile direzionare il traffico verso i nuovi Micro-Servizi rilasciati in parallelo su di un Pool di nodi Linux.
Azure Day Rome 2019 Reloaded - Effettuare il provisioning su Azure utilizzand...azuredayit
Terraform sta emergendo sempre più come il tool per definire l'infrastruttura tramite codice (IaC).
Vedremo tramite esempi pratici come realizzare script per creare e distruggere complesse architetture su Azure utilizzando gli strumenti che Azure DevOps mette a disposizione
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...azuredayit
Con AKS, Azure Kubernetes Service , è possibile creare istanze Sql server in modo semplice e veloce, beneficiando delle funzionalità di failover clustering native di AKS.
In questa sessione vedremo come installare, gestire e migrare istanze tradizionali su AKS.
Azure Day Rome Reloaded 2019 - Azure Cognitive Search Deep Diveazuredayit
Oltrepassiamo la barriera della ricerca testuale e recuperiamo informazioni apparentemente nascoste nei documenti e nelle immagini. In questa sessione di approfondimento scopriremo come arricchire un indice di Azure Search utilizzando i nostri algoritmi di intelligenza artificiale per creare un sistema di ricerca visivo nello spazio e nel tempo.
4. • Chi sono: Marco Caruso
Presentazione
Chi sono
• Enterprise Architect e Technology Advisor
• 20 anni di esperienza nel IT
• Oltre 23 certificazioni Microsoft
https://www.linkedin.com/in/carusomarco/
@MarcoCaruso79
mcaruso79@hotmail.com
5. Architettura di Riferimento Big Data
Data Ingestion
Data Repository
Data Process
Data Analytics
Data Visualization MULTI-LAYER
L’architettura è progettata su più layer logici che
permette di essere:
• Scalabile
• Modulare
• Performante
• Quello su cui ci focalizziamo in questo sessione è il Data
Ingestion
6. Data ingestion cos’è?
•«E’ la capacità di acquisire dati in tempo reale o in batch; è la
capacità di conservare e accedere a dati strutturati, semi
strutturati e non strutturati nel formato originario in cui sono
prodotti e tramite un sistema di ruoli configurabile;»
• E’ il primo livello dell’architetture Big Data
• Come tutti i layer anche questo è fondamentale e spesso viene
tralasciato
7. Architettura Big Data batch su Azure
SFTP e Others
DataFactory
Datalake
Databricks
SQL Datawarehouse
PowerBI
Data
sources
Data
repository
Data Process
Data
Ingestion
Data analytics
Data
Visualization
8. Architettura in Real Time o Near Real Time
• Se voglio esporre i miei servizi per dare un API in Real Time o Near Real
Time cosa devo fare senza modificare il data process?
• Attivare due servizi
• Event Hubs e API Management
9. Architettura Big Data Real Time su Azure
SFTP e Others
DataFactory
Databricks
SQL Datawarehouse
PowerBI
Data
sources
Data
repository
Data Process
Data
Ingestion
Data analytics
Data
Visualization
Event Hubs API Management
Generic Datasources
10. Senza utilizzo di codice
• La modifica all’architettura nella fase di data ingestion non comporta lo sviluppo di
codice ma soltanto la configurazione dei servizi.
• Questo semplifica l’acquisizione dei dati da più fonti e con protocolli diversi
• Andrà creato soltanto uno script lato Data process(DataBricks, Datalake Analytics) per i
file .avro
11. Avro Schemas
“An easy way to explore Avro files is by using
the Avro Tools jar from Apache. You can also
use Apache Drill for a lightweight SQL-driven
experience or Apache Spark to perform complex
distributed processing on the ingested data.”
12. Configurazione Event Hubs
• Abilitare il capture(non disponibile nel piano basic):
• Impostare ogni quanti minuti si devono ricevere i messaggi
• L’impostazione sulle dimensioni del messaggio
• Può essere selezionato sia il Datalake gen1 che il Datalake gen2(Azure
Storage)
• Il formato con il quale va a scrivere nel datalake ci sono tre opzioni
1. {Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute
}/{Second}
2. {Year}/{Month}/{Day}/{Namespace}/{EventHub}/{PartitionId}/{Hour}/{Minute
}/{Second}
3. {Year}/{Month}/{Day}/{Hour}/{Namespace}/{EventHub}/{PartitionId}/{Minute
}/{Second}
• Es opzione1: mystorage/ingestiondatalake_dev/0/2019/11/29/17/11/30
• Impostare i permessi per accesso e scrittura
13. Event Hubs Permessi
• Per poter richiamare i servizi dell’Event Hubs c’è bisogno di impostare le firme
di accesso condiviso che sono il meccanismo di sicurezza principale per la
messaggistica. La firma di accesso condiviso consente inoltre l'accesso al bus di
servizio(event hubs) in base alle regole di autorizzazione configurate in uno in
un'entità di messaggistica. Una regola di autorizzazione ha un nome(es.
RootEH), è associata a diritti specifici e include una coppia di chiavi di
crittografia.
• I diritti assegnati dalla regola del criterio possono essere una combinazione di:
• Send: permette di inviare messaggi all'entità
• Listen: permette di essere in ascolto (inoltro) o di ricevere (coda,
sottoscrizioni) e di tutta la gestione correlata ai messaggi
• Manage: conferisce il diritto di gestire la topologia dello spazio dei nomi,
incluse la creazione e l'eliminazione di entità
• Il diritto Manage include i diritti Send e Receive.
15. Event Hubs Rest API
• E’ possibile richiamare i servizi rest dell’Event Hubs per scrivere e leggere.
• Per farlo bisogna utilizzare l’uri:
• <namespaceName>.servicebus.windows.net/
• Per poter usare questi servizi è necessario:
• Sostituire {api-version} con "2014-01" nell’ URL.
• Sostituire {servicebusNamespace} con il namespace ottenuto dal portale di azure.
• Sostituire {eventHubPath} con il path del vostro Event Hub.
• Sostituire {publisherName} con il nome del vostro publisher.
• Sostituire {partitionId} con l’ID della partizione del vostro Event Hub.
• Impostare il Content-Type header in “ application/atom+xml;type=entry;charset=utf-8”
• Impostare l’Authorization header con SAS token
16. SAS Token 1/2
• Cos’è il SAS Token?
• «Una firma di accesso condiviso=Security Access Signature(SAS), è il meccanismo di sicurezza
principale per la messaggistica del bus di servizio e fornisce accesso delegato sicuro alle risorse
nell'account di archiviazione»
• Il token è una stringa generata sul lato client. Dopo aver creato un token SAS, è possibile
distribuirla alle applicazioni client che richiedono l'accesso alle risorse nell'account di
archiviazione.
• Il token viene generato creando una stringa nel formato seguente:
SharedAccessSignature sig=<signature-string>&se=<expiry>&skn=<keyName>&sr=<URL-
encoded-resourceURI>
• se : istante di scadenza del token. Valore intero che riflette i secondi trascorsi dalle 00:00:00
UTC del 1 ° gennaio 1970 (epoca UNIX) quando il token scade.
• skn : nome della regola di autorizzazione.
• sr : URI della risorsa a cui si ha accesso.
• sig : firma
• Signature-string:signature-string è il codice hash SHA-256 calcolato in base all'URI della risorsa
17. SAS Token 2/2
• La generazione del SAS Token è possibile farlo con qualsiasi linguaggio:
• PowerShell, Bash, C#, Java, Node.js, Phyton ecc.
• Bisogna sostituire:
• Uri: url dell’event hubs es. «eventhubdl.servicebus.windows.net/»
• Access Policy: la policy di lettura e scrittura, es. «RootEH»
• Access Policy Key: la chiave primaria
• Expires: il tempo che deve durare il token
20. Perché anche API Management?
• Permette di creare un canale che faccia da Gateway per tutte le comunicazioni
real time o near real time
• Protocollo standard Rest
• Monitoraggio incorporato
• Versioning API
• Gestione di profili e policy per singolo utente/gruppo
• Maggiore sicurezza:
• Ci permette di non esporre le chiavi dell’event hub
• Centralizzazione dell’autenticazione e autorizzazione su standard Oauth o
OpenId
21. Configurazione Api Management
• Dopo aver creato la nostra api bisogna:
• Modificare l’url dell’Api con l’url del namespace dell’eventhubs:es.
https://eventhubdl.servicebus.windows.net
• Creare una policy di Inbound impostando le regole che servono a richiamare i
servizi Rest dell’event hubs come spiegato precedentemente.
• in particolare:
• <rewrite-uri template>: path dell’event hub esempio /datalake/messages
• <set-query-parameter name=«timeout»> esempio 60(secondi)
• <set-query-parameter name=«api-version»> 2014-01
• <set-header name=«Content-Type»> application/atom+xml;type=entry;charset=utf-8;
• <set-header name=«Authorization»> <value><![CDATA[SharedAccessSignature
sr=eventhubdl.servicebus.windows.net%2f&sig=p3PpKLqt82JYnHunIOH%2brmdlVvOsY
9Oc0yMsg%2bbK%2fms%3d&se=1574643752&skn=RootEH]]></value>
23. Conclusioni
• Le architetture Big Data stanno avendo sempre più diffusione e il data ingestion
in «Real Time» sempre più usato senza dimenticare quello in modalità batch.
• Inserire più layer per non far accedere direttamente ai dati, aumenta di molto la
sicurezza e la modularità dell’architettura.
• Capire a fondo come funziona event hubs permette di avere più soluzioni e
semplifica la creazione di architetture complesse
• La configurazione dei servizi può risultare un po’ difficoltosa ma poi da i suoi
frutti in termini di produttività