34
devpack 소개 및 시연 2017-01-13 김정민

devpack 소개 및 시연

Embed Size (px)

Citation preview

devpack 소개 및 시연

2017-01-13 김정민

딜레마?

2

불치하문 과도한 질문은 감사합니다! 언제든지 질문해주세요…

발표자는?

3

• kt ds Cloud사업팀 김정민

• IaaS / PaaS 엔지니어

• Cloud 관리/자동화 기능 개발자

• 좋아하는 것: IT, 개발, 클라우드, 위키

• http://github.com/jmnote

└ 별거 없음… ★ 최대 3개

( ucloud biz, devpack )

4

차례 1. PaaS

2. devpack 시연

3. devpack 개요

4. 부가서비스 및 요금

5. devpack redis 시연

5

1. PaaS 이번 장에서는 devpack보다는 PaaS에 집중

6

PaaS platform as a service

개발플랫폼을 제공하는 Cloud 서비스 └ 실행 런타임, 웹서버, 개발도구

개발을 위한 플랫폼을 구축할 필요 없이, 필요한 개발요소들을 웹에서 쉽게 빌려 쓸 수 있게 하는 모델 – 위키백과 탄력적인 Cloud 환경에서 애플리케이션 스택의 호스팅, 구성, 배포 · 관리를 자동화하는 클라우드 애플리케이션 플랫폼 - 레드햇

개발자 컴퓨터에서 개발 Application 배포 및 실행 서비스 제공

FTP로 소스코드 업로드하여 사용하는 웹호스팅과는 무엇이 어떻게 다를까?

7

PaaS 개발자 맞춤형 Cloud

PaaS는 주로 IaaS 위에 구축됨

∵ PaaS에 필요한 인프라를 간편하게 증설하기 위해

∴ 2중 Layer – IaaS(OS머신 가상화) 위에 PaaS(컨테이너)

• 솔루션: Cloud Foundry, OpenShift 등

• 서비스: devpack, PWS, Bluemix, ElasticBeanstalk, GAE 등

소스코드 배포/실행 환경을 별도 구성없이 즉시 제공하는 서비스

대략 유연하고 탄력적인 WAS를 제공하는 Cloud 서비스

미들웨어, 프레임워크를 유연하게 배포 가능

웹서버, 패키지 구성을 소스코드처럼 관리, 간편 scale out, 로드밸런서 포함 ★

└정확히는 컨테이너 + α

IaaS vs PaaS

8

개발자는 Application 요리에 집중하고 싶다…

대자연 캠핑장 글램핑 호텔

SaaS가 더 좋은 거 아닌가?

데크

텐트

음식

IaaS vs PaaS

9

서버 확장

IaaS

VM 확장 증설 Container 확장

운영서버구성

사용자계정생성

O/S 설치/패치

시스템SW 설치

코드개발/테스트

실행

소스코드 업로드

운영서버구성

사용자계정생성

O/S 설치/패치

시스템SW 설치

코드개발/테스트

실행

소스코드 업로드

운영서버구성

사용자계정생성

O/S 설치/패치

시스템SW 설치

코드개발/테스트

실행

소스코드 업로드

28 일 13 일 1 일

H/W구매, 설치 H/W구매, 설치 H/W구매, 설치

PaaS On-Premises

7 일 2 일 0 일

구축

구축, 증설기간 대폭 단축!

정말?

웹호스팅 vs PaaS

10

웹호스팅 PaaS

• scale up, scale out 어려움

• API로 자원 요청/관리 불가

• 제한된 언어/버젂 지원

• 웹서버 설정 변경 불가

• 프레임워크 이용 어려움

• scale up, scale out 용이함

• API로 자원 요청/관리 가능

• 다양한 언어/버젂 지원

• 웹서버 설정 변경 가능

• 프레임워크 이용 자유로움

• PHP 5.6 대싞 7.0 버젂을 쓰고 싶다. (왜?) • 아파치 DOCUMENT_ROOT 경로를 바꾸고 싶다. • 아파치 대싞 Nginx를 쓰고 싶다.

No Problem! 즉시 적용 가능

웹호스팅은 Cloud읷까? 아닐까?

11

2. devpack 시연 샘플 애플리케이션 ‘node-talk’ 배포

