4. 2. Cloud Computing I. 클라우드 컴퓨팅 개요
[NIST*]Technology Centric definition
Cloud computing is a model for enabling convenient,
on-demand network access to a shared pool of
configurable computing resources
(e.g., networks, servers, storage, applications, and
services) that can be rapidly provisioned and released
with minimal management effort or service provider
interaction.
(*National Institute of Standards and Technology)
-4-
5. 3. 비즈니스 요구사항 I. 클라우드 컴퓨팅 개요
Cloud Provider
TCO, ROI(Density)
Business value
Agility Cost
Cloud Consumer
Agility
Cost Control
-5-
6. 4. Scope of Control I. 클라우드 컴퓨팅 개요
[NIST]클라우드 서비스 모델 별로 Control해야 하는 layer는 다음과 같다.
-6-
7. 5. Cloud Service Models I. 클라우드 컴퓨팅 개요
Application
Application
APIs
Data/Info.
Data/Content/Metadata
Integration OS Management
and middleware
Networking
APIs
Connectivity & Delivery
Trusted
Virtualization Computing
Hardware
Compute and
IaaS
Storage
PaaS
SaaS
-7-
8. 6. Available Service on Cloud I. 클라우드 컴퓨팅 개요
[NIST] Cloud Consumer 관점에서의 클라우드 서비스 모델 별로 가능한 서비
스는 다음과 같다.
-8-
9. I. 클라우드 컴퓨팅 개요
II. 클라우드 참조 아키텍처
III. 오픈소스 클라우드 플랫폼
IV. 맺음말
10. 1. 클라우드 참조 아키텍처 II. 클라우드 참조 아키텍처
[NIST] Cloud Provider – Service Orchestration
- 10 -
11. 1. 클라우드 참조 아키텍처 II. 클라우드 참조 아키텍처
[NIST] Cloud Computing Reference Architecture
- 클라우드 컴퓨팅에서의 Actor와 행위 및 기능을 식별함
- 11 -
12. 1. 클라우드 참조 아키텍처 II. 클라우드 참조 아키텍처
[NIST] Actor 의 정의
- 12 -
14. I. 클라우드 컴퓨팅 개요
II. 클라우드 참조 아키텍처
III. 오픈소스 클라우드 플랫폼
IV. 맺음말
15. 1. 클라우드 플랫폼 비교 III. 오픈 소스 클라우드 플랫폼
Model OpenStack CloudFoundry
Service Model IaaS PaaS
virtualization KVM,XEN,OS Application Container
Service Offering Nova(Compute) Container
Swift(Storage) Message(rabbitMQ)
Glance(Image) DB(MongoDB,mysql)
Memory(redis)
Messaging bus RabbitMQ NATS
OSS license Apache Apache
UI Command-line Command-line(vmc)
Dashboard STS
WebAPI Yes(REST) No(possible)
Language Python Ruby
- 15 -
16. 2. Architecture Pattern III. 오픈 소스 클라우드 플랫폼
Event-Driven
Asynchronous
Independent
Shared-nothing
Message passing
Eventually Consistent
- 16 -
17. 3. Open IaaS - Openstack III. 오픈 소스 클라우드 플랫폼
Cloud Operating System
It provides that provision and manage large networks of virtual machines,
creating a redundant and scalable cloud computing platform.
- 17 -
18. 3. Open IaaS - Openstack III. 오픈 소스 클라우드 플랫폼
Nova Architecture
Meta DB
Volume
Worker Storage
(iSCSI)
Dashboard
Network
Worker
OpenStack
API
Message Queue
Identity
Middleware API Server
(KEYSTONE) local method
Compute
Worker Hypervisor
EC2 API
rest call
Scheduler
rest call
Image rest call
Image Store Service
(Swift/Local) (GLANCE)
- 18 -
19. 3. Open IaaS - Openstack III. 오픈 소스 클라우드 플랫폼
VM provisioning process
Hypervisor/libvert
Client
5 VM spawning
1 Create VM request
response to client
Scheduler Compute
API Server
4 create_vm()
3 run_instance()
2 create_instance()
meta DB Network
6 allocate_fixed_ip()
return message
API Server
Volume volume attach/detach
- 19 -
20. 3. Open IaaS - Openstack III. 오픈 소스 클라우드 플랫폼
VM Instance Creation
(1) Authentication is performed to make sure this user has the required permissions. The
cloud controller sends the message to the scheduler
(2) The scheduler casts the message to a random host and asks him to start a new instance
(3) The compute worker on the host grabs the message
(4) The compute worker needs a fixed IP to launch a new instance so it sends a message to
the network controller
(5,6,7,8) The compute worker continues with spawning a new instance.
Scheduler
2 3
1 6
API Cloud Controller Network Controller
User 7
8
5
Compute Worker
4
- 20 -
21. 3. Open IaaS - Openstack III. 오픈 소스 클라우드 플랫폼
Messaging Interface
This type of message delivery in OpenStack is defined as RPC casting.
RabbitMQ is used here for delivery.
The publisher (API) sends the message to a topic exchange (scheduler topic).
A consumer (Scheduler worker) retrieves the message from the queue.
No response is expected as it is a cast and not a call.
API Topic Exchange Scheduler Queue Scheduler
- 21 -
22. 3. Open IaaS - Openstack III. 오픈 소스 클라우드 플랫폼
Object Storage (swift) provides redundant, scalable object storage using
clusters of standardized servers capable of storing petabytes of data.
client client
Account
1 request
L4
Containers
3 Routes the
Auth requests 4 put/get Storage node
Proxy Server
2 lookup
Rings
Updaters Auditors Replicator
Objects
- 22 -
23. 4. Open PaaS - CloudFoundry III. 오픈 소스 플랫폼
Lean development 의 7가지 원칙
Eliminate waste
Amplify learning
Decide as late as possible
Deliver as fast as possible
Empower the team
Build integrity in
See the whole
- 23 -
24. 4. Open PaaS - CloudFoundry III. 오픈 소스 플랫폼
Deploy and scale applications in seconds, without locking yourself
Simple, Open, Flexible, Scalable
- 24 -
25. I. 클라우드 컴퓨팅 개요
II. 클라우드 참조 아키텍처
III. 오픈소스 클라우드 플랫폼
IV. 맺음말
26. 4. Open PaaS - CloudFoundry III. 오픈 소스 플랫폼
Cloud Foundry Architecture
Message Bus
(NATS)
App
Load Balancers
DEAs
Routers
DB Cloud Controller
Web Service API
VMC
Services Client
Health Manager
- 26 -
27. 4. Open PaaS - CloudFoundry III. 오픈 소스 플랫폼
전통 적인 방식의 deploy and request/response
Web
Web
App
App
DB
DB
- 27 -
28. 4. Open PaaS - CloudFoundry III. 오픈 소스 플랫폼
Cloud Foundry에서의 App deploy
Web Web
App
“vmc push MyApp”
App DB
DB
Scale? “vmc instances MyApp5”
Upgrade ? “vmc map MyApp Myapp2”
Update? “vmc update MyApp”
- 28 -
29. 4. Open PaaS - CloudFoundry III. 오픈 소스 플랫폼
App Deployment flow
Find DEA
for app
vmc push Create app
available
VMC Cloud Controller DEA start
DEA Application
Framework Deploy
detection
Framework droplet
specific
staging plugin
Update
routes
Creates
Droplet Router
Router
- 29 -
30. 4. Open PaaS - CloudFoundry III. 오픈 소스 플랫폼
Request Handling flow
HTTP HTTP HTTP
request request request
Load Balancer Router Application
VMC
VMC VMC
- 30 -
31. 4. Open PaaS - CloudFoundry III. 오픈 소스 플랫폼
Service Provisioning process
- 31 -
33. 4. BOSH III. 오픈 소스 클라우드 플랫폼
Bosh is Open source tool-chain for release engineering, deployment, and
lifecycle management of large scale distributed services.
- 33 -
34. 4. BOSH III. 오픈 소스 클라우드 플랫폼
Bosh Architecture
bosh cli director healthmon
cloudfoundry.com
db redis nats
BOSH
User
workers blobs
active jobs
agent
IaaS CPI stemcell disk
- 34 -
35. 4. BOSH III. 오픈 소스 클라우드 플랫폼
- BOSH Director is the core
orchestrating component in BOSH which
controls creation of VMs, deployment,
and other life cycle events of software
and services. Command and control is
handed over to the the Director-Agent
interaction after the CPI has created
resources.
- BOSH Agents listen for instructions
from the BOSH Director. Every VM
contains an Agent. Through the
Director-Agent interaction, VMs are
given Jobs, or roles, within Cloud
Foundry.
- Stemcell is a VM template with an em
bedded BOSH Agent The Stemcell used
for Cloud Foundry is a standard Ubuntu
distribution.
- 35 -
36. I. 클라우드 컴퓨팅 개요
II. 클라우드 참조 아키텍처
III. 오픈소스 클라우드 플랫폼
IV. 맺음말
37. 1. 오픈소스 클라우드 플랫폼의 활용 III. 맺음말
사내 private cloud 구축
Cloud 환경에 대한 이해
IaaS 또는 PaaS 구축
오픈소스 기술 지원
Trouble Shooting or Challenge
- 37 -
38. 2. Cloud Migration III. 맺음말
Physical 환경의 일반적인 N-tier architecture
Web Server Web Server Web Server
App Server App Server
messaging
Database
Database
- 38 -
39. 2. Cloud Migration III. 맺음말
클라우드 환경에서는 memory tier를 분리하여 session replication 및
object caching을 통해 부하를 분산시키며 목적에 맞게 db를 선택함
Web Server Web Server Web Server
Session
Sessio
n
Node1 NodeN
App Server App Server
Messaging
AMQP
Data grid
Node1 Node2 NodeN
Database
Database
NoSQL RDBMS
- 39 -
40. 3. 제언 III. 맺음말
Start small Big picture!!!
- 40 -
41. 3. Reference III. 맺음말
http://www.nist.gov/manuscript-publication-
search.cfm?pub_id=909505
Distributed and Cloud Computing
Kai Hwang. Geoffrey C. Fox. Jack J.Dongarra
CloudFoundry[Inside the machine] Derek collison
http://www.openstack.org
- 41 -