(devpack) paas 소개 및 실습
TRANSCRIPT
![Page 1: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/1.jpg)
[ devpack ] PaaS 소개 및 실습2016-11-16 김정민
![Page 2: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/2.jpg)
2
발표자는 ?
• 김정민• IaaS / PaaS 엔지니어• Cloud 관리 / 자동화 기능 개발자• 좋아하는 것 : IT, 개발 , 클라우드 , 위키• http://github.com/jmnote
└ 별거 없음… ★ 최대 3개
( ucloud biz, devpack )
![Page 3: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/3.jpg)
3
딜레마 ?
불치하문과도한 질문은 감사합니다 !언제든지 질문해주세요…
개발자 ? 인프라 엔지니어 ?
![Page 4: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/4.jpg)
4
차례 devpack프레임워크devpack redis
PaaS 세상이 오고 있다
Cloud, PaaS
Session Clustering
실습은 A~F 까지 6 개
![Page 5: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/5.jpg)
5
devpack+ Cloud, PaaS 이야기
![Page 6: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/6.jpg)
6
devpack 에 node-talk 배포실습 A
![Page 7: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/7.jpg)
7
A-1. ( 윈도우 ) git, cf CLI 설치 http://zetawiki.com/wiki/ 윈도우_Git_ 설치
윈도우 Git 설치• https://git-scm.com/download/win 접속
( Git-2.x.x-64-bit.exe 다운로드됨 )• Git-2.x.x-64-bit.exe 실행하여 Next 신공으로 설치
http://zetawiki.com/wiki/ 윈도우_cf_CLI_ 설치
윈도우 cf CLI 설치• https://cli.run.pivotal.io/stable?release=windows64 접속
( cf-cli-installer_6.x.x_winx64.zip 다운로드됨 )• 압축 해제• cf_installer.exe 실행하여 Next 신공으로 설치
cmd 창에서 이렇게 나오면 성공
오늘 실습에 필요한
프로그램을 설치해봅시다 .
![Page 8: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/8.jpg)
8
A-1. ( 맥 OS) git, cf CLI 설치http://zetawiki.com/wiki/ 맥 OS_Git_설치
맥 OS Git 설치• https://git-scm.com/download/mac 접속
( git-x.x.x.x..…dmg 다운로드됨 )• dmg 파일 실행 , pkg 파일 실행 , Next 신공으로 설치
http://zetawiki.com/wiki/ 맥OS_cf_CLI_ 설치
맥 OS cf CLI 설치$ curl -L "https://cli.run.pivotal.io/stable?release=macosx64-binary" | tar –zx$ mv cf /usr/local/bin/$ cf --version 오늘 실습에 필요한
프로그램을 설치해봅시다 .
![Page 9: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/9.jpg)
9
• mkdir \workspace• cd \workspace
A-2. node-talk 배포 http://zetawiki.com/wiki/CF 에 _node-talk_ 앱 _ 올려보기 _( 윈도우 )
git 으로
소스코드
다운로드
cf 로 devpack에 배포
• mkdir workspace• cd workspace/
• git clone https://github.com/jmnote/node-talk.git• cd node-talk 브라우저 http://devpack.co.kr 로그인 frontier00• cf login -a https://api.devpack.co.kr• cf push 브라우저 http://node-talk-xxx-xxx.devpack.co.kr 확인
![Page 10: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/10.jpg)
10
Cloud?
IT 자원을 제공하는 서비스
빠른 프로비저닝 · 릴리즈 , 구성가능한 컴퓨팅 리소스 공유 풀에 온디맨드 네트워크 접근을 가능하게 하는 모델 - NIST
집적 · 공유된 IT 자원을 이용자의 요구 · 수요 변화에 따라 통신망을 통해 신축적으로 이용가능한 정보처리체계 - 클라우드컴퓨팅 발전법
인터넷 기술을 활용하여 IT 자원을 제공하는 기술 · 서비스
Cloud computing
웹과 API 로 리소스를 요청 / 관리할 수 있는 서비스 ★└ endpoint, CLI
http://zetawiki.com/wiki/Cloud
![Page 11: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/11.jpg)
11
Cloud 의 종류
https://blogs.technet.microsoft.com/kevinremde/2011/04/03/saas-paas-and-iaas-oh-my-cloudy-april-part-3
SaaS 소프트웨어를 제공하는 클라우드PaaS 개발플랫폼을 제공하는 클라우드IaaS 인프라를 제공하는 클라우드
On-Premises Cloud 아님 반대개념… 자체설비 구축 · 운영
● ● ● as a service…
오늘의 주제
![Page 12: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/12.jpg)
12
IaaS vs PaaS개발자는 Application 요리에 집중하고 싶다…
대자연 캠핑장 글램핑 호텔
SaaS 가 더 좋은 거 아님 ? 원래 출처가 어딘지는 모르겠으나 , IBM 공진기님의 발표자료에서 참고함 이런 근사한 비유가 있었다니… 캠핑족이신가 ?
데크
텐트
음식
![Page 13: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/13.jpg)
13
PaaSplatform as a service
개발플랫폼을 제공하는 Cloud 서비스└ 실행 런타임 , 웹서버 , 개발도구
개발을 위한 플랫폼을 구축할 필요 없이 , 필요한 개발요소들을 웹에서 쉽게 빌려 쓸 수 있게 하는 모델 – 위키백과
탄력적인 Cloud 환경에서 애플리케이션 스택의 호스팅 , 구성 , 배포 · 관리를 자동화하는 클라우드 애플리케이션 플랫폼 - 레드햇
개발자 컴퓨터에서 개발 Application 배포 및 실행 서비스 제공
FTP 로 소스코드 업로드하여 사용하는 웹호스팅과는 무엇이 어떻게 다를까 ?
![Page 14: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/14.jpg)
14
PaaS개발자 맞춤형 Cloud
PaaS 는 주로 IaaS 위에 구축됨 ∵ PaaS 에 필요한 인프라를 간편하게 증설하기 위해∴ 2 중 Layer – IaaS(OS 머신 가상화 ) 위에 PaaS( 컨테이너 )
• 솔루션 : Cloud Foundry, OpenShift 등• 서비스 : devpack, PWS, Bluemix, ElasticBeanstalk,
GAE 등
소스코드 배포 / 실행 환경을 별도 구성없이 즉시 제공하는 서비스
대략 유연하고 탄력적인 WAS 를 제공하는 Cloud 서비스
미들웨어 , 프레임워크를 유연하게 배포 가능
웹서버 , 패키지 구성을 소스코드처럼 관리 , 간편 scale out, 로드밸런서 포함 ★
└ 정확히는 컨테이너 + α
![Page 15: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/15.jpg)
15
IaaS vs PaaS
서버 확장
IaaS
VM 확장증설 Container 확장
운영서버구성
사용자계정생성O/S 설치 / 패치
시스템 SW 설치
코드개발 / 테스트
실행소스코드 업로드
운영서버구성
사용자계정생성O/S 설치 / 패치
시스템 SW 설치
코드개발 / 테스트
실행소스코드 업로드
운영서버구성
사용자계정생성O/S 설치 / 패치
시스템 SW 설치
코드개발 / 테스트
실행소스코드 업로드
28 일 13 일 1 일
H/W 구매 , 설치 H/W 구매 , 설치 H/W 구매 , 설치PaaSOn-Premises
7 일 2 일 0 일
구축
구축 , 증설기간 대폭 단축 !
정말 ?
![Page 16: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/16.jpg)
16
웹호스팅 vs PaaS
웹호스팅 PaaS
• scale up, scale out 어려움• API 로 자원 요청 / 관리 불가• 제한된 언어 / 버전 지원• 웹서버 설정 변경 불가• 프레임워크 이용 어려움
• scale up, scale out 용이함• API 로 자원 요청 / 관리 가능• 다양한 언어 / 버전 지원• 웹서버 설정 변경 가능• 프레임워크 이용 자유로움
• PHP 5.6 대신 7.0 버전을 쓰고 싶다 . ( 왜 ?)
• 아파치 DOCUMENT_ROOT 경로를 바꾸고 싶다 .
• 아파치 대신 Nginx 를 쓰고 싶다 .
No Problem!즉시 적용 가능
http://zetawiki.com/wiki/ 웹호스팅 _vs_PaaS
웹호스팅은 Cloud 일까 ? 아닐까 ?
![Page 17: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/17.jpg)
17
기업환경에서의 PaaS
Load Balancer
Web Web
WAS
Load Balancer
Router Router
App App
전통적 구성
DB DBNAS Storage
PaaS 구성 장점은 ? OS·MW·DB 구축 · 운영 비용절감 주로 로드밸런서 기능 포함 scale out 가능 애플리케이션 개발에 집중
단점은 ? cloud storage 필요 ( 왜 ?) session clustering 필요 ( 왜 ?) 개발자의 이해 필요 장점을 위한 단점… 언제나 자유롭게 scale out 가능 ★
WAS
In-MemoryCache
![Page 18: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/18.jpg)
18
devpack
“develop + package”
ktds 의 PaaS 서비스국내기업 최초 상용 PaaS
Cloud Foundry 기반 + 사용자 포탈 제공
[ 데브팩 ]
![Page 19: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/19.jpg)
19
devpack 의 특장점 다양한 언어 지원 Java, PHP, Python, Go, Node.js,
Ruby
메모리 1GB 당 월 2 만원 정도 타사 대비 저렴한 가격
트래픽 3TB 무료 제공
MySQL, Redis 부가서비스 이용가능
30MB Redis 인스턴스 1 개 상시 무료
모니터링 화면
앱 인스턴스 메모리 최소단위가 1GB 라는 얘기는 아님1MB 단위로 설정할 수 있음간단한 애플리케이션이라면 32MB 로도 가능32MB 라면 월 1000 원 이하
![Page 20: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/20.jpg)
20
Cloud Foundry
클라우드 애플리케이션 실행 플랫폼 오픈소스 PaaS 소프트웨어다양한 인프라스트럭처 지원
사용자 인증 / 관리
라우터 (≒ 로드밸런서 , 도메인기반 )
https://docs.cloudfoundry.org/concepts/architecture/미터링 로그 수합
애플리케이션 보관 / 실행
부가서비스 연동
아키텍처
cloudfoundry.org
![Page 21: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/21.jpg)
21
프레임워크 , 패키지매니저결국 다 먹고 살자고 App 배포하자고 하는 얘기
PaaS 랑 뭔
상관임 ?
![Page 22: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/22.jpg)
22
로컬에서 node-talk 실행실습 B
![Page 23: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/23.jpg)
23
B-1. Node.js 설치 http://zetawiki.com/wiki/ 윈도우_node.js_ 설치
• https://nodejs.org/en/download/ 접속• Windows Installer 또는 Macintosh Installer 클릭하여 인스톨러 다운로드• 인스톨러 실행하여 Next 신공으로 설치
http://zetawiki.com/wiki/ 맥OS_node.js_ 설치
![Page 24: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/24.jpg)
24
B-2. Node.js CLI 맛보기
↑ 파일 실행
↑ 대화형
↑ 바로 코드 실행
↑ 설치 확인
![Page 25: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/25.jpg)
25
B-3. npm
※ 윈도우 , 맥 OS 의 node.js 인스톨러에는 npm 이 포함되어 있음• cd node-talk• npm install• npm start• 브라우저 http://localhost:3000 접속
Npm 으로 필요
패키지 다운로드
애플리케이션 실행
![Page 26: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/26.jpg)
26
프레임워크
• 재사용 가능한 라이브러리 및 클래스 집합• 애플리케이션의 큰 틀과 구조를 결정함• 설계자가 의도한 디자인 패턴들의 집합으로 구성됨• 내부적 제어흐름이 있음• 개발자는 프레임워크를 통해 기능 호출
웹 애플리케이션 개발을 위해 설계된 소프트웨어 프레임워크
프레임워크
http://zetawiki.com/wiki/ 프레임워크http://zetawiki.com/wiki/ 웹애플리케이션 _ 프레임워크
여기서는 웹 애플리케이션 프레임워크
![Page 27: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/27.jpg)
27
언어별 프레임워크 & 패키지매니저언어 프레임워크 패키지매니저Go Revel, Martini, Gorilla gvt, godep
Java Spring, Grails, Play Maven, Gradle
Node.js React, AngularJS, Express.js, Me-teor npm
PHP Laravel, CakePHP, Symfony, Zend composer
Python Django, Flask pip
Ruby Rails, Sinatra RubyGemshttp://zetawiki.com/wiki/ 언어별 _ 웹애플리케이션프레임워크http://zetawiki.com/wiki/ 언어별 _ 패키지매니저
어떤 언어를
쓰시나요 ?
![Page 28: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/28.jpg)
28
node.js, npm
node.js
• 자바스크립트 엔진 위에서 동작하는 이벤트 처리 I/O 프레임워크• V8 에 event 처리 라이브러리 libuv 를 결합한 플랫폼• Non-blocking I/O 와 단일 스레드 이벤트 루프를 통한 높은 처리성능• 내장 HTTP 서버 라이브러리 포함 . 별도의 소프트웨어 없이 웹서버 동작 가능
npm
• node.js 용 공식 패키지 매니저• 윈도우에서는 node.js 를 설치하면 함께 설치됨
![Page 29: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/29.jpg)
29
socket.io
• node.js 모듈• 웹소켓 간편하게 사용 가능• 실시간 통신 , 양방향성 , 이벤트 구동형• npm 도구로 설치 가능• 다양한 백엔드 라이브러리 제공
![Page 30: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/30.jpg)
30
Cloud Foundry 빌드팩애플리케이션용 프레임워크 , 런타임 지원 패키지• 내장 빌드팩 Java, Ruby, Node.js, Go, PHP, Python• 프레임워크 지원 Spring, Symfony, Django, Rails 등• 패키지 매니저 지원• 서드파티 빌드팩 , 커스텀 빌드팩 제작 사용 가능
실습 A 에서는 빌드팩이 node.js 설치 , npm 작업을 해준 것
![Page 31: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/31.jpg)
31
node-talk 수정 · 배포실습 C
![Page 32: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/32.jpg)
32
C-1. 소스코드 수정 후 배포
• cd node-talk• notepad public\app.js소스코드 수정• cf push
수정하고
실행해보면
• cd node-talk/• nano public/app.js소스코드 수정• cf push
Vi 로
해도 됨
![Page 33: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/33.jpg)
33
bower
• 웹 클라이언트측 패키지 관리 시스템• npm 으로 설치• MIT 라이선스
http://zetawiki.com/wiki/Bowerhttps://bower.io/
![Page 34: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/34.jpg)
34
node-talk-bower 배포실습 D
![Page 35: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/35.jpg)
35
• cd \workspace
D-1. node-talk-bower 배포git 으로
소스코드
다운로드
cf 로 devpack에 배포
• cd ~/workspace/
• git clone https://github.com/jmnote/node-talk-bower.git• cd node-talk-bower• cf push 브라우저 http://node-talk-xxx-xxx.devpack.co.kr 확인
![Page 36: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/36.jpg)
36
D-2. node-talk-bower 로컬 실행
• npm install
• cd node-talk-bower
• cf push
브라우저 http://localhost:3000 확인
![Page 37: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/37.jpg)
37
manifest.yml vs package.json
npm install 수행시 , bower install도 수행됨
package.json – npm 설정 파일
manifest.yml – Cloud Foundry 앱 설정 파일
bower install 후 application 실행
![Page 38: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/38.jpg)
38
JSON vs YAML
JSON YAML
• 확장자 : .json
• 개행 , 공백 무시됨• 주석 사용 불가• 문자열을 쌍따옴표로 감싸야 함• 한글 인코딩되어 읽기 어려움• YAML 보다 더 널리 사용됨• 대부분의 언어에서 기본 지원
• 확장자 : .yml, .yaml
• 개행 , 공백으로 블록 인식• 주석 사용 가능• 문자열을 쌍따옴표로 감싸지 않아도 됨• 한글 그대로 사용 가능• 점차 사용이 늘고 있음• 대부분의 언어에 라이브러리 있음 가독성이
좋음
http://zetawiki.com/wiki/JSON,_YAML_ 비교
![Page 39: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/39.jpg)
39
devpack redisdevpack 부가서비스 중 하나
![Page 40: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/40.jpg)
40
node-session 실행 · 배포실습 E
로그인 기능만 구현한 간단한 애플리케이션
![Page 41: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/41.jpg)
41
E-1. node-session 배포 , scale out
• cd \workspace git 으로
소스코드
다운로드
cf 로 devpack에 배포
cf 로 scale out
• cd ~/workspace/• git clone https://github.com/jmnote/node-session.git• cd node-session
host: session00 으로 수정• cf push - 테스트 ( 로그인 / 로그아웃 /페이지이동 )• cf scale session -i 2 - 테스트 ( 로그인 / 로그아웃 /페이지이동 )
• notepad manifest.yml • nano manifest.yml
scale out 하면… ?!로그인이 풀린다 .그리고 로그인이 안된다 ㅠㅠ
![Page 42: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/42.jpg)
42
Redis
• 오픈소스 인메모리 키 - 값 저장소• 데이터베이스 캐시 , 세션 저장소 등으로 많이 사용함• 선택적 영구성 키 - 값 저장소• 정렬된 집합 , 리스트 등 자료구조 지원• (MongoDB 대비 ) 읽기 / 쓰기 모두 빠름
http://zetawiki.com/wiki/ 레디스 _redis
![Page 43: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/43.jpg)
43
Session Clustering
• 스티키 세션 - 로드밸런싱 환경에서 사용자의 세션이 유지되도록 하는 것• 세션 클러스터링 – 애플리케이션 간 세션을 공유하는 것
http://zetawiki. com/wiki/ 스티키 _ 세션http://zetawiki. com/wiki/ 세션 _ 클러스터링
Load Balancer
Web Web
WAS
Load Balancer
Router Router
App #1 App #2
전통적 구성 PaaS 구성
WAS
In-MemoryCache
소프트웨어 라우터로서단순한 분기 알고리즘Round Robin 사용
출발지정보의 해시값에따라 분기 경로 결정
특정 사용자의 경로는App 인스턴스 #1, #2 를왔다갔다 하게 됨
공유저장소가 세션을기억해줘야 함
특정 사용자의 경로는 특정 WAS만으로 한정됨예 ) 사용자 1-WAS1 사용자 2-WAS2
세션이 언제 죽는다고
생각하나 ?
… 사람들서버들에게
잊혀졌을 때다
- 원피스 명대사 中
그냥 공유저장소면 되는데 세션정보는 매번 확인하므로성능을 위해 인메모리 키 - 밸류 스토어 사용이 권장되는 것 .증설 · 감설시에도 서비스 영향 없음
Load Balancer 의 분기알고리즘을 Source Hash 로 하거나 ,WAS 또는 Redis 세션 클러스터링 기능을 쓰면 됨 .단 , 서비스 영향 없이 증설 · 감설은 어려움
![Page 44: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/44.jpg)
44
활용예시 - Laravel 설정APP_ENV=localAPP_KEY=APP_DEBUG=trueAPP_LOG_LEVEL=debugAPP_URL=http://localhost
DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=homesteadDB_USERNAME=homesteadDB_PASSWORD=secret
CACHE_DRIVER=fileSESSION_DRIVER=fileQUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1REDIS_PASSWORD=nullREDIS_PORT=6379
MAIL_DRIVER=smtpMAIL_HOST=mailtrap.ioMAIL_PORT=2525MAIL_USERNAME=nullMAIL_PASSWORD=nullMAIL_ENCRYPTION=null
설정파일 .env
캐시 · 세션 · 큐로 redis 사용가능 같은 redis, 같은 APP_KEY 라면 세션 공유 가능
https://github.com/laravel/laravel/blob/master/.env.example
다른 프레임워크들도 지원하는 경우가 많음예 ) http://zetawiki.com/wiki/ 스프링 _REDIS_ 프로퍼티
![Page 45: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/45.jpg)
45
node-session-redis 배포실습 F
![Page 46: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/46.jpg)
46
F-1. Redis 인스턴스 신청브라우저 http://devpack.co.kr 로그인 testuser00• [App Service] --- [Redis +] • 서비스명 : redis1 --- 플랜 : shared-vm --- [ 확인 ]
![Page 47: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/47.jpg)
47
F-2. node-session-redis 배포 , 테스트• cd \workspace git 으로
소스코드
다운로드
cf 로 devpack에 배포
이번에는 in-
stance 2 개
• cd ~/workspace/• git clone https://github.com/jmnote/node-session-redis.git• cd node-session-redis
host: session00 으로 수정• cf push - 테스트 ( 로그인 / 로그아웃 /페이지이동 )
• notepad manifest.yml • nano manifest.yml
![Page 48: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/48.jpg)
48
PaaS & Cloud Native App 관련 주제
본격 PaaS 삼국지 어디에도 없는 근본없는 그림…PaaS 환경에서 개발하다보니관심이 가게 된 것들…관련이 깊은 것끼리 연결해보았음
http://www.slideshare.net/onmay1/paas-66446915 참고
![Page 49: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/49.jpg)
49
복습 및 고찰• PaaS 는 ? – 개발자 맞춤형 Cloud! OS, 웹서버 , 패키지 관리에서 해방 ;;• devpack scale out 은 참 빠르구나 . – 서비스 중단도 없음
• 세션 클러스터링을 고려하자 .• node.js, express 프레임워크는 참 가볍구나 . 32MB 애플리케이션이라니… . 이러면 devpack 에서 월
1000 원도 안됨 ㅎㄷㄷ
• redis 를 저렇게 쓰는구나 . - 물론 다른 용도도 얼마든지 있음
![Page 50: (devpack) PaaS 소개 및 실습](https://reader031.vdocuments.net/reader031/viewer/2022020921/588654b31a28ab26598b4c6f/html5/thumbnails/50.jpg)
50
감사합니다PaaS 세상은 온다… ( 언제 ? )
개발자라면 PaaS 에 익숙해지자 .개발자가 아니라면 ? 개발을
공부하자