Titolo della presentazione
Cloud Computing
Appunti sul panorama del Cloud Computing attuale e ipotesi
di contestualizzazione con il Framework di Riferimento CSI
Relatore
Direzione / Area CSI
gg/mm/aaaa
1
Titolo della presentazione
Principi del Cloud Computing
Tassonomia e principali definizioni
gg/mm/aaaa
2
Titolo della presentazione
Tassonomia
Cloud Computing
Use Cases
White paper 3.0
Open Cloud Manifesto
gg/mm/aaaa
3
Titolo della presentazione
Delivery Models - definizioni
Cloud Computing Use Cases - white paper 3.0
http://opencloudmanifesto.org/Cloud_Computing_Use_Cases_Whitepaper3_0.pdf
Cloud Computing: Cloud computing is a model for enabling ubiquitous, convenient, on-demand
network access to a shared pool of configurable computing resources (e.g., networks, servers,
storage, applications, and services) that can be rapidly provisioned and released with minimal
management effort or service provider interaction. (This definition is from the latest draft of the
NIST ...)
Delivery Models
The NIST definition of cloud computing defines three delivery models:
Software as a Service (SaaS): The consumer uses an application, but does not control the
operating system, hardware or network infrastructure on which it's running.
Platform as a Service (PaaS): The consumer uses a hosting environment for their applications.
The consumer controls the applications that run in the environment (and possibly has some control
over the hosting environment), but does not control the operating system, hardware or network
infrastructure on which they are running. The platform is typically an application framework.
Infrastructure as a Service (IaaS): The consumer uses "fundamental computing resources" such
as processing power, storage, networking components or middleware. The consumer can control
the operating system, storage, deployed applications and possibly networking
gg/mm/aaaa
4
Titolo della presentazione
Deployment models - definizioni
Cloud Computing Use Cases - white paper 3.0
http://opencloudmanifesto.org/Cloud_Computing_Use_Cases_Whitepaper3_0.pdf
The NIST definition defines four deployment models:
Public Cloud: In simple terms, public cloud services are characterized as being available to
clients from a third party service provider via the Internet. The term “public” does not always
mean free, even though it can be free or fairly inexpensive to use. A public cloud does not mean
that a user’s data is publically visible; public cloud vendors typically provide an access control
mechanism ...
Private Cloud: A private cloud offers many of the benefits of a public cloud computing
environment, such as being elastic and service based. The difference between a private cloud
and a public cloud is that in a private cloud-based service, data and processes are managed
within the organization without the restrictions of network bandwidth, security exposures and
legal requirements that using public cloud services might entail. ....
Community Cloud: A community cloud is controlled and used by a group of organizations that
have shared interests, such as specific security requirements or a common mission. ...
Hybrid Cloud: A hybrid cloud is a combination of a public and private cloud that interoperates. In
this model users typically outsource nonbusiness-critical information and processing to the
public cloud, while keeping business-critical services and data in their control.
gg/mm/aaaa
5
Titolo della presentazione
Tecnologie e vendor

Infrastructure As A Service (IaaS)
– Rete, storage, computing, sistemi operativi, middleware
– Amazon EC2, GoGrid

Platform As A Service (PaaS):
– Application framework, runtime e striumenti di monitoraggio:
ambiente di esecuzione per le applicazioni, incluse le piattaforme
infrastrutturali (Index, Portal, Geospatial) e le piattaforme di
business (Bpm, Bandi, Tassa auto, …)
– Force.com, VMforce, Google Docs, LongJump, Rollbase,
Microsoft Azure

Software As A Service (SaaS)
– Applicazioni, servizi di business, software riusabile (mashup)
gg/mm/aaaa
6
Titolo della presentazione
Development platform



Linguaggi, framework e tool di sviluppo specifici del Cloud
Developing for the cloud: la maggior parte dei Cloud
provider prevede tool di sviluppo da scaricare e installare
sulla workstation degli sviluppatori
Developing in the cloud: srumenti di sviluppo online
ospitati dal cloud. Gli aspetti di design e di configurazione in
molti casi vengono svolte online utilizzando applicazioni
Web fruibili tramite browser
gg/mm/aaaa
7
Titolo della presentazione
Utility Computing vs IaaS

Utility Computing (1997-2006)
– Virtualizzazione, misurazione risorse, computing, network e
storage a consumo, rapidità e bassi costi nell'hosting on demand.


IaaS ha alcuni degli aspetti del utility computing
Ma IaaS ha caratteristiche che Utility Computing non ha:
Self Service: non è necessaria un'interaizone diretta con gli
operatori del provider.
 Elastic: le risorse disponibili possono essere aumentate o
