10. PaaS화를 위해 필요한 것
PAAS
통합 콘솔
DYNAMIC RESOURCE
PROVISIONING
• 플랫폼마다 비슷한
사용방법
• 권한/인증 통합
• 플랫폼간 Seamless한
연동 지원
• 플랫폼 사용 신청 즉시
리소스 프로비저닝
• Docker Cluster?
https://www.slideshare.net/de
view/221-docker-orchestration
15. KEYSTONE - customized
KEYSTONE
OPENSTACK
COMPONENT
1) ID/OAUTH-TOKEN
or ID/PASSWORD +
PROJECT
PASTA CONSOLE
OAUTH
PROVIDER
HYBRID AUTH
PLUGIN
LDAP
1.1) verify token
0) OAUTH 인증
• SSO 에 익숙한 개발자
• 로그인 한적 없는 사람도
식별되어야 함
• 2000명이 넘는 사용자
16. KEYSTONE - 도입시 가능해지는 것들
• OPENSTACK 프로젝트로 권한 체계 통합
• OpenStack CLI 도구를 사용하여
유저 / 프로젝트 관리하기
• OpenStack CLI Client에 플랫폼 탑재하기
• Just like NOVA
• Tokenless Auth등 다양한 인증체계 활용하기
• 플랫폼 ENDPOINT 마저 Keystone으로 관리하기
• DOMAIN / REGION 컨셉 활용 가능
17. KEYSTONE ↔플랫폼
• KEYSTONE 담당 범위
• 오픈스택 프로젝트 생성
(project-id 부여)
• 사용자 인증
• 해당 프로젝트에서의 권한
• 플랫폼 담당 범위
• 오픈스택 프로젝트와
플랫폼 워크스페이스간 맵핑 관리
• 사용자 ROLE에 따른 권한 제어
KEYSTONE
PLATFORM
PROJECT1PROJECT1 PROJECT2
WORKSPACE1 WORKSPACE2
W1: P1 W2:P1 W3:P2 W4:P2
WORKSPACE3 WORKSPACE4
ID
ROLE
PROJECT-ID
18. KEYSTONE↔레가시워크스페이스?
• 기존에 이미 운영되고 있던 워크스페이스는 어떻게?
• 예) 로그 관리 시스템의 레가시 워크스페이스 > X000 개
• 오픈스택 프로젝트 ID 맵핑 부재
• Attach / Detach 개념 도입
1. 현재 사용자에게 권한이 있는 모든 워크스페이스 노출
2. Attach 버튼 클릭
선택한 워크스페이스를 현재 오픈스택 프로젝트 ID에 맵핑
이후 프로젝트의 다른 멤버에게도 노출
19. UI 통합
• Horizon은 네이버와 어울리지 않음
• 소규모 500명 이하에 적용 가능
• 부족한 Python 개발자
• 각 플랫폼 UI의 업그레이드시 마다
재시작/테스트?
• 유지보수 지옥
20. UI 통합 -미션
어떻게 하면 개발 작업을
품질을 일정부분 보장하면서
플랫폼 개발자들에게 균등하게 분할할까?
24. 전체 런타임 플로우
Pasta
WEB
PlatformA
PlatformB
PlatformC
1. 접근
service-id.pasta.navercorp.com/platform-
id/a.txt
5. https//{{platform-host}}/platform-
id/*
COMPANY
OAUTH-PROVIDER
2. OAUTH
KEYSTONE
(OPENSTACK)
3. 서비스 권한 체크 &
OPENSTACK-TOKEN
발행
ZUUL
6. OPENSTACK-TOKEN 사용하여
현 서비스에 대한 유저 권한 체크
OPENSTACK-
TOKEN
8. 최종 HTML 렌더링
4. 컨텍스트 패스 기반 라우팅 경로 결정
25.
26. 패키징 & 배포
• 배포 / 업그레이드
• Docker 기반의 오픈스택
배포 도구인 Kolla-Ansible 채용
• 패키징
• KOLLA 플러그인 구조 적용
• 업스트림 컨트리뷰션
• 현재 6개의
추가 커밋외에는
순정 상태 유지
kolla-build.conf
XXXXXXXXXXX
XXXXXXXX
27. 합리적인 저항들…
• 왜 불편하게 통합했냐..
• 통합의 이점을 모르겠다.
• 카탈로그랑 뭐가 다르냐.
플랫폼을 하나의 엔트리 포인트로 통합함으로써 가능한 것이 많음.
이에 대해 알고싶으시다면 내일 OpenWhisk 세션에 참석해 주세요.