Cloud Computing Appunti sul panorama del Cloud Computing attuale e ipotesi di contestualizzazione con il Framework di Riferimento CSI Relatore Direzione.

Slides:



Advertisements
Presentazioni simili
Presentazione della tesi di laurea di Flavio Casadei Della Chiesa Newsletter: un framework per una redazione web.
Advertisements

Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Perché.NET di Marco Maraglino don't worry...B-bright !
Renzo Marin – CRC Veneto Progetto CRC-CNIPA
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
IlTrovatore S.p.a. IlTrovatore RemoteSearch IlTrovatore mette a disposizione di portali Internet, piccole e medie imprese, tutto il suo know-how nel settore.
Architetture dei sistemi distribuiti Prof
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Panoramica della soluzione Microsoft per la Piccola e Media Impresa.
ISA Server 2004 Enterprise Edition Preview. ISA Server 2004.
Office System 2007: il licensing dei prodotti server.
Liberiamo(ci) (dal)le applicazioni con Softgrid
Consumare Web Service Andrea Saltarello
TechNet Management European Expert Tour Milano, 4 ottobre 2005BENVENUTI TechNet Management European Expert Tour Milano, 4 ottobre 2005BENVENUTI Davide.
Web Services.
Java Enterprise Edition (JEE)
WebProfessional Web Content Management System
Frontespizio Economia Monetaria Anno Accademico
1 Innovazione dal punto di vista strategico Francesco Berri Medical Director ASTELLAS PHARMA SpA Bologna 10 Giugno 2011.
Distributed Object Computing
Analisi dettagliata e design B. Pernici M.G. Fugini AA
Global Business Services © 2007 IBM Corporation System i Promuovere linnovazione, semplificare lIT Audrey Hampshire, System i Product Manager Italia.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Integrazione di una piattaforma IPTV in un’architettura SOA
L’inclusione dei comuni piccoli
14° Convegno Cnipa- Roma 11 aprile 2006 Rosanna Alterisio 1 La gestione documentale per lefficienza e la trasparenza Stato dellarte e opportunità Rosanna.
COME RIDURRE I COSTI ED AUMENTARE LA PRODUTTIVITA.
COLT Enterprise Cloud Dionigi Faccenda La visione di COLT.
Programma SDP Roma, 11 aprile 2007.
Architettura Java/J2EE
Applicazioni mobile Better Software 2009 Massimiliano Zani Sms Italia.
La nuova Intranet della Provincia di Ferrara e l’innovazione dei processi interni Ludovica Baraldi Bologna, 25 maggio 2006.
Piattaforma Open Data dati.piemonte.it
Presentazione della società Maggio La Consulenza sulla Business Productivity Contesto – Oggi persone e imprese possono utilizzare tecnologie dell'informazione.
| Copyright© 2010 Microsoft Corporation Offerte di produttività per tutti i segmenti di clientela 1 Windows Live + Office Home & Business Consumatori finali.
Benvenuti a Un incontro informativo di grande valore ed alto contenuto sulla Virtualizzazione e sistemi ad alta disponibiltà per le PMI.
Office 365 per professionisti e piccole imprese
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
Firenze 17 Giugno 2010 Sala Grazzini 9.30Registrazione e welcome coffee 9.45Benvenuto di S&NT Informatica 10.00Il nuovo Desktop Microsoft per la PMI Italiana:
Partite insieme a noi per un viaggio nel mare dei numeri del Vostro Business liberi da ogni limite…
Stefano Di Giovannantonio ECM Consulting Solution Expert
Windows Intune, la soluzione Cloud per la gestione dei PC in azienda Lorenzo Santagata Product Marketing Manager Windows Client Microsoft 15 dicembre 2010.
Firenze – Festival della Creatività 2009 Comm.it s.r.l. – Ing. Davide Rogai, Ph.D. – Software >> fast on demand software.
Sistemi Informativi sul Web
Soluzioni Windows Server per piccole imprese
IBM Lotus Notes e Domino
Dove vuoi, quando vuoi, come vuoi.
Corso di Web Services A A Domenico Rosaci 1. Introduzione
Maggio 2010 ICT4LAW Business process management systems: strumenti e tecnologie Luigi Magnanini – SSB Progetti.
Java Enterprise Edition
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
La piattaforma tecnologica che ti permette di utilizzare le tue risorse ed i tuoi dati in ogni momento, ovunque ti trovi e su ogni device © 2014 Smartech.
>>.
EDIFACT Framework Architecture Acceleratore di soluzioni basate su EDIFACT
FESR Consorzio COMETA Giuseppe Andronico Industry Day Catania, 30 Giugno 2011 IaaS, PaaS e SaaS: cosa significano per le aziende.
© 2014 KDM S.p.A. 1. Dematerializzare per Semplificare Dematerializzare non vuol dire solo semplificare. La semplificazione investe tutta la sfera della.
Roma, 9 maggio 2005 Luca Nicoletti – Unità Disegno e progettazione Sistemi Access Management centralizzato per applicazioni WEB: l’esperienza del MEF.
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Internetworking V anno. Le soluzioni cloud per la progettazione di infrastrutture di rete.
Presentazione dei Servizi di Genova ICT cloud-based platform and mobility services available, universal and safe for all users.
Licensed under Creative Commons Attribution 3.0 License / ShareGrid Idee per prospettive future
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
Motivazioni e obiettivi di uno spin-off IGI Luciano Gaido 1.
Un'infrastruttura per il Paese: il progetto SUNFISH Francesco Paolo Schiavo Luca Nicoletti Sede Sogei Roma, 5 Aprile 2016 C.
Open City Platform è un progetto finanziato da Application Store Tutorial 30/09/2015.
OpenShift Origin – Cosa è
Transcript 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

