modello dichiarativo per l'automazione del cloud garr
TRANSCRIPT
![Page 1: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/1.jpg)
Modello Dichiarativo per l'Automazione del Cloud GARR GIUSEPPE ATTARDI Dipartimento CSD, Consortium GARR
Roma 30/5/2018
Workshop GARR 2018
![Page 2: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/2.jpg)
![Page 3: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/3.jpg)
Intent-Based Deployment
● Describewhat,nothow
● WorkflowEnginegeneratesexecu0onplanfromthedesiredmodel
● Asynchronousprocessthatconvergesbycompu=ngthedifferencesbetweenthecurrentandthedesiredstate
![Page 4: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/4.jpg)
Benefits of Declarative Modeling
! Portability– Modelscanbedeployedacrosspla@orms! Consistency– Bothphysicalandvirtualinfrastructurecanbemodeled– Rela=onshipsbetweencomponents– Changesarepropagated! Automa=on– Mappingmodeltoinfrastructuredelegatedtoorchestrator! Evolu=on– Scalingup/down– Upgrades– maintenance
![Page 5: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/5.jpg)
Automazione
![Page 6: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/6.jpg)
Automation Tools
![Page 7: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/7.jpg)
Juju
• Declara=vemodellingtoolforcomposingsoHwareapplica=ons
• CharmsexpressthestepsthroughthelifecycleofasoHwarecomponent
• Performsinstalla=ononanycloud:OpenStack,AWS,Azure,Google
• AutomatesdeploymentofbothOpenStackandcloudapplica=ons
• Similartools:
• AWSCloudforma=on
• Brooklyn
![Page 8: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/8.jpg)
A Single Automation Tool for all Tasks
Applica0onDeployment:BigDataAnaly0cs
Pla=ormDeployment:OpenStack
![Page 9: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/9.jpg)
![Page 10: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/10.jpg)
Deployment Duration
● DeployinganOpenStackregionfrombaremetal
● Halfaday
● AutomatedupgradetoOpenStackreleases
● Halfanhour
● DeployingaContainerPla@orm
● 2days
![Page 11: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/11.jpg)
Deployment as a Service
Self-service app deployment
![Page 12: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/12.jpg)
![Page 13: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/13.jpg)
![Page 14: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/14.jpg)
App Deployed on AWS
![Page 15: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/15.jpg)
Jupyter Notebook Server
! ExperimentlivewithMachineLearningandGPUs
![Page 16: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/16.jpg)
Juju Details
![Page 17: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/17.jpg)
Typical Fabric, Ansible, Chef code
! Connect to each server ! Install packages for a web application ! Configure web application, styles nd database credentials ! Connect database server XXX: NEEDS REPLICA ! Create table and populate data
![Page 18: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/18.jpg)
Charm Interfaces
! Interfaces define how different charms can be related to share data ! One charm is the provider, like a socket ! Any char can consume the interface, like a p;ug ! Juju operates as the information exchange broker beween the two charms
![Page 19: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/19.jpg)
Repeatability
! A model can be described through a YAML file ! The model can be deployed with a singe command ! The file can also contain the deployment details " The number of instances of an application " Where the applications should be locate " Whether the application are deployed into containers or machines ! Same model can be used for pre-production testing on a small scale and then scaled up
![Page 20: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/20.jpg)
Managing Evolution
! From development to production ! Security updates ! Monitoring ! Log aggregation ! Certificates
![Page 21: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/21.jpg)
Day Two Operations: Scaling and Adapting
! Scaling applications, while keeping related applications notified ! Perform configuration updates ! Relation configuration updates
![Page 22: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/22.jpg)
Upgrades
! Upgrading complex software requires coordination between components " Juju provides this coordination point ! OpenStack ugrades: " Mitaka -> Newton -> Ocata ! Kubernetes upgrades: " 1.8 -> 1.9 ! Upgrading the charms themselves as their functionality is improved
![Page 23: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/23.jpg)
Lifecycle Events
! install " Invoked just once when the charm is deployed ! config-changed " Invoked whenever a configuration parameter is changed (either grom the GUI, or from the CLI) ! relation-joined, relation-changed " When a relation is added to a charm relation-joined fires first, so that the two units can communicate with each other, and then relation-changed fires ! leader-elected " Occurs when many nodes require a “leader” node to coordinate among them ! pool-storage-attached, pool-storage-detached " Actions to take when a storage pool is attached/detached
![Page 24: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/24.jpg)
Hooks
! Represent the handlers to be run when an event occurs ! Hooks must be idempotent " To avoid inconsistencies or divergence if run more than once
![Page 25: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/25.jpg)
Bundles
! Bundles describe a service consisting of several charms ! They express constrains, configuration parameters and relationships between charms that provide/implement an interface ! Can be configured before/after deployment ! They provide scalability options
![Page 26: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/26.jpg)
Juju Engine
! The Juju engine follows a reactive pattern, triggered by events that cause corresponding hook handlers to run ! Multiple handlers may match for a given hook and will be run in a non-determined order ! Running the handlers or issuing Juju commands may cause additional events ! The state engine is evaluated every time an event occurs ! The engine runs until convergence to a stable state
![Page 27: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/27.jpg)
Actions
! Actions are executable scripts defined in the charms ! High level functionality related to the application: " Pause and resume replication for postgresql " Creating, renaming or deleting pools in ceph ! Can be executed on one or more instances of the application
![Page 28: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/28.jpg)
Developing Bundles
! ExpandasharedCatalogueofservices! Examples:" MoodleasaService" JupyterNotebooksasaService
![Page 29: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/29.jpg)
Status
! Resources" ~9000vCPU" 10PBStorage! Usage" Over700users" Over1000VM
! Guarantees" ServiceCon=nuity" DataProtec=on
![Page 30: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/30.jpg)
Container Platform
![Page 31: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/31.jpg)
Container Platform for AI
! Automateddeploymentonbaremetal,AWSorothercloudsbyJuju! WorkloadsdeployedbyJuju! DistributedstoragesystemusingCeph! NFSclusterforsharingbigdata! DockercontainersmanagedKubernetes
![Page 32: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/32.jpg)
Kubernetes Deployment by Juju
! KubernetesNinenodeKubernetesclusterwithonemasterandaconfigurablenumber(>3)ofworkernodes.! EasyRSAperformstheroleofacer=ficateauthorityservingself-signedcer=ficatestothereques=ngunitsofthecluster.! Etcdprovidesadistributedkeyvaluestore:threenodeclusterforreliability.! Cephprovidesdistributedresilientstorage! CephFSprovidessharedstorage! Keystoneenablesauthen=ca=ngregisteredOpenStackuserstotheContainerPla@orm! FlannelprovidesaCNI(ContainerNetworkInterface)amongthenodes
![Page 33: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/33.jpg)
Charging and Billing
![Page 34: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/34.jpg)
Domain Administration Dashboard
![Page 35: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/35.jpg)
Conclusioni
ConsPro
! Esplicitarel'architefuradesiderata! Livellodiastrazionepiùalto! Assicuraconsistenzatralepar=! Operasustrufureanzichésufilediconfigurazione! Delegaaltooldeipassielementari! Delegaaltoolsceltenoncruciali! Riduceilrischiodisviste– >90%delleinterruzionidelserviziodovu=ainterven=manuali
! Conoscerestrumento! Sistemis=abitua=adoperaredirefamentesuifilediconfiurazione! Dipendenzadallostrumentoedallesueevoluzioni! Seguirel'evoluzionedellostrumento/i! Standards(Tosca?)
![Page 36: Modello Dichiarativo per l'Automazione del Cloud GARR](https://reader030.vdocuments.mx/reader030/viewer/2022012414/616e1e81276dca37bd707e8b/html5/thumbnails/36.jpg)
Iscrizioni su Eventbrite: https://bit.ly/2xodHCI