diminuite rapidamente
 Pay per Use: si paga a consumo e non in base a contratti di
hosting annuali o trimestrali: no investimento di startup
 Open Standard: l’interfaccia online (web service) utilizzata
gg/mm/aaaa
dall’utente di IaaS (per chiedere istanze e risorse) segue degli

8
Titolo della presentazione
Multi Tenant


Wikipedia: multitenancy refers to a principle in software architecture
where a single instance of the software runs on a server, serving multiple
client organizations (tenants)
Multitenancy is contrasted with a multi-instance architecture where
separate software instances (or hardware systems) are set up for different
client organizations.
Livelli diversi di
multi tenancy
gg/mm/aaaa
9
Titolo della presentazione
PaaS vs SEAP


(Application) Platform As A Service: host e platform supplier
coincidono, e l'application provider è esterno (off-premise).
E' un servizio.
SaaS Enabled Application Platform (Gartner): è un
prodotto, non è un servizio. La piattaforma viene fornita
come package a chi vuole ospitare la piattaforma nel
proprio data center on-premise (private cloud)



Piattaforma dedicata per offrire SaaS in modalità multi-tenant
J2ee: isolated-tenancy model of deployment
Non è tuttora emerso uno standard per piattaforme SaaS
Più di un provider offre sia (A)PaaS che SEAP
gg/mm/aaaa
10
 Cloud Application Runtime: la piattaforma, che sia SEAP

Titolo della presentazione
(Business) As A Service






Obiettivi per l'offerta servizi: Business Agility
Drastica riduzione dei tempi di avvio del servizio
– Capacity planning non obbligatorio per l'avvio di un nuovo servizio
– Eliminare la necessità di investimento allo startup di nuovi servizi
– Evitare di lasciare inutilizzate le risorse su cui si è investito
– Avere disponibilità di maggiori risorse al crescere della domanda
Pagamento a consumo: si paga per quello che realmente si è utilizzato
Minori costi di gestione dell'hosting complessivo (infrastruttura ed
erogazione) del servizio
Rapidità nella messa in linea degli aggiornamenti
Maggiori garanzie di disponibilità del servizio grazie e virtualizzazione e
distribuzione geografica dell'infrastruttura
gg/mm/aaaa
11
Titolo della presentazione
IT tradizionale vs cloud
gg/mm/aaaa
12
Titolo della presentazione
Provider e piattaforme Cloud
Breve rassegna dei più noti provider di Cloud Computing e
delle piattaforme proposte
gg/mm/aaaa
13
Titolo della presentazione
Amazon WS





Fornisce IaaS
Non utilizza un middleware o un linguaggio specifico:
differenti virtual machine, con diversi OS e middleware
Application platform: API specifiche per la gestione delle
virtual machine e per l’accesso a storage (S3) e network
Si può sviluppare sia in .Net che in J2EE che in Python.
Alcune piattaforme applicative per i pagamenti (PaaS)
esposte come servizi: Flexible Payment Service, DevPay
gg/mm/aaaa
14
Titolo della presentazione
Amazon Cloud – ipotesi costi

Costi risorse Amazon WS


Datacenter medio




