Cloud Computing - PowerPoint PPT Presentation

cloud computing n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Cloud Computing PowerPoint Presentation
Download Presentation
Cloud Computing

play fullscreen
1 / 69
Cloud Computing
162 Views
Download Presentation
magnar
Download Presentation

Cloud Computing

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

  2. Principi del Cloud Computing Tassonomia e principali definizioni

  3. Tassonomia Cloud Computing Use Cases White paper 3.0 Open Cloud Manifesto

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

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

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

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

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

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

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

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

  12. IT tradizionale vs cloud

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  46. Punti di attenzione Aspetti più rilevanti rispetto al panorama visto

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

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

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

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