Difference between r1.1 and the current
@@ -32,4 +32,57 @@
* ansible
* fabric
* 여러대의 computer에 같은 입력을 주는 것과 같다.
* fabric
* 여러대의 computer에 같은 입력을 주는 것과 같다.
*
==== Hadoop ====
* CPU와 Memory 의 한계를 뛰어넘기 위해서
* 모두 동일한 JAVA Application을 띄워놓고 같은 프로그램을 실행
* 같은 환경을 꾸며놔야 된다는 것은 여전하나 한번만 꾸며놓으면 새로운 프로그램을 실행하기 좋다.
* 유명한 Map/Reduce 논문의 구현체
* 하지만 제한적인 명령만 실행할 수 있다.
* 극복하는 방법이 나왔지만, 필요도 없고 잘하는 다른 것들이 있어서...
* HDFS
* 미리서부터 나누어 가지고 있어야한다.
==== VM ====
* High Availablity 가 목적 (물론 다른 것도 있지만)
* 같은 환경을 빨리 만들기 위해
* OS를 쉽게 설치하기 위해서
* 라이브러리를 모두 같게 만들기 귀찮다.
* High Availability
* OS가 맛이 가서 죽으면
* VMware, KVM, Xen
* 대클라우드 시대를 연 기술
* 만능일까?
* Network 구조가 유연해야지 VM을 쓸수 있다.
* VM의 성능이 어느 정도일까?
==== docker(container) ====
* VM 은 너무 느려
* linux 의 Container 기술을 이용한 것
* namespace
* resource(eth0, disk)의 permission 관리
* cgroup
* CPU, Memory, I/O bandwidth 등 quota, limit
* overlay filesystem
* Image size 를 줄어 전송 시간도 줄인다.
* 장점
* VM의 장점을 다 가진다.
* VM보다 훨씬 가볍고 빠르다.
* 제어하기가 훨씬 간편하다.
* 단점
* isolation이 조금 불안하다. (private에서는 큰 문제는 아니다.)
* Kernel의 최신기능이라 조심해서 써야 한다.
* 실제로 문제를 해결하는 것은 각자의 몫이다.
* 여전히 network 구조는 직접 설계해야 한다.
* XaaS(X As A Service) 의 범람을 가져옴
==== openstack ====
* 모든 문제를 해결하고자 나선 슈퍼히어로
* Openstack 자체는 일종의 interface의 역할
* 각각의 구현체는 각자가 알아서 조립해서 써야한다.
= 컴퓨터 부려먹는 방법 =
1. 컴퓨터를 수백대 준비한다.
= Cloud =
* 구름 저편에서 다 알아서 해주고 난 쓰기만 하는 것
* 버튼 한방이면 설치 설정 알아서 다 해주는 것
동기 ¶
- (구글, 넷플릭스, 페이스북 ...는) 어떻게 수백대의 컴퓨터를 부려먹을까
- (하둡, Docker, k8s, Elestic search)는 어떻게 수백대의 컴퓨터를 부려먹을까?
방법 ¶
- 클러스터를 만들어서 사용한다.
Cluster ¶
- 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 것
현대 컴퓨터의 다양한 한계 ¶
- Compute
- CPU
- Memory
- CPU
- Storage(size)
- Network/Storage I/O speed
- High Availability(HA)
사람 ¶
- 가장 간단
- 시급이 몇백원이라면...
Remote Shell ¶
- 원격 데스크톱
- 가장 쉽게 시도할수 있는 방법
- ansible
- fabric
- ansible
- 여러대의 computer에 같은 입력을 주는 것과 같다.
Hadoop ¶
- CPU와 Memory 의 한계를 뛰어넘기 위해서
- 모두 동일한 JAVA Application을 띄워놓고 같은 프로그램을 실행
- 같은 환경을 꾸며놔야 된다는 것은 여전하나 한번만 꾸며놓으면 새로운 프로그램을 실행하기 좋다.
- 같은 환경을 꾸며놔야 된다는 것은 여전하나 한번만 꾸며놓으면 새로운 프로그램을 실행하기 좋다.
- 유명한 Map/Reduce 논문의 구현체
- 하지만 제한적인 명령만 실행할 수 있다.
- 극복하는 방법이 나왔지만, 필요도 없고 잘하는 다른 것들이 있어서...
- 극복하는 방법이 나왔지만, 필요도 없고 잘하는 다른 것들이 있어서...
- HDFS
- 미리서부터 나누어 가지고 있어야한다.
- 미리서부터 나누어 가지고 있어야한다.
VM ¶
- High Availablity 가 목적 (물론 다른 것도 있지만)
- 같은 환경을 빨리 만들기 위해
- OS를 쉽게 설치하기 위해서
- 라이브러리를 모두 같게 만들기 귀찮다.
- OS를 쉽게 설치하기 위해서
- High Availability
- OS가 맛이 가서 죽으면
- OS가 맛이 가서 죽으면
- VMware, KVM, Xen
- 대클라우드 시대를 연 기술
- 만능일까?
- Network 구조가 유연해야지 VM을 쓸수 있다.
- VM의 성능이 어느 정도일까?
- Network 구조가 유연해야지 VM을 쓸수 있다.
docker(container) ¶
- VM 은 너무 느려
- linux 의 Container 기술을 이용한 것
- namespace
- resource(eth0, disk)의 permission 관리
- resource(eth0, disk)의 permission 관리
- cgroup
- CPU, Memory, I/O bandwidth 등 quota, limit
- CPU, Memory, I/O bandwidth 등 quota, limit
- overlay filesystem
- Image size 를 줄어 전송 시간도 줄인다.
- Image size 를 줄어 전송 시간도 줄인다.
- namespace
- 장점
- VM의 장점을 다 가진다.
- VM보다 훨씬 가볍고 빠르다.
- 제어하기가 훨씬 간편하다.
- VM의 장점을 다 가진다.
- 단점
- isolation이 조금 불안하다. (private에서는 큰 문제는 아니다.)
- Kernel의 최신기능이라 조심해서 써야 한다.
- 실제로 문제를 해결하는 것은 각자의 몫이다.
- 여전히 network 구조는 직접 설계해야 한다.
- isolation이 조금 불안하다. (private에서는 큰 문제는 아니다.)
- XaaS(X As A Service) 의 범람을 가져옴
openstack ¶
- 모든 문제를 해결하고자 나선 슈퍼히어로
- Openstack 자체는 일종의 interface의 역할
- 각각의 구현체는 각자가 알아서 조립해서 써야한다.
- 각각의 구현체는 각자가 알아서 조립해서 써야한다.
컴퓨터 부려먹는 방법 ¶
- 컴퓨터를 수백대 준비한다.
Cloud ¶
- 구름 저편에서 다 알아서 해주고 난 쓰기만 하는 것
- 버튼 한방이면 설치 설정 알아서 다 해주는 것