Storage: 0,12 $ per GB/month - Computing: 0,10 $ per CPU/hour
Storage: 524 TeraBytes – Computing: 128 server (1024 core)
Costo mensile computing: 1024 * 24 * 30 * 0.10$ = 73.728 $
Costo mensile storage: 524 * 1000 * 0,12$ = 62.880 $
Costo mensile totale: 136.608 $ (1.639.296 $ l'anno)




gg/mm/aaaa
Inclusi costi personale di gestione e contratti manutenzione hw
Inclusi consumi energetici (elettricità)
No obsolescenza dell'hardware
Inclusi costi logistica: spazi, raffreddamento, controllo accesso, ..
15
Titolo della presentazione
Microsoft Azure





Fornisce IaaS come sistema operativo (Windows Azure) e
middleware (SQL Azure e AppFabric)
Anche PaaS: SQL Services, Sharepoint services, Live
services, ...
Framework di sviluppo basato su .Net.
Dominio tecnologico e funzionale non specifici: sviluppo di
applicazioni general purpose . Forte attenzione
all’architettura (bus).
I vari SaaS offerti da Microsoft (p.e. Office Live, SharePoint
Online, ...) sono messi a disposizione come servizi per lo
sviluppo rapido
gg/mm/aaaa
16
Titolo della presentazione
Google App Engine





Viene offerta una piattaforma PaaS completa e specifica
Non vengono fornite particolari piattaforme infrastrutturali o
di business
Dominio tecnologico MOLTO specifico: Web Application
Web 2.0. Framework e linguaggi di sviluppo prefissati:
Python e Java (solo di recente).
Dominio funzionale non specifico, se non per una forte
contestualizzazione a livello di social network e web 2.0.
Moltissime applicazioni e servizi SaaS disponibili e riusabili
(Google Apps, Google API)
gg/mm/aaaa
17
Titolo della presentazione
Google App Engine





La parte Java non aderisce alle specifiche Java EE. Di Java EE
ha solo le servlet, (un minima parte della sottosezione per le
web application) e JavaMail
Non ha nè gli altri componenti nè gli altri servizi previsti dalle
specifiche Java EE: EJB, JTA, JMS, JNDI, JAX-RPC, JMX, ....
Per la persistenza e realizzare i Data Service usa JPA e JDO
basandosi su un'implementazione opern source (DataNucleus).
A livello Java EE copre molte meno specifiche di Tomcat
La parte "enterprise" è sulla piattaforma/infrastruttura e non nel
container esposto a chi sviluppa.
gg/mm/aaaa
18
Titolo della presentazione
Google App Engine





Fornisce un plugin per sviluppare in ECLIPSE
Fornisce un ambiente server installabile localmente per il
testing dello sviluppo.
App Engine è molto specifico e pensato come abilitante alle
applicazioni Web 2.0 pubbliche: è distante dall'idea di Cloud
orientato al business (SalesForce, LongJump)
I servizi infrastrutturali e di piattaforma offerti son semplificati al
massimo per lo sviluppo di applicazioni web pubbliche
Problematiche tipiche del mondo business ed enterprise non
vengono affrontate
gg/mm/aaaa
19
Titolo della presentazione
Google Apps: offerta SaaS


Google non mette a disposizione solo la propria piattaforma
di cloud (App Engine)
Google Apps è un'insieme di applicazioni disponibili online
e utilizzabili pubblicamente e gratuitamente (SaaS) in
modalità self service




gg/mm/aaaa
GMAIL
Google Docs: suite da ufficio per la gestione documenti e fogli di
calcolo
Google sites: realizzare pagine web in maniera semplice
Google Calendar: agenda, appuntamenti, calendari condivisi ....
20
Titolo della presentazione
LongJump





IaaS non è esposto
Fornisce PaaS per realizzare SaaS: basato sul middleware
MySQL e Tomcat, ma fornisce anche piattaforme e servizi
applicativi riusabili.
Linguaggio e framework predefiniti: Java, JSP, JavaScript,
MVC.
User Experience variabile ma in un ambito predefinito.
Dominio funzionale non specifico: applicazioni di business
gg/mm/aaaa
21
Titolo della presentazione
LongJump - Approfondimento

Pay For Performance: la piattaforma si paga in base al
numero di utenti
gg/mm/aaaa
22
Titolo della presentazione
LongJump – Platform As A Service


PaaS: piattaforma di sviluppo ospitata in un Cloud e
orientata allo sviluppo di applicazioni offerte come servizio
Multi Tenant
– Una unica singola istanza serve tutti gli utenti della piattaforma
– Virtual Application Instance: ogni organizzazione ha la propria
partizione (tenant) e vede i propri dati

SEAP: LongJump è anche un package fornito come
platform abilitante al SaaS installabile nel proprio cloud
– “Buy or build the platform ?”
gg/mm/aaaa
23
Titolo della presentazione
LongJump – Sviluppo e riuso


Sviluppo entity centric organizzato in applicazioni
Le applicazioni vengono sviluppate a partire da business
object (entità)
– Quando si riusano (importano) applicazioni disponibili a catalogo,
vengono importati anche tutti i business object usati dalle
applicazioni stesse
– I business object, all'interno di un tenant, sono visibili e
condivisi a tutte le applicazioni del tenant
gg/mm/aaaa
24
Titolo della presentazione
LongJump – Sviluppo Workflow


Design dei workflow con interfaccia model driven (FLASH) online
Gli stati e le transizioni sono legati alle proprietà dei business object
gg/mm/aaaa
25
Titolo della presentazione
LongJump – implementazione SaaS

Design
– Definizione dei business object → web-app di configurazione
– Interfaccia utente “primaria” → web-app di configurazione
– Riuso di applicazioni già disponibili: catalogo delle applicazioni già pronte e
riusabili
– Gestione Utenza: quali utenti del proprio tenant possono usare quali
applicazioni e come

Development:
– Estensione interfacce utente (custom) → JSP scritte a mano
– Sviluppo di Model-View-Controller basato su Java
– Lo sviluppo di estensioni tramite browser (jsp, classi java, html, javascript, ...) si
basa su copia incolla da fare in apposite text-area (!!!)
– Viene suggerito l'uso di un apposito plugin di Eclipse per lo sviluppo
gg/mm/aaaa
26
Titolo della presentazione
LongJump - ALM





Packaging per la distribuzione delle applicazioni
Versionamento dei rilasci
Deployment delle applicazioni mirato sui tenant desiderati
Catalogo delle applicazioni disponibili, fruibile in modalità
self service sul protale dell'utente
Portabilità: i package possono essere distribuiti su più
istanze diverse della piattaforma LongJump (sviluppo, test,
collaudo, ....)
gg/mm/aaaa
27
Titolo della presentazione
LongJump – catalogo delle applicazioni



Il catalogo delle applicazioni
rappresenta il patrimonio del
cloud in termini di business
Ogni applicazione porta con sé
il proprio object model, che
diviene condiviso alle
applicazioni del tenant
Condivisione tramite business
objects NON tramite servizi
gg/mm/aaaa
28
Titolo della presentazione
LongJump – SOA ?




Non ci sono particolari funzionalità orientate alla SOA
Si possono opzionalmente esporre i business objects
tramite servizi autogenerati (SOAP + WSDL)
I pilastri sono applicazioni, business object e workflow, non
i servizi
La condivisione di informazione avviene tramite i business
objects (visibili in tutto il tenant), non tramite servizi
gg/mm/aaaa
29
Titolo della presentazione
SalesForce





IaaS non è esposto
Fornisce PaaS per realizzare SaaS.
Nasconde gli aspetti di middleware e mette a disposizione
servizi e componenti domain specific per realizzare
rapidamente soluzioni da esporre in modalità SaaS
Dominio funzionale specifico: CRM. Framework e linguaggi
prefissati.
User Experience variabile ma in un perimetro definito.
gg/mm/aaaa
30
Titolo della presentazione
SalesForce - Approfondimento


Nasce come piattaforma domain specific abbastanza
blindata, basata su self service e configurazione
Sviluppo software



Apex: linguaggio proprietario simile a Java
VisualForce: sintassi XML per definire interfacce utente esposte
in Flex o Ajax
Tool di sviluppo “Force.com IDE”
gg/mm/aaaa
31
Titolo della presentazione
SalesForce - Approfondimento

La piattaforma, rimanendo in parte domain specific, si è
arricchita e ampliata negli ultimi tempi:


VMForce - l’ambito sono sempre i CRM e SalesForce ma le
tecniche di sviluppo sono Java + Spring – VMWare managed
application stack
AppExchange: molte applicazioni offerte da terze parti e ri-usabili
gg/mm/aaaa
32
Titolo della presentazione
Force.com + Google App Engine



http://developer.force.com/appengine
Force.com fornisce le librerie Python e Java che
consentono alle applicazioni scritte per Google App Engine
di accedere alle Force.com Web services API
Altre partnership e federazioni fra cloud provider:



gg/mm/aaaa
Twitter e Amazon S3
Dropio e Amazon S3
Facebook e Amazon EC2
33
Titolo della presentazione
Exo Platform

Alla Platform è stato aggiunto (da vers. 3.0) il prodotto Exo
Cloud


include una management console del cloud e l'abilitazione multitenant per i prodotti della platform
Sopra l'infastruttura e il middleware c'è la PLATFORM

Core services – piattaforme abilitanti il PaaS




Extended services – piattafome e software (PaaS e SaaS)


gg/mm/aaaa
cloud based services
portal technology (RedHat Jboss GateIn in sostituzione ad Exo Portal)
development tools
Piattaforme applicative: (collaboration, knowledge management, ...)
Applicazioni SaaS (builtin apps, mashup, portal gadget, ...)
34
Titolo della presentazione
Exo Platform
Piattaforma per
realizzare soluzioni
integrate Web 2.0
destinate ai social
network e a i contesti
aziendali (enterprise
2.0)
Piattaforme
applicative basate su
servizi core abilitanti
gg/mm/aaaa
35
Titolo della presentazione
Facebook






IaaS non è esposto
Piattaforma cloud (PaaS) su cui vendor e utenti creano e
usano migliaia di applicazioni fruibili in modalità SaaS
Piattaforma cloud per l'interoperabilità fra applicazioni e
servizi disponibili (SaaS ↔ SaaS)
Piattaforma di sviluppo applicazioni per il social network
http://forum.developers.facebook.com/
http://aws.amazon.com/solutions/global-solutionproviders/facebook/
gg/mm/aaaa
36
Titolo della presentazione
Zoho – SaaS vendor!





Cloud provider che offre SaaS
www.zoho.com
Mail, CRM, doc writing, fogli di
calcolo, pianificazione e project
management, reporting e BI …
Zoho API per integrazione ed
estensione
Integrazioni già predisposte con
Sharepoint e Google Apps
gg/mm/aaaa
37
Titolo della presentazione
Zoho nel private cloud



SEAP: Zoho prevede la fornitura della propria piattaforma a clienti
interessati ad avere un Cloud Privato (on-premise) dotato di Zoho.
Contro: numerosi vincoli infastrutturali → complessità ambienti.
Ad Agosto 2009 è stata annunciata una collaborazione tra VMware e
Zoho.



gg/mm/aaaa
Obiettivo: dare un ambiente virtuale preinstallato e basato su VSPhere per
attrezzare un cloud privato (quindi senza uscire dal firewall) con la suite
completa di ZOHO
“For customers that wish to run their Zoho applications on-premise, VMware
vSphere™ 4 provides the foundation for delivering these applications as a
private cloud service inside their own firewall and datacenter — retaining the
Web-based simplicity and efficiency benefits of Zoho’s applications while
keeping the applications in-house”
http://www.zoho.com/news/zoho_works_with_vmware_to_deliver_private_cloud_software.html
38
Titolo della presentazione
EyeOS – Web Desktop, open source






Cloud computing platform
http://eyeos.org/
Offre office suite, groupware
applications e un toolkit per
sviluppare
Basata su strumenti open
source
SEAP: offerta enterprise, da
ospitare sul proprio cloud
OpenOffice 2 preinstallato
gg/mm/aaaa
39
Titolo della presentazione
Rollbase – solo SEAP






Fornisce solo la piattaforma come prodotto a package, non offre la
piattaforma come servizio (PaaS)
http://www.rollbase.com/
Middleware principale: Apache, Tomcat, MySql, Lucene, Java.
Supporta anche i Db relazionali Oracle e MS SQL Server.
Componenti principali e framework sviluppati in casa (Java)
Data model, logic model e user interface model vengono definiti
online utilizzando applicazioni web dedicate
Elasticità multi tenant:


gg/mm/aaaa
Caricamento di un tenant su un app-server aggiuntivo: meno di un secondo
Single shared database: per dare un'istanza di db aggiuntiva ad un tenant si
usa una procedura amministrativa manuale
40
Titolo della presentazione
Rollbase

Application Runtime Engine - la
piattaforma abilitante al Cloud



Ospita le istanze di appl. server, i db e
l'applicazione di deployment
Models: struttura e comportamento
dei principali componenti che la
piattaforma prevede
Sviluppare Applicazioni SaaS: creare
componenti secondo i models
disponibili e distribuirli sul runtime
engine.
gg/mm/aaaa
41
Titolo della presentazione
Iniziative nella PA
Annunci, pianificazioni, convegni e realizzazioni sul tema
Cloud Computing per la PA
gg/mm/aaaa
42
Titolo della presentazione
In Italia

Il CNIPA / DigitPA non sta dando evidenza strategie particolari
basate sul Cloud Computing


L'unica iniziativa trovata è Voice On The Cloud
FORUM PA 2009

Innovare per migliorare i servizi e ridurre i costi della PA: il Cloud Computing (13
Maggio)

FORUM PA 2010

Ontology Cloud Computing per la comprensione dei bisogni dei cittadini (17

Maggio)
Cloud Computing nella PA (19 Maggio)

gg/mm/aaaa
L'opportunità del Cloud Computing nella PA:come accelerare il processo evolutivo in
corso? (18 Maggio)
43
Titolo della presentazione
Cloud Computing per la PA fuori dall'Italia






Giappone - Kasumigaseki Cloud
Inghilterra - G-CLOUD
Canada Cloud Computing
European Commission - Seventh Framework Programme
Government Cloud di Google
Microsoft Cloud Services for Government
gg/mm/aaaa
44
Titolo della presentazione
Negli Stati Uniti

Data.gov e apps.gov

Esercito americano, dipartimento della difesa http://www.disa.mil/forge/

Magellan - US department of energy

Apps.gov è un'iniziativa recente (Settembre 2009), alcuni servizi
sono ancora "Coming Soon", e offre in modalità AS A SERVICE






Business Apps
Productivity Apps
Cloud IT Service
Social Media Apps
Le varie applicazioni e i vari servizi sono venduti online con prezzi
differenziati. Ce ne sono CENTINAIA
L'infrastruttura CLOUD è un progetto della NASA (ancora in Alpha):
 NEBULA Cloud Computing Platform
gg/mm/aaaa
45
Titolo della presentazione
Punti di attenzione
Aspetti più rilevanti rispetto al panorama visto
gg/mm/aaaa
46
Titolo della presentazione
Lock-In

I vari Cloud provider creano un forte lock-in per enti e
aziende che sviluppino soluzioni nei loro cloud





Linguaggi di programmazione specifici e non portabili
Servizi specifici e non portabili
API e SPI specifici e non portabili
Storage specifici e poco portabili
Database specifici e poco portabili
Le applicazioni scritte per un public cloud spesso non sono
portabili sul proprio private cloud. E viceversa.
 Le applicazioni realizzate per Google App Engine non
assomigliano alle applicazioni sviluppate per SalesForce o
gg/mm/aaaa
47
LongJump

Titolo della presentazione
Sviluppo applicazioni

Inm un ambiente multiserver, virtualizzato ed elastico ci
sono problematiche da risolvere:





Gestione transazioni
Gestione dello stato e della sessione applicativa
Accesso allo storage
Accesso ai database
Gestione cache distribuita
I vari cloud vendor propongono piattaforme e framework
per nascondere questi aspetti agli sviluppatori
 Amazon non fornisce una piattaforma che risolva in
maniera trasparente alcuni di questi aspetti (fornisce IaaS
gg/mm/aaaa
e middleware): infatti è un problema per gli sviluppatori. 48

Titolo della presentazione
Sviluppo applicazioni e J2EE


Le applicazioni vengono deployate sulla cloud application platform
(non sugli application server o i container J2EE) e usano le API
fornite dalla piattaforma
Framework specifici e non smpre standard
– Ci sono poche proposte J2EE (al limite le JSP e la persistenza JPA). Amazon
WS fornisce J2EE come middleware che non affronta tematiche applicative
– I framework e i component model sono semplici e specifici di ogni cloud. A
volte anche il linguaggio.
– Molti usano Java, altri usano python (Google) o linguaggi custom (Apex)


Ci sono alcuni articoli su JavaEE e Cloud computing -> al
momento i cloud provider si sono orientati diversamente
EJB: transazionalità, cache, stato e ciclo di vita dei componenti
gestite nel container. Non facile da conciliare con il cloud
gg/mm/aaaa
49
Titolo della presentazione
Sviluppo applicazioni – stato e transazioni


Multiserver environment con elasticità
Problema dei memory based lock: lock sulle risorse realizzato a
livello di virtual machine Java





Il locking a livello dei thread Java (synchronized) non da più garanzie
Alcuni EJB container sono scritti con la sincronizzazione dei thread
Le transazioni, probabilmente, vanno gestite a livello di storage e DB
Meccanismo dei Locked Timestamp
Problema del contesto applicativo tramite in-memory session



gg/mm/aaaa
La sessione memory based non può più essere utilizzata
Usare sistemi di replica della sessione è improponibile nel cloud
Il contesto utente (servlet session) e applicativo (servlet context) non possono
essere utilizzati in memory → probabilmente vanno persistiti su storage o DB
50
Titolo della presentazione
Piattaforma – servizi enterprise


Le problematiche trasversali ed enterprise non vengono risolte dai singoli
container (istanze virtualizzate) ma affrontate dalle piattaforme del Cloud
(cloud application runtime)
La piattaforma per il cloud deve fornire alcuni servizi che solitamente
sono risolti dal middleware enterprise.






Messaggistica asincrona: avere l'equivalente di JMS
Sicurezza
Monitoraggio
Logging
Cache
DB non relazionali

gg/mm/aaaa
Amazon SimpleDB, Google BigTable, Microsoft SQL Azure, Apache
Cassandra, CouchDB
51
Titolo della presentazione
Multi Tenant e elasticità → middleware

Container





i container JavaEE utilizzati diffusamente non gestiscono multi tenancy:
isolated-tenancy model of deployment
i container non garantiscono elasticità su un'infrastruttura virtualizzata
alcuni aspetti dei container non possono essere "scalati" in maniera elastica
in un contesto elastico l'infrastruttura (che ospita i container) deve garantire e
gestire alcuni aspetti enterprise di solito delegati ai container
RDBMS



gg/mm/aaaa
gli RDBMS di per sè non sono multi tenant. Possono essere usati in modalità
multi tenant.
Esempio: SalesForce mette il customerid in chiave (primary key), ma è una
gestione inefficiente
Evitare di dover migrare i dati a fronte di picchi
52
Titolo della presentazione
Sviluppo applicazioni cloud-ready

Software scritto considerando 4 principi di design:





Atomicità – evitare interdipendenze tra chiamate – il risultato di un metodo non deve
dipendere dai metodi invocati in precedenza o contemporaneamente
Stateless – l'esecuzione di un metodo può essere fatta su qualunque istanza di uno
specifico oggetto dovunque sia eseguita – senza necessità di compensazione e replica
Idempotenza – le istanze di uno specifico oggetto devono essere valide e
“ugualmente” usabili su tutti i server
Parallelismo – evitare componenti a grana grossa con ciclo di vita gestito da container
non specializzati su cloud e multi-core
I was surprised how many speakers [Michael Groner at Microsoft TechEd 2008]
were conveying the same message: CPU speeds are topping out. If you want your
applications to run faster and better you are going to have to build your applications
in a new way. The solution isn't just to learn how to multi-thread your applications.
The solution lies in building your applications into smaller units of code called tasks
that can be moved around
gg/mm/aaaa
53
Titolo della presentazione
Sviluppo applicazioni cloud-ready
gg/mm/aaaa
54
Titolo della presentazione
Cloud in CSI
Alcuni aspetti del Cloud Computing calati sul contesto CSI
gg/mm/aaaa
55
Titolo della presentazione
CSI e IaaS

Avere un hosting più flessibile e economico è un vantaggio
soprattutto interno -> infrastruttura Cloud






Hosting per i propri servizi
Rapidità nel provisioning degli ambienti: sviluppo, test, collaudo,
esercizio, test utente, esposizione servizi, …
Ottimizzazione dell’utilizzo risorse
Bilanciamento del carico
Distribuzione geografica
Backup e monitoraggio
gg/mm/aaaa
56
Titolo della presentazione
CSI e IaaS

Offrire IaaS significa sia avere un’infrastruttura
Cloud, sia offirla come servizio self service e online
– Non è semplice competere con cloud provider come Amazon
WS
– Molti cloud provider dotati di infrastruttura Cloud orientati al
business non espongono IaaS
– Il business non è sempre interessato ad avere server e
middleware sui cui fare deployment di applicazioni
sviluppate in .Net, J2EE o Oracle
gg/mm/aaaa
57
Titolo della presentazione
CSI e IaaS

Infrastruttura CLOUD -> è necessaria a PaaS e SaaS?





Per avere elasticità SI → le applicazioni non possono essere erogate in
maniera elastica se l'infrastruttura non lo è
Per avere self service SI → le applicazioni non possono essere erogate
in modalità self service se l'infrastruttura non ha la stessa dinamicità in
termini di setup
Per avere pay per use SI → misurare le risorse utilizzate e far pagare
proporzionalmente è un aspetto che va risolto nell'infrastruttura
Per avere bilanciamento e continuità operativa SI
Sono comunque obiettivi che non devono essere affrontati e risolti da
subito
gg/mm/aaaa
58
Titolo della presentazione
CSI e PaaS


“Applications without Infrastructure”
Servizi infrastrutturali di Piattaforma (Index, Geospatial, Iride, ...)


Gli enti e le aziende che sviluppano software per il Cloud CSI hanno a
disposizione la piattaforma documentale, i servizi di georeferenziazione,
i servizi di identità digitale e securizzazione, ecc…
Servizi Applicativi di Piattaforma (Bpm, Bandi, Tassa auto, …)

Gli enti e le aziende che sviluppano software per il Cloud CSI hanno a
disposizione le piattaforme di business con i dati e i processi che
detiene il CSI
gg/mm/aaaa
59
Titolo della presentazione
CSI e PaaS


Il CSI in questo modello non fornisce le proprie piattaforme
sotto forma di package → le mette a disposizione come
servizio del cloud (PaaS).
Esempi:



Index non viene distribuito come package da installare: è erogato
come servizio
Tassa Auto non viene distribuito come package da installare: è
erogato come servizio
GeoPlatform, con tutti i dati, non viene distribuita come package:
è erogato come servizio
gg/mm/aaaa
60
Titolo della presentazione
PaaS multi tenant



Per gli enti e le aziende si prevede un'unica piattaforma (multi
tenant) che può essere suddivisa in diverse partizioni (tenant)
che condividono caratteristiche e informazioni con il resto del
Cloud
Esempio 1: un Comune del Piemonte chiede di avere la propria
partizione di Index (Tenant) per usarla nel gestionale offerto a
servizio sul Cloud del CSI
Esempio 2: una Regione decide di riusare la suite Tassa Auto
chiedendo una propria partizione (Tenant) e attivandone
l'applicazione e i servizi relativi
gg/mm/aaaa
61
Titolo della presentazione
CSI e SaaS


