(Go: >> BACK << -|- >> HOME <<)

SlideShare a Scribd company logo
Service Fabric:  la potenza dei micro servizi
Service Fabric - La potenza dei
MicroServizi
Massimo Bonanni
Microsoft Senior Consultant – EMEA Modern App Domain
massimo.bonanni@microsoft.com
@massimobonanni
Agenda
• Perchè l’approccio a Microservizi
• Azure Service Fabric
• Modello di programmazione di Service Fabric
• Funzionalità di orchestrazione
Perchè un approccio Microservice?
• Realizzare e gestire servizi scalabili
• Applicazioni in continua evoluzione
• Maggiore velocità di distribuzione delle nuove funzionalità per
rispondere ai requisiti del cliente
• Miglior utilizzo delle risorse per abbattere i costi di gestione
Un microservice…
• Fa una cosa sola in maniera ottimale
• Può essere sviluppato da un piccolo team
• Può essere implementato con differenti linguaggi o framework
• Comunica attraverso interfacce e protocolli ben definiti
• Ha un nome logico univoco (URI)
• Ha codice e configurazione (ed eventualmente stato) indipendenti
• Può scalare in modo indipendente
• Può essere aggiornato in modo indipendente
• Garantisce consistenza e disponibilità anche in presenza di guasti o
malfunzionamenti
• Viene scalata clonandola su più
Server/VM/Container.
Approccio “Monolitico” Approccio Microservice
• Una applicazione a
microservizi separa le
funzionalità in servizi distinti
• Questo approccio consente di scalare
indipendentemente ogni servizio, creando istanze di
ognuno su Server/VM/Container.
• Una applicazione monolitica
raggruppa insieme funzionalità
di un dominio ed è
normalmente separata in layer,
come web, business e data.
App 1 App 2
App 1
Architettura
• Singolo database
• Livelli con tecnologie specifiche
Approccio “Monolitico” Approccio a Microservizi
• Grafo di Microservizi interconnessi
• Lo stato è all’interno del singolo Microservice
• Differenti tecnologie utilizzate
stateless
services
stateless services with
separate stores
stateful
services
stateless
presentation
services
Stato
Principali caratteristiche dei Microservice
Unità singola di
elaborazione.
Debolmente
accoppiato. Fa bene
una cosa.
Può essere
implementato con
qualsiasi linguaggio di
programmazione e con
qualsiasi framework.
Rimane consistente e
disponibile anche in
caso di guasti o
malfunzionamenti.
Il modello di
comunicazione si basa
sui messaggi ben
definiti.
Si compone di codice e
stato che hanno
versione, distribuzione
e scalabilità
indipendenti.
Ha un nome logico
univoco (URI) che può
essere risolto.
Principali funzionalità infrastrutturali
Unità di deploy che può
essere versionata,
distribuita e scalata in
maniera indipendente.
Garantisce continuità
dei servizi erogati.
Gestisce il ciclo di vita
di ogni servizio della
piattaforma.
Consente di eseguire
update continui dei
servizi erogati.
Alto numero di servizi
all’interno di una stessa
unità di calcolo.
Gestisce
automaticamente i
problemi o i guasti dei
servizi erogati.
Concetti chiave di Microsoft Azure Service Fabric
• Architettura Distribuita
• Service Fabric abilita la progettazione, l’implementazione e la
manutenzione di applicazioni distribuite e scalabili
• Astrazione Infrastrutturale
• Service Fabric permette di definire un cluster che non ha dipendenze
dirette con l’infrastruttura fisica sottostante sia in termini di risorse che in
termini di disponibilità.
• I servizi di una applicazione sono distribuiti e scalati all’interno del cluster
in base al numero dei nodi fisici/virtuali di cui l’infrastrutura è costituita.
• Più applicazioni possono condividere lo stesso cluster di Service Fabric.
Concetti chiave di Microsoft Azure Service Fabric
• Application model
• Un’applicazione è composta da servizi.
• Ogni servizio è costituito da tre componenti:
• Codice: tipi (.NET, Java, ecc.)
• Configurazione: modifica il comportamento del
servizio
• Dati: gestiti dallo stesso servizio
• Ogni componente può essere gestito e
versionato in modo indipendente.
Azure Service Fabric
Microservices
Azure
Windows
Server
Linux
Hosted Clouds
Windows
Server
Linux
Service Fabric
Private Clouds
Windows
Server
Linux
High Availability
Hyper-Scale
Hybrid Operations
High Density Rolling Upgrades
Stateful services
Low Latency
Fast startup &
shutdown
Container Orchestration
& lifecycle management
Replication &
Failover
Simple
programming
models
Load balancing
Self-healingData Partitioning
Automated Rollback
Health
Monitoring
Placement
Constraints
Modello di programmazione
Reliable Service
• Sono simili ai Web Service ma forniscono alcune caratteristiche out of the
box: alta disponibilità, affidabilità, resilienza.
• Basano la scalabilità sul concetto di partizione dei dati.
• Possono essere Stateless o Stateful.
• Lo stato è gestito da uno «State Manager» che fornisce API per rendere i
dati affidabili.
• I Reliable Service comunicano tra loro (e con gli attori) tramite messaggi
asincroni.
Modello di programmazione
Reliable Actor
• E’ basato su un pattern architetturale pensato per realizzare un’architettura costruita
da processi indipendenti.
• Ogni attore è individuato da un identificatore univoco attraverso il quale può essere
istanziato.
• Ogni attore fornisce azioni che possono essere invocate dall’esterno. Le azioni sono
processate nell’ordine in cui vengono invocate.
• Sono generalmente Stateful
• L’affidabilità dello stato è gestita, in maniera trasparente, dal framework
• Ha un pattern di esecuzione Single Thread
• L’Actor Model è un modello matematico per il calcolo concorrente teorizzato nel 1973
da Carl Hewitt (http://aka.ms/HewittCH9Actor)
• Gli Attori comunicano tra loro (e con i Reliable Service) tramite messaggi asincroni
• Le Reliable Collections permettono di gestire in maniera semplice lo stato di
un microservizio.
• Sono una evoluzione delle collezioni .NET pensate per il cloud.
• ReliableDictionary<T1,T2> e ReliableQueue<T>
Reliable Collections
Collections
• Single machine
• Single threaded
Concurrent
Collections
• Single machine
• Multi threaded
Reliable Collections
• Multi machine
• Replicated (HA)
• Persistence (durable)
• Asynchronous
• Transactional
Demo
Service Fabric - My First App
App1 App2
Orchestrazione - Deployments
App Type Packages Service Fabric Cluster VMs
App1 App2
Orchestrazione - Failures
App Type Packages Service Fabric Cluster VMs
Green Nodes
App1 App2
Orchestrazione - Constraints
App Type Packages Service Fabric Cluster VMs
App1 App2
Orchestrazione - Capacity
App Type Packages Service Fabric Cluster VMs
App1 App2
Orchestrazione – Scaleout Cluster
App Type Packages
Service Fabric Cluster VMs
UD3
UD2
UD1
App1 App2
Orchestrazione - Upgrade
App Type Packages Service Fabric Cluster VMs
App2.1
Demo
Service Fabric - Actor Failure
Servizi basati su Service Fabric
Service Fabric Takeaways
• Service Fabric fornisce “chiavi-in-mano” tutte le funzionalità di
orchestrazione necessarie per i nostril servizi
• Utilizzato per molti dei Servizi offerti da Azure
• Può essere eseguito sia nel Cloud che on Premise
• Può lavorare con processi, container o una combinazione dei due
• Gira su Linux e Windows
Question time
Reference
• Azure Service Fabric Documentation
https://azure.microsoft.com/en-us/documentation/services/service-fabric/
• Azure Service Fabric Samples
https://azure.microsoft.com/en-us/documentation/samples/?service=service-fabric
• Azure Service Fabric Team Blog
https://blogs.msdn.microsoft.com/azureservicefabric/
• Prepare your development environment (SDK, Tools ……)
https://azure.microsoft.com/en-us/documentation/articles/service-fabric-get-started/
• Ignite - Design modern microservice applications on Microsoft Azure Service Fabric
https://myignite.microsoft.com/sessions/3168
• Ignite - Explore Microservices solutions and Microsoft Azure Service Fabric
https://myignite.microsoft.com/sessions/39492
• Ignite - Build applications with Microsoft Azure Service Fabric on Windows and Linux
https://myignite.microsoft.com/sessions/3164

More Related Content

What's hot

Fuse webinar
Fuse webinarFuse webinar
Fuse webinar
Ugo Landini
 
SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWS
Gianluca Hotz
 
Approccio ad una infrastruttura per Microservice
Approccio ad una infrastruttura per MicroserviceApproccio ad una infrastruttura per Microservice
Approccio ad una infrastruttura per Microservice
Daniele Mondello
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)
Sabino Labarile
 
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraCome utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Gianluca Hotz
 
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Gianluca Hotz
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWS
sparkfabrik
 