Principi del Cloud Computing Tassonomia e principali definizioni

Tassonomia Cloud Computing Use Cases White paper 3.0 Open Cloud Manifesto

Delivery Models - definizioni Cloud Computing Use Cases - white paper 3.0 http://opencloudmanifesto.org/Cloud_Computing_Use_Cases_Whitepaper-3_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

Deployment models - definizioni Cloud Computing Use Cases - white paper 3.0 http://opencloudmanifesto.org/Cloud_Computing_Use_Cases_Whitepaper-3_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.

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) SalesForce, Google Docs, Zoho, SlideRocket

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

Utility Computing vs IaaS 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 dall’utente di IaaS (per chiedere istanze e risorse) segue degli standard aperti (API e Web Application) Ubiquitous: le capability del cloud provider sono disponibli in rete e accessibili attraverso meccanismi basati su standard aperti

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

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 Cloud Application Runtime: la piattaforma, che sia SEAP o PaaS.

(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

IT tradizionale vs cloud

Provider e piattaforme Cloud Breve rassegna dei più noti provider di Cloud Computing e delle piattaforme proposte

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

Amazon Cloud – ipotesi costi Costi risorse Amazon WS Storage: 0,12 $ per GB/month - Computing: 0,10 $ per CPU/hour Datacenter medio 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) Inclusi costi personale di gestione e contratti manutenzione hw Inclusi consumi energetici (elettricità) No obsolescenza dell'hardware Inclusi costi logistica: spazi, raffreddamento, controllo accesso, ..

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 SEAP: viene fornita come piattaforma SaaS per il proprio cloud SaaS: catalogo di applicazioni pubblicabili sul Azure (PinPoint) http://pinpoint.microsoft.com/en- US/windowsazure/resources

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)

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.

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

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 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 ....

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

LongJump - Approfondimento Pay For Performance: la piattaforma si paga in base al numero di utenti

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 ?”

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

LongJump – Sviluppo Workflow Design dei workflow con interfaccia model driven (FLASH) online Gli stati e le transizioni sono legati alle proprietà dei business object

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

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, ....)

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

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

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.

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”

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

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: Twitter e Amazon S3 Dropio e Amazon S3 Facebook e Amazon EC2

Exo Platform Alla Platform è stato aggiunto (da vers. 3.0) il prodotto Exo Cloud include una management console del cloud e l'abilitazione multi- tenant per i prodotti della platform Sopra l'infastruttura e il middleware c'è la PLATFORM Core services – piattaforme abilitanti il PaaS cloud based services portal technology (RedHat Jboss GateIn in sostituzione ad Exo Portal) development tools Extended services – piattafome e software (PaaS e SaaS) Piattaforme applicative: (collaboration, knowledge management, ...) Applicazioni SaaS (builtin apps, mashup, portal gadget, ...)

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

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-solution- providers/facebook/

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

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. 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

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

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: 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

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.

Iniziative nella PA Annunci, pianificazioni, convegni e realizzazioni sul tema Cloud Computing per la PA

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) L'opportunità del Cloud Computing nella PA:come accelerare il processo evolutivo in corso? (18 Maggio)

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

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

Punti di attenzione Aspetti più rilevanti rispetto al panorama visto

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 LongJump VMForce: programmazione in Spring come nell'enterprise → primi tentativi di apertura

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 e middleware): infatti è un problema per gli sviluppatori.

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

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 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

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 Amazon SimpleDB, Google BigTable, Microsoft SQL Azure, Apache Cassandra, CouchDB

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 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

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

Sviluppo applicazioni cloud-ready

Cloud in CSI Alcuni aspetti del Cloud Computing calati sul contesto CSI

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

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

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

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

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

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

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

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)

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)

MDD e Model As A Service Risposta dell'approccio MDD allo sviluppo di soluzioni per il Cloud

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

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

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

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).