Il software sviluppato per il Cloud CSI come SaaS viene
erogato in una modalità a servizio in base all'utilizzo reale
Ha a disposizione i servizi di business presenti nel Cloud
CSI (a loro volta software as a service)
– Servizi di NAO
– Servizi dei Tributi
– Servizi di Protocollo
gg/mm/aaaa
62
Titolo della presentazione
CSI e framework di riferimento


Molti dei cloud provider analizzati non hanno linguaggi di sviluppo e
tool innovativi dal punto di vista della rapidità.
La rapidità di sviluppo è data da Riuso dei servizi disponibili e dalla
piattaforma del cloud:
– Comportamenti e caratteristiche comuni offerti da piattaforma e framework
– Configurazione, configurazione, configurazione …
– Semplicità dei tool e dei linguaggi

C’è un limite: in molti casi bisogna conoscere un linguaggio di
programmazione, scaricare tool di sviluppo e imparare tecniche
specifiche del cloud provider (API di sviluppo)
gg/mm/aaaa
63
Titolo della presentazione
CSI e framework di riferimento

Risposta Framework di Riferimento CSI sullo sviluppo:
– Dare strumenti per lo sviluppo rapido basati su linguaggi di alto
livello e indipendenti dalle specificità tecnologiche
– Guidare lo sviluppo e ridurre le competenze richieste per
realizzare software
• destinato al cloud CSI (SaaS)
• che usi al meglio le piattaforme del CSI (PaaS) e le potenzialità del cloud
CSI (infrastruttura Cloud)
gg/mm/aaaa
64
Titolo della presentazione
MDD e Model As A Service
Risposta dell'approccio MDD allo sviluppo di soluzioni per il
Cloud
gg/mm/aaaa
65
Titolo della presentazione
La metafora Model As A Service