Tabella Comparativa NoMachine Enterprise
Tabella Comparativa NoMachine EnterpriseTabella Comparativa NoMachine Enterprise
Tabella Comparativa NoMachine Enterprise
Adriano Rando
 
MS Days 08 Applicazioni RIA con Silverlight 2 e WCF
MS Days 08 Applicazioni RIA con Silverlight 2 e WCFMS Days 08 Applicazioni RIA con Silverlight 2 e WCF
MS Days 08 Applicazioni RIA con Silverlight 2 e WCF
Fabrizio Bernabei
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
Gianluca Hotz
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: Sicurezza
Gianluca Hotz
 

What's hot (11)

Fuse webinar
Fuse webinarFuse webinar
Fuse webinar
 
SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWS
 
Approccio ad una infrastruttura per Microservice
Approccio ad una infrastruttura per MicroserviceApproccio ad una infrastruttura per Microservice
Approccio ad una infrastruttura per Microservice
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)
 
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraCome utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
 
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWS
 
Tabella Comparativa NoMachine Enterprise
Tabella Comparativa NoMachine EnterpriseTabella Comparativa NoMachine Enterprise
Tabella Comparativa NoMachine Enterprise
 
MS Days 08 Applicazioni RIA con Silverlight 2 e WCF
MS Days 08 Applicazioni RIA con Silverlight 2 e WCFMS Days 08 Applicazioni RIA con Silverlight 2 e WCF
MS Days 08 Applicazioni RIA con Silverlight 2 e WCF
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: Sicurezza
 

