SlideShare une entreprise Scribd logo
1  sur  67
Principi del Cloud Computing e
migrazione delle applicazioni
moderne al cloud
Marco Parenzan
ITST Kennedy 2015 Edition
Marco Parenzan
Formazione & Divulgazione con 1nn0va
Microsoft MVP 2014 for Microsoft Azure
Formazione & Progettazione con ITS Kennedy
Ricerca e Innovazione con Servizi Cgn
www.slideshare.net/marco.parenzan
marco [dot] parenzan [at] libero [dot] it
www.innovazionefvg.net
Developer e Architect in .NET e Web
Cloud Developer
Loves functional programming
Some videogames for fun
Alcuni termini
 Hosting è l’esecuzione di una soluzione applicativa su un server di produzione
 Hosting on premise è l’hosting «in casa propria»
 Il deployment è l’attività di installazione della soluzione applicativa sull’hosting
Spesa attuale
Alcune cattive abitudini
 Non calcolare il ritorno economico della messa in produzione di una soluzione applicativa
 Non calcolare il costo operativo di una soluzione applicativa
 Pensare che i costi siano fissi
 Pensare che decisa una volta (all’inizio) la scelta sia per sempre
 Pensare che una soluzione applicativa giri su una sola macchina
Una discussione
 Il costo del telefono e della connettività Internet sono fissi
 I costi di acqua, luce e gas sono variabili (eppure la manutenzione di una rete acqua,
luce e gas è arbitrariamente straordinaria – se non si rompe...)
 Qualsiasi infrastruttura ha bisogno di manutenzione
 La manutenzione sulla rete telefonica e dati è sempre straordinaria
 La manutenzione di un server è ordinaria
“Computation may someday
be organized as a public utility”
(John Mccarty, 1960s)
Computing: la quinta utility
 Acqua
 Gas
 Elettricità
 Telefono
 Computing
Introduzione al
Cloud Computing
Nuove abitudini
Obiettvi
 Ridurre gli investimenti IT per l’Impresa
 Variabilizzare i costi, rendendoli certi
 Ridurre la necessità di investire in competenze interne per la gestione dell’infrastruttura e
l’aggiornamento del software
Nuove abitudini
 Avere sempre un business plan
 I costi sono variabili (ma questo non significa che la spesa non sia predicibile – bisogna
saperlo fare)
 Bisogna adattare le scelte fatte in corso d’opera
 Una soluzione applicativa deve poter girare su più macchine
Cos’è il Cloud Computing
On-demand, scalable, multi-tenant, self-service compute and storage resources
Cos’è il Cloud Computing
 Il Cloud Computing è un modello che consente una convenienza attraverso l’accesso
(on-demand) ad una rete condivisa di un pool di risorse di calcolo configurabili (ad
esempio, network, server, storage, applicazioni e servizi) che possono essere rapidamente
fornite e rilasciate con il minimo sforzo di gestione o con interazione del service provider.
 Questo modello di Cloud promuove la disponibilità ed è composto da cinque
caratteristiche fondamentali, tre modelli di servizio, e quattro modelli di distribuzione..
NIST v15 – 07/10/2009
NIST - National Institute of Standards and Technology
http://csrc.nist.gov/groups/SNS/cloud-computing/
Cloud Computing appetibile
 Disponibilità ovunque
 Rapidità di implementazione
 Facilità di utilizzo
 Aggiornamento costante del software
 Scalabilità della soluzione con la
crescita e la variabilità della
domanda
 Riduzione dei costi
Fortune 500 using Azure
>57% >300k
Active websites
More than
1,000,000
SQL Databases in Azure
>30TRILLION
storage objects >300MILLION
AAD users
>13 BILLION
authentication/wk
>3
MILLION
requests/sec
>1.65MILLION
Developers registered
with Visual Studio Online
.NET Support2014
Offline Sync
Mobile Services
Networking Visual Studio & .NET
Virtual Machines
Memory Optimized Disk Optimized
Resource Manager
Portal
VSO GA
XamarinPoint-to-site VPN
Web Sites
SMB File System
IBIZA
Remote Debug
VM Managemen
SQL Database
Puppet Chef Docker
Powershell and DSC
Capture / Deploy
Autoscale
Dynamic Routing
Subnet Routing
Static IP
Storage
Autoscale
Traffic Mgr
Web Jobs
Backup
Java Support
ASP.NET MVC 5.1
ASP.NET Web API 2.1
AD support
Powershell Automation
Node.JS project
support
Remote Debugging
Kindle Support
BD’s up to 500GB
99.95% SLA
Self Service Site Recovery
Active GEO replication
HDInsight
Hadoop 2.2
YARN support
.NET 4.5
.NET Foundation
Azure Redis Cache
API Management
Site Recovery
Remote Apps
Cordova
VSO Open
Api’s
Event Hub
Compliance: aka.ms/AzureCompliance
Visual Studio Online
 Full Portal Integration
 Not just for Microsoft shops
Agile
Build Test
Deploy
InsightsCode
Key Scenarios to get started with Microsoft
Azure
 Dev / Test
 Full test and dev environments in minutes
 VSO integration
 Lift and Shift
 Take existing work loads and run then in a certified instance
 Storage
 Archive key data in inexpensive cloud storage
 Big Data
 Process key data into business intelligence using Hadoop or Machine Learning
 Identity
 Synchronize all your identities through Azure AD to control access to Apps, Data and Services
 Web Apps
 Take your web apps to the cloud using inexpensive Web Sites
