1 / 34

OpenStack

OpenStack. 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, ….

affrica
Télécharger la présentation

OpenStack

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OpenStack

  2. Was ist OpenStack? • Open Source Cloud Plattform als IaaS(Infrastructure as a Service) Wer steckt hinter OpenStack? • 2010, Rackspace und Nasa startenOpenStack Projekt • OpenStack Foundation unterstützt von über 140 Unternehmen • z.B. Deutsche Telekom, AT&T, HP, IBM, …

  3. Teil 1 Architektur von OpenStack Teil 2 Client-Server-Interaktion

  4. Teil 1Architektur von OpenStack

  5. Teil 1Architektur von OpenStack OpenStack verteilt Cloud Funktionen auf7 einzelne Dienste (Core Projects).

  6. Nova – Compute Server-Instanzen Virtuelle Maschinen • „Flavor“Hardware-Konfiguration (Speicher, RAM, CPU Priorität) • ImageAbbildungen von Server-Installationen(Fedora, Ubuntu, …) Nova verwaltet Server-Instanzenund bietet Schnittstellen für Cloud Anwendungen.

  7. Nova – Compute Tenants(Projekte) Ressourcen-Container definiert durch Quota • Server-Instanzen • vCPU • IP Adressen • virtuelle Datenträger (Volumes)

  8. Glance – Image Service Verwaltung von Server Images

  9. Swift – Object Storage Verwaltung statischer Web-Inhalte(Bilder, Media-Dateien, Images, …)

  10. Cinder – Block Storage Verwaltung virtueller Datenträger (Volumes). Daten überleben Server-Termination.

  11. Quantum – Network Service Quantum erlaubt Konstruktion komplexer Netzwerk-Topologien.

  12. Keystone – Identity Service 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)

  13. OpenStack Architektur

  14. Teil 2Client-Server-Interaktion

  15. 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)

  16. REST-ful Web Service Semantik der HTTP-Methoden GET PUT POST DELETE Anforderung von Ressourcen Änderung von Ressourcen Erzeugung von Ressourcen Löschung von Ressourcen

  17. Beispiel: API für Server-Instanzen (1) Aufbau der REST URI

  18. Beispiel: API für Server-Instanzen (2) v2/{tenant_id}/servers/{server_id} GETInformationen zum Server Eingabe: Tenant_ID, Server_ID Ausgabe: Details zum Server { "server": { "created": "2012-08-20T21:11:09Z", "flavor": { "id": "1", ... } ... }

  19. 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) keineAusgabe { "changePassword" : {"adminPass" : "supersecret" } }

  20. Beispiel: API für Server-Instanz (4) v2/{tenant_id}/servers/{server_id} DELETETerminiert Server Eingabe: Tenant_ID, Server_ID keine Ausgabe

  21. Weitere REST APIs v2/{tenant_id}/servers/{server_id}/action v2/images/ v2/images/{image_id} v2/flavors v2/flavors/{flavor_id} v2/{tenant_id} v2/{tenant_id}/os-quota-sets/{tenant_id} …

  22. Methoden zur Kommunikation mit OpenStack • HTTP Requests (z.B. mit cURL) • Python Client API (Objekt-orientierter Ansatz) • Command Line Interface (CLI) • Horizon Dashboard

  23. Beispiel: Anforderung eines Tokens (cURL) (1) REST URI: http://keystone.site.com:5000/v2.0/token cURLBefehl 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 1 $ curl 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“

  24. Beispiel: Anforderung eines Tokens (cURL) (2) Server Antwort in JSON { "access" : { "token" : { "expires" : "2012-10-07T18:00:37Z", "id" : "d63f99ac17024f089155f09bfb684202" }, "user" : { ... } } }

  25. Beispiel: Anforderung eines Tokens (CLI) Kommandozeilen-Befehl über das Python KeystoneClient API token-get keystone --os-usernameadmin $ --os-password 1234 Ausgabe +-----------+----------------------------------+ | Property | Value | +-----------+----------------------------------+ | expires | 2012-10-07T18:18:40Z | | id | 495895f70fb446d5af15bf23a967fbbb | | tenant_id | c307ba786f4346a4a905191548b5d96f | | user_id | cb2c203c85a642acac7c29cc126b0c5b | +-----------+----------------------------------+

  26. OpenStack API Übersicht der Ressourcen Nova: Server, Flavors, Images, Floating IPs, Keypairs, Security Groups, DNS Einträge Quantum: Netzwerke, Subnetzwerke, Netzwerk-Ports Glance: Images Keystone: User, Credentials, Rollen, Tenants, Tokens, Endpoints Cinder: Volumes Swift: Objekte, Container, Accounts Eine Idee aller Schnittstellen { GET, PUT, DELETE, POST } x { Parameter } x Ressourcen

  27. 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

More Related