Viewers also liked

Proyecto
ProyectoProyecto
Proyecto
Catalina7a
 
Live Tweeting
Live TweetingLive Tweeting
6 rules of success by arnold Schwarzenegger
6 rules of success by arnold Schwarzenegger6 rules of success by arnold Schwarzenegger
6 rules of success by arnold Schwarzenegger
nihaarika
 
Purificação
PurificaçãoPurificação
Purificação
Lilia Leal Leal
 
Actors in Java
Actors in JavaActors in Java
Actors in Java
webvir
 
Xamarin Test Cloud
Xamarin Test CloudXamarin Test Cloud
Xamarin Test Cloud
Massimo Bonanni
 
Champ Eventos - Apresentação Institucional
Champ Eventos - Apresentação InstitucionalChamp Eventos - Apresentação Institucional
Champ Eventos - Apresentação Institucional
Agência NNcorp
 
Lolitas Bakeshop - Redesign Identidade Visual
Lolitas Bakeshop - Redesign Identidade VisualLolitas Bakeshop - Redesign Identidade Visual
Lolitas Bakeshop - Redesign Identidade Visual
Agência NNcorp
 
Ods Sicilia 2016: Statistica e geodati
Ods Sicilia  2016: Statistica e geodatiOds Sicilia  2016: Statistica e geodati
Ods Sicilia 2016: Statistica e geodati
ALESSANDRO CAPEZZUOLI
 