Service Models in Cloud
Modello di distribuzione
La cloud infrastructure è di
proprietà di una
organizzazione che vende i
servizi cloud al pubblico o
ad un gruppo di grandi
imprese
L’infrastruttura è una
composizione di due o più
cloud (private, community, o
public) in una entità unica,
tenute insieme da
tecnologie proprietarie tali
da permettere la portabilità
dei dati e delle applicazioni
(ad esempio, cloud
bursting).
La cloud infrastructure è di
proprietà o in leasing di una sola
organizzazione ed è utilizzata
esclusivamente
dall'organizzazione
La cloud infrastructure
è condivisa da diverse
organizzazioni e sostiene
una comunità specifica
che ne condivide degli ambiti
(ad esempio, la mission, i
requisiti di sicurezza, la policy, e
le considerazioni di conformità).
Percorso attraverso i modelli di
distribuzione
On Premises
Youscale,makeresilientandmanage
Infrastructure
(as a Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
Managedbyvendor
Youscale,make
resilient&manage
Platform
(as a Service)
Scale,resilienceand
managementbyvendor
Youmanage Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
Hosting models
Software
(as a Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
Business model
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
Scale,resilienceand
managementbyvendor
Why the cloud?
Iaas, Paas, Saas Comparison
Modello di servizio
 (SaaS). Fornisce al consumatore la possibilità di usare le applicazioni in esecuzione
su una Cloud infrastructure accessibile da vari dispositivi client attraverso una
interfaccia come un browser Web (ad esempio, una web-based e-mail). Il
consumatore non riesce a controllare l’ infrastruttura base della Cloud, rete, server,
sistemi operativi, storage, con la possibile eccezione di limitate specifiche
impostazione per l'utente delle impostazioni di configurazione dell’applicazione.Application
Platform
 (PaaS). Fornisce al consumatore la possibilità di distribuire nella Cloud infrastructure
applicazioni create dal consumatore che utilizzano linguaggi di programmazione
supportati dal fornitore (ad esempio, Java, Python,. Net). Il consumatore non ha il
controllo della base della Cloud infrastructure, rete, server, sistemi operativi, storage,
ma ha il controllo sulle applicazioni distribuite ed eventualmente sulle configurazioni
dell’ ambiente.
 (IaaS). Fornisce al consumatore il poter noleggiare capacità di CPU, storage,
network, e altre risorse fondamentali che il consumatore è in grado di implementare
e gestire, che possono includere i sistemi operativi e le applicazioni. Il consumatore
non ha il controllo delle infrastruttura di base della Cloud, ma ha il controllo su
sistemi operativi, storage, la distribuzione delle applicazioni, ed eventualmente
selezionare componenti di rete (ad esempio, firewall, load balancer).
Infrastructure
Service Models in Microsoft Azure
Virtual Machines
Getting started
>_
REST API
Management portal
Scripting
(Windows, Linux and Mac)
Select image
and VM size
Extra Small
Small
Medium
Large
X-Large
New disk persisted in
storage
Cloud
Blob
Storage
Comprehensive
Networking
Windows Server
Linux
Boot VM from new disk
Microsoft Azure Web Sites
Create new sites in seconds
Easily manage and scale your sites
Automatic load balancing and shared
storage across instances
Scale out or up to reserved instances
for improved performance and scale
Built-in web jobs support
Use ASP.NET, ASP, PHP, Java or
Node.js
SQL Azure or MySQL databases
Start with open source apps and
frameworks
Develop with VS and WebMatrix
Supports any Web development
tool on any platform (Windows,
OSX, Linux)
Rapid deployment for quick
iteration
Integrated source control with
Team Foundation Server (TFS) and
Git
Built-in monitoring of perf and
usage data
Quick access to request logs, failed
requests diagnostics and
diagnostics
Mobile Services
Storage
Authentication
Logic
Push
Scheduler
• Provides essential services
to support client development
• Client Support
• iOS
• Android
• HTML5/Web
• Xamarin
• Windows
• Windows Phone
• PhoneGap
• Sencha
Services for Applications in Cloud
On-demand self-
service
Broad
network
access
Resource
pooling
Measured
Service
Rapid
elasticity
On Demand Self Service
 Il Consumatore può disporre di capacità di calcolo (es. server time, network storage) se
necessario senza richiedere l’interazione umana con alcun fornitore del servizio.
 Il servizio è completamente automatizzato e permette di modificare la richiesta a
seconda delle volontà del consumatore.
Broad Network Access
 Le capacità sono disponibili in rete ed accessibili in qualsiasi momento tramite Pc, Laptop
ma anche altri strumenti che possono accedere ad Internet come Cellulari, Palmari ecc…
Broad
network
access
Resource
pooling
Measured
Service
Rapid
elasticity
On-demand self-
service
Resource Pooling
 Le risorse di calcolo sono messe al servizio di tutti i consumatori utilizzando un modello
MULTITENANT, che permette ad un’istanza Software di servire più Client, con diverse risorse
fisiche e virtuali dinamicamente riassegnate in base alla domanda dei consumatori.
 L’Utente in genere non ha controllo/conoscenza dell’esatta posizione delle risorse (in
alcuni casi può essere un problema).
Broad
network
access
Resource
pooling
Measured
Service
Rapid
elasticity
On-demand self-
service
Measured Service
 I Sistemi Cloud automaticamente controllano e ottimizzano le risorse misurandole
adeguatamente.
 L’utilizzo è misurato per offrire un servizio “Pay-per-Use”. L’utente paga per il servizio che
realmente utilizza.
Broad
network
access
Resource
pooling
Measured
Service
Rapid
elasticity
On-demand self-
service
Rapid Elasticity
 Le Risorse possono essere rapidamente ed elasticamente incrementate per scalare la
potenza ed essere allo stesso modo rilasciate.
 Per il consumatore le capacità delle risorse disponibili spesso sembrano “infinite” e può
acquistarne qualsiasi quantità in qualsiasi momento.
Broad
network
access
Resource
pooling
Measured
Service
Rapid
elasticity
On-demand self-
service
Services for Applications in Azure
Support for Open Source
Languages
CMS
Devices
Databases /
Apps
Operating
systems
Management
Scalability Scenario
Scalability
 From Wikipedia
 Scalability is the ability of a system, network, or process to handle a growing amount of work in a
capable manner or its ability to be enlarged to accommodate that growth
 In another way
 Scalability describes the ability to keep constant the handling time of a request as amount of
work growth.
Ways to manage scalability
 Scaling Up
 Get it bigger
 Be carefull about single points of failure
 Scaling Out
 Get it more that one
 Be careful about state
 Async
 Give it the right time
 Decoupling in time
 Queuing
 Decoupling in tiers
Scaling
 Scale up by choosing different VM sizes
 Scale out by adding more instances
 Scale-out automatically with Elastic scaling
 Scale out static content with CDN to distribute user traffic
 Scale out low-variable data with caching to offset server workloads
Managing demand
Don’t forget you are also paying for unnecessary software licencing while you are over capacity
TIME
ITCAPACITY
Actual Load
Allocated
IT-capacities
Too Much
Power
Load Forecast
Potential
business loss
Wasted
capacity
Not Enough Power
Predictable Bursting
Services with no seasonality trends
No particular peaks
IT complexity, no wasted capacity
Uso «sostanzialmente» costante
Applicazioni interne
Unpredictable Bursting
Marketing On-Time Offer
Aperiodical Dues
Special Event
Unexpected/unplanned peak in
demand
Sudden spike impacts performance
Can’t over provision for extreme cases
Average Usage
Periodical Bursting
Marketing Periodical Offer
Periodical Dues
Special Repeatable Events
Services with micro seasonality trends
Peaks due to periodic increased
demand
IT complexity and wasted capacity
On/Off Bursting
Digital media rendering and encoding
Financial and insurance risk calculation
Engineering modeling and simulation
Computational life sciences
Earth sciences
Data analytics
On & off workloads (e.g. batch job)
Over provisioned capacity is wasted
Time to market can be cumbersome
Growing Fast
Social Media
Web Games
Successful services needs to
grow/scale
Keeping up w/ growth is big IT
challenge
Cannot provision hardware fast
enough
Average Usage
Async to scale?
It depends…
(A)Syncronous
 Syncronous (relation) between a client and a server is when server MUST respond to client
request and client have to wait ACTIVELY for server response.
 Asyncronous, in a web context has two situations
 Client SideAsyncronous is for responsiveness
 Server SideAsyncronous is for scalability
 Responsiveness
 Don’t block UI thread so user can continue interacting with app while request is currently running
 Scalability
 Increase the usage of the thread pool while a request is blocked for I/O
“Async” scale-up
 Sync cause “scaling up”
 You can only increase resources because “sync” scenario tends to “lock” resources
 Async lower the need of scaling up
 Resources are better used
 Async is not useful to scale out
A queue to scale
Let command be executed to whom is
really responsible
 Async client
 Responsive
 Async server (MVC action)
 Scalable
 ‘Still synchronous when executed by MVC role
 MVC is “front end” role to the client
 Syncronous implies “give a response”
 Really?
 It’s really needed
Response vs. “acknowledge”
 Syncronization is needed to obtain an answer
 What’s in the answer?
 Result
 Acknowledge
 Result
 What you expected from execution of the request
 Acknowledge
 Response about “taking responsibility” on request, but not the result
 Why not the result
 Typically because it take too long to obtain response
 Async (client/server) is always “pretend an answer” inside a timeout ….in seconds on average
 Many scenarios cannot have this
 Order management
 Interop with legacy systems
 …
Command as a serializable request
 Command is the metaphor for the request
 Useful to be serializable
 Serializable is useful to store/persist/”suspend”
 Why “suspend”?
 Because a long time to execute
 Executor is overloaded
 Executor is doing something else
 Executor need it’s time to execute
 Where serializing?
 Somewhere where “taking out” is a principle
 For example “FIFO” structures: queues
Using Queues
 Queue are useful to receive commands
 MVP frontend role just acquire commands
 Commands are syntactically validated
 Commands are just queued
 (a)sync response from frontend is quick
 Just acknowledge the insertion of command into
queue
MVC
Frontend
Role
Controller
ActionCommand Command
Command
Command
Command
Command
Command
Command
Command Queue
A worker to scale
Commands in a queue
 When Commands are in queue, who take commands out?
 Command Handler is the generic concept
 A CH handle a command
 Many commandsmany command handlers
Domain in the CH
 Command Handlers execute command
 Act on the domain
 Call aggregate entity methods
 Mapping command parameters
 Typically Commands are not domain objects
Workers
 A command handler must be hosted in a process
 Process are typically NON-UI processes
 simple, Light
 end-less (infinite loop)
 Sleepy (suspend themselves each loop)
 Stateless (no global variables, just loop function)
 Horizontally scalable (execute many in parallel, in the same machine, in many machines)
 Typically Console.exe apps (in .NET)
 Estract message from queue and execute it
 Support
 Retry logic
 Priority logic
An event to scale
Don’t take more responsibility: inform
about what you have done
 A worker is the identity that implements CH and act on then domain
 A worker knows the domain through aggregates
 Aggregate know only its domain
 What about impacts about acting on the domain?
 Copies of data somewhere else
 Perform other actions into other domain
 Have the aggregate knowledge about effected?
 No
 Aggregate must declare that Something has happened
 An event
 An event is the knowledge of something happened in the history
 An event must be shared with anyone
 …interested about event
Event queue
 Events generated by aggregate must be
collected in a structure that shares event
to many
 Publisher/subscriber pattern
 Many listener “subscriibe” to the event
queue
 A subscriber declare which messages are
interesting
Aggregate
Method
1 Event
Event
Event
Event
Event
Event
Event
Event Queue
Listener
Listener
Listener
Listener
Push data on the web
Responses: where are they
 Client have done a request/a command
 Client have received an acknowledge
 Domain has executed the command
 A result have happened…yes….?!?!?!?
 A result is the execution of the command
 A result is found
 When? When event is notified
 Where? Event give all and enough information to RETRIEVE the result, not the result itself
 Client knows following the event which is the result to be retrieved
Pull/Push communication with client
 How client knows about events?
 Pull way
 Client request from an event queue if it have and event
 Events must be stored
 Client have to query events queue to check if there are some new events
 Push way
 Server will reach client and send it an event message
 Modern way with Web Sockets (in a Web scenario)
 SignalR in ASP.NET
Retrieve the result
 Event contains information to retrieve the result, not the result itself
 Some keys, ids
 Some display data
 Event is a DTO
 Event is enough to get other DTOs, for example
 Event can be used to trigger other actions

Contenu connexe

Tendances

Fondamenti di cloud computing
Fondamenti di cloud computingFondamenti di cloud computing
Fondamenti di cloud computingGianluigi Cogo
 
Cloud infrastructure
Cloud infrastructureCloud infrastructure
Cloud infrastructureMattia Azzena
 
MWM CED la nascita del Private Cloud
MWM CED la nascita del Private CloudMWM CED la nascita del Private Cloud
MWM CED la nascita del Private CloudEnrico Ariotti
 
Tesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingTesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingfrancesco pesare
 
I Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaI Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaSoluzioni Futura
 
Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015Lorenzo Carnevale
 
Cloud computing un fenomeno che potrebbe cambiare il mondo - presentazione te...
Cloud computing un fenomeno che potrebbe cambiare il mondo - presentazione te...Cloud computing un fenomeno che potrebbe cambiare il mondo - presentazione te...
Cloud computing un fenomeno che potrebbe cambiare il mondo - presentazione te...SergioGaeta
 
Introduction to Cloud Computing - Edition Fall 2014
Introduction to Cloud Computing - Edition Fall 2014Introduction to Cloud Computing - Edition Fall 2014
Introduction to Cloud Computing - Edition Fall 2014Marco Parenzan
 
Aws (amazon web services) - Slide
Aws (amazon web services) - SlideAws (amazon web services) - Slide
Aws (amazon web services) - Slidealessioemireni
 
Cloud computing (Andrea Cavicchini)
Cloud computing (Andrea Cavicchini)Cloud computing (Andrea Cavicchini)
Cloud computing (Andrea Cavicchini)Andrea Cavicchini
 
Il Cloud Computing
Il Cloud ComputingIl Cloud Computing
Il Cloud Computingzambe92
 
Microsoft Application Insights
Microsoft Application InsightsMicrosoft Application Insights
Microsoft Application InsightsRoberto Albano
 
Cloud computing 101
Cloud computing 101Cloud computing 101
Cloud computing 1013DGIS
 
Cloud Computing Economia Numeri Mercato
Cloud Computing Economia Numeri MercatoCloud Computing Economia Numeri Mercato
Cloud Computing Economia Numeri MercatoVMEngine
 
Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi dati
Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi datiCloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi dati
Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi datiAruba S.p.A.
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
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 cloudRiccardo Zamana
 

Tendances (20)

Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
Fondamenti di cloud computing
Fondamenti di cloud computingFondamenti di cloud computing
Fondamenti di cloud computing
 
Cloud infrastructure
Cloud infrastructureCloud infrastructure
Cloud infrastructure
 
MWM CED la nascita del Private Cloud
MWM CED la nascita del Private CloudMWM CED la nascita del Private Cloud
MWM CED la nascita del Private Cloud
 
Tesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingTesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computing
 
I Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaI Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni Futura
 
Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015
 
Cloud computing un fenomeno che potrebbe cambiare il mondo - presentazione te...
Cloud computing un fenomeno che potrebbe cambiare il mondo - presentazione te...Cloud computing un fenomeno che potrebbe cambiare il mondo - presentazione te...
Cloud computing un fenomeno che potrebbe cambiare il mondo - presentazione te...
 
Introduction to Cloud Computing - Edition Fall 2014
Introduction to Cloud Computing - Edition Fall 2014Introduction to Cloud Computing - Edition Fall 2014
Introduction to Cloud Computing - Edition Fall 2014
 
Aws (amazon web services) - Slide
Aws (amazon web services) - SlideAws (amazon web services) - Slide
Aws (amazon web services) - Slide
 
Cloud computing (Andrea Cavicchini)
Cloud computing (Andrea Cavicchini)Cloud computing (Andrea Cavicchini)
Cloud computing (Andrea Cavicchini)
 
Il Cloud Computing
Il Cloud ComputingIl Cloud Computing
Il Cloud Computing
 
Microsoft Application Insights
Microsoft Application InsightsMicrosoft Application Insights
Microsoft Application Insights
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud computing 101
Cloud computing 101Cloud computing 101
Cloud computing 101
 
Cloud Computing Economia Numeri Mercato
Cloud Computing Economia Numeri MercatoCloud Computing Economia Numeri Mercato
Cloud Computing Economia Numeri Mercato
 
Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi dati
Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi datiCloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi dati
Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi dati
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
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
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 

En vedette

Frukostseminarium iBiz & Microsoft 19/5-2016
Frukostseminarium iBiz & Microsoft 19/5-2016Frukostseminarium iBiz & Microsoft 19/5-2016
Frukostseminarium iBiz & Microsoft 19/5-2016Adam Wahlund
 
Google cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetesGoogle cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetesGiuliano Latini
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerRoberto Messora
 
Introduzione al cloud computing e microsoft azure
Introduzione al cloud computing e microsoft azureIntroduzione al cloud computing e microsoft azure
Introduzione al cloud computing e microsoft azureAngelo Gino Varrati
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure FunctionsMarco Parenzan
 

En vedette (6)

Container
ContainerContainer
Container
 
Frukostseminarium iBiz & Microsoft 19/5-2016
Frukostseminarium iBiz & Microsoft 19/5-2016Frukostseminarium iBiz & Microsoft 19/5-2016
Frukostseminarium iBiz & Microsoft 19/5-2016
 
Google cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetesGoogle cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetes
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
 
Introduzione al cloud computing e microsoft azure
Introduzione al cloud computing e microsoft azureIntroduzione al cloud computing e microsoft azure
Introduzione al cloud computing e microsoft azure
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure Functions
 

Similaire à 2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni moderne al Cloud e Microsoft Azure

2015.04.23 Azure Community Bootcamp 2015 Keynote Italy
2015.04.23 Azure Community Bootcamp 2015 Keynote Italy2015.04.23 Azure Community Bootcamp 2015 Keynote Italy
2015.04.23 Azure Community Bootcamp 2015 Keynote ItalyMarco Parenzan
 
2011.06.30 scenari applicativi per il cloud computing
2011.06.30   scenari applicativi per il cloud computing2011.06.30   scenari applicativi per il cloud computing
2011.06.30 scenari applicativi per il cloud computingMarco Parenzan
 
Azure WebSites for Developers
Azure WebSites for DevelopersAzure WebSites for Developers
Azure WebSites for DevelopersLuca Milan
 
Multi Cloud essentials
Multi Cloud essentialsMulti Cloud essentials
Multi Cloud essentialsantimo musone
 
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...Jürgen Ambrosi
 
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2Yashi Italia
 
I Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaI Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaValerio Versace
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSopencityplatform
 
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaDifferenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaYashi Italia
 
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | MilanoIl Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | MilanoCA Technologies Italia
 
Team Netuse & IBM - Il Cloud Native rende agile il tuo business.
Team Netuse & IBM -  Il Cloud Native rende agile il tuo business.Team Netuse & IBM -  Il Cloud Native rende agile il tuo business.
Team Netuse & IBM - Il Cloud Native rende agile il tuo business.Team Netuse srl
 
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
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
 
OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016Gaetano Paternò
 
Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud
Automatic Cloud Deployment: un caso di studio basato sul software OwnCloudAutomatic Cloud Deployment: un caso di studio basato sul software OwnCloud
Automatic Cloud Deployment: un caso di studio basato sul software OwnCloudSonia Pepe
 
AWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan DavideAWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan DavideDavide Trevisan
 
Cloud Computing Motore Dell Innovazione I C T
Cloud Computing Motore Dell Innovazione  I C TCloud Computing Motore Dell Innovazione  I C T
Cloud Computing Motore Dell Innovazione I C TVMEngine
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017Giulio Vian
 

Similaire à 2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni moderne al Cloud e Microsoft Azure (20)

2015.04.23 Azure Community Bootcamp 2015 Keynote Italy
2015.04.23 Azure Community Bootcamp 2015 Keynote Italy2015.04.23 Azure Community Bootcamp 2015 Keynote Italy
2015.04.23 Azure Community Bootcamp 2015 Keynote Italy
 
2011.06.30 scenari applicativi per il cloud computing
2011.06.30   scenari applicativi per il cloud computing2011.06.30   scenari applicativi per il cloud computing
2011.06.30 scenari applicativi per il cloud computing
 
Azure WebSites for Developers
Azure WebSites for DevelopersAzure WebSites for Developers
Azure WebSites for Developers
 
Multi Cloud essentials
Multi Cloud essentialsMulti Cloud essentials
Multi Cloud essentials
 
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
 
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
 
I Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni FuturaI Love Cloud by Soluzioni Futura
I Love Cloud by Soluzioni Futura
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
 
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaDifferenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
 
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | MilanoIl Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
 
Team Netuse & IBM - Il Cloud Native rende agile il tuo business.
Team Netuse & IBM -  Il Cloud Native rende agile il tuo business.Team Netuse & IBM -  Il Cloud Native rende agile il tuo business.
Team Netuse & IBM - Il Cloud Native rende agile il tuo business.
 
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...
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppo
 
OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016
 
Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud
Automatic Cloud Deployment: un caso di studio basato sul software OwnCloudAutomatic Cloud Deployment: un caso di studio basato sul software OwnCloud
Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud
 
AWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan DavideAWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan Davide
 
Cloud Computing Motore Dell Innovazione I C T
Cloud Computing Motore Dell Innovazione  I C TCloud Computing Motore Dell Innovazione  I C T
Cloud Computing Motore Dell Innovazione I C T
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017
 
OCP Paas_ultima
OCP Paas_ultimaOCP Paas_ultima
OCP Paas_ultima
 

Plus de Marco Parenzan

Azure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerAzure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerMarco Parenzan
 
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxStatic abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxMarco Parenzan
 
Azure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsAzure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsMarco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Marco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralMarco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralMarco Parenzan
 
Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .netMarco Parenzan
 
Math with .NET for you and Azure
Math with .NET for you and AzureMath with .NET for you and Azure
Math with .NET for you and AzureMarco Parenzan
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralMarco Parenzan
 
.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogameMarco Parenzan
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Marco Parenzan
 
Anomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETAnomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETMarco Parenzan
 
Deploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsDeploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsMarco Parenzan
 
Deep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetDeep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetMarco Parenzan
 
Anomaly Detection with Azure and .net
Anomaly Detection with Azure and .netAnomaly Detection with Azure and .net
Anomaly Detection with Azure and .netMarco Parenzan
 
Code Generation for Azure with .net
Code Generation for Azure with .netCode Generation for Azure with .net
Code Generation for Azure with .netMarco Parenzan
 
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicRunning Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicMarco Parenzan
 
Time Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTTime Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTMarco Parenzan
 

Plus de Marco Parenzan (20)

Azure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerAzure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineer
 
Azure Hybrid @ Home
Azure Hybrid @ HomeAzure Hybrid @ Home
Azure Hybrid @ Home
 
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxStatic abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
 
Azure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsAzure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT Solutions
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .net
 
Math with .NET for you and Azure
Math with .NET for you and AzureMath with .NET for you and Azure
Math with .NET for you and Azure
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT Central
 
.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
 
Anomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETAnomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NET
 
Deploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsDeploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data Solutions
 
Deep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetDeep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnet
 
Azure IoT Central
Azure IoT CentralAzure IoT Central
Azure IoT Central
 
Anomaly Detection with Azure and .net
Anomaly Detection with Azure and .netAnomaly Detection with Azure and .net
Anomaly Detection with Azure and .net
 
Code Generation for Azure with .net
Code Generation for Azure with .netCode Generation for Azure with .net
Code Generation for Azure with .net
 
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicRunning Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
 
Time Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTTime Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETT
 

2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni moderne al Cloud e Microsoft Azure

  • 1. Principi del Cloud Computing e migrazione delle applicazioni moderne al cloud Marco Parenzan ITST Kennedy 2015 Edition
  • 2. Marco Parenzan Formazione & Divulgazione con 1nn0va Microsoft MVP 2014 for Microsoft Azure Formazione & Progettazione con ITS Kennedy Ricerca e Innovazione con Servizi Cgn www.slideshare.net/marco.parenzan marco [dot] parenzan [at] libero [dot] it www.innovazionefvg.net Developer e Architect in .NET e Web Cloud Developer Loves functional programming Some videogames for fun
  • 3. Alcuni termini  Hosting è l’esecuzione di una soluzione applicativa su un server di produzione  Hosting on premise è l’hosting «in casa propria»  Il deployment è l’attività di installazione della soluzione applicativa sull’hosting
  • 5. Alcune cattive abitudini  Non calcolare il ritorno economico della messa in produzione di una soluzione applicativa  Non calcolare il costo operativo di una soluzione applicativa  Pensare che i costi siano fissi  Pensare che decisa una volta (all’inizio) la scelta sia per sempre  Pensare che una soluzione applicativa giri su una sola macchina
  • 6. Una discussione  Il costo del telefono e della connettività Internet sono fissi  I costi di acqua, luce e gas sono variabili (eppure la manutenzione di una rete acqua, luce e gas è arbitrariamente straordinaria – se non si rompe...)  Qualsiasi infrastruttura ha bisogno di manutenzione  La manutenzione sulla rete telefonica e dati è sempre straordinaria  La manutenzione di un server è ordinaria
  • 7. “Computation may someday be organized as a public utility” (John Mccarty, 1960s)
  • 8. Computing: la quinta utility  Acqua  Gas  Elettricità  Telefono  Computing
  • 10. Obiettvi  Ridurre gli investimenti IT per l’Impresa  Variabilizzare i costi, rendendoli certi  Ridurre la necessità di investire in competenze interne per la gestione dell’infrastruttura e l’aggiornamento del software
  • 11. Nuove abitudini  Avere sempre un business plan  I costi sono variabili (ma questo non significa che la spesa non sia predicibile – bisogna saperlo fare)  Bisogna adattare le scelte fatte in corso d’opera  Una soluzione applicativa deve poter girare su più macchine
  • 12. Cos’è il Cloud Computing On-demand, scalable, multi-tenant, self-service compute and storage resources
  • 13. Cos’è il Cloud Computing  Il Cloud Computing è un modello che consente una convenienza attraverso l’accesso (on-demand) ad una rete condivisa di un pool di risorse di calcolo configurabili (ad esempio, network, server, storage, applicazioni e servizi) che possono essere rapidamente fornite e rilasciate con il minimo sforzo di gestione o con interazione del service provider.  Questo modello di Cloud promuove la disponibilità ed è composto da cinque caratteristiche fondamentali, tre modelli di servizio, e quattro modelli di distribuzione.. NIST v15 – 07/10/2009 NIST - National Institute of Standards and Technology http://csrc.nist.gov/groups/SNS/cloud-computing/
  • 14. Cloud Computing appetibile  Disponibilità ovunque  Rapidità di implementazione  Facilità di utilizzo  Aggiornamento costante del software  Scalabilità della soluzione con la crescita e la variabilità della domanda  Riduzione dei costi
  • 15. Fortune 500 using Azure >57% >300k Active websites More than 1,000,000 SQL Databases in Azure >30TRILLION storage objects >300MILLION AAD users >13 BILLION authentication/wk >3 MILLION requests/sec >1.65MILLION Developers registered with Visual Studio Online
  • 16. .NET Support2014 Offline Sync Mobile Services Networking Visual Studio & .NET Virtual Machines Memory Optimized Disk Optimized Resource Manager Portal VSO GA XamarinPoint-to-site VPN Web Sites SMB File System IBIZA Remote Debug VM Managemen SQL Database Puppet Chef Docker Powershell and DSC Capture / Deploy Autoscale Dynamic Routing Subnet Routing Static IP Storage Autoscale Traffic Mgr Web Jobs Backup Java Support ASP.NET MVC 5.1 ASP.NET Web API 2.1 AD support Powershell Automation Node.JS project support Remote Debugging Kindle Support BD’s up to 500GB 99.95% SLA Self Service Site Recovery Active GEO replication HDInsight Hadoop 2.2 YARN support .NET 4.5 .NET Foundation Azure Redis Cache API Management Site Recovery Remote Apps Cordova VSO Open Api’s Event Hub
  • 18. Visual Studio Online  Full Portal Integration  Not just for Microsoft shops Agile Build Test Deploy InsightsCode
  • 19. Key Scenarios to get started with Microsoft Azure  Dev / Test  Full test and dev environments in minutes  VSO integration  Lift and Shift  Take existing work loads and run then in a certified instance  Storage  Archive key data in inexpensive cloud storage  Big Data  Process key data into business intelligence using Hadoop or Machine Learning  Identity  Synchronize all your identities through Azure AD to control access to Apps, Data and Services  Web Apps  Take your web apps to the cloud using inexpensive Web Sites
  • 21. Modello di distribuzione La cloud infrastructure è di proprietà di una organizzazione che vende i servizi cloud al pubblico o ad un gruppo di grandi imprese L’infrastruttura è una composizione di due o più cloud (private, community, o public) in una entità unica, tenute insieme da tecnologie proprietarie tali da permettere la portabilità dei dati e delle applicazioni (ad esempio, cloud bursting). La cloud infrastructure è di proprietà o in leasing di una sola organizzazione ed è utilizzata esclusivamente dall'organizzazione La cloud infrastructure è condivisa da diverse organizzazioni e sostiene una comunità specifica che ne condivide degli ambiti (ad esempio, la mission, i requisiti di sicurezza, la policy, e le considerazioni di conformità).
  • 22. Percorso attraverso i modelli di distribuzione
  • 23.
  • 24. On Premises Youscale,makeresilientandmanage Infrastructure (as a Service) Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime Managedbyvendor Youscale,make resilient&manage Platform (as a Service) Scale,resilienceand managementbyvendor Youmanage Storage Servers Networking O/S Middleware Virtualization Applications Runtime Data Hosting models Software (as a Service) Storage Servers Networking O/S Middleware Virtualization Applications Runtime Data Business model Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime Scale,resilienceand managementbyvendor Why the cloud?
  • 25. Iaas, Paas, Saas Comparison
  • 26. Modello di servizio  (SaaS). Fornisce al consumatore la possibilità di usare le applicazioni in esecuzione su una Cloud infrastructure accessibile da vari dispositivi client attraverso una interfaccia come un browser Web (ad esempio, una web-based e-mail). Il consumatore non riesce a controllare l’ infrastruttura base della Cloud, rete, server, sistemi operativi, storage, con la possibile eccezione di limitate specifiche impostazione per l'utente delle impostazioni di configurazione dell’applicazione.Application Platform  (PaaS). Fornisce al consumatore la possibilità di distribuire nella Cloud infrastructure applicazioni create dal consumatore che utilizzano linguaggi di programmazione supportati dal fornitore (ad esempio, Java, Python,. Net). Il consumatore non ha il controllo della base della Cloud infrastructure, rete, server, sistemi operativi, storage, ma ha il controllo sulle applicazioni distribuite ed eventualmente sulle configurazioni dell’ ambiente.  (IaaS). Fornisce al consumatore il poter noleggiare capacità di CPU, storage, network, e altre risorse fondamentali che il consumatore è in grado di implementare e gestire, che possono includere i sistemi operativi e le applicazioni. Il consumatore non ha il controllo delle infrastruttura di base della Cloud, ma ha il controllo su sistemi operativi, storage, la distribuzione delle applicazioni, ed eventualmente selezionare componenti di rete (ad esempio, firewall, load balancer). Infrastructure
  • 27. Service Models in Microsoft Azure
  • 28. Virtual Machines Getting started >_ REST API Management portal Scripting (Windows, Linux and Mac) Select image and VM size Extra Small Small Medium Large X-Large New disk persisted in storage Cloud Blob Storage Comprehensive Networking Windows Server Linux Boot VM from new disk
  • 29. Microsoft Azure Web Sites Create new sites in seconds Easily manage and scale your sites Automatic load balancing and shared storage across instances Scale out or up to reserved instances for improved performance and scale Built-in web jobs support Use ASP.NET, ASP, PHP, Java or Node.js SQL Azure or MySQL databases Start with open source apps and frameworks Develop with VS and WebMatrix Supports any Web development tool on any platform (Windows, OSX, Linux) Rapid deployment for quick iteration Integrated source control with Team Foundation Server (TFS) and Git Built-in monitoring of perf and usage data Quick access to request logs, failed requests diagnostics and diagnostics
  • 30. Mobile Services Storage Authentication Logic Push Scheduler • Provides essential services to support client development • Client Support • iOS • Android • HTML5/Web • Xamarin • Windows • Windows Phone • PhoneGap • Sencha
  • 32. On-demand self- service Broad network access Resource pooling Measured Service Rapid elasticity On Demand Self Service  Il Consumatore può disporre di capacità di calcolo (es. server time, network storage) se necessario senza richiedere l’interazione umana con alcun fornitore del servizio.  Il servizio è completamente automatizzato e permette di modificare la richiesta a seconda delle volontà del consumatore.
  • 33. Broad Network Access  Le capacità sono disponibili in rete ed accessibili in qualsiasi momento tramite Pc, Laptop ma anche altri strumenti che possono accedere ad Internet come Cellulari, Palmari ecc… Broad network access Resource pooling Measured Service Rapid elasticity On-demand self- service
  • 34. Resource Pooling  Le risorse di calcolo sono messe al servizio di tutti i consumatori utilizzando un modello MULTITENANT, che permette ad un’istanza Software di servire più Client, con diverse risorse fisiche e virtuali dinamicamente riassegnate in base alla domanda dei consumatori.  L’Utente in genere non ha controllo/conoscenza dell’esatta posizione delle risorse (in alcuni casi può essere un problema). Broad network access Resource pooling Measured Service Rapid elasticity On-demand self- service
  • 35. Measured Service  I Sistemi Cloud automaticamente controllano e ottimizzano le risorse misurandole adeguatamente.  L’utilizzo è misurato per offrire un servizio “Pay-per-Use”. L’utente paga per il servizio che realmente utilizza. Broad network access Resource pooling Measured Service Rapid elasticity On-demand self- service
  • 36. Rapid Elasticity  Le Risorse possono essere rapidamente ed elasticamente incrementate per scalare la potenza ed essere allo stesso modo rilasciate.  Per il consumatore le capacità delle risorse disponibili spesso sembrano “infinite” e può acquistarne qualsiasi quantità in qualsiasi momento. Broad network access Resource pooling Measured Service Rapid elasticity On-demand self- service
  • 38. Support for Open Source Languages CMS Devices Databases / Apps Operating systems Management
  • 40. Scalability  From Wikipedia  Scalability is the ability of a system, network, or process to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth  In another way  Scalability describes the ability to keep constant the handling time of a request as amount of work growth.
  • 41. Ways to manage scalability  Scaling Up  Get it bigger  Be carefull about single points of failure  Scaling Out  Get it more that one  Be careful about state  Async  Give it the right time  Decoupling in time  Queuing  Decoupling in tiers
  • 42. Scaling  Scale up by choosing different VM sizes  Scale out by adding more instances  Scale-out automatically with Elastic scaling  Scale out static content with CDN to distribute user traffic  Scale out low-variable data with caching to offset server workloads
  • 43. Managing demand Don’t forget you are also paying for unnecessary software licencing while you are over capacity TIME ITCAPACITY Actual Load Allocated IT-capacities Too Much Power Load Forecast Potential business loss Wasted capacity Not Enough Power
  • 44. Predictable Bursting Services with no seasonality trends No particular peaks IT complexity, no wasted capacity Uso «sostanzialmente» costante Applicazioni interne
  • 45. Unpredictable Bursting Marketing On-Time Offer Aperiodical Dues Special Event Unexpected/unplanned peak in demand Sudden spike impacts performance Can’t over provision for extreme cases Average Usage
  • 46. Periodical Bursting Marketing Periodical Offer Periodical Dues Special Repeatable Events Services with micro seasonality trends Peaks due to periodic increased demand IT complexity and wasted capacity
  • 47. On/Off Bursting Digital media rendering and encoding Financial and insurance risk calculation Engineering modeling and simulation Computational life sciences Earth sciences Data analytics On & off workloads (e.g. batch job) Over provisioned capacity is wasted Time to market can be cumbersome
  • 48. Growing Fast Social Media Web Games Successful services needs to grow/scale Keeping up w/ growth is big IT challenge Cannot provision hardware fast enough Average Usage
  • 49. Async to scale? It depends…
  • 50. (A)Syncronous  Syncronous (relation) between a client and a server is when server MUST respond to client request and client have to wait ACTIVELY for server response.  Asyncronous, in a web context has two situations  Client SideAsyncronous is for responsiveness  Server SideAsyncronous is for scalability  Responsiveness  Don’t block UI thread so user can continue interacting with app while request is currently running  Scalability  Increase the usage of the thread pool while a request is blocked for I/O
  • 51. “Async” scale-up  Sync cause “scaling up”  You can only increase resources because “sync” scenario tends to “lock” resources  Async lower the need of scaling up  Resources are better used  Async is not useful to scale out
  • 52. A queue to scale
  • 53. Let command be executed to whom is really responsible  Async client  Responsive  Async server (MVC action)  Scalable  ‘Still synchronous when executed by MVC role  MVC is “front end” role to the client  Syncronous implies “give a response”  Really?  It’s really needed
  • 54. Response vs. “acknowledge”  Syncronization is needed to obtain an answer  What’s in the answer?  Result  Acknowledge  Result  What you expected from execution of the request  Acknowledge  Response about “taking responsibility” on request, but not the result  Why not the result  Typically because it take too long to obtain response  Async (client/server) is always “pretend an answer” inside a timeout ….in seconds on average  Many scenarios cannot have this  Order management  Interop with legacy systems  …
  • 55. Command as a serializable request  Command is the metaphor for the request  Useful to be serializable  Serializable is useful to store/persist/”suspend”  Why “suspend”?  Because a long time to execute  Executor is overloaded  Executor is doing something else  Executor need it’s time to execute  Where serializing?  Somewhere where “taking out” is a principle  For example “FIFO” structures: queues
  • 56. Using Queues  Queue are useful to receive commands  MVP frontend role just acquire commands  Commands are syntactically validated  Commands are just queued  (a)sync response from frontend is quick  Just acknowledge the insertion of command into queue MVC Frontend Role Controller ActionCommand Command Command Command Command Command Command Command Command Queue
  • 57. A worker to scale
  • 58. Commands in a queue  When Commands are in queue, who take commands out?  Command Handler is the generic concept  A CH handle a command  Many commandsmany command handlers
  • 59. Domain in the CH  Command Handlers execute command  Act on the domain  Call aggregate entity methods  Mapping command parameters  Typically Commands are not domain objects
  • 60. Workers  A command handler must be hosted in a process  Process are typically NON-UI processes  simple, Light  end-less (infinite loop)  Sleepy (suspend themselves each loop)  Stateless (no global variables, just loop function)  Horizontally scalable (execute many in parallel, in the same machine, in many machines)  Typically Console.exe apps (in .NET)  Estract message from queue and execute it  Support  Retry logic  Priority logic
  • 61. An event to scale
  • 62. Don’t take more responsibility: inform about what you have done  A worker is the identity that implements CH and act on then domain  A worker knows the domain through aggregates  Aggregate know only its domain  What about impacts about acting on the domain?  Copies of data somewhere else  Perform other actions into other domain  Have the aggregate knowledge about effected?  No  Aggregate must declare that Something has happened  An event  An event is the knowledge of something happened in the history  An event must be shared with anyone  …interested about event
  • 63. Event queue  Events generated by aggregate must be collected in a structure that shares event to many  Publisher/subscriber pattern  Many listener “subscriibe” to the event queue  A subscriber declare which messages are interesting Aggregate Method 1 Event Event Event Event Event Event Event Event Queue Listener Listener Listener Listener
  • 64. Push data on the web
  • 65. Responses: where are they  Client have done a request/a command  Client have received an acknowledge  Domain has executed the command  A result have happened…yes….?!?!?!?  A result is the execution of the command  A result is found  When? When event is notified  Where? Event give all and enough information to RETRIEVE the result, not the result itself  Client knows following the event which is the result to be retrieved
  • 66. Pull/Push communication with client  How client knows about events?  Pull way  Client request from an event queue if it have and event  Events must be stored  Client have to query events queue to check if there are some new events  Push way  Server will reach client and send it an event message  Modern way with Web Sockets (in a Web scenario)  SignalR in ASP.NET
  • 67. Retrieve the result  Event contains information to retrieve the result, not the result itself  Some keys, ids  Some display data  Event is a DTO  Event is enough to get other DTOs, for example  Event can be used to trigger other actions