현재 이미지를 표시할 수 없습니다.
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Container Cloud Service
From Virtualization to Container
김태완 (taewanme@gmail.com)
Cloud Team
2017.02.01
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Oracle	Container	Cloud	Service
Public 2
Oracle	Public	Cloud	- Compute
Management	Tool	&	Dashboard
Docker	Engine
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		| 3
Oracle	Container	Cloud	Service
Oracle	Public	Cloud에서 컨테이너 관리 방안 제공
Cloud	&	
Container	Native
Enterprise	
Operations	Ready
Built-In	
Collaboration	
• 더커 호환
• 원클릭 스텍 배포
• 레지스트리 통합
• CI/CD	파이프라인 구성
• 운영 대쉬보드 제공
• 컨테이너 상태 점검 기능
• 서비스 스케일 조절 기능
• 오케스트레이션과
스케줄링 정책 제공
• 리소스 풀 관리 – DEV,	TEST,	PROD
• Quickstart,	Best	Practive 제공
• 통합 REST	API	제공
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
완전한 UI	지원
● 이미지 생성
● 리소스 풀 정의
● 레지스트리 제공
● 새로운 서비스 생성
● 애플리케이션 스택 관리
● 원클릭 스택 배포
● 배포 관리
● 서비스 Scale-out 관리
● 서비스 디스커버리 지원
● 서비스 상태 체크
● 통합된 대쉬보드 제공
● 인스턴스 모니터링 및 Audit
기능 제공
구성 관리
애플리케이션
배포
컨테이너
오케스트레이션
운영 관리
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Oracle	Container	CS	- UI
Public 5
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Packaging	/	Pricing
Oracle	Confidential	– Internal 6
Compute	CS	(1	ocpu) Container	CS	(1	ocpu)
Non	Metered	(month) $ 75 $	75
Metered	(hour) $	0.1 $	0.133
OCCS	최소 사양: 2 ocpu
• 1	ocpu:	manager	node,	1	ocpu :	worker	node
:	Worker	node
:	Manager	node
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
From	Virtualization	to	Container
Public 7
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
The	Top	20	replies	by	programmers	
when	their	programs	do	not	work
• 20.	"That's	weird..."
• 19.	"It's	never	done	that	before."
• 18.	"It	worked	yesterday."
• 17.	"How	is	that	possible?"
• 16.	"It	must	be	a	hardware	problem."
• 15.	"What	did	you	type	in	wrong	to	get	it	to	crash?"
• 14.	"There	is	something	funky	in	your	data."
• 13.	"I	haven't	touched	that	module	in	weeks!"
• 12.	"You	must	have	the	wrong	version."
• 11.	"It's	just	some	unlucky	coincidence."
• 10.	"I	can't	test	everything!"
• 9.	"THIS	can't	be	the	source	of	THAT."
• 8.	"It	works,	but	it	hasn't	been	tested."
• 7.	"Somebody	must	have	changed	my	code."
• 6.	"Did	you	check	for	a	virus	on	your	system?"
• 5.	"Even	though	it	doesn't	work,	how	does	it	feel?
• 4.	"You	can't	use	that	version	on	your	system."
• 3.	"Why	do	you	want	to	do	it	that	way?"
• 2.	"Where	were	you	when	the	program	blew	up?"
• 1.	"It	works	on	my	machine."
Public 8
http://www.thenetworkadministrator.com/top20.htm
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
프로그램 오류 시 개발자의 반응: 순위 20..
• 20.	희안하네…
• 19.	한번도 이런적 없었는데…
• 18.	어제는 잘 됐는데…
• 17.	이럴리 없는데..
• 16.	하드웨어 문제입니다.
• 15.	무슨짓을 하셨길래.. 얘가 이래요?
• 14.	입력을 잘못하셨네요
• 13.	최근에 전 이모듈 건드린적 없습니다.
• 12.	구버전 이네요…
• 11.	간혹 이럴 수 있어요..
• 10.	모든것을 테스트 할 수는 없습니다.
• 9.	이 문제가 저것 때문이라고는 볼 수 없습니다.
• 8.	잘 될거에요.. 테스트 해보지는 않았지만
• 7.	누가 내 코드 건드렸나?
• 6.	백신 까셨어요?
• 5.	안되는건 알아요. 어떠셔요?
• 4.	그 버전 쓰시면 안되요
• 3.	왜 그렇게 돌려요?
• 2.	프로그램이 이렇게 될 때 어디에 있었나요?
• 1.	제 컴퓨터에서는 잘 동작 합니다.
Public 9
http://www.thenetworkadministrator.com/top20.htm
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
프로그램 오류 시 개발자의 반응: 순위 20..
• 20.	희안하네…
• 19.	한번도 이런적 없었는데…
• 18.	어제는 잘 됐는데…
• 17.	이럴리 없는데..
• 16.	하드웨어 문제입니다.
• 15.	무슨짓을 하셨길래.. 얘가 이래요?
• 14.	입력을 잘못하셨네요
• 13.	최근에 전 이모듈 건드린적 없습니다.
• 12.	구버전 이네요…
• 11.	간혹 이럴 수 있어요..
• 10.	모든것을 테스트 할 수는 없습니다.
• 9.	이 문제가 저것 때문이라고는 볼 수 없습니다.
• 8.	잘 될거에요.. 테스트 해보지는 않았지만
• 7.	누가 내 코드 건드렸나?
• 6.	백신 까셨어요?
• 5.	안되는건 알아요. 어떠셔요?
• 4.	그 버전 쓰시면 안되요
• 3.	왜 그렇게 돌려요?
• 2.	프로그램이 이렇게 될 때 어디에 있었나요?
• 1.	제 컴퓨터에서는 잘 동작 합니다.
Public 10
http://www.thenetworkadministrator.com/top20.htm
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
프로그램 오류 시 개발자의 반응: 순위 20..
20.	희안하네…
18.	어제는 잘 됐는데…
13.	최근에 전 이모듈 건드린적 없습니다.
12.	구버전 이네요…
11.	간혹 이럴 수 있어요..
7.	누가 내 코드 건드렸나?
4.	그 버전 쓰시면 안되요
1.	제 컴퓨터에서는 잘 동작 합니다.
Public 11
http://www.thenetworkadministrator.com/top20.htm
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
프로그램 오류 시 개발자의 반응: 순위 20..
• 20.	희안하네…
• 18.	어제는 잘 됐는데…
• 13.	최근에 전 이모듈 건드린적 없습니다.
• 12.	구버전 이네요…
• 11.	간혹 이럴 수 있어요..
• 7.	누가 내 코드 건드렸나?
• 4.	그 버전 쓰시면 안되요
•1.	제 컴퓨터에서는 잘 동작 합니다.
Public 12
소프트웨어
의존성 관리 이슈
Library Other Softwares
Environment Variable
Third-Party module
Operating System
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Hell	in	Dependency
Public 13
OS
Java
WEBLOGIC
webapp webapp
Web	Server
Oracle	Database
Cache
Message	Queue
Mail
MySQL….
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Physical	Partitioning
Public 14
OS
Java
WEBLOGIC
webapp webapp
Web	Server
Oracle	
Database
CacheMessage	
Queue
….
Hardware-
Partitioning	#1
OS
Hardware-
Partitioning		#2
OS
Hardware-
Partitioning		#3
OS
Hardware-
Partitioning		#4
OS
Hardware-
Partitioning		#5
Hardware
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Dependency	Management	of	Softwares
Isolation	Between	Softwares
Public 15
Hardware OS
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Software	Defined….
Software	Defined
Infrastructure
Public 16
- Virtualization	-
Hardware Host	OS Guest	OS
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Cloud	- Virtualization
Public 17
- Isolation	Unit	:	OS
- Guest	OS 규모: Max	Cores	X	1.5
- Loading	Time:	6	~	8 min
- Distribution	Framework	
- Chef
- Puppet
- Ansible
- Provisioning	Softwares:	10	min
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Cloud	– Virtualization
Public 18
장점 단점 or 개선안
- VM	관리 편의성 증대
- Backup
- Failover
- Migration
- Recovery
- 완전한 소프트웨어 격리
- 배포 프레임웍을 이용한 자동화
- VM	시작 시간 단축
- Second	단위
- 소프트웨어 배포 시간 단축
- DevOps	소프트웨어와 연계 강화
- OS 이미지 사이즈 축소
- VM의 불필요한 부하 제거
- 리눅스 패지키 매니저 제공
- apt-get,	yum
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Linux	Boot	Sequence
Public 19
애프리케이션
시작 시간 단축
With	VM	(OS	Type)?
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Isolation	&	부팅시간 단축
For	isolation	of	software
Should	OS	be	required?
Public 20
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Isolation	Technology
Public 21
기존 Isolation	기술의 문제점: 어렵다
Isolation	Technology
- From	1979
- Jail
- Zones
- LXC
- Linux	Container
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Docker 등장 (from	google,	2013)
Public 22
사용하기 쉽고 마치 리눅스와 거의 유사한 환경을 제공하는 Container	기술
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Package	Manager	지원: apt-get,	yum
의존성 관리: 이미지 상속
이미지 빌드가 용이
Docker의 등장: LXC	+	Package	Manager	+	Library	참조
빠른 실행 시간 < 1~3 seconds
DevOps	툴 지원: CI/CD	파이프라인
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Terminology	of	Docker
24
Docker	Image
Docker	Container
Dockerfile
Docker	Registry
Docker	Engine
Docker	Host	Server
Docker	Host	Server
Developer	Computer
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Docker	Image	구성 요소
Public 25
• Minimized	OS (	!=	Operating	System	)
• Package	Manager
• apt-get
• yum
• rpm
• Filesystem
• Library	Management
• Software
• 1개의 단일 소프트웨어 권장
• Example
• Weblogic
• Tomcat
• Oracle	DB
• Coherence
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Docker	Images	by	Oracle
Public 26
https://github.com/oracle/docker-images
Dockerfile of	oracle	DB
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
제품 생산에서 선적까지
Public 27
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Dockerization:	Step	1- 개발
Public 28
Software	개발 Source	code	저장
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Dockerization:	Step	2- 이미지 생성
Public 29
FROM ubuntu:16.04
MAINTAINER Taewan	Kim	<taewanme@gmail.com>
RUN apt-get	install	-y	curl	apt-utils git make	build-essential
&& pip	install	--upgrade	pip	
ENV TFPY	https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.0.whl
RUN pip	install	--upgrade	${TFPY3}
RUN pip	install	numpy && pip	install	matplotlib &&	pip	install	jupyter
COPY start-notebook.sh /usr/local/bin
RUN chmod 755	/usr/local/bin/start-notebook.sh 
&&	chown -R	taewan /usr/local/bin/start-notebook.sh
EXPOSE 8888
ENTRYPOINT ["/bin/bash",	"start-notebook.sh"]
Dockerfile
>	docker build -t	twjupyter:1.0		.
ubuntu:16.04
apt-get	install
Tensorflow
apt-get	jupyter
shell
Docker	Image
Developer’s	Computer
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Dockerization:	Step	3 - 이미지 등록
Public 30
>	docker push taewanme/twjupyter:1.0
ubuntu:16.04
apt-get	install
Tensorflow
apt-get	jupyter
shell
Docker	Image
http://hub.docker.com
Developer’s	Computer
Docker	Image	업로드
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Dockerization:	Step	4- 이미지 다운로드
Public 31
>	docker pull	taewanme/twjupyter:1.0
ubuntu:16.04
apt-get	install
Tensorflow
apt-get	jupyter
shell
http://hub.docker.com
Docker	Host	Server
Docker	Image	다운로드
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Dockerization:	Step	5- 컨테이너 실행
Public 32
>	docker run -idt taewanme/twjupyter:1.0 /bin/bash
ubuntu:16.04
apt-get	install
Tensorflow
apt-get	jupyter
shell
Docker	Host	Server
Docker	Host	Server’s	
File	System
Docker	
Engine
twjupyter
Container
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Dockerization Flow
Public 33
개발
git
버전관리
기본 이미지
선택 이미지 빌드
이미지 등록
at
docker registry
이미지 다운로드 (@Docker	Host)
컨테이너 로딩 (@Dokcer Host)
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Docker	Command
docker pull
Docker	Command
docker run
Terminology	of	Docker	
Public 34
Base	Image Dockerfile Docker	Image Docker	Registry
Docker	Engine
Docker	
Container
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Docker	Automation
Public 35
개발
git
버전관리
이미지 빌드
이미지 등록
at
docker registry
이미지 재적재
컨테이너 리로딩
dev	&	commit web	hook
이미지 빌드
&
이미지 등록
web	hook
docker registry
docker engine
이미지 다운로드
&
컨테이너 재시작
Continuous	Integration	&	Continuous	Delivery
pulling	code pulling	image
By
Automation
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
2016 – Docker	Book
Public 36
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
2017 – Docker	Book
Public 37
Network Clustering Orchestration Monitoring Structure Securing
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Docker Management
Public 38
Container	Process	장애
Docker	호스트 장애
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Docker	Clustering
Public 39
Swarm
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Oracle	Container	CS	Architecture
Oracle	Confidential	– Internal
Normal	Docker	환경 OCCS환경
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Oracle	Container	CS의 작업 흐름
Oracle	Confidential	– Internal 41
로컬 개발
App	Code,	
Tests,	Docker
File
Certified	Base	
Docker Images
Docker	App	Image
Registry
Test Staging Production
Docker Management	&	Control
Dev	CS
Container	CS
Docker	Registry
- 더커 앱 이미지 저장
- 사용자 사설 레지스트리혹은 공개 리제스트리
Developer	CS
- 도메인 중심의 디자인
- 버전 관리 툴로 GIT	통합
- 허스슨 엔진, 젠킨스 플러그인 지원
- 코드 리뷰 및 위키 기능 지원
- Oracle	Container	CS 사용시 무료
Container	CS
- 더커 엔진
- 스택 엔진 기반 툴
- 강력한 서비스 디스커버리 지원
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
오라클 클라우드의 Container	서비스
Container	CSCompute	CS Application	Container	CS
DIY	Container	
Management
Oracle	Managed	
Container	Service
Docker-based	Cloud	
Polyglot	Platform
IaaS CaaS PaaS
42
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Summary:	Oracle	Cloud	for	Cloud	Native
Public 43
Physical	Infrastructure
Virtual	Infrastructure
Minimal	OS
Container	Engine
Service	Discovery
Orchestration:	Scheduling	&	
Cluster	Management
Workflow	/	Management
Code
Tools
Infrastructure
Whatever…
Developer	CS
Container	CS
supported	by	kee-hoon.lee@oracle.com
Oracle Container Cloud Service & Docker Overview

Oracle Container Cloud Service & Docker Overview