Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli PaaS e IaaS con Openstack ed Openshift

Embed Size (px)

DESCRIPTION

My Master Degree in Computer Engineering Dissertation about delivering an open source extendible hybrid cloud solution for Platform-as-a-Service with Openshift, integrated in an Infrastructure-as-a-Service deployment with Openstack Grizzly RDO

Citation preview

  • 1. Universit della Calabria DIMES Corso di Laurea Specialistica in Ingegneria Informatica Un'Infrastruttura di Sviluppo Web Enterprise Distribuita su Cloud basata su Modelli PaaS e IaaS Relatori Studente Prof. Domenico Talia Natale Vinto Ing. Fabrizio Scarcello 137523

2. Indice Obiettivi Sviluppo Software nel Cloud Hybrid Cloud IaaS con Openstack Openstack: Orchestrazione delle risorse PaaS con OpenShift PaaS over IaaS Orchestrazione Dashboard Openstack Console OpenShift Sistemi di High Availability (HA) Sviluppo Web Enterprise PaaS Risultati Conclusioni 3. Obiettivi Offrire una piattaforma di sviluppo per applicazioni Web Enterprise su Cloud Definire un sistema nel quale poter erogare dei servizi cloud di piattaforma (PaaS) Progettare l'architettura di tale sistema basandosi su un'infrastruttura sottostante interconnessa (IaaS) Predisporre il sistema ad interoperabilit e portabilit su diversi cloud 4. Sviluppo Software nel Cloud Rapporto quantitativo Scenario Public Cloud Rapporto qualitativo Livelli logici non necessariamente interconnessi Sviluppo Web Enterprise: si definiscono Web Enterprise tutte le applicazioni coerenti con le logiche di business online delle organizzazioni che le realizzano 5. Hybrid Cloud IaaS PaaS Public Amazon AWS Microsoft Azure Joyent Rackspace HP Cloud Google Cloud Google App Engine Azure Cloud Services Heroku Openshift AWS Elastic Beanstalk Private/Hybrid Eucalyptus VMWare vCloud OpenNebula Openstack CloudFoundry Openshift 6. IaaS con Openstack Open source Python Multi-hypervisor Libvirt: Xen, KVM, ESX Hyper-V Metal-as-a-Service Ironic Orchestration Heat Juju Cloud Services RESTful: Nova Compute, Swift Storage, Neutron Networking, Keystone Identity e Authentication, Heat 7. Openstack: Orchestrazione delle risorse 8. PaaS con Openshift Open source Origin Ruby Cartridge: JavaEE, Ruby on Rails, Python, PHP,Node.js, MySQL, Mongodb, DIY Gear: RAM + CPU Auto scaling dei Gear con Load Balancer (HAProxy) Un nodo Broker ed n Nodi di computazione Build e Deploy con Git e Jenkins CI Sistema DNS per mapping applicazioni e namespace utenti Comunicazione RESTful 9. PaaS over IaaS Configurazione Openstack su base CentOS (RDO) e QEMU/KVM Generazione di immagini JeOS contenenti un sistema operativo di base a supporto della plaform Fedora Diskimage-create, Oz, Vagrant Descrizione ed orchestrazione delle risorse con Heat su base template compatibile AWS CloudFormation Metering e gestione degli eventi mediante utilizzo di API compatibili con AWS CloudWatch 10. PaaS over IaaS 11. Istanze Broker/Nodo La creazione delle immagini JeOS avviene per mezzo di Oz attraverso un sistema di template che descrive il tipo di sistema ed i pacchetti da installare I template TDL sono dei file XML F18-x86_64-openshift-origin- broker-cfntoolsFedora18x86_64file:/var/lib/libvirt/images/Fedora- 18-x86_64-netinst.iso OpenShift Origin Broker 12. Orchestrazione Le immagini vengo aggiunge a Glance, ed orchestrate con Heat attraverso un template compatibile con AWS CloudFormation I template sono file JSON o YAML compatibili CFN Istanza Broker "BrokerInstance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Fn::FindInMap": [ "JeosImages", "Broker", "Image" ] }, "InstanceType": "m1.small", "KeyName": { "Ref": "KeyName" }, .. "puppet module install openshift/openshift_origin", "n", "puppet apply --verbose /root/configure.pp | tee /var/log/configure_openshift.log", "n", .. 13. Dashboard 14. Console Openshift 15. Sistemi di High Availability (HA) IaaS High Availability di Istanza AWS::AutoScaling::ScalingPolicy AdjustmentType: ChangeInCapacity ScalingAdjustment: '1' PaaS High Availability di Servizio HAProxy Load Balancer Gear Routing A= MTBF MTBF+MTTR S=RbRa ROI=S/CM Availability MTBF = tempo medio fra i guasti MTTR = tempo massimo di riparazione dei guasti R rischio, S risparmio C costo di implementazione 16. Sviluppo Web Enterprise PaaS Creazione Web App Java EE Auto scalabile su 3 Gear, con supporto MySQL rhc createapp Esempio jbossas7 s rhc scalecartridge jbossas7 a Esempio min 1 max 3 rhc cartridge add mysql5.1 a Esempio Sviluppo Web App git clone progetto vuoto git push files Build Deploy Oppure Jenkins Webapp su EsempioNamespace.dominio.ext Cloud Ibrido: Entry DNS per l'accesso pubblico e NAT firewalling su macchina host Openstack 17. Risultati Adozione di due soluzioni di cloud ibrido interconnesse ed interoperabili per razionalizzazione risorse di Data Center ed erogazione di servizi di Cloud di piattaforma Totale indipendenza dall'hardware e dal sistema di virtualizzazione Implementazione di un doppio sistema di HA fault tolerance Predisposizione del sistema a portabilit nel cloud grazie alle API compatibili con AWS e ad estensione della platform e dei runtime rispettivamente grazie al concetto di Gear e di Cartridge 18. Conclusioni e Sviluppi Futuri Estensione dell'infrastruttura su pi macchine host Openstack interconnesse PEP05: Sistema integrato con l'infrastruttura IaaS sottostante che permetta alle applicazioni web di sopravvivere anche ai guasti sul Gear primario contenente HAProxy (integrazione routing table di Openshift con le API di Neutron) Cartridge SQL multiDB Orchestrazione di risorse virtualizzate o baremetal con Juju e definizione di un ambiente di sviluppo di sviluppo Web Enterprise basato su nodi interconnessi con JVM clusterizzate attraverso Terracotta, mediante uso di EHCache e BigMemory. 19. Thank you all!