Développement logiciel pour le Cloud (TLC) - 6...
Transcript of Développement logiciel pour le Cloud (TLC) - 6...
Développement logiciel pour le Cloud (TLC)6. Infrastructure-as-a-Service
Guillaume Pierre
Université de Rennes 1
Fall 2012http://www.globule.org/~gpierre/
Développement logiciel pour le Cloud (TLC) 1 / 30
Table of Contents
1 Introduction
2 OpenStack
3 OpenStack services
4 Conclusion
Développement logiciel pour le Cloud (TLC) 2 / 30
Table of Contents
1 Introduction
2 OpenStack
3 OpenStack services
4 Conclusion
Développement logiciel pour le Cloud (TLC) Introduction 3 / 30
The landscape of IaaS solutions
Cloud system License API
Amazon Web services Proprietary Proprietary
(Windows Azure) Proprietary Proprietary
OpenNebula Open-source Proprietary + OCCI
OpenStack Open-source AWS + OCCI
OpenStack was created by Rackspace and NASA
Many others joined: AMD, Intel, Canonical, SUSE Linux, Red Hat,Cisco, Dell, HP, IBM, Yahoo etc.
Développement logiciel pour le Cloud (TLC) Introduction 4 / 30
Table of Contents
1 Introduction
2 OpenStack
3 OpenStack services
4 Conclusion
Développement logiciel pour le Cloud (TLC) OpenStack 5 / 30
OpenStack
�OpenStack is a community of open source developers, participatingorganizations and users building and running the open source cloudoperating system.�
�OpenStack is a Cloud Operating System�
�OpenStack is a Cloud Orchestration layer�
Développement logiciel pour le Cloud (TLC) OpenStack 6 / 30
Traditional operating system
Provides APIs
Abstracts access to hardware resources
Controls access to these resources
Développement logiciel pour le Cloud (TLC) OpenStack 7 / 30
Cloud operating system
Provides APIs
Abstracts access to hardware virtualized resources
Controls access to these resources
Développement logiciel pour le Cloud (TLC) OpenStack 8 / 30
What's the di�erence?
The type of resource controlledI Hardware components vs. whole systems
The scale of resources controlledI One machine vs. a data center
The location of the resourcesI Local vs. remote
Développement logiciel pour le Cloud (TLC) OpenStack 9 / 30
Interacting with OpenStack
Développement logiciel pour le Cloud (TLC) OpenStack 10 / 30
Main services
Développement logiciel pour le Cloud (TLC) OpenStack 11 / 30
Mapping services onto the underlying system architecture
Développement logiciel pour le Cloud (TLC) OpenStack 12 / 30
OpenStack Nova == the computation service
Nova is the heart of OpenStack
It manages all resources, networking, authorization, andscalability needs for the cloud
Développement logiciel pour le Cloud (TLC) OpenStack 13 / 30
Challenge: �exibility
Di�erent customers want to deploy OpenStack over di�erent types ofsystems
Développement logiciel pour le Cloud (TLC) OpenStack 14 / 30
Advanced features
Cloud federationI Merge multiple clusters into a single cloudI Possibly across multiple admkinistration domains
Cloud burstingI When one cloud approaches full capacity it starts buying resources
from another cloudI And extends seamlessly to these new resourcesI Keep things transparent to the clients
Développement logiciel pour le Cloud (TLC) OpenStack 15 / 30
Table of Contents
1 Introduction
2 OpenStack
3 OpenStack services
4 Conclusion
Développement logiciel pour le Cloud (TLC) OpenStack services 16 / 30
Network virtualization
Goal: hide the complexity of the real networks behind simple andsecure abstractions
In the physical world:I Many applications belonging to many customersI Machines are located in di�erent clusters or data centersI Each data center has its own �rewall/NAT/address space/policies
In the virtualized world:I Many virtual networks (e.g., one per user or project)I Each isolated and independently con�gured (address allocation,
protocols used etc.)I Multiplexing physical network resources
Développement logiciel pour le Cloud (TLC) OpenStack services 17 / 30
Network virtualization
Développement logiciel pour le Cloud (TLC) OpenStack services 18 / 30
Network abstractions
Développement logiciel pour le Cloud (TLC) OpenStack services 19 / 30
Virtualizing network primitives
Développement logiciel pour le Cloud (TLC) OpenStack services 20 / 30
Example: �rewall traversal
Développement logiciel pour le Cloud (TLC) OpenStack services 21 / 30
Example: �rewall traversal
Développement logiciel pour le Cloud (TLC) OpenStack services 21 / 30
Example: �rewall traversal
Développement logiciel pour le Cloud (TLC) OpenStack services 21 / 30
Example: �rewall traversal
Développement logiciel pour le Cloud (TLC) OpenStack services 21 / 30
Example: �rewall traversal
Développement logiciel pour le Cloud (TLC) OpenStack services 21 / 30
OpenStack Quantum
Multiple, virtual, isolated networks per tenant
Create ports on networks and attach VMs
Control your own private IP address space
Access via CLI or GUI (horizon)
Support di�erent underlying technologies (VLANs, L2/L3 tunnels etc)
Extend through plugins
Développement logiciel pour le Cloud (TLC) OpenStack services 22 / 30
Example: OpenStack Nova + Quantum
Développement logiciel pour le Cloud (TLC) OpenStack services 23 / 30
Example: OpenStack Nova + Quantum
Développement logiciel pour le Cloud (TLC) OpenStack services 23 / 30
Example: OpenStack Nova + Quantum
Développement logiciel pour le Cloud (TLC) OpenStack services 23 / 30
Example: OpenStack Nova + Quantum
Développement logiciel pour le Cloud (TLC) OpenStack services 23 / 30
Example: OpenStack Nova + Quantum
Développement logiciel pour le Cloud (TLC) OpenStack services 23 / 30
OpenStack Swift == data storage service
Goal: redundant, scalable object storage using clusters ofcommodity servers
I Scale: terabytes to petabytes of accessible data
Data storage services are not a �lesystemI Rather: long term storage for permanent, static dataI Data can be updated if necessary but clouds assume this is infrequent
Usually: a RESTful APII GET /api-version/username/container/objectI PUT /api-version/username/container/object
Développement logiciel pour le Cloud (TLC) OpenStack services 24 / 30
OpenStack Swift Architecture
Développement logiciel pour le Cloud (TLC) OpenStack services 25 / 30
OpenStack Swift Architecture
Développement logiciel pour le Cloud (TLC) OpenStack services 26 / 30
OpenStack Glance == image management service
Goal: discovering,registering, and
retrieving virtual
machine images
Glance is implemented asa layer on top of Swift
Développement logiciel pour le Cloud (TLC) OpenStack services 27 / 30
OpenStack Keystone == authentication service
Goal: single source of authentication and authorizationI Same account and credentials for starting a vm and accessing a
container in object storageI Means of expressing API endpoints
Authorization is usually handled using capabilitiesI Authenticate with the Keystone serviceI Receive a token back
F The token encapsulates an identity and a scopeF Signed by the keystone service
I Show the token for all requests to other servicesF curl -H "X-Auth-Token:999888777666"
http://my.keystone.server:35357
Développement logiciel pour le Cloud (TLC) OpenStack services 28 / 30
Table of Contents
1 Introduction
2 OpenStack
3 OpenStack services
4 Conclusion
Développement logiciel pour le Cloud (TLC) Conclusion 29 / 30
Conclusion
Infrastructure-as-a-Service is more than a simple interface tovirtualization
I Machine virtualizationI Network virtualizationI Data storage servicesI Disk image repositoriesI Identity managementI (Load balancing)I (DNS)I (Monitoring)I etc.
A good IaaS system should have:I A rich set of infrastructure servicesI Good APIs + user-friendly GUII Strong integration betweeen these services
IaaS == the operating system of a cloud platform
Développement logiciel pour le Cloud (TLC) Conclusion 30 / 30