SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
코다임
개발팀장 남유석
youseok.nam@goorm.io
클라우드 코딩 서비스 구름에서의
DOCKER CONTAINER 활용 사례
http://goorm.io
contact@goorm.io
클라우드 SW교육 솔루션
클라우드 코딩 서비스
발표 순서
1.  What is the goorm?
2.  Why Docker?
3.  Docker in goorm
2
3
01 What is the goorm?
클라우드 코딩 서비스
먼저, 구름을 개발하고 있는 ㈜ 코다임을 소개 합니다.
TEACHING
LEARNINGDEVELOPING
Vision
은 클라우드 인프라에 대한 깊은 이해와, 웹 애플리케이션 개발에 대한 적지 않
은 노하우로 국내를 넘어서 글로벌 서비스를 표방하는 기술 기반 스타트업입니다.
사명의 의미는 CODE와 PARADIGM의 합성어로서, 누구든지 언제 어디서나 소프트웨어를
배우고 개발할 수 있도록 패러다임을 바꾸고자 하는 저희의 비전을 담고 있습니다.
codigm은 현재 언제 어디서나 SW를 배우고, 개발할 수 있도록 해주는 클라우드 코딩
서비스 브랜드인 구름(goorm)을 개발하고 서비스하고 있습니다.
SW
4
클라우드 코딩 서비스
Vision
TEACHING
LEARNINGDEVELOPING
SW
누구나 SW를 쉽게 개발할 수 있는 세상을 만듭니다.
이를 통해 SW가 만드는 더 나은 미래를 꿈꿉니다.
클라우드 코딩 서비스를 통해
“개발 환경 구축이라는 장벽을 낮추어
더 많은 사람들이 소프트웨어로
자신의 생각을 실현하도록 돕습니다.”
“소프트웨어 개발을 위한 인력 양성에
긍정적인 순환 구조를 제공하고자 합니다.”
클라우드 개발 환경을 통해 개발의 편의성과
최신 개발 도구에 대해 경험할 수 있습니다.
지난 3년간 대학의 프로그래밍 강의 도구로 활용되면서 SW교육을 위한 특화 기능을 지
속적으로 개발하여 교수자에게 많은 편리함을 제공하고 있습니다.
다양한 학습 방법과 언제 어디서나 사용할 수 있는 교육환경,
연속적인 개발은 학생들에게 많은 호응을 얻고 있습니다.
5
클라우드 코딩 서비스
PROBLEM
•  개발 환경 설치 세팅의 어려움 / 시간 낭비
•  학교(실습실) 외 공간에서 학습하기 어려움
•  다양한 협업 과제를 가능하게 해주는 솔루션
•  실제 SW개발까지 해볼 수 있는 수준의 솔루션
•  교육이 실무로 이어지는 솔루션
•  다양한 수준의 학생 개개인의 관리가 어려움
•  부족한 조교의 활용을 극대화 하는 솔루션
•  초등 – 대학까지 이어지는 단계적인 솔루션 부족
•  학교 단위의 소프트웨어 교육에 적합한 솔루션
•  컨텐츠 제작 및 활용을 손쉽게 해주는 솔루션
오늘날 소프트웨어 교육 환경의 한계
6
클라우드 코딩 서비스
PROBLEM
•  개발 환경 설치 세팅의 어려움 / 시간 낭비
•  학교(실습실) 외 공간에서 학습하기 어려움
•  다양한 협업 과제를 가능하게 해주는 솔루션
•  실제 SW개발까지 해볼 수 있는 수준의 솔루션
•  교육이 실무로 이어지는 솔루션
•  다양한 수준의 학생 개개인의 관리가 어려움
•  부족한 조교의 활용을 극대화 하는 솔루션
•  초등 – 대학까지 이어지는 단계적인 솔루션 부족
•  학교 단위의 소프트웨어 교육에 적합한 솔루션
•  컨텐츠 제작 및 활용을 손쉽게 해주는 솔루션
오늘날 소프트웨어 교육 환경의 한계
7
클라우드 코딩 서비스
Solution
언제 어디서나 프로그래밍을 배우고, 소프트웨어를 개발할 수 있는 클라우드 서비스와 함께
TEACHING,
LEARNING
CODING,
DEVELOPING
ANYTIME,
ANYWHERE
ANYONE
8
클라우드 코딩 서비스
Solution
언제 어디서나 프로그래밍을 배우고, 소프트웨어를 개발할 수 있는 클라우드 서비스와 함께
TEACHING,
LEARNING
CODING,
DEVELOPING
ANYTIME,
ANYWHERE
ANYONE
Docker Container 안에서 마음껏! 코딩하세요!
9
클라우드 코딩 서비스
Product
개인별 가상 머신 제공실시간 동시 편집 및 협업 기능 지원다양한 프로그래밍 언어 지원 온라인 실행 (컴파일/빌드/디버그)
goormIDEgoormEDU Cloud Integrated Development EnvironmentCloud Software Development Education Platform
TEACHING, LEARNING CODING, DEVELOPING
구름
10
클라우드 코딩 서비스
Product
개인별 가상 머신 제공실시간 동시 편집 및 협업 기능 지원다양한 프로그래밍 언어 지원 온라인 실행 (컴파일/빌드/디버그)
goormIDEgoormEDU Cloud Integrated Development EnvironmentCloud Software Development Education Platform
TEACHING, LEARNING CODING, DEVELOPING
구름
11
클라우드 코딩 서비스
Product
개인별 가상 머신 제공실시간 동시 편집 및 협업 기능 지원다양한 프로그래밍 언어 지원 온라인 실행 (컴파일/빌드/디버그)
goormIDEgoormEDU Cloud Integrated Development EnvironmentCloud Software Development Education Platform
TEACHING, LEARNING CODING, DEVELOPING
구름
12
클라우드 코딩 서비스
튜토리얼 기반 학습 서비스의 주요 특징
13
① 단계별 학습
실제로 코드를 작성해보면서 단계별로 학
습을 진행할 수 있습니다.
그림
② 다양한 인터랙션 방법
기본적으로 콘솔 입/출력을 지원할 뿐만 아
니라 캐릭터나 그래픽을 조작하면서 학습
할 수도 있습니다.
그림 그림
그림 그림
그림
그림
③ 다양한 프로그래밍 지원
네이티브 및 웹 개발 언어까지 다양한 언어
를 사용할 수 있고, 웹에서 코드 편집하는
것뿐만 아니라 실제로 실행하거나 실시간
린트 기능까지 지원합니다.
⑥ 자동 채점, 코드 분석
언어의 구분 없이 자동 채점을 지원하며,
제출된 코드들을 분석해주어 학생별 성취
도를 확인할 수 있습니다.
⑧ 다양한 기본 컨텐츠 제공
기존의 오프라인 강의안이나 도서들을 온
라인화시킨 기본 컨텐츠를 제공하여, 질높
은 SW교육 진행이 가능합니다.
④ 엔트리/Blockly 지원
프로그래밍 교육에 앞서 CT(Computatio
nal Thinking)도 진행할 수 있도록 엔트리
와 Blockly를 지원합니다.
⑦ 온라인 코딩 시험
튜토리얼 기반 학습은 온라인 코딩 시험 기
능을 제공할 수 있으므로, 중간고사, 기말
고사에 활용도 가능합니다.
⑤ 강의 작성 기능
온라인 튜토리얼들은 강의자가 직접 작성
하거나 기존 컨텐츠들을 수정하여 사용할
수도 있습니다.
그림
클라우드 코딩 서비스
기업
기관/학교
고객 & 파트너
14
클라우드 코딩 서비스
기업
기관/학교
고객 & 파트너
15
?!
클라우드 코딩 서비스
구름EDU: 튜토리얼 기반 학습 서비스의 기본 화면
16goorm CONFIDENTIAL
강의 내용 및 실습 내용
개념을 이해한 뒤에 실습을 진행할 수 있도
록 HTML / PDF / Slideshare.net / You
Tube 등의 다양한 형태의 강의 내용 전달
매체를 지원합니다.
소스 코드 작성, 콘솔, 파일 입/출력
컨테이너와 연결된 소스 코드 에디터로서 사용자 별로 독립적인 소스 코드
편집 및 실행을 할 수 있습니다. 콘솔의 경우 언어별 REPL 콘솔을 지원하
여 콘솔을 통한 상호작용도 가능합니다.
터미널 입/출력 결과
우측의 에디터에서 작성하여 실행한 코드의 결과는 표준 입
/출력으로 확인할 수 있습니다.
클라우드 코딩 서비스
강의 내용 및 실습 내용
개념을 이해한 뒤에 실습을 진행할 수 있도
록 HTML / PDF / Slideshare.net / You
Tube 등의 다양한 형태의 강의 내용 전달
매체를 지원합니다.
구름EDU: 튜토리얼 기반 학습 서비스의 기본 화면
17goorm CONFIDENTIAL
소스 코드 작성, 콘솔, 파일 입/출력
컨테이너와 연결된 소스 코드 에디터로서 사용자 별로 독립적인 소스 코드
편집 및 실행을 할 수 있습니다. 콘솔의 경우 언어별 REPL 콘솔을 지원하
여 콘솔을 통한 상호작용도 가능합니다.
터미널 입/출력 결과
우측의 에디터에서 작성하여 실행한 코드의 결과는 표준 입
/출력으로 확인할 수 있습니다.
클라우드 코딩 서비스
구름EDU: 튜토리얼 기반 학습 서비스의 기본 화면 (강의자 모드)
18goorm CONFIDENTIAL
내가 만든 과목 리스트
강의자는 여러 형태의 과목을 손쉽게 만들고, 관리할 수 있습니다.
클라우드 코딩 서비스
구름EDU: 튜토리얼 기반 학습 서비스의 기본 화면 (강의자 모드)
19goorm CONFIDENTIAL
강의 커리큘럼 관리
마치 블로그 글을 관리하듯, 책을 집필하듯 강의 커리큘럼을 구
성할 수 있습니다.
강의 구성 요소별 컨텐츠 관리
강의를 구성하는 각 요소들을 클릭하여 컨텐츠를 추가/편집할 수 있
습니다.
클라우드 코딩 서비스
구름EDU: 튜토리얼 기반 학습 서비스의 기본 화면 (강의자 모드)
20goorm CONFIDENTIAL
코딩 실습 내용 편집
코딩 문제 편집기를 통해, 기본으로 제공되는 코드 및 실습 내용, 정
상적으로 코딩을 진행했는 지를 확인할 수 있는 정답 코드를
손쉽게 추가/편집할 수 있습니다.
클라우드 코딩 서비스
IDE 서비스의 주요 특징
① 언제 어디서나
웹 브라우저만 있으면 언제 어디서나
연속성 있는 개발을 할 수 있습니다.
그림
② 일관된 개발환경
매번 새롭게 개발환경을 구축할 필요 없이
일관된 개발환경을 사용할 수 있습니다.
그림 그림
그림 그림
그림
그림
③ 다양한 프로그래밍 지원
네이티브 및 웹 개발 언어까지 다양한 언어
를 사용할 수 있고, 코드 편집/빌드/서버 실
행/실시간 린트 등을 지원합니다.
⑥ 온라인 편집/실시간 협업
별도의 에디터 설치 없이 웹에서 바로 코드
를 편집할 수 있고, 다른 팀원들과 함께 작
업할 수 있습니다.
⑧ 소스 코드 관리(GIT,SVN)
GIT과 SVN을 완벽하게 지원하며,
원클릭으로 저장소에 액세스하고,
작업 내용을 커밋할 수 있습니다.
④ 온라인 빌드/디버그/실행
별도의 빌드/디버깅 도구를 설치하지 않고,
웹에서 바로 빌드 및 디버깅할 수 있습니
다.
⑦ 협업 도구 제공
메신저 수준의 채팅 기능 뿐만 아니라
슬라이드, PDF 를 공유하여 프로젝트의
생산성을 높입니다.
⑤ 터미널 연결 기능
자신이 작업 중이던 개발 환경을
웹에서 바로 터미널로 연결하여
필요한 작업을 수행할 수 있습니다.
21
클라우드 코딩 서비스
구름IDE: 기본 화면
22goorm CONFIDENTIAL
좌측 레이아웃
- 프로젝트/클라우드
애플리케이션 개발에 관련된
모든 파일들을 프로젝트 단위로
관리하거나 클라우드 스토리지를 통
해 관리할 수 있습니다.
우측 레이아웃
- 채팅/문서뷰어/작업내역/아웃라인
우측 레이아웃을 통해 협업 개발자와 채팅을
하거나 문서 뷰어를 함께 보고 해당 소스 코드
의 변경 내역이나 전체 구조를 확인할 수 있습
니다.창 단위로 관리되는 워크스페이스
소스 코드 에디터나 터미널 등을 창 단위로 관리할 수 있는 워크스페이스가 제공
됩니다.
하단 레이아웃 – 디버그/터미널/검색/빌드 아웃풋
하단 레이아웃을 통해 디버그/터미널/검색/빌드 아웃풋에 대한
결과를 확인하고 상호작용할 수 있습니다.
기본 툴바
자주 사용하는 기능을 쉽게 선택할 수 있는 버튼들로 구성된 툴바
클라우드 코딩 서비스
우측 레이아웃
- 채팅/문서뷰어/작업내역/아웃라인
우측 레이아웃을 통해 협업 개발자와 채팅을
하거나 문서 뷰어를 함께 보고 해당 소스 코드
의 변경 내역이나 전체 구조를 확인할 수 있습
니다.창 단위로 관리되는 워크스페이스
소스 코드 에디터나 터미널 등을 창 단위로 관리할 수 있는 워크스페이스가 제공
됩니다.
기본 툴바
자주 사용하는 기능을 쉽게 선택할 수 있는 버튼들로 구성된 툴바
구름IDE: 기본 화면
23goorm CONFIDENTIAL
좌측 레이아웃
- 프로젝트/클라우드
애플리케이션 개발에 관련된
모든 파일들을 프로젝트 단위로
관리하거나 클라우드 스토리지를 통
해 관리할 수 있습니다.
하단 레이아웃 – 디버그/터미널/검색/빌드 아웃풋
하단 레이아웃을 통해 디버그/터미널/검색/빌드 아웃풋에 대한
결과를 확인하고 상호작용할 수 있습니다.
24
02 Why Docker?
클라우드 코딩 서비스
Origin of goorm
•  project.goorm
–  SINCE 2008 (나름 originality)
–  처음에는 OPEN SOURCE로 시작 (현재 버전은 코어 공개를 위해 준비 중에 있음)
–  IDE로서 갖춰야 할 기능에 집중
–  공모전 수상, 정부 과제를 통한 사업화 준비 (2009~2012)
–  그 사이 북미에서 비슷한 경쟁 서비스 등장 (2010~)
•  사업화? 사업 = 돈을 버는 일
–  고민 1 : 클라우드IDE를 사용하면 효과적인 곳이 어디일까?
•  당시 대학/대학원 재학생들로 구성되어 있었기 때문인지
자연스럽게 대학교 프로그래밍 실습 환경에
눈을 돌림
–  고민 2 : 클라우드IDE 서비스가 기존의 IDE와 경쟁하려면 무엇이 필요할까?
•  막강한 편집 기능, 네이티브에 버금가는 속도와 UI/UX
•  컴파일/빌드 뿐만 아니라 디버깅과 실행까지 가능한 독립된 개발 환경
클라우드 코딩 서비스
서비스로서의 독립된 개발 환경 제공에 대한 고민
•  하나 또는 여러 대의 머신을 공유해서 사용하려면?
–  DB를 이용한 사용자/프로젝트 구분
–  클러스터링을 통한 안정화
–  사용자를 위한 각자의 개발환경을 구성하여, 웹 터미널 제공
•  각자의 개발환경을 꾸밀 수 있도록
•  필요한 CLI 커맨드도 실행해 볼 수 있도록
•  각 사용자의 개발환경은 구체적으로 어떤 환경인가?
–  웹 터미널 내에서 자신의 환경과 프로젝트에 접근할 수 있어야 함
–  웹 터미널 내에서 다른 사용자의 환경이나 프로젝트에는 접근할 수 없어야 함
26
클라우드 코딩 서비스
사용자 별 개발 환경을 제공하기 위한 여정…
•  사용자를 위한 각자의 개발환경을 위한 서비스 모델은 어떻게 구성될 수 있을까?
–  DB 서버 + 1인 1서버 구조 è 가장 단순한 구조
•  1개의 서버에 서비스를 올려놓고, 온전히 그 서버는 한 명의 유저가 활용
•  관리의 어려움과 엄청난 유지 비용
•  클라우드를 쓰지 않고 데스크탑을 서버로 쓰던 시절이었기 때문에 사실상 구성이 불가능
–  DB 서버 + 1서버 (다수의 유저) 구조
•  결국 하나의 머신에서 다수의 유저가 각자의 개발환경을 가지게 해야 함
è 결국 하나의 머신 내에서 다수의 가상 머신을 고려할 수 밖에…
27
클라우드 코딩 서비스
사용자 별 개발 환경을 제공하기 위한 여정…
•  한 서버에서 어떻게 사용자를 위한 각자의 개발환경을 구성할 수 있을까?
–  각 유저만을 위한 시스템 유저를 생성
•  회원가입 시에 유저 아이디가 goorm이라면, 해당 서버에도 goorm이라는 시스템 유저를 생성
•  /home/goorm/을 유저 만의 개발 환경으로 연결
•  uid, gid가 있으므로, 다른 유저의 환경으로 접근 불가능
28
클라우드 코딩 서비스
테스트베드에서의 실제 사용과 문제점 파악
•  성균관대학교 C/C++실습 과목에 적용, 그 결과는?
–  서버 1개에 30 ~ 40명이 접속
–  동시에 회원가입, 프로젝트 생성, 빌드, 실행…
•  백엔드의 퍼포먼스가 낮아 느렸음 à 백엔드 최적화 필요
–  중요한 것은, 학생들이 돌리는 무한루프 프로그램이 서버 리소스를 잡아먹어,
서버가 다운되는 현상 발생
•  이를 위해 시스템 유저에 cgroup을 적용하여 cpu를 제한
•  실제로 서비스를 운영해보고 찾은 문제점과 피드백들
–  시스템 유저 관리 리스크
•  서비스는 root로 돌고, 사용자는 각자 Uid, gid를 가지고 있어, 서비스가 파일, 폴더 생성 시 사용자
의 uid,gid를 일일히 넣어줘야 함 (넣어주지 않으면 root로 생성되어, 사용자가 접근 불가능)
–  CPU 제한의 부작용
•  무한루프로 인한 서버 다운은 없어졌으나, java의 경우 빌드/실행에 대한 속도가 현저히 다운
–  Root 권한을 원하는 사용자들
29
클라우드 코딩 서비스
해결책#1 : LXC (Linux Containers)
•  문제점과 피드백을 해결하기 위하여 LXC를 도입
–  기존 가상화 기술에서는 Hypervisor (쉽게 VM웨어) 가 Host OS에서 돌면서, 게스트 OS를 올렸
음
–  LXC는 Hypervisor 없이 Host OS에서 “컨테이너”를 올렸음
•  LXC를 통해 다음과 같은 문제를 해결함
–  한 유저당 하나의 LXC 컨테이너를 제공하여 Root 권한 적용
–  시스템 유저 관리 리스크가 현저히 줄어듬
–  LXC 컨테이너 밑에서 사용자의 프로그램이 돌기 때문에, LXC 컨테이너에 리소스를 제한하여 무한
루프를 막음
•  이렇게 하여 완성된 goormIDE 1.5 스펙과 1차 오픈 베타 시작
–  LXC 도입을 통해 인프라 문제들을 해결
–  다만, LXC 자체 관리 리스크가 매우 컸음
•  LXC를 쉽게 사용할 수 있는 도구가 없어 일일히 shell 스크립트를 활용
•  Shell 스크립트 도중 에러가 나면, 모두 복구하고 다시 그 부분을 Full Cycle..
–  1차 오픈 베타를 통해, 인프라 안정성 확보가 가장 큰 우선순위로
•  AWS를 활용하게 된 계기
30
DOCKER!
클라우드 코딩 서비스
해결책#2: DOCKER
•  DOCKER의 특징
–  LXC의 특성을 그대로 담고 있음
–  높은 성능
–  관리를 도와주는 편리한 인터페이스
–  이식성이 좋다
•  이미지/컨테이너 기반이라, 이미지만 옮기면 원래 사용하던 컨테이너 그대로 사용 가능
–  자원 활용에 있어 효율적
32
33
03 Docker in goorm
클라우드 코딩 서비스
인프라 구조 – 이전 버전
34
클라우드 코딩 서비스
서비스 초기 Docker 사용 방법
•  초기 Docker 컨테이너 관리 정책
–  사용자가 여러 컨테이너를 가질 수 있도록
–  Docker 이미지를 활용하여 VM에 종속되지 않도록
–  S3를 도커 레파지토리로…
goorm
IDE
VM
VM
AWS S3
User Docker Image
Push/Pull
User Docker Container
Run/Commit
VM
35
클라우드 코딩 서비스
Editing History DB
인프라 구조 – 이전 버전
36
Amazon
EC2 Instance
FS Daemon
Project ABC
FS Daemon
Project ABC
Client (Web Browser)
HTML/CSS
Javascript
Web Socket
Client (Web Browser)
HTML/CSS
Javascript
Web Socket
Client (Web Browser)
HTML/CSS
Javascript
Web Socket
User 1
User 2
User 3
Collaborators
Amazon S3
Amazon
EC2 Instance
FS Daemon
Project XYZ
Docker Image
Docker Image
Docker Image
User 2’s Docker Image
User 1’s Docker Image
User 3’s Docker Image
Amazon
EC2 Instance
FS Proxy Server
Project XYZ
Project XYZ
Project ABC
Project ABC
Amazon
EC2 Instance
Project Manager
Server
Auto-Scaling
FileSystemMount
File Editing
File Editing
File Editing
A.js
A.js
X.c
Mongo DB
Project DB
Member DB
클라우드 코딩 서비스
클로즈 베타(2015.08~2015.10) 를 통한 문제점 인식
•  문제점 #1 - “로딩 속도”
–  사용자가 로그아웃 할 때마다 이미지에 Commit
•  이미지 크기가 한없이 커져, VM으로 이미지를 pull 받을 때 갈수록 다운로드 시간이 길어짐
•  이미지에 Commit 할 수 있는 횟수가 255번으로 정해져 있음
•  255번 이상 Commit된 이미지는 Container로 Run 할 수 없음
è  S3로부터 사용자의 도커 이미지를 가져오는 것이 너무 느리다.
è  S3로부터 프로젝트를 가져오는 것이 너무 느리다.
è  최초 접속 후 IDE 실행 속도 문제
–  결론: 실제 운영해보니, Cloud-backed Storage의 장점(비용) 대비 단점(속도)이 크다.
37
클라우드 코딩 서비스
클로즈 베타(2015.08~2015.10) 를 통한 문제점 인식
•  문제점 #2 – “비효율적인 공유”
–  실시간 협업을 위한 Proxy Storage Server 를 운영했었으나, Scaling의 어려움 발생
–  S3에 연결된 프로젝트 데이터의 Strong Consistency 에 대한 문제점 인식 è 연구적으로 접근 중
–  AUFS 등 도커의 특성들을 잘 활용하고 있지 못하다는 내부 의견
–  결론: 보안, 속도, 개발 편이성 측면에서 sshfs 만 사용하는 것이 가장 좋을 것으로 판단
38
클라우드 코딩 서비스
AWS S3
오픈 베타 (2015.11~) 를 위한 개선
Docker 이미지를 공유하는 방식 è
Docker 컨테이너에서 생성되는 aufs의 diff 파일/폴더들을 공유하는 방식
39
VM
Cached Ima
ge
접속
User Docker Co
ntainer
원본 Image
Diff File
AUFS
Diff File
VM
Cached Ima
ge
User Docker Co
ntainer
AUFS
Diff File
goorm
IDE
사용자
변경 사항
(프로젝트 코드, 직접 설
치/구성한 APP들)
이후 추가 접속
반영된 사용자
변경 사항
(프로젝트 코드, 직접 설
치/구성한 APP들)
클라우드 코딩 서비스
오픈 베타 (2015.11~) 를 위한 개선
•  기존 방식과의 차이점
–  기본이 되는 이미지 파일이 커질 필요가 없음
–  사용자가 고유의 Docker 이미지를 갖는 방식에서 전체적으로 사용되는 Docker 이미지 하나
만 쓰게 되므로 관리가 쉬워짐
–  AUFS의 DIFF 파일/폴더가 곧 실제 변경 내역이므로,
이미지에 Commit되는 크기보다 작음
–  이미지를 다운로드 받는 시간보다 DIFF 파일/폴더 공유 받는 시간이 훨씬 빨라,
퍼포먼스 향상
40
클라우드 코딩 서비스
최근 개편된 인프라 구조
41
S3는 Hibernated
사용자 도커 이미지
저장용도로
클라우드 코딩 서비스
Editing History DB
최근 개편된 인프라 구조
Amazon
EC2 Instance
FS Daemon
Project ABC
FS Daemon
Project ABC
Client (Web Browser)
HTML/CSS
Javascript
Web Socket
Client (Web Browser)
HTML/CSS
Javascript
Web Socket
Client (Web Browser)
HTML/CSS
Javascript
Web Socket
User 1
User 2
User 3
Collaborators
Amazon EBS
Amazon
EC2 Instance
FS Daemon
Project XYZ
Docker Image
Docker Image
Docker Image
Infra Agent
Amazon
EC2 Instance
Auto-Scaling
File Editing
File Editing
File Editing
A.js
A.js
X.c
Mongo DB
Project DB
Member DB
Live
Migration
User 2’s Root Volume
User 1’s Root Volume
User 3’s Root Volume
User 2’s Workspace Volume
User 1’s Workspace Volume
sshfs
root /
root /
root /
42
클라우드 코딩 서비스
개선 효과
•  “빨라진 로딩 속도”
–  S3를 사용하지 않고, EBS에 도커 이미지를 두고 관리
–  이전에 비해 3~4배 빨라진 최초 로딩 시간
–  프론트엔드 최적화와 함께 극적인 성능 향상 효과
•  “컨테이너 관리 효율성 향상”
–  기본 이미지를 두고, 사용자 전용 영역을 2가지 볼륨으로 만들어서 관리
–  도커 레파지토리 관리가 불필요하고, 전체적인 용량이 줄어드는 효과
–  호스트 머신 당 동시 동작할 수 있는 도커 개수가 늘어남
•  문제점
–  비용: S3에 비해 상대적으로 비싼 EBS
–  스케일링: 고정 용량으로 제공되는 EBS를 추가로 매니지해야 함
–  EFS가 해결책이 되줄 수 있을지도… (혹은 S3-based In-memory FS)
43
클라우드 코딩 서비스
DEMO?
http://goorm.io
44
클라우드 코딩 서비스
SUMMARY
•  goorm.io - 유저별로 독립된 개발 환경을 제공하기 위한 노력
–  리눅스 유저 그룹 à qemu à LXC à Docker 로 변화
–  변화의 과정 속에서 Docker는 너무나도 알맞은 타이밍에 등장
–  Docker 기반의 다양한 인프라를 구성해보는 시행착오
–  더 규모 있는 서비스를 운영해보지는 못했기 때문에 정확한 답을 찾기는 어려움
è 서비스를 발전시켜나가면서 더 빠르고 비용효율적인 운영 방안을 찾아가는 재미!
45
클라우드 코딩 서비스
SUMMARY
•  Future? è DevOps as a Service, Container as a Service
–  Docker를 단순히 개발환경으로만 제공하는 것이 아니라, PaaS 형태로 제공할 예정
•  Docker 컨테이너에 MySQL이나 mongoDB를 담아 제공
•  ECS, EFS
–  구름 서비스를 구성하는 각 컨테이너는 ECS를 활용하여 운영
•  서비스에 사용되는 모든 어플리케이션을 Docker 컨테이너 레벨로 묶을 예정
•  구름 서비스의 운영 및 배포가 쉽도록
–  사용자별 프로젝트 파일 시스템은 EFS 도입 고민?
46
클라우드 코딩 서비스
FUTURE?
47
DevOps as a Service – 편리하게 개발하고, 그 결과물을 손쉽게 배포하고 서비스로 운영하는 환경을 클라우드로 제공
서비스 목표
VM 성능 선택 소프트웨어 스택 선택 컨테이너 구성 및 저장컨테이너 성능 선택
게임 서버
쇼핑몰
개인 블로그
웹 서비스
모바일 앱
업무용 도구
SW교육
서비스
운영/관리
빌드/실행
테스트
협업 개발
ONE CLICK ONE CLICK ONE CLICK ONE CLICK
ONE CLICK
글로벌 클라우드 코딩 서비스를 향하여 노력하겠습니다.
감사합니다
http://codigm.com
contact@codigm.com
http://goorm.io
contact@goorm.io

