36
Modello Dichiarativo per l'Automazione del Cloud GARR GIUSEPPE ATTARDI Dipartimento CSD, Consortium GARR Roma 30/5/2018 Workshop GARR 2018

Modello Dichiarativo per l'Automazione del Cloud GARR

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modello Dichiarativo per l'Automazione del Cloud GARR

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
Page 3: Modello Dichiarativo per l'Automazione del Cloud GARR

Intent-Based Deployment

● Describewhat,nothow

● WorkflowEnginegeneratesexecu0onplanfromthedesiredmodel

● Asynchronousprocessthatconvergesbycompu=ngthedifferencesbetweenthecurrentandthedesiredstate

Page 4: Modello Dichiarativo per l'Automazione del Cloud GARR

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

Automazione

Page 6: Modello Dichiarativo per l'Automazione del Cloud GARR

Automation Tools

Page 7: Modello Dichiarativo per l'Automazione del Cloud GARR

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

A Single Automation Tool for all Tasks

Applica0onDeployment:BigDataAnaly0cs

Pla=ormDeployment:OpenStack

Page 9: Modello Dichiarativo per l'Automazione del Cloud GARR
Page 10: Modello Dichiarativo per l'Automazione del Cloud GARR

Deployment Duration

● DeployinganOpenStackregionfrombaremetal

● Halfaday

● AutomatedupgradetoOpenStackreleases

● Halfanhour

● DeployingaContainerPla@orm

● 2days

Page 11: Modello Dichiarativo per l'Automazione del Cloud GARR

Deployment as a Service

Self-service app deployment

Page 12: Modello Dichiarativo per l'Automazione del Cloud GARR
Page 13: Modello Dichiarativo per l'Automazione del Cloud GARR
Page 14: Modello Dichiarativo per l'Automazione del Cloud GARR

App Deployed on AWS

Page 15: Modello Dichiarativo per l'Automazione del Cloud GARR

Jupyter Notebook Server

! ExperimentlivewithMachineLearningandGPUs

Page 16: Modello Dichiarativo per l'Automazione del Cloud GARR

Juju Details

Page 17: Modello Dichiarativo per l'Automazione del Cloud GARR

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

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

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

Managing Evolution

! From development to production ! Security updates ! Monitoring ! Log aggregation ! Certificates

Page 21: Modello Dichiarativo per l'Automazione del Cloud GARR

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

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

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

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

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

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

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

Developing Bundles

! ExpandasharedCatalogueofservices! Examples:" MoodleasaService" JupyterNotebooksasaService

Page 29: Modello Dichiarativo per l'Automazione del Cloud GARR

Status

! Resources" ~9000vCPU" 10PBStorage! Usage" Over700users" Over1000VM

! Guarantees" ServiceCon=nuity" DataProtec=on

Page 30: Modello Dichiarativo per l'Automazione del Cloud GARR

Container Platform

Page 31: Modello Dichiarativo per l'Automazione del Cloud GARR

Container Platform for AI

! Automateddeploymentonbaremetal,AWSorothercloudsbyJuju! WorkloadsdeployedbyJuju! DistributedstoragesystemusingCeph! NFSclusterforsharingbigdata! DockercontainersmanagedKubernetes

Page 32: Modello Dichiarativo per l'Automazione del Cloud GARR

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

Charging and Billing

Page 34: Modello Dichiarativo per l'Automazione del Cloud GARR

Domain Administration Dashboard

Page 35: Modello Dichiarativo per l'Automazione del Cloud GARR

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

Iscrizioni su Eventbrite: https://bit.ly/2xodHCI