View
554
Download
1
Category
Preview:
DESCRIPTION
Vortrag der OOP 2014 Ein Einstieg in die Software Juju für das Provisioning und die Konfiguration von Clouds sowie ein Überblick über Architekturaspekte.
Citation preview
Clouds, leicht beherrschbar
Frank Müller
Oldenburg Baujahr 1965
Entwickler Fachautor
!
frank@mweb.de @themue
Was sind Clouds?
Bereitgestellte Infrastruktur …
… ist nichts ohne bereitgestellteDienste
mysql
wordpressBekanntes
Szenario auf
individuellen Servern
Mehr Komplexität in Clouds
wordpress
mediawikihaproxy-w mediawiki memcached
haproxy-b
wordpress mysql
wordpressvarnish
Ein mühsamer Weg
Juju - Open Source Tool zur Automatisierung von Clouds
http://juju.ubuntu.com
Plattformen
Plattformen
EC2 OpenStack HP Cloud Azure ...
wordpress
mediawikihaproxy-w mediawiki memcached
haproxy-b
wordpress mysql
wordpressvarnish
Provisionierung
Bootstrapping
juju init juju bootstrap
Bootstrap
Zentrale Funktionen
Bootstrap
State
API
Provisioner
...
Service Deployment
juju deploy juju-gui juju deploy wordpress juju deploy mysql juju expose juju-gui
Bootstrap
juju-gui wordpress mysql
Relationen
Services verknüpfen
juju add-relation wordpress mysql juju expose wordpress
Bootstrap
juju-gui wordpress mysql
Konfiguration
Konfigurieren
juju set mysql dataset-size=50% juju set wordpress tuning=optimized
Bootstrap
juju-gui wordpress* mysql*
Skalieren
Skalieren
juju deploy memcached juju add-relation wordpress memcached juju add-unit wordpress
wordpress*
Bootstrap
juju-gui wordpress* mysql*
memcached
Varianten
Wie viele Units pro Maschine?
ContainerDirekte AbhängigkeitStandard
Unit
Unit
Unter- geordnete
Unit
Unit
Unit
Unit
Komfort als Geschenk
Juju GUI (1)
Juju GUI (2)
Charms
Charm-Bestandteile
Metadaten
Konfigurationsoptionen
Unit Hooks install / config-changed / start
upgrade-charm / stop
Relation Hooks x-relation-joined / x-relation-changed x-relation-departed / x-relation-broken
Bauplan aus
statischen und
dynamischen Bestandteilen
Vom Charm zur Unit
Individuelle Agenten Machiner / Uniter
Zentrale Agenten Provisioner / Firewaller
Unit
Charm
Einige Charms …
ceph
mediawiki mongodb
cassandra
rails
mysql
wordpressrabbitmq
haproxy
apache2
hadoop squid
hbase
couchdb
postgresqlnfsntp
Architektur
Implementierungin Google Go
State / API / Worker
State
Provisioner
GUI
CLI
Firewaller
Machiner
Deployer
Uniter
API!
Watcher- Sammlungen- Individuelle Objekte
- MongoDB- Zugriffsschicht
Ereigniskette
State
API!
CLI Worker
Worker
Worker
Bestandteile der API
Netz und Crypto
Reflection für Dispatching
WebSockets
Serialisierung via JSON
Nebenher und doch zusammen
Command / Agent
Worker
Worker
Goroutine Goroutine
Goroutine Goroutine
• Command / Agent abhängig
von Dateiname und
Argumenten
• Einsatz als individuelles
Kommando oder Daemon
• Verschiedene parallele Worker
je nach Command / Agent
• Goroutines (Google Go) für
nebenläufige Aufgaben
Beispiel: Firewaller
State
Main Loop
Machine LoopMachine Loop Unit LoopUnit Loop Service LoopService Loop
Environment Configuration
Machines
MachinesPorts
Exposes
Plattformen kapseln
Environment
EC2 OpenStack Azure MAAS
EC2 OpenStack Azure MAAS
Command …Worker
Vom Umgang mit heißen Situationen
Strikte Fehlerkontrolle
• Keine Exceptions in Go
• Rückgabe von Fehlerwerten
• Kein Ignorieren von Fehlern
• launchpad.net/tomb für Fehler und Lebenszyklus von Goroutines
Wiederanlauf
• Soll-Zustand in State ist Master
• Nach Ausfall Abfrage des Soll-Zustands
• Abgleich mit Ist-Zustand
• Bei Abweichung Anpassung an Soll-Zustand
Viel Spaß in den Wolken
❝Zitat hier eingeben.
–Christian BauerBildquellen 123RFiStockphotoeigene Quellen
Recommended