ucloud biz devpack 신청 및 콘솔연결

12

1) ucloud biz 로그인

2) 상품 - devpack

3) 상품 신청하기

4) 콘솔 연결

(실습환경준비) git, cf CLI 설치

13

윈도우 Git 설치

• https://git-scm.com/download/win 접속

( Git-2.x.x-64-bit.exe 다운로드됨 )

• Git-2.x.x-64-bit.exe 실행하여 Next 신공으로 설치

윈도우 cf CLI 설치

• https://cli.run.pivotal.io/stable?release=windows64 접속

( cf-cli-installer_6.x.x_winx64.zip 다운로드됨 )

• 압축 해제

• cf_installer.exe 실행하여 Next 신공으로 설치

cmd 창에서 이렇게 나오면 성공

샘플 앱 node-talk 배포

14

• git clone https://github.com/jmnote/node-talk.git

• cd node-talk

브라우저 devpack 콘솔 연결

• cf login -a https://api.devpack.co.kr

• cf push

브라우저 http://node-talk-xxx.devpack.co.kr 확인

15

3. devpack 개요

devpack

16

“develop + package”

kt ds의 PaaS 서비스

국내기업 최초 상용PaaS

Cloud Foundry 기반 + 사용자 포탈 제공

[데브팩]

devpack의 특장점

17

다양한 언어 지원 Java, PHP, Python, Go, Node.js, Ruby

메모리 1GB당 월 2만원 정도* 타사 대비 저렴한 가격

트래픽 3TB 무료 제공

MySQL, Redis, RabbitMQ 부가서비스 간편 연동

30MB Redis 인스턴스 1개 상시 무료

무중단 scale out

무중단 애플리케이션 배포 가능

모니터링 화면

* 앱 인스턴스 메모리 최소단위가 1GB라는 얘기는 아님 1MB단위로 설정할 수 있음 간단한 애플리케이션이라면 32MB 로도 가능 32MB라면 월 1000원 이하

Cloud Foundry

18

클라우드 애플리케이션 실행 플랫폼

오픈소스 PaaS 소프트웨어

다양한 인프라스트럭처 지원

사용자 인증/관리

라우터(≒로드밸런서, 도메인기반)

https://docs.cloudfoundry.org/concepts/architecture/

미터링 로그 수합

애플리케이션 보관/실행

부가서비스 연동

아키텍처

cloudfoundry.org

기업환경에서의 PaaS

19

Load Balancer

Web Web

WAS

Load Balancer

Router Router

App App

젂통적 구성

DB DB NAS Storage

PaaS 구성 장점은?

OS·MW·DB 구축·운영 비용절감

주로 로드밸런서 기능 포함

scale out 가능

애플리케이션 개발에 집중

단점은?

cloud storage 필요 (왜?)

session clustering 필요 (왜?)

개발자의 이해 필요

장점을 위한 단점…

얶제나 자유롭게 scale out 가능 ★

WAS

In-Memory

Cache

Cloud Foundry 빌드팩

20

애플리케이션용 프레임워크, 런타임 지원 패키지

• 내장 빌드팩

Java, Ruby, Node.js, Go, PHP, Python

• 프레임워크 지원

Spring, Symfony, Django, Rails 등

• 패키지 매니저 지원

• 서드파티 빌드팩, 커스텀 빌드팩 제작 사용 가능

시연에서는 빌드팩이 node.js 설치, npm 패키지 설치 작업을 해준 것

21

4. 부가서비스 및 요금체계

devpack 부가서비스

22

2016년 2017년(예정*)

• MariaDB

• Redis

• RabbitMQ

• Git

• Jenkins

• PostgreSQL

• MongoDB

• ElasticSearch

* 고객 수요에 따라 우선순위 변동될 수 있음

MariaDB

23

• 오픈소스 관계형 DB

• MySQL의 브랜치

• devpack에는 Galera 3중화 적용됨

Redis

24

• 오픈소스 인메모리 키-값 저장소

• 데이터베이스 캐시, 세션 저장소 등으로 많이 사용함

• 정렬된 집합, 리스트 등 자료구조 지원

• MongoDB 대비 읽기/쓰기 모두 빠름

• 선택적 영구성 키-값 저장소

• devpack에서는 비영구적 저장소만 제공

