Smart Cities and Communities and Social Innovation Bando MIUR D.D. 391/Ric. del 5 luglio 2012 Architettura e caratteristiche della PaaS di OCP
Smart Cities and Communities and Social InnovationBando MIUR
D.D. 391/Ric. del 5 luglio 2012
Architettura e caratteristiche della PaaS di OCP
Comune
Consumer
Comune
Consumer
Regione
Provider
Comune
Consumer
Comune
Consumer
Comune
Consumer
Comune
Consumer
Architettura di riferimento
L’architettura della piattaforma è stata disegnata considerando:
• integrazione IaaS e PaaS• scalabilità• multilayer• interoperabilità• riuso delle componenti• robustezza
Include al suo interno macro componenti particolarmente rilevanti:
• modulo orchestrator/automation• modulo monitoring/billing• PaaS layer/services• IaaS layer/services• Open Data e Open Service Engine• Application Store e Toolkit
Repository • Citizen’s Marketplace
I servizi tecnologici di OCP disponibili “as a service”
OCP offre già servizi di tipologia PaaS progettati per essere erogati rispettando concetti chiave del Cloud Computing:
• Monitoraggio• Raccolta metriche• Elasticità• Scalabilità• Self-service• Affidabilità• Restful access• Standard
Ognuno di questi elementi è parte fondante della piattaforma.
Identity access
management
Database
Application
deployment
Queue system
Business
intelligence
Business
Process Manager
Open Data
framework
Messaging
(mail + sms)Personal
storage
Virtual
machines
Service
composition (ESB)
PaaS Layer (so far…)
Platform UI Layer
REST API
Native API
Thymeleaf, spring-mvc
spring-security (SSO authentication with SAML)
IaaS Layer
DB
Native API
Adapter (IaaS)
Openstack4j DAORecipe
(HEAT)Native API
ORCHESTRATOR ENGINE
Monitoring
Connector
Cloudify
ConnectorOpenshift
Connector
Native API
Native API
Monitoring Pillar
Native API
HOT & Receipe
Repository
Native API
• Workflow engine: JBPM 6.1
• Gestisce il ciclo di vita dei
servizi PaaS e IaaS
• Comunica con diverse soluzioni
cloud di middleware:
- Heat
- Cloudify
- Openshift
• Supporta il concetto di multi-
zona (es. installazioni differenti
e/o regioni di OpenStack)
Comune
Consumer
Comune
Consumer
Regione
Provider
Comune
Consumer
Comune
Consumer
Comune
Consumer
Comune
Consumer
Requirement: possibilità per una PA di dotarsi di una piattaforma per l’erogazione di servizi secondo i paradigmitipici del Cloud astraendo ed integrando le diverse componenti dell’architettura per consentire l’orchestrazione diprocessi complessi che coinvolgono elementi eterogenei.
OCP -> PaaS & IaaS Orchestrator Engine
OCP PaaS & IaaS Engine - Orchestratore di servizi e risorse
Standard (e consorzi di standardizzazione): input TOSCA (OASISconsortium), interfacce HTTPS REST pubbliche (W3C), workflowBPMN (OMG consortium).
Orchestratore: coordina i processi di erogazione dei servizi tra idiversi componenti dell’architettura. Utilizza i workflow per gestirele richieste dai layer superiori attuando opportune azioni sui singolimoduli, astraendo e generalizzando i layer sottostanti.
Open/closed principle: oltre alle tecnologie Cloud «standard defacto» supportate, si è aperti alle estensioni verso nuovi use-cases(workflow) e/o prodotti (componenti) con una logica di sviluppomodulare (plug-in) senza modifica del core open source esistente.
Orchestrator – REST APIs
API REST-ful per gestire il ciclo di vita sei servizi:
• Application as a Service (Tomcat, Jboss…)
• Business Intelligence as a Service (Penthao),
• Database as a Service (MySQL, PostgreSQL),
• Message Queue as a Service (RabbitMQ)
• VMaaS
Utilizzo dei “verbi” HTTP e degli codici di stato standard:
• GET: visualizzare lo stato dei servizi
• PUT: creare un servizio
• DELETE: cancellaarea servizio
• POST: start, stop and restart di un servizio
Sicurezza basata su token di accesso
Modello RBAC
{..."zoneId":2,"serviceDetails":{"name":"prisma-example","domainName":"prisma-ex.prismacloud.it","loadBalancingInstances":0,"publicVisibility":false,..."environment":{"availabilityZone":"nova","iaaSFlavor":"medium","qos":"silver"
}},"vmDetails":{"volume":0,"networks":[2,3],"imageId":3...
}}
Orchestrator - JBPM
Validazione degli Input
• Verifica dei permessi
• Verifica stato infrastruttura
• Verifica disponibilità delle risorse
Crea servizio
• Scelta adapter:
• Heat
• Cloudify
• Openshift
Monitora il servizio
• Aggiungi il servizio al sistema di monitoraggio
• Verifica che il servizio sia monitorato e pronto
OCP/Prisma Data Access Layer
• Il database di piattaforma è MySQL
• Le query sono scritte utilizzando la sintassi di Mysema Querydsl.
• Il framework Querydsl fornisce allo sviluppatore un metodo type-safe per scrivere le query
in Java.
• JPA mappa le tabelle del database in oggetti Java (Entity)
• L’implementazione JPA utilizzata è Hibernate
• La consistenza delle transazioni è garantita da JTA
8
Le piattaforme PaaS di OCP
API
API API
• OCP ha scelto di integrare due diverse piattaforme leader di mercato: Cloudify e Openshift
• Entrambe le piattaforme sono Openstack enabled
• E’ stato scelto di far coesistere nella PaaS di OCP Cloudify e OPENSHIFT per risolvere problemi diversi. Entrambe le piattaforme si
basano su ricette/cartridge.
• Cloudify si configura come orchestrator tecnologico avanzato di configurazioni complesse, sia basate su VM che dockers
• Openshift offre agli sviluppatori un environment arricchito da numerosi “reusable components” costruiti in OCP per grantire un
alta percentuale di riuso di componenti comuni
• Lo strato di integrazione e l’orchestrator OCP giocano un ruolo fondamentale nella gestione delle diverse piattaforme e delle
ricette relative ai servizi erogati.
• Tale strato è esposto attraverso una RESTful interface e sarà standardizzato tramite TOSCA
Cloudify
Cloudify consente di eseguire una Applicazione su diverse tipologie di infrastruttura Cloud senza alcun cambiamento del codice, monitorarnele metriche, gestirne la scalabilità e permette di usare un eventuale tool di automation e configuration management di propria scelta.
Rif. http://getcloudify.org/
Open Source Platform per il Deploying, Managing e Scalingdi Applicazioni Complesse Multi-Tier su un cloud
Openshift
OpenShift è pensato maggiormente per lo sviluppo software e continuos integration, fornendo appunto tutti gli strumenti che servono peril build, test, deploy, e run di applicazioni (oltre che a gestirne la scalabilità). Con OpenShift, ogni application ha un repository git. Gli utentipossono modificare il codice nel loro repository ed eseguire un git push per deployare il loro codice
Esempio di creazione Applicazione Esempio di application deployment con Jenkins
Comune
Consumer
Comune
Consumer
Regione
Provider
Comune
Consumer
Comune
Consumer
Comune
Consumer
Comune
Consumer
Elasticità ed alta affidabilità
Le piattaforme PaaS selezionate e l’architettura disegnata consentono lo Scale up, scale down, scale out,scale in delle risorse impegnate
Un servizio “scalabile” garantisce:
- incremento proporzionale delle prestazioni aumentando le risorse allocate in caso di necessità (aumento n° sessioni, CPU oltre soglia…);
- la resilienza alle failure;
Un’architettura software scalabile è indispensabile per trarre reale vantaggio da un’infrastruttura HW ovirtuale scalabile: la scalabilità è necessaria ad ogni livello della piattaforma
L’utilizzo dei servizi di load-balancing + autoscaling offerti dagli strati IaaS e PaaS è una combinazionevincente per implementare sistemi fault-tolerant, scalabili, ad alte prestazioni.
La PaaS aperta nella piattaforma OCP
Offre automazione sia per l’attivazione, che per la successiva gestione dei servizi su IaaS diverse a livello dipiattaforma + offerta agli sviluppatori di un ambiente di sviluppo arricchito da numerosi “reusable components”offerti as a service + supporto allo sviluppo e debug di nuove applicazioni
Elimina dall’utente la necessità di gestire la complessità dei servizi infrastrutturali e delle configurazioni nonsolo per lo IaaS di OpenStack
L’utente/sviluppatore per attivare un servizio deve scrivere solo delle “ricette” che a breve supporteranno anchelo standard internazionale TOSCA e potranno quindi essere utilizzate in qualsiasi infrastruttura cloud cheesponga l’interfaccia TOSCA
Rimane il focus sulle soluzioni Open Source leader di mercato, ma la PaaS fornisce alla PA la massima aperturaalla possibilità di usare in modo trasparente soluzioni cloud proprietarie ( es. Vmware o Azure di Microsoft)
Con Openshift la PaaS renderà disponibile agli sviluppatori lo stesso ambiente software che troveranno inproduzione facilitando lo sviluppo il debug e la messa a punto di nuovo prodotto software
14
Prisma Orchestrator – JBPM, validazione degli input
15
Prisma Orchestrator – JBPM, creazione del servizio
16
Prisma Orchestrator – JBPM, monitoraggio del servizio
Comune
Consumer
Comune
Consumer
Regione
Provider
Comune
Consumer
Comune
Consumer
Comune
Consumer
Comune
Consumer
Riferimenti
Sito ufficiale di OpenCity Platform: http://www.opencityplatform.eu
OCP platform: https://infncloud.ponsmartcities-prisma.it/
OCP platform support: https://support.ba.infn.it/redmine/projects/supporto-ocp
OCP tutorial: https://agenda.cnaf.infn.it/conferenceTimeTable.py?confId=738#20150930
Contatti: http://www.opencityplatform.eu/contatti