Realizzare Single Page Application con Angular2
Realizzare Single Page Application con Angular2Realizzare Single Page Application con Angular2
Realizzare Single Page Application con Angular2
Michele Aponte
 
E-Commerce - Conhecendo o comercio eletronico
E-Commerce - Conhecendo o comercio eletronicoE-Commerce - Conhecendo o comercio eletronico
E-Commerce - Conhecendo o comercio eletronico
Andre Havro
 
STATVIEW
STATVIEWSTATVIEW
[[Guia] Alcance grandes resultados em sua agência de publicidade
[[Guia] Alcance grandes resultados em sua agência de publicidade[[Guia] Alcance grandes resultados em sua agência de publicidade
[[Guia] Alcance grandes resultados em sua agência de publicidade
ContaAzul
 

Viewers also liked (13)

Proyecto
ProyectoProyecto
Proyecto
 
Live Tweeting
Live TweetingLive Tweeting
Live Tweeting
 
6 rules of success by arnold Schwarzenegger
6 rules of success by arnold Schwarzenegger6 rules of success by arnold Schwarzenegger
6 rules of success by arnold Schwarzenegger
 
Purificação
PurificaçãoPurificação
Purificação
 
Actors in Java
Actors in JavaActors in Java
Actors in Java
 
Xamarin Test Cloud
Xamarin Test CloudXamarin Test Cloud
Xamarin Test Cloud
 
Champ Eventos - Apresentação Institucional
Champ Eventos - Apresentação InstitucionalChamp Eventos - Apresentação Institucional
Champ Eventos - Apresentação Institucional
 
Lolitas Bakeshop - Redesign Identidade Visual
Lolitas Bakeshop - Redesign Identidade VisualLolitas Bakeshop - Redesign Identidade Visual
Lolitas Bakeshop - Redesign Identidade Visual
 
Ods Sicilia 2016: Statistica e geodati
Ods Sicilia  2016: Statistica e geodatiOds Sicilia  2016: Statistica e geodati
Ods Sicilia 2016: Statistica e geodati
 
Realizzare Single Page Application con Angular2
Realizzare Single Page Application con Angular2Realizzare Single Page Application con Angular2
Realizzare Single Page Application con Angular2
 
E-Commerce - Conhecendo o comercio eletronico
E-Commerce - Conhecendo o comercio eletronicoE-Commerce - Conhecendo o comercio eletronico
E-Commerce - Conhecendo o comercio eletronico
 
STATVIEW
STATVIEWSTATVIEW
STATVIEW
 
[[Guia] Alcance grandes resultados em sua agência de publicidade
[[Guia] Alcance grandes resultados em sua agência de publicidade[[Guia] Alcance grandes resultados em sua agência de publicidade
[[Guia] Alcance grandes resultados em sua agência de publicidade
 

Similar to Service Fabric: la potenza dei micro servizi

Introduzione a Service Fabric e Actor Model
Introduzione a Service Fabric e Actor ModelIntroduzione a Service Fabric e Actor Model
Introduzione a Service Fabric e Actor Model
Andrea Tosato
 
Babel presenta: Opsview
Babel presenta: OpsviewBabel presenta: Opsview
Babel presenta: Opsview
Babel
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
opencityplatform
 
Microservices
MicroservicesMicroservices
Microservices
Massimo Romano
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
Riccardo Zamana
 
Il Cloud Computing
Il Cloud ComputingIl Cloud Computing
Il Cloud Computing
zambe92
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
Par-Tec S.p.A.
 
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...
Corrado Musumeci
 
Microservizi & DevOps
Microservizi & DevOpsMicroservizi & DevOps
Microservizi & DevOps
Antonio Liccardi
 
Microservices power by unikernels
Microservices power by unikernelsMicroservices power by unikernels
Microservices power by unikernels
Gabriele Baldoni
 
SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)
Sabino Labarile
 
DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016
Gaetano Paternò
 
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
fcrippa
 
GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016
Gaetano Paternò
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
Roberto Messora
 
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
Daniele Mondello
 
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e KubernetesWorkshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
blexin
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
Andrea Dottor
 
Che cosa sono i microservizi?
Che cosa sono i microservizi?Che cosa sono i microservizi?
Che cosa sono i microservizi?
Salvatore Cordiano
 
Tesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingTesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computing
francesco pesare
 

Similar to Service Fabric: la potenza dei micro servizi (20)

Introduzione a Service Fabric e Actor Model
Introduzione a Service Fabric e Actor ModelIntroduzione a Service Fabric e Actor Model
Introduzione a Service Fabric e Actor Model
 
Babel presenta: Opsview
Babel presenta: OpsviewBabel presenta: Opsview
Babel presenta: Opsview
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
 
Microservices
MicroservicesMicroservices
Microservices
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
Il Cloud Computing
Il Cloud ComputingIl Cloud Computing
Il Cloud Computing
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
 
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...
[AxonIQ Italia Community] Architetture distribuite a eventi: sono adatte al m...
 
Microservizi & DevOps
Microservizi & DevOpsMicroservizi & DevOps
Microservizi & DevOps
 
Microservices power by unikernels
Microservices power by unikernelsMicroservices power by unikernels
Microservices power by unikernels
 
SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)
 
DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016
 
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
 
GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
 
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
 
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e KubernetesWorkshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Che cosa sono i microservizi?
Che cosa sono i microservizi?Che cosa sono i microservizi?
Che cosa sono i microservizi?
 
Tesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingTesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computing
 

More from Massimo Bonanni

Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!
Massimo Bonanni
 
Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!
Massimo Bonanni
 
Stateful pattern con Azure Functions
Stateful pattern con Azure FunctionsStateful pattern con Azure Functions
Stateful pattern con Azure Functions
Massimo Bonanni
 
Architetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsArchitetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure Functions
Massimo Bonanni
 
IoT in salsa serverless
IoT in salsa serverlessIoT in salsa serverless
IoT in salsa serverless
Massimo Bonanni
 
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Massimo Bonanni
 
Stateful patterns in Azure Functions
Stateful patterns in Azure FunctionsStateful patterns in Azure Functions
Stateful patterns in Azure Functions
Massimo Bonanni
 
IoT in salsa Serverless
IoT in salsa ServerlessIoT in salsa Serverless
IoT in salsa Serverless
Massimo Bonanni
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoring
Massimo Bonanni
 
Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!
Massimo Bonanni
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoring
Massimo Bonanni
 
Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...
Massimo Bonanni
 
Workflow as code with Azure Durable Functions
Workflow as code with Azure Durable FunctionsWorkflow as code with Azure Durable Functions
Workflow as code with Azure Durable Functions
Massimo Bonanni
 
Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!
Massimo Bonanni
 
Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0
Massimo Bonanni
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
Massimo Bonanni
 
Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!
Massimo Bonanni
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
Massimo Bonanni
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
Massimo Bonanni
 
Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!
Massimo Bonanni
 

More from Massimo Bonanni (20)

Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!
 
Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!
 
Stateful pattern con Azure Functions
Stateful pattern con Azure FunctionsStateful pattern con Azure Functions
Stateful pattern con Azure Functions
 
Architetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsArchitetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure Functions
 
IoT in salsa serverless
IoT in salsa serverlessIoT in salsa serverless
IoT in salsa serverless
 
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
 
Stateful patterns in Azure Functions
Stateful patterns in Azure FunctionsStateful patterns in Azure Functions
Stateful patterns in Azure Functions
 
IoT in salsa Serverless
IoT in salsa ServerlessIoT in salsa Serverless
IoT in salsa Serverless
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoring
 
Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoring
 
Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...
 
Workflow as code with Azure Durable Functions
Workflow as code with Azure Durable FunctionsWorkflow as code with Azure Durable Functions
Workflow as code with Azure Durable Functions
 
Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!
 
Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
 
Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
 
Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!
 

Service Fabric: la potenza dei micro servizi

  • 2. Service Fabric - La potenza dei MicroServizi Massimo Bonanni Microsoft Senior Consultant – EMEA Modern App Domain massimo.bonanni@microsoft.com @massimobonanni
  • 3. Agenda • Perchè l’approccio a Microservizi • Azure Service Fabric • Modello di programmazione di Service Fabric • Funzionalità di orchestrazione
  • 4. Perchè un approccio Microservice? • Realizzare e gestire servizi scalabili • Applicazioni in continua evoluzione • Maggiore velocità di distribuzione delle nuove funzionalità per rispondere ai requisiti del cliente • Miglior utilizzo delle risorse per abbattere i costi di gestione
  • 5. Un microservice… • Fa una cosa sola in maniera ottimale • Può essere sviluppato da un piccolo team • Può essere implementato con differenti linguaggi o framework • Comunica attraverso interfacce e protocolli ben definiti • Ha un nome logico univoco (URI) • Ha codice e configurazione (ed eventualmente stato) indipendenti • Può scalare in modo indipendente • Può essere aggiornato in modo indipendente • Garantisce consistenza e disponibilità anche in presenza di guasti o malfunzionamenti
  • 6. • Viene scalata clonandola su più Server/VM/Container. Approccio “Monolitico” Approccio Microservice • Una applicazione a microservizi separa le funzionalità in servizi distinti • Questo approccio consente di scalare indipendentemente ogni servizio, creando istanze di ognuno su Server/VM/Container. • Una applicazione monolitica raggruppa insieme funzionalità di un dominio ed è normalmente separata in layer, come web, business e data. App 1 App 2 App 1 Architettura
  • 7. • Singolo database • Livelli con tecnologie specifiche Approccio “Monolitico” Approccio a Microservizi • Grafo di Microservizi interconnessi • Lo stato è all’interno del singolo Microservice • Differenti tecnologie utilizzate stateless services stateless services with separate stores stateful services stateless presentation services Stato
  • 8. Principali caratteristiche dei Microservice Unità singola di elaborazione. Debolmente accoppiato. Fa bene una cosa. Può essere implementato con qualsiasi linguaggio di programmazione e con qualsiasi framework. Rimane consistente e disponibile anche in caso di guasti o malfunzionamenti. Il modello di comunicazione si basa sui messaggi ben definiti. Si compone di codice e stato che hanno versione, distribuzione e scalabilità indipendenti. Ha un nome logico univoco (URI) che può essere risolto.
  • 9. Principali funzionalità infrastrutturali Unità di deploy che può essere versionata, distribuita e scalata in maniera indipendente. Garantisce continuità dei servizi erogati. Gestisce il ciclo di vita di ogni servizio della piattaforma. Consente di eseguire update continui dei servizi erogati. Alto numero di servizi all’interno di una stessa unità di calcolo. Gestisce automaticamente i problemi o i guasti dei servizi erogati.
  • 10. Concetti chiave di Microsoft Azure Service Fabric • Architettura Distribuita • Service Fabric abilita la progettazione, l’implementazione e la manutenzione di applicazioni distribuite e scalabili • Astrazione Infrastrutturale • Service Fabric permette di definire un cluster che non ha dipendenze dirette con l’infrastruttura fisica sottostante sia in termini di risorse che in termini di disponibilità. • I servizi di una applicazione sono distribuiti e scalati all’interno del cluster in base al numero dei nodi fisici/virtuali di cui l’infrastrutura è costituita. • Più applicazioni possono condividere lo stesso cluster di Service Fabric.
  • 11. Concetti chiave di Microsoft Azure Service Fabric • Application model • Un’applicazione è composta da servizi. • Ogni servizio è costituito da tre componenti: • Codice: tipi (.NET, Java, ecc.) • Configurazione: modifica il comportamento del servizio • Dati: gestiti dallo stesso servizio • Ogni componente può essere gestito e versionato in modo indipendente.
  • 12. Azure Service Fabric Microservices Azure Windows Server Linux Hosted Clouds Windows Server Linux Service Fabric Private Clouds Windows Server Linux High Availability Hyper-Scale Hybrid Operations High Density Rolling Upgrades Stateful services Low Latency Fast startup & shutdown Container Orchestration & lifecycle management Replication & Failover Simple programming models Load balancing Self-healingData Partitioning Automated Rollback Health Monitoring Placement Constraints
  • 13. Modello di programmazione Reliable Service • Sono simili ai Web Service ma forniscono alcune caratteristiche out of the box: alta disponibilità, affidabilità, resilienza. • Basano la scalabilità sul concetto di partizione dei dati. • Possono essere Stateless o Stateful. • Lo stato è gestito da uno «State Manager» che fornisce API per rendere i dati affidabili. • I Reliable Service comunicano tra loro (e con gli attori) tramite messaggi asincroni.
  • 14. Modello di programmazione Reliable Actor • E’ basato su un pattern architetturale pensato per realizzare un’architettura costruita da processi indipendenti. • Ogni attore è individuato da un identificatore univoco attraverso il quale può essere istanziato. • Ogni attore fornisce azioni che possono essere invocate dall’esterno. Le azioni sono processate nell’ordine in cui vengono invocate. • Sono generalmente Stateful • L’affidabilità dello stato è gestita, in maniera trasparente, dal framework • Ha un pattern di esecuzione Single Thread • L’Actor Model è un modello matematico per il calcolo concorrente teorizzato nel 1973 da Carl Hewitt (http://aka.ms/HewittCH9Actor) • Gli Attori comunicano tra loro (e con i Reliable Service) tramite messaggi asincroni
  • 15. • Le Reliable Collections permettono di gestire in maniera semplice lo stato di un microservizio. • Sono una evoluzione delle collezioni .NET pensate per il cloud. • ReliableDictionary<T1,T2> e ReliableQueue<T> Reliable Collections Collections • Single machine • Single threaded Concurrent Collections • Single machine • Multi threaded Reliable Collections • Multi machine • Replicated (HA) • Persistence (durable) • Asynchronous • Transactional
  • 16. Demo Service Fabric - My First App
  • 17. App1 App2 Orchestrazione - Deployments App Type Packages Service Fabric Cluster VMs
  • 18. App1 App2 Orchestrazione - Failures App Type Packages Service Fabric Cluster VMs
  • 19. Green Nodes App1 App2 Orchestrazione - Constraints App Type Packages Service Fabric Cluster VMs
  • 20. App1 App2 Orchestrazione - Capacity App Type Packages Service Fabric Cluster VMs
  • 21. App1 App2 Orchestrazione – Scaleout Cluster App Type Packages Service Fabric Cluster VMs
  • 22. UD3 UD2 UD1 App1 App2 Orchestrazione - Upgrade App Type Packages Service Fabric Cluster VMs App2.1
  • 23. Demo Service Fabric - Actor Failure
  • 24. Servizi basati su Service Fabric
  • 25. Service Fabric Takeaways • Service Fabric fornisce “chiavi-in-mano” tutte le funzionalità di orchestrazione necessarie per i nostril servizi • Utilizzato per molti dei Servizi offerti da Azure • Può essere eseguito sia nel Cloud che on Premise • Può lavorare con processi, container o una combinazione dei due • Gira su Linux e Windows
  • 27. Reference • Azure Service Fabric Documentation https://azure.microsoft.com/en-us/documentation/services/service-fabric/ • Azure Service Fabric Samples https://azure.microsoft.com/en-us/documentation/samples/?service=service-fabric • Azure Service Fabric Team Blog https://blogs.msdn.microsoft.com/azureservicefabric/ • Prepare your development environment (SDK, Tools ……) https://azure.microsoft.com/en-us/documentation/articles/service-fabric-get-started/ • Ignite - Design modern microservice applications on Microsoft Azure Service Fabric https://myignite.microsoft.com/sessions/3168 • Ignite - Explore Microservices solutions and Microsoft Azure Service Fabric https://myignite.microsoft.com/sessions/39492 • Ignite - Build applications with Microsoft Azure Service Fabric on Windows and Linux https://myignite.microsoft.com/sessions/3164