Le aziende vogliono avere infrastrutture, piattaforme e
software: il cloud computing li offre come servizi con un
nuovo modello di business
Le aziende non chiedono dei modelli: offrirli come servizi
può sembrare “particolare”
Il Modello crea e definisce il software -> Il software e il
modello coincidono -> SaaS e MaaS sono equivalenti
Model As A Service è una metafora per il Software AS A
Service realizzato rapidamente con modelli
gg/mm/aaaa
66
Titolo della presentazione
Sviluppo per il Cloud e MaaS





Il modello definisce l’applicazione completa in maniera
indipendente dalla tecnologia
Non si usano linguaggi di programmazione
Non ci sono API specifiche da conoscere
Non si scaricano tool: la modellazione viene fatta usando
applicazioni web esposte online e fruibili tramite i comuni
browser
Non c’è building, packaging e deployment prima del rilascio
o comunque visibile all'application provider: si definisce un
modello e si promuove a software/servizio
gg/mm/aaaa
67
Titolo della presentazione
MaaS e PaaS

I modelli sono indipendenti dalla tecnologia ma sono molto
legati





alle piattaforme: BPM Flux, ECM Index, Bandi, Tassa Auto, …
ai servizi di business: Nao, tributi, protocollo, CUP
ai domini specifici: trasporti, agricoltura, sanità, …
Accelerazione e semplificazione: lo strumento di modellazione
rende rapido e semplice l’utilizzo delle piattaforme (PaaS) e dei
servizi (SaaS) che il CSI offre e ospita
I servizi esposti dalle piattaforme e i servizi di business offerti
dal CSI vengono utilizzati nei modelli in maniera chiara e
intuitiva
gg/mm/aaaa
68
Titolo della presentazione
MaaS e infrastruttura Cloud

Il software realizzato con MDD (MaaS) soddisfa tutti requisiti, le
esigenze e le best practice previste dall’infrastruttura Cloud.






Uso della rete e protocolli di interoperabilità
Accesso allo storage e ai database
Gestione dello stato e della sessione applicativa
Gestione delle transazioni
Gestione della Cache
Il software realizzato con MDD (MaaS) permette di sfruttare al
meglio le potenzialità dell Piattaforma Cloud (cloud application
runtime).
gg/mm/aaaa
69
Scarica

Titolo della presentazione - eee