RabbitMQ

25

• AMQP 구현체 중 하나

• 오픈소스 메시지 지향 미들웨어

• 메시지 큐를 이용해 메세지를 발행·저장·구독할 수 있는 메세지 브로커

• 개발사: 피보탈 소프트웨어

• 분산 애플리케이션의 공용 메시지큐로 홗용

devpack 애플리케이션 요금체계

26

메모리용량 요금(시간) 요금(30일)

32MB 0.87원 625원 64MB 1.74원 1,251원

128MB 3.47원 2,502원 256MB 6.95원 5,004원 512MB 13.9원 10,008원

1GB 27.8원 20,016원 2GB 55.6원 40,032원 4GB 111.2원 80,064원 8GB 222.4원 160,128원

• 메모리용량(MB) × 사용시간(시간) × 0.02715원

• 메모리는 MB단위로 지정 예) 55MB 애플리케이션 배포도 가능

• 청구시에는 원단위 미만 절삭

devpack 부가서비스 요금체계

27

상품 용량 요금(시간) 요금(30일)

MariaDB

1GB 13.9원 10,008원

5GB 69.5원 50,040원

10GB 138.9원 100,008원

Redis

30MB* 2.1원 1,512원

100MB 7.0원 5,040원

250MB 17.4원 12,528원

• 설정된 용량별 상품을 구매하여 사용

• MariaDB는 디스크 용량 상품

• Redis는 메모리 용량 상품

* redis 30MB 인스턴스는 1개 상시 무료 제공

28

4. devpack redis 시연 샘플 애플리케이션 ‘node-session-redis’ 배포

scale out

Redis 인스턴스 신청

29

devpack 콘솔에서

• [App Service] --- [Redis +]

• 서비스명: redis1 --- 플랜: shared-vm --- [확인]

node-session-redis 배포, 테스트

30

• git clone https://github.com/jmnote/node-session-redis.git

• cd node-session-redis

• cf push - 테스트 (로그읶/로그아웃/페이지이동)

• cf scale -i 3 - 테스트 (로그읶/로그아웃/페이지이동)

Session Clustering

31

• 스티키 세션 - 로드밸런싱 홖경에서 사용자의 세션이 유지되도록 하는 것

• 세션 클러스터링 – 애플리케이션 간 세션을 공유하는 것

Load Balancer

Web Web

WAS

Load Balancer

Router Router

App #1 App #2

젂통적 구성 PaaS 구성

WAS

In-Memory

Cache

소프트웨어 라우터로서 단순한 분기 알고리즘 Round Robin 사용

출발지정보의 해시값에 따라 분기 경로 결정

특정 사용자의 경로는 App 인스턴스 #1, #2를 왔다갔다 하게 됨

공유저장소가 세션을 기억해줘야 함

특정 사용자의 경로는 특정 WAS만으로 한정됨 예) 사용자1-WAS1 사용자2-WAS2

그냥 공유저장소면 되는데 세션정보는 매번 확읶하므로 성능을 위해 읶메모리 키-밸류 스토어 사용이 권장되는 것. 증설·감설시에도 서비스 영향 없음

Load Balancer의 분기알고리즘을 Source Hash로 하거나, WAS 또는 Redis 세션 클러스터링 기능을 쓰면 됨. 단, 서비스 영향 없이 증설·감설은 어려움

[참고] PaaS & Cloud Native App 관련 주제

32

본격 PaaS 삼국지 어디에도 없는 근본없는 그림… PaaS 환경에서 개발하다보니 관심이 가게 된 것들… 관련이 깊은 것끼리 연결해보았음

http://www.slideshare.net/onmay1/paas-66446915 참고

마무리 의견

33

• PaaS는? – 개발자 맞춤형 Cloud!

OS, 웹서버, 패키지 관리에서 해방;;

• devpack scale out은 참 빠르구나. – 서비스 중단도 없음

• 부가서비스 연동이 간편하다.

• 세션 클러스터링을 고려하자.

• redis를 저렇게 쓰는구나. - 물론 다른 용도도 얼마든지 있음

34

감사합니다

PaaS 세상은 온다… ( 언제? ) 개발자라면 PaaS에 익숙해지자.

개발자가 아니라면? 개발을 공부하자