Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik Jörn Esdohr | Oktober 2012,...
-
Upload
adelhard-muegge -
Category
Documents
-
view
106 -
download
0
Transcript of Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik Jörn Esdohr | Oktober 2012,...
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
Jörn Esdohr | Oktober 2012, Dortmund
OpenStack
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
2
Was ist OpenStack? Open Source Cloud Plattform als IaaS
(Infrastructure as a Service)
Wer steckt hinter OpenStack? 2010, Rackspace und Nasa starten
OpenStack Projekt OpenStack Foundation unterstützt von über 140
Unternehmen z.B. Deutsche Telekom, AT&T, HP, IBM, …
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
3
Teil 1
Architektur von OpenStack
Teil 2
Client-Server-Interaktion
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
4
TEIL 1ARCHITEKTUR VON OPENSTACK
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
5
Teil 1Architektur von OpenStack
OpenStack verteilt Cloud Funktionen auf7 einzelne Dienste (Core Projects).
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
6Jörn Esdohr | Dortmund, Oktober 2012
Nova – Compute
Nova verwaltet Server-Instanzenund bietet Schnittstellen für Cloud Anwendungen.
Server-Instanzen
Virtuelle Maschinen „Flavor“
Hardware-Konfiguration (Speicher, RAM, CPU Priorität)
ImageAbbildungen von Server-Installationen(Fedora, Ubuntu, …)
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
7Jörn Esdohr | Dortmund, Oktober 2012
Nova – Compute
Tenants (Projekte)
Ressourcen-Container definiert durch Quota Server-Instanzen vCPU IP Adressen virtuelle Datenträger
(Volumes)
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
8Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
9Jörn Esdohr | Dortmund, Oktober 2012
Verwaltung von Server Images
Glance – Image Service
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
10Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
11Jörn Esdohr | Dortmund, Oktober 2012
Swift – Object Storage
Verwaltung statischer Web-Inhalte(Bilder, Media-Dateien, Images, …)
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
12Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
13Jörn Esdohr | Dortmund, Oktober 2012
Cinder – Block Storage
Verwaltung virtueller Datenträger (Volumes).Daten überleben Server-Termination.
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
14Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
15
Quantum – Network Service
Jörn Esdohr | Dortmund, Oktober 2012
Quantum erlaubt Konstruktion komplexer Netzwerk-Topologien.
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
16Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
17
Keystone authentifiziert Anfragen an das OpenStack API.
Wichtige Strukturelemente Tenant User (Zuordnung zu Tenants) Rollen (Admin, Enduser, …) Tokens (temporäre Authentifizierungs-Strings für API Anfragen)
Jörn Esdohr | Dortmund, Oktober 2012
Keystone – Identity Service
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
18Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
19Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
20
OpenStack Architektur
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
21
TEIL 2CLIENT-SERVER-INTERAKTION
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
22
OpenStack API
Das OpenStack API ist ein REST-ful Web Service.
REST (Representational State Transfer) Client-Server-Struktur mit Verben (Aktionen) und Subjekten (Ressourcen) Senden von Anfragen an URI (Uniform Resource Identifier)
4 Prinzipien Beschränkung auf HTTP Methoden: GET, POST , PUT, DELETE API ist “stateless”, d.h. alle benötigten Informationen sind in Aufruf-Parametern URIs in Verzeichnis-Struktur Antwort in XML oder JSON (JavaScript Object Notation)
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
23
Semantik der HTTP-MethodenGETPUTPOSTDELETE
REST-ful Web Service
Anforderung von Ressourcen
Änderung von Ressourcen
Erzeugung von Ressourcen
Löschung von Ressourcen
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
24
Beispiel: API für Server-Instanzen (1)
Aufbau der REST URI
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
25
Beispiel: API für Server-Instanzen (2)
v2/{tenant_id}/servers/{server_id}
GET Informationen zum Server
Eingabe: Tenant_ID, Server_ID
Ausgabe: Details zum Server
Jörn Esdohr | Dortmund, Oktober 2012
{ "server": { "created": "2012-08-20T21:11:09Z", "flavor": { "id": "1", ...
}...}
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
26
Beispiel: API für Server-Instanz (3)
v2/{tenant_id}/servers/{server_id}
PUT Änderung von Benutzername, Passwort
Eingabe: Tenant_ID, Server_ID, neues Passwort (in JSON / XML)
keine Ausgabe
Jörn Esdohr | Dortmund, Oktober 2012
{ "changePassword" : {"adminPass" : "supersecret" } }
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
27
Beispiel: API für Server-Instanz (4)
v2/{tenant_id}/servers/{server_id}
DELETE Terminiert Server
Eingabe: Tenant_ID, Server_ID
keine Ausgabe
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
28
Weitere REST APIs
v2/{tenant_id}/servers/{server_id}/actionv2/images/v2/images/{image_id}v2/flavorsv2/flavors/{flavor_id}v2/{tenant_id}v2/{tenant_id}/os-quota-sets/{tenant_id}…
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
29
Methoden zur Kommunikation mit OpenStack
HTTP Requests (z.B. mit cURL) Python Client API (Objekt-orientierter Ansatz) Command Line Interface (CLI) Horizon Dashboard
Jörn Esdohr | Dortmund, Oktober 2012
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
30
1 $ curl
Beispiel: Anforderung eines Tokens (cURL) (1)
REST URI: http://keystone.site.com:5000/v2.0/token
Jörn Esdohr | Dortmund, Oktober 2012
cURL Befehl
1 $ curl -d '{"auth":{2 "passwordCredentials": {3 "username": "admin",4 "password": "1234„5 }6 }7 }'
1 $ curl -d '{"auth":{2 "passwordCredentials": {3 "username": "admin",4 "password": "1234„5 }6 }7 }'8 -H "Content-type: application/json“
1 $ curl -d '{"auth":{2 "passwordCredentials": {3 "username": "admin",4 "password": "1234„5 }6 }7 }'8 -H "Content-type: application/json“9 http://keystone.site.com:5000/v2.0/token
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
31
Beispiel: Anforderung eines Tokens (cURL) (2)
Server Antwort in JSON
Jörn Esdohr | Dortmund, Oktober 2012
{ "access" : { "token" : { "expires" : "2012-10-07T18:00:37Z", "id" : "d63f99ac17024f089155f09bfb684202" }, "user" : { ... } }}
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
32
Beispiel: Anforderung eines Tokens (CLI)
Kommandozeilen-Befehl über das Python Keystone Client API
Jörn Esdohr | Dortmund, Oktober 2012
+-----------+----------------------------------+| Property | Value |+-----------+----------------------------------+| expires | 2012-10-07T18:18:40Z || id | 495895f70fb446d5af15bf23a967fbbb || tenant_id | c307ba786f4346a4a905191548b5d96f || user_id | cb2c203c85a642acac7c29cc126b0c5b |+-----------+----------------------------------+
$
Ausgabe
keystone --os-password 1234
token-get --os-username admin
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
33
OpenStack API
Jörn Esdohr | Dortmund, Oktober 2012
Übersicht der RessourcenNova: Server, Flavors, Images, Floating IPs, Keypairs, Security Groups, DNS EinträgeQuantum: Netzwerke, Subnetzwerke, Netzwerk-PortsGlance: ImagesKeystone: User, Credentials, Rollen, Tenants, Tokens, EndpointsCinder: VolumesSwift: Objekte, Container, Accounts
Eine Idee aller Schnittstellen{ GET, PUT, DELETE, POST } x { Parameter } x Ressourcen
Sofware Engineering in der Cloud: OpenStack / Fakultät für Informatik
34
Zusammenfassung
OpenStack als IaaS mit 7 Kernkomponenten Nova (Compute), Glance (Image), Swift (Object Storage),
Quantum (Network), Keystone (Identity), Cinder (Block Storage),Horizon (Dashboard)
Client-Server-Interaktion über das OpenStack REST API Struktur von Anfragen Verschiedene Methoden (cURL, CLI, Python Client) Übersicht der Schnittstellen
Jörn Esdohr | Dortmund, Oktober 2012