Weitere ähnliche Inhalte

Was ist angesagt?

[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10![웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!Open Source Consulting
 
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교Amazon Web Services Korea
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017Amazon Web Services Korea
 
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdfssuserf8b8bd1
 
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라MinKyu Kim
 
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...Amazon Web Services Korea
 
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항rockplace
 
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...Amazon Web Services Korea
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해Terry Cho
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) Amazon Web Services Korea
 
REST API 설계
REST API 설계REST API 설계
REST API 설계Terry Cho
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드Opennaru, inc.
 
AWS Backup을 이용한 데이터베이스의 백업 자동화와 편리한 복구방법
AWS Backup을 이용한 데이터베이스의 백업 자동화와 편리한 복구방법AWS Backup을 이용한 데이터베이스의 백업 자동화와 편리한 복구방법
AWS Backup을 이용한 데이터베이스의 백업 자동화와 편리한 복구방법Amazon Web Services Korea
 
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다Arawn Park
 
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020AWSKRUG - AWS한국사용자모임
 
AWS Step Functionsを使ったバックアップシステム
AWS Step Functionsを使ったバックアップシステムAWS Step Functionsを使ったバックアップシステム
AWS Step Functionsを使ったバックアップシステムAkihiro Kamiyama
 
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링Amazon Web Services Korea
 
AWS App Runner를 활용한 컨테이너 서버리스 활용기
AWS App Runner를 활용한 컨테이너 서버리스 활용기AWS App Runner를 활용한 컨테이너 서버리스 활용기
AWS App Runner를 활용한 컨테이너 서버리스 활용기JinyoungKim52579
 

Was ist angesagt? (20)

[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10![웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
 
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
 
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
 
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
 
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
 
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
 
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
REST API 설계
REST API 설계REST API 설계
REST API 설계
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
 
AWS Backup을 이용한 데이터베이스의 백업 자동화와 편리한 복구방법
AWS Backup을 이용한 데이터베이스의 백업 자동화와 편리한 복구방법AWS Backup을 이용한 데이터베이스의 백업 자동화와 편리한 복구방법
AWS Backup을 이용한 데이터베이스의 백업 자동화와 편리한 복구방법
 
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
 
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
 
AWS Step Functionsを使ったバックアップシステム
AWS Step Functionsを使ったバックアップシステムAWS Step Functionsを使ったバックアップシステム
AWS Step Functionsを使ったバックアップシステム
 
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
 
AWS App Runner를 활용한 컨테이너 서버리스 활용기
AWS App Runner를 활용한 컨테이너 서버리스 활용기AWS App Runner를 활용한 컨테이너 서버리스 활용기
AWS App Runner를 활용한 컨테이너 서버리스 활용기
 

Ähnlich wie 도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day

[20140624]소개자료
[20140624]소개자료[20140624]소개자료
[20140624]소개자료유석 남
 
클라우드 IDE, 구름 프로젝트 | Devon 2012
클라우드 IDE, 구름 프로젝트 | Devon 2012클라우드 IDE, 구름 프로젝트 | Devon 2012
클라우드 IDE, 구름 프로젝트 | Devon 2012Daum DNA
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST_NHNent
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it goChris Ohk
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Sung-tae Ryu
 
구름 기본 소개자료
구름 기본 소개자료구름 기본 소개자료
구름 기본 소개자료웅식 전
 
델파이 소스코드의재발견
델파이 소스코드의재발견델파이 소스코드의재발견
델파이 소스코드의재발견Devgear
 
(Enterprise,RedHat) - SDC(IaaS) with SDS, Cloud References 2020-07 Samuel.pdf
(Enterprise,RedHat) - SDC(IaaS) with SDS, Cloud References 2020-07 Samuel.pdf(Enterprise,RedHat) - SDC(IaaS) with SDS, Cloud References 2020-07 Samuel.pdf
(Enterprise,RedHat) - SDC(IaaS) with SDS, Cloud References 2020-07 Samuel.pdfSAMUEL SJ Cheon
 
델파이XE2와 파이어몽키(FireMoneky)
델파이XE2와 파이어몽키(FireMoneky)델파이XE2와 파이어몽키(FireMoneky)
델파이XE2와 파이어몽키(FireMoneky)Devgear
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017devCAT Studio, NEXON
 
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetesNAVER D2
 
polyglot application development in the cloud
polyglot application development in the cloudpolyglot application development in the cloud
polyglot application development in the cloudMee Nam Lee
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기iFunFactory Inc.
 
[세미나] 20160520 Gradle
[세미나] 20160520 Gradle[세미나] 20160520 Gradle
[세미나] 20160520 GradleSanghoon Yoon
 
Social game and windows azure platform (final)
Social game and windows azure platform (final)Social game and windows azure platform (final)
Social game and windows azure platform (final)정현 남
 
지금 우리에게 필요한 것은
지금 우리에게 필요한 것은지금 우리에게 필요한 것은
지금 우리에게 필요한 것은현진 김
 
델파이 @22
델파이 @22델파이 @22
델파이 @22Devgear
 

Ähnlich wie 도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day (20)

[20140624]소개자료
[20140624]소개자료[20140624]소개자료
[20140624]소개자료
 
Goorm
GoormGoorm
Goorm
 
클라우드 IDE, 구름 프로젝트 | Devon 2012
클라우드 IDE, 구름 프로젝트 | Devon 2012클라우드 IDE, 구름 프로젝트 | Devon 2012
클라우드 IDE, 구름 프로젝트 | Devon 2012
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
 
Goorm소개
Goorm소개Goorm소개
Goorm소개
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망
 
구름 기본 소개자료
구름 기본 소개자료구름 기본 소개자료
구름 기본 소개자료
 
Docker Container
Docker ContainerDocker Container
Docker Container
 
델파이 소스코드의재발견
델파이 소스코드의재발견델파이 소스코드의재발견
델파이 소스코드의재발견
 
(Enterprise,RedHat) - SDC(IaaS) with SDS, Cloud References 2020-07 Samuel.pdf
(Enterprise,RedHat) - SDC(IaaS) with SDS, Cloud References 2020-07 Samuel.pdf(Enterprise,RedHat) - SDC(IaaS) with SDS, Cloud References 2020-07 Samuel.pdf
(Enterprise,RedHat) - SDC(IaaS) with SDS, Cloud References 2020-07 Samuel.pdf
 
델파이XE2와 파이어몽키(FireMoneky)
델파이XE2와 파이어몽키(FireMoneky)델파이XE2와 파이어몽키(FireMoneky)
델파이XE2와 파이어몽키(FireMoneky)
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
 
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
 
polyglot application development in the cloud
polyglot application development in the cloudpolyglot application development in the cloud
polyglot application development in the cloud
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 
[세미나] 20160520 Gradle
[세미나] 20160520 Gradle[세미나] 20160520 Gradle
[세미나] 20160520 Gradle
 
Social game and windows azure platform (final)
Social game and windows azure platform (final)Social game and windows azure platform (final)
Social game and windows azure platform (final)
 
지금 우리에게 필요한 것은
지금 우리에게 필요한 것은지금 우리에게 필요한 것은
지금 우리에게 필요한 것은
 
델파이 @22
델파이 @22델파이 @22
델파이 @22
 

Mehr von Amazon Web Services Korea

AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2Amazon Web Services Korea
 
AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1Amazon Web Services Korea
 
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...Amazon Web Services Korea
 
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon Web Services Korea
 
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Web Services Korea
 
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Amazon Web Services Korea
 
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...Amazon Web Services Korea
 
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Amazon Web Services Korea
 
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon Web Services Korea
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon Web Services Korea
 
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Amazon Web Services Korea
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Web Services Korea
 
From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...Amazon Web Services Korea
 
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...Amazon Web Services Korea
 
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...Amazon Web Services Korea
 
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...Amazon Web Services Korea
 
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...Amazon Web Services Korea
 
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...Amazon Web Services Korea
 
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...Amazon Web Services Korea
 
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...Amazon Web Services Korea
 

Mehr von Amazon Web Services Korea (20)

AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2
 
AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1
 
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
 
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
 
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
 
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
 
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
 
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
 
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
 
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
 
From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...
 
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
 
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
 
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
 
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
 
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
 
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
 
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
 

도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day

  • 1. 코다임 개발팀장 남유석 youseok.nam@goorm.io 클라우드 코딩 서비스 구름에서의 DOCKER CONTAINER 활용 사례 http://goorm.io contact@goorm.io 클라우드 SW교육 솔루션
  • 2. 클라우드 코딩 서비스 발표 순서 1.  What is the goorm? 2.  Why Docker? 3.  Docker in goorm 2
  • 3. 3 01 What is the goorm?
  • 4. 클라우드 코딩 서비스 먼저, 구름을 개발하고 있는 ㈜ 코다임을 소개 합니다. TEACHING LEARNINGDEVELOPING Vision 은 클라우드 인프라에 대한 깊은 이해와, 웹 애플리케이션 개발에 대한 적지 않 은 노하우로 국내를 넘어서 글로벌 서비스를 표방하는 기술 기반 스타트업입니다. 사명의 의미는 CODE와 PARADIGM의 합성어로서, 누구든지 언제 어디서나 소프트웨어를 배우고 개발할 수 있도록 패러다임을 바꾸고자 하는 저희의 비전을 담고 있습니다. codigm은 현재 언제 어디서나 SW를 배우고, 개발할 수 있도록 해주는 클라우드 코딩 서비스 브랜드인 구름(goorm)을 개발하고 서비스하고 있습니다. SW 4
  • 5. 클라우드 코딩 서비스 Vision TEACHING LEARNINGDEVELOPING SW 누구나 SW를 쉽게 개발할 수 있는 세상을 만듭니다. 이를 통해 SW가 만드는 더 나은 미래를 꿈꿉니다. 클라우드 코딩 서비스를 통해 “개발 환경 구축이라는 장벽을 낮추어 더 많은 사람들이 소프트웨어로 자신의 생각을 실현하도록 돕습니다.” “소프트웨어 개발을 위한 인력 양성에 긍정적인 순환 구조를 제공하고자 합니다.” 클라우드 개발 환경을 통해 개발의 편의성과 최신 개발 도구에 대해 경험할 수 있습니다. 지난 3년간 대학의 프로그래밍 강의 도구로 활용되면서 SW교육을 위한 특화 기능을 지 속적으로 개발하여 교수자에게 많은 편리함을 제공하고 있습니다. 다양한 학습 방법과 언제 어디서나 사용할 수 있는 교육환경, 연속적인 개발은 학생들에게 많은 호응을 얻고 있습니다. 5
  • 6. 클라우드 코딩 서비스 PROBLEM •  개발 환경 설치 세팅의 어려움 / 시간 낭비 •  학교(실습실) 외 공간에서 학습하기 어려움 •  다양한 협업 과제를 가능하게 해주는 솔루션 •  실제 SW개발까지 해볼 수 있는 수준의 솔루션 •  교육이 실무로 이어지는 솔루션 •  다양한 수준의 학생 개개인의 관리가 어려움 •  부족한 조교의 활용을 극대화 하는 솔루션 •  초등 – 대학까지 이어지는 단계적인 솔루션 부족 •  학교 단위의 소프트웨어 교육에 적합한 솔루션 •  컨텐츠 제작 및 활용을 손쉽게 해주는 솔루션 오늘날 소프트웨어 교육 환경의 한계 6
  • 7. 클라우드 코딩 서비스 PROBLEM •  개발 환경 설치 세팅의 어려움 / 시간 낭비 •  학교(실습실) 외 공간에서 학습하기 어려움 •  다양한 협업 과제를 가능하게 해주는 솔루션 •  실제 SW개발까지 해볼 수 있는 수준의 솔루션 •  교육이 실무로 이어지는 솔루션 •  다양한 수준의 학생 개개인의 관리가 어려움 •  부족한 조교의 활용을 극대화 하는 솔루션 •  초등 – 대학까지 이어지는 단계적인 솔루션 부족 •  학교 단위의 소프트웨어 교육에 적합한 솔루션 •  컨텐츠 제작 및 활용을 손쉽게 해주는 솔루션 오늘날 소프트웨어 교육 환경의 한계 7
  • 8. 클라우드 코딩 서비스 Solution 언제 어디서나 프로그래밍을 배우고, 소프트웨어를 개발할 수 있는 클라우드 서비스와 함께 TEACHING, LEARNING CODING, DEVELOPING ANYTIME, ANYWHERE ANYONE 8
  • 9. 클라우드 코딩 서비스 Solution 언제 어디서나 프로그래밍을 배우고, 소프트웨어를 개발할 수 있는 클라우드 서비스와 함께 TEACHING, LEARNING CODING, DEVELOPING ANYTIME, ANYWHERE ANYONE Docker Container 안에서 마음껏! 코딩하세요! 9
  • 10. 클라우드 코딩 서비스 Product 개인별 가상 머신 제공실시간 동시 편집 및 협업 기능 지원다양한 프로그래밍 언어 지원 온라인 실행 (컴파일/빌드/디버그) goormIDEgoormEDU Cloud Integrated Development EnvironmentCloud Software Development Education Platform TEACHING, LEARNING CODING, DEVELOPING 구름 10
  • 11. 클라우드 코딩 서비스 Product 개인별 가상 머신 제공실시간 동시 편집 및 협업 기능 지원다양한 프로그래밍 언어 지원 온라인 실행 (컴파일/빌드/디버그) goormIDEgoormEDU Cloud Integrated Development EnvironmentCloud Software Development Education Platform TEACHING, LEARNING CODING, DEVELOPING 구름 11
  • 12. 클라우드 코딩 서비스 Product 개인별 가상 머신 제공실시간 동시 편집 및 협업 기능 지원다양한 프로그래밍 언어 지원 온라인 실행 (컴파일/빌드/디버그) goormIDEgoormEDU Cloud Integrated Development EnvironmentCloud Software Development Education Platform TEACHING, LEARNING CODING, DEVELOPING 구름 12
  • 13. 클라우드 코딩 서비스 튜토리얼 기반 학습 서비스의 주요 특징 13 ① 단계별 학습 실제로 코드를 작성해보면서 단계별로 학 습을 진행할 수 있습니다. 그림 ② 다양한 인터랙션 방법 기본적으로 콘솔 입/출력을 지원할 뿐만 아 니라 캐릭터나 그래픽을 조작하면서 학습 할 수도 있습니다. 그림 그림 그림 그림 그림 그림 ③ 다양한 프로그래밍 지원 네이티브 및 웹 개발 언어까지 다양한 언어 를 사용할 수 있고, 웹에서 코드 편집하는 것뿐만 아니라 실제로 실행하거나 실시간 린트 기능까지 지원합니다. ⑥ 자동 채점, 코드 분석 언어의 구분 없이 자동 채점을 지원하며, 제출된 코드들을 분석해주어 학생별 성취 도를 확인할 수 있습니다. ⑧ 다양한 기본 컨텐츠 제공 기존의 오프라인 강의안이나 도서들을 온 라인화시킨 기본 컨텐츠를 제공하여, 질높 은 SW교육 진행이 가능합니다. ④ 엔트리/Blockly 지원 프로그래밍 교육에 앞서 CT(Computatio nal Thinking)도 진행할 수 있도록 엔트리 와 Blockly를 지원합니다. ⑦ 온라인 코딩 시험 튜토리얼 기반 학습은 온라인 코딩 시험 기 능을 제공할 수 있으므로, 중간고사, 기말 고사에 활용도 가능합니다. ⑤ 강의 작성 기능 온라인 튜토리얼들은 강의자가 직접 작성 하거나 기존 컨텐츠들을 수정하여 사용할 수도 있습니다. 그림
  • 16. 클라우드 코딩 서비스 구름EDU: 튜토리얼 기반 학습 서비스의 기본 화면 16goorm CONFIDENTIAL 강의 내용 및 실습 내용 개념을 이해한 뒤에 실습을 진행할 수 있도 록 HTML / PDF / Slideshare.net / You Tube 등의 다양한 형태의 강의 내용 전달 매체를 지원합니다. 소스 코드 작성, 콘솔, 파일 입/출력 컨테이너와 연결된 소스 코드 에디터로서 사용자 별로 독립적인 소스 코드 편집 및 실행을 할 수 있습니다. 콘솔의 경우 언어별 REPL 콘솔을 지원하 여 콘솔을 통한 상호작용도 가능합니다. 터미널 입/출력 결과 우측의 에디터에서 작성하여 실행한 코드의 결과는 표준 입 /출력으로 확인할 수 있습니다.
  • 17. 클라우드 코딩 서비스 강의 내용 및 실습 내용 개념을 이해한 뒤에 실습을 진행할 수 있도 록 HTML / PDF / Slideshare.net / You Tube 등의 다양한 형태의 강의 내용 전달 매체를 지원합니다. 구름EDU: 튜토리얼 기반 학습 서비스의 기본 화면 17goorm CONFIDENTIAL 소스 코드 작성, 콘솔, 파일 입/출력 컨테이너와 연결된 소스 코드 에디터로서 사용자 별로 독립적인 소스 코드 편집 및 실행을 할 수 있습니다. 콘솔의 경우 언어별 REPL 콘솔을 지원하 여 콘솔을 통한 상호작용도 가능합니다. 터미널 입/출력 결과 우측의 에디터에서 작성하여 실행한 코드의 결과는 표준 입 /출력으로 확인할 수 있습니다.
  • 18. 클라우드 코딩 서비스 구름EDU: 튜토리얼 기반 학습 서비스의 기본 화면 (강의자 모드) 18goorm CONFIDENTIAL 내가 만든 과목 리스트 강의자는 여러 형태의 과목을 손쉽게 만들고, 관리할 수 있습니다.
  • 19. 클라우드 코딩 서비스 구름EDU: 튜토리얼 기반 학습 서비스의 기본 화면 (강의자 모드) 19goorm CONFIDENTIAL 강의 커리큘럼 관리 마치 블로그 글을 관리하듯, 책을 집필하듯 강의 커리큘럼을 구 성할 수 있습니다. 강의 구성 요소별 컨텐츠 관리 강의를 구성하는 각 요소들을 클릭하여 컨텐츠를 추가/편집할 수 있 습니다.
  • 20. 클라우드 코딩 서비스 구름EDU: 튜토리얼 기반 학습 서비스의 기본 화면 (강의자 모드) 20goorm CONFIDENTIAL 코딩 실습 내용 편집 코딩 문제 편집기를 통해, 기본으로 제공되는 코드 및 실습 내용, 정 상적으로 코딩을 진행했는 지를 확인할 수 있는 정답 코드를 손쉽게 추가/편집할 수 있습니다.
  • 21. 클라우드 코딩 서비스 IDE 서비스의 주요 특징 ① 언제 어디서나 웹 브라우저만 있으면 언제 어디서나 연속성 있는 개발을 할 수 있습니다. 그림 ② 일관된 개발환경 매번 새롭게 개발환경을 구축할 필요 없이 일관된 개발환경을 사용할 수 있습니다. 그림 그림 그림 그림 그림 그림 ③ 다양한 프로그래밍 지원 네이티브 및 웹 개발 언어까지 다양한 언어 를 사용할 수 있고, 코드 편집/빌드/서버 실 행/실시간 린트 등을 지원합니다. ⑥ 온라인 편집/실시간 협업 별도의 에디터 설치 없이 웹에서 바로 코드 를 편집할 수 있고, 다른 팀원들과 함께 작 업할 수 있습니다. ⑧ 소스 코드 관리(GIT,SVN) GIT과 SVN을 완벽하게 지원하며, 원클릭으로 저장소에 액세스하고, 작업 내용을 커밋할 수 있습니다. ④ 온라인 빌드/디버그/실행 별도의 빌드/디버깅 도구를 설치하지 않고, 웹에서 바로 빌드 및 디버깅할 수 있습니 다. ⑦ 협업 도구 제공 메신저 수준의 채팅 기능 뿐만 아니라 슬라이드, PDF 를 공유하여 프로젝트의 생산성을 높입니다. ⑤ 터미널 연결 기능 자신이 작업 중이던 개발 환경을 웹에서 바로 터미널로 연결하여 필요한 작업을 수행할 수 있습니다. 21
  • 22. 클라우드 코딩 서비스 구름IDE: 기본 화면 22goorm CONFIDENTIAL 좌측 레이아웃 - 프로젝트/클라우드 애플리케이션 개발에 관련된 모든 파일들을 프로젝트 단위로 관리하거나 클라우드 스토리지를 통 해 관리할 수 있습니다. 우측 레이아웃 - 채팅/문서뷰어/작업내역/아웃라인 우측 레이아웃을 통해 협업 개발자와 채팅을 하거나 문서 뷰어를 함께 보고 해당 소스 코드 의 변경 내역이나 전체 구조를 확인할 수 있습 니다.창 단위로 관리되는 워크스페이스 소스 코드 에디터나 터미널 등을 창 단위로 관리할 수 있는 워크스페이스가 제공 됩니다. 하단 레이아웃 – 디버그/터미널/검색/빌드 아웃풋 하단 레이아웃을 통해 디버그/터미널/검색/빌드 아웃풋에 대한 결과를 확인하고 상호작용할 수 있습니다. 기본 툴바 자주 사용하는 기능을 쉽게 선택할 수 있는 버튼들로 구성된 툴바
  • 23. 클라우드 코딩 서비스 우측 레이아웃 - 채팅/문서뷰어/작업내역/아웃라인 우측 레이아웃을 통해 협업 개발자와 채팅을 하거나 문서 뷰어를 함께 보고 해당 소스 코드 의 변경 내역이나 전체 구조를 확인할 수 있습 니다.창 단위로 관리되는 워크스페이스 소스 코드 에디터나 터미널 등을 창 단위로 관리할 수 있는 워크스페이스가 제공 됩니다. 기본 툴바 자주 사용하는 기능을 쉽게 선택할 수 있는 버튼들로 구성된 툴바 구름IDE: 기본 화면 23goorm CONFIDENTIAL 좌측 레이아웃 - 프로젝트/클라우드 애플리케이션 개발에 관련된 모든 파일들을 프로젝트 단위로 관리하거나 클라우드 스토리지를 통 해 관리할 수 있습니다. 하단 레이아웃 – 디버그/터미널/검색/빌드 아웃풋 하단 레이아웃을 통해 디버그/터미널/검색/빌드 아웃풋에 대한 결과를 확인하고 상호작용할 수 있습니다.
  • 25. 클라우드 코딩 서비스 Origin of goorm •  project.goorm –  SINCE 2008 (나름 originality) –  처음에는 OPEN SOURCE로 시작 (현재 버전은 코어 공개를 위해 준비 중에 있음) –  IDE로서 갖춰야 할 기능에 집중 –  공모전 수상, 정부 과제를 통한 사업화 준비 (2009~2012) –  그 사이 북미에서 비슷한 경쟁 서비스 등장 (2010~) •  사업화? 사업 = 돈을 버는 일 –  고민 1 : 클라우드IDE를 사용하면 효과적인 곳이 어디일까? •  당시 대학/대학원 재학생들로 구성되어 있었기 때문인지 자연스럽게 대학교 프로그래밍 실습 환경에 눈을 돌림 –  고민 2 : 클라우드IDE 서비스가 기존의 IDE와 경쟁하려면 무엇이 필요할까? •  막강한 편집 기능, 네이티브에 버금가는 속도와 UI/UX •  컴파일/빌드 뿐만 아니라 디버깅과 실행까지 가능한 독립된 개발 환경
  • 26. 클라우드 코딩 서비스 서비스로서의 독립된 개발 환경 제공에 대한 고민 •  하나 또는 여러 대의 머신을 공유해서 사용하려면? –  DB를 이용한 사용자/프로젝트 구분 –  클러스터링을 통한 안정화 –  사용자를 위한 각자의 개발환경을 구성하여, 웹 터미널 제공 •  각자의 개발환경을 꾸밀 수 있도록 •  필요한 CLI 커맨드도 실행해 볼 수 있도록 •  각 사용자의 개발환경은 구체적으로 어떤 환경인가? –  웹 터미널 내에서 자신의 환경과 프로젝트에 접근할 수 있어야 함 –  웹 터미널 내에서 다른 사용자의 환경이나 프로젝트에는 접근할 수 없어야 함 26
  • 27. 클라우드 코딩 서비스 사용자 별 개발 환경을 제공하기 위한 여정… •  사용자를 위한 각자의 개발환경을 위한 서비스 모델은 어떻게 구성될 수 있을까? –  DB 서버 + 1인 1서버 구조 è 가장 단순한 구조 •  1개의 서버에 서비스를 올려놓고, 온전히 그 서버는 한 명의 유저가 활용 •  관리의 어려움과 엄청난 유지 비용 •  클라우드를 쓰지 않고 데스크탑을 서버로 쓰던 시절이었기 때문에 사실상 구성이 불가능 –  DB 서버 + 1서버 (다수의 유저) 구조 •  결국 하나의 머신에서 다수의 유저가 각자의 개발환경을 가지게 해야 함 è 결국 하나의 머신 내에서 다수의 가상 머신을 고려할 수 밖에… 27
  • 28. 클라우드 코딩 서비스 사용자 별 개발 환경을 제공하기 위한 여정… •  한 서버에서 어떻게 사용자를 위한 각자의 개발환경을 구성할 수 있을까? –  각 유저만을 위한 시스템 유저를 생성 •  회원가입 시에 유저 아이디가 goorm이라면, 해당 서버에도 goorm이라는 시스템 유저를 생성 •  /home/goorm/을 유저 만의 개발 환경으로 연결 •  uid, gid가 있으므로, 다른 유저의 환경으로 접근 불가능 28
  • 29. 클라우드 코딩 서비스 테스트베드에서의 실제 사용과 문제점 파악 •  성균관대학교 C/C++실습 과목에 적용, 그 결과는? –  서버 1개에 30 ~ 40명이 접속 –  동시에 회원가입, 프로젝트 생성, 빌드, 실행… •  백엔드의 퍼포먼스가 낮아 느렸음 à 백엔드 최적화 필요 –  중요한 것은, 학생들이 돌리는 무한루프 프로그램이 서버 리소스를 잡아먹어, 서버가 다운되는 현상 발생 •  이를 위해 시스템 유저에 cgroup을 적용하여 cpu를 제한 •  실제로 서비스를 운영해보고 찾은 문제점과 피드백들 –  시스템 유저 관리 리스크 •  서비스는 root로 돌고, 사용자는 각자 Uid, gid를 가지고 있어, 서비스가 파일, 폴더 생성 시 사용자 의 uid,gid를 일일히 넣어줘야 함 (넣어주지 않으면 root로 생성되어, 사용자가 접근 불가능) –  CPU 제한의 부작용 •  무한루프로 인한 서버 다운은 없어졌으나, java의 경우 빌드/실행에 대한 속도가 현저히 다운 –  Root 권한을 원하는 사용자들 29
  • 30. 클라우드 코딩 서비스 해결책#1 : LXC (Linux Containers) •  문제점과 피드백을 해결하기 위하여 LXC를 도입 –  기존 가상화 기술에서는 Hypervisor (쉽게 VM웨어) 가 Host OS에서 돌면서, 게스트 OS를 올렸 음 –  LXC는 Hypervisor 없이 Host OS에서 “컨테이너”를 올렸음 •  LXC를 통해 다음과 같은 문제를 해결함 –  한 유저당 하나의 LXC 컨테이너를 제공하여 Root 권한 적용 –  시스템 유저 관리 리스크가 현저히 줄어듬 –  LXC 컨테이너 밑에서 사용자의 프로그램이 돌기 때문에, LXC 컨테이너에 리소스를 제한하여 무한 루프를 막음 •  이렇게 하여 완성된 goormIDE 1.5 스펙과 1차 오픈 베타 시작 –  LXC 도입을 통해 인프라 문제들을 해결 –  다만, LXC 자체 관리 리스크가 매우 컸음 •  LXC를 쉽게 사용할 수 있는 도구가 없어 일일히 shell 스크립트를 활용 •  Shell 스크립트 도중 에러가 나면, 모두 복구하고 다시 그 부분을 Full Cycle.. –  1차 오픈 베타를 통해, 인프라 안정성 확보가 가장 큰 우선순위로 •  AWS를 활용하게 된 계기 30
  • 32. 클라우드 코딩 서비스 해결책#2: DOCKER •  DOCKER의 특징 –  LXC의 특성을 그대로 담고 있음 –  높은 성능 –  관리를 도와주는 편리한 인터페이스 –  이식성이 좋다 •  이미지/컨테이너 기반이라, 이미지만 옮기면 원래 사용하던 컨테이너 그대로 사용 가능 –  자원 활용에 있어 효율적 32
  • 34. 클라우드 코딩 서비스 인프라 구조 – 이전 버전 34
  • 35. 클라우드 코딩 서비스 서비스 초기 Docker 사용 방법 •  초기 Docker 컨테이너 관리 정책 –  사용자가 여러 컨테이너를 가질 수 있도록 –  Docker 이미지를 활용하여 VM에 종속되지 않도록 –  S3를 도커 레파지토리로… goorm IDE VM VM AWS S3 User Docker Image Push/Pull User Docker Container Run/Commit VM 35
  • 36. 클라우드 코딩 서비스 Editing History DB 인프라 구조 – 이전 버전 36 Amazon EC2 Instance FS Daemon Project ABC FS Daemon Project ABC Client (Web Browser) HTML/CSS Javascript Web Socket Client (Web Browser) HTML/CSS Javascript Web Socket Client (Web Browser) HTML/CSS Javascript Web Socket User 1 User 2 User 3 Collaborators Amazon S3 Amazon EC2 Instance FS Daemon Project XYZ Docker Image Docker Image Docker Image User 2’s Docker Image User 1’s Docker Image User 3’s Docker Image Amazon EC2 Instance FS Proxy Server Project XYZ Project XYZ Project ABC Project ABC Amazon EC2 Instance Project Manager Server Auto-Scaling FileSystemMount File Editing File Editing File Editing A.js A.js X.c Mongo DB Project DB Member DB
  • 37. 클라우드 코딩 서비스 클로즈 베타(2015.08~2015.10) 를 통한 문제점 인식 •  문제점 #1 - “로딩 속도” –  사용자가 로그아웃 할 때마다 이미지에 Commit •  이미지 크기가 한없이 커져, VM으로 이미지를 pull 받을 때 갈수록 다운로드 시간이 길어짐 •  이미지에 Commit 할 수 있는 횟수가 255번으로 정해져 있음 •  255번 이상 Commit된 이미지는 Container로 Run 할 수 없음 è  S3로부터 사용자의 도커 이미지를 가져오는 것이 너무 느리다. è  S3로부터 프로젝트를 가져오는 것이 너무 느리다. è  최초 접속 후 IDE 실행 속도 문제 –  결론: 실제 운영해보니, Cloud-backed Storage의 장점(비용) 대비 단점(속도)이 크다. 37
  • 38. 클라우드 코딩 서비스 클로즈 베타(2015.08~2015.10) 를 통한 문제점 인식 •  문제점 #2 – “비효율적인 공유” –  실시간 협업을 위한 Proxy Storage Server 를 운영했었으나, Scaling의 어려움 발생 –  S3에 연결된 프로젝트 데이터의 Strong Consistency 에 대한 문제점 인식 è 연구적으로 접근 중 –  AUFS 등 도커의 특성들을 잘 활용하고 있지 못하다는 내부 의견 –  결론: 보안, 속도, 개발 편이성 측면에서 sshfs 만 사용하는 것이 가장 좋을 것으로 판단 38
  • 39. 클라우드 코딩 서비스 AWS S3 오픈 베타 (2015.11~) 를 위한 개선 Docker 이미지를 공유하는 방식 è Docker 컨테이너에서 생성되는 aufs의 diff 파일/폴더들을 공유하는 방식 39 VM Cached Ima ge 접속 User Docker Co ntainer 원본 Image Diff File AUFS Diff File VM Cached Ima ge User Docker Co ntainer AUFS Diff File goorm IDE 사용자 변경 사항 (프로젝트 코드, 직접 설 치/구성한 APP들) 이후 추가 접속 반영된 사용자 변경 사항 (프로젝트 코드, 직접 설 치/구성한 APP들)
  • 40. 클라우드 코딩 서비스 오픈 베타 (2015.11~) 를 위한 개선 •  기존 방식과의 차이점 –  기본이 되는 이미지 파일이 커질 필요가 없음 –  사용자가 고유의 Docker 이미지를 갖는 방식에서 전체적으로 사용되는 Docker 이미지 하나 만 쓰게 되므로 관리가 쉬워짐 –  AUFS의 DIFF 파일/폴더가 곧 실제 변경 내역이므로, 이미지에 Commit되는 크기보다 작음 –  이미지를 다운로드 받는 시간보다 DIFF 파일/폴더 공유 받는 시간이 훨씬 빨라, 퍼포먼스 향상 40
  • 41. 클라우드 코딩 서비스 최근 개편된 인프라 구조 41 S3는 Hibernated 사용자 도커 이미지 저장용도로
  • 42. 클라우드 코딩 서비스 Editing History DB 최근 개편된 인프라 구조 Amazon EC2 Instance FS Daemon Project ABC FS Daemon Project ABC Client (Web Browser) HTML/CSS Javascript Web Socket Client (Web Browser) HTML/CSS Javascript Web Socket Client (Web Browser) HTML/CSS Javascript Web Socket User 1 User 2 User 3 Collaborators Amazon EBS Amazon EC2 Instance FS Daemon Project XYZ Docker Image Docker Image Docker Image Infra Agent Amazon EC2 Instance Auto-Scaling File Editing File Editing File Editing A.js A.js X.c Mongo DB Project DB Member DB Live Migration User 2’s Root Volume User 1’s Root Volume User 3’s Root Volume User 2’s Workspace Volume User 1’s Workspace Volume sshfs root / root / root / 42
  • 43. 클라우드 코딩 서비스 개선 효과 •  “빨라진 로딩 속도” –  S3를 사용하지 않고, EBS에 도커 이미지를 두고 관리 –  이전에 비해 3~4배 빨라진 최초 로딩 시간 –  프론트엔드 최적화와 함께 극적인 성능 향상 효과 •  “컨테이너 관리 효율성 향상” –  기본 이미지를 두고, 사용자 전용 영역을 2가지 볼륨으로 만들어서 관리 –  도커 레파지토리 관리가 불필요하고, 전체적인 용량이 줄어드는 효과 –  호스트 머신 당 동시 동작할 수 있는 도커 개수가 늘어남 •  문제점 –  비용: S3에 비해 상대적으로 비싼 EBS –  스케일링: 고정 용량으로 제공되는 EBS를 추가로 매니지해야 함 –  EFS가 해결책이 되줄 수 있을지도… (혹은 S3-based In-memory FS) 43
  • 45. 클라우드 코딩 서비스 SUMMARY •  goorm.io - 유저별로 독립된 개발 환경을 제공하기 위한 노력 –  리눅스 유저 그룹 à qemu à LXC à Docker 로 변화 –  변화의 과정 속에서 Docker는 너무나도 알맞은 타이밍에 등장 –  Docker 기반의 다양한 인프라를 구성해보는 시행착오 –  더 규모 있는 서비스를 운영해보지는 못했기 때문에 정확한 답을 찾기는 어려움 è 서비스를 발전시켜나가면서 더 빠르고 비용효율적인 운영 방안을 찾아가는 재미! 45
  • 46. 클라우드 코딩 서비스 SUMMARY •  Future? è DevOps as a Service, Container as a Service –  Docker를 단순히 개발환경으로만 제공하는 것이 아니라, PaaS 형태로 제공할 예정 •  Docker 컨테이너에 MySQL이나 mongoDB를 담아 제공 •  ECS, EFS –  구름 서비스를 구성하는 각 컨테이너는 ECS를 활용하여 운영 •  서비스에 사용되는 모든 어플리케이션을 Docker 컨테이너 레벨로 묶을 예정 •  구름 서비스의 운영 및 배포가 쉽도록 –  사용자별 프로젝트 파일 시스템은 EFS 도입 고민? 46
  • 47. 클라우드 코딩 서비스 FUTURE? 47 DevOps as a Service – 편리하게 개발하고, 그 결과물을 손쉽게 배포하고 서비스로 운영하는 환경을 클라우드로 제공 서비스 목표 VM 성능 선택 소프트웨어 스택 선택 컨테이너 구성 및 저장컨테이너 성능 선택 게임 서버 쇼핑몰 개인 블로그 웹 서비스 모바일 앱 업무용 도구 SW교육 서비스 운영/관리 빌드/실행 테스트 협업 개발 ONE CLICK ONE CLICK ONE CLICK ONE CLICK ONE CLICK
  • 48. 글로벌 클라우드 코딩 서비스를 향하여 노력하겠습니다. 감사합니다 http://codigm.com contact@codigm.com http://goorm.io contact@goorm.io