34
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 Jörn Esdohr | Oktober 2012, Dortmund OpenStack

Embed Size (px)

Citation preview

Page 1: 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

Jörn Esdohr | Oktober 2012, Dortmund

OpenStack

Page 2: 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

Page 3: 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

3

Teil 1

Architektur von OpenStack

Teil 2

Client-Server-Interaktion

Jörn Esdohr | Dortmund, Oktober 2012

Page 4: 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

4

TEIL 1ARCHITEKTUR VON OPENSTACK

Jörn Esdohr | Dortmund, Oktober 2012

Page 5: 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

5

Teil 1Architektur von OpenStack

OpenStack verteilt Cloud Funktionen auf7 einzelne Dienste (Core Projects).

Jörn Esdohr | Dortmund, Oktober 2012

Page 6: 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

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, …)

Page 7: 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

7Jörn Esdohr | Dortmund, Oktober 2012

Nova – Compute

Tenants (Projekte)

Ressourcen-Container definiert durch Quota Server-Instanzen vCPU IP Adressen virtuelle Datenträger

(Volumes)

Page 8: 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

8Jörn Esdohr | Dortmund, Oktober 2012

Page 9: 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

9Jörn Esdohr | Dortmund, Oktober 2012

Verwaltung von Server Images

Glance – Image Service

Page 10: 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

10Jörn Esdohr | Dortmund, Oktober 2012

Page 11: 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

11Jörn Esdohr | Dortmund, Oktober 2012

Swift – Object Storage

Verwaltung statischer Web-Inhalte(Bilder, Media-Dateien, Images, …)

Page 12: 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

12Jörn Esdohr | Dortmund, Oktober 2012

Page 13: 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

13Jörn Esdohr | Dortmund, Oktober 2012

Cinder – Block Storage

Verwaltung virtueller Datenträger (Volumes).Daten überleben Server-Termination.

Page 14: 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

14Jörn Esdohr | Dortmund, Oktober 2012

Page 15: 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

15

Quantum – Network Service

Jörn Esdohr | Dortmund, Oktober 2012

Quantum erlaubt Konstruktion komplexer Netzwerk-Topologien.

Page 16: 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

16Jörn Esdohr | Dortmund, Oktober 2012

Page 17: 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

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

Page 18: 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

18Jörn Esdohr | Dortmund, Oktober 2012

Page 19: 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

19Jörn Esdohr | Dortmund, Oktober 2012

Page 20: 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

20

OpenStack Architektur

Jörn Esdohr | Dortmund, Oktober 2012

Page 21: 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

21

TEIL 2CLIENT-SERVER-INTERAKTION

Jörn Esdohr | Dortmund, Oktober 2012

Page 22: 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

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

Page 23: 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

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

Page 24: 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

24

Beispiel: API für Server-Instanzen (1)

Aufbau der REST URI

Jörn Esdohr | Dortmund, Oktober 2012

Page 25: 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

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", ...

}...}

Page 26: 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

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" } }

Page 27: 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

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

Page 28: 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

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

Page 29: 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

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

Page 30: 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

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

Page 31: 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

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" : { ... } }}

Page 32: 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

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

Page 33: 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

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

Page 34: 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

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