3. by
PaaS 특징 : 클라우드 서비스 모델
PaaS(Platform as a Service)
4. by
• NIST’s Cloud Cube Model
클라우드 공급자에 의해 지원되는 프로그래밍 언어, 라이브러리, 서비스, 툴들 을 이용하여 생성된
애플리케이션이나 인프라 사용자에 의해 생성된 애플리케이션을 배포할 수 있는 능력(기술).
사용자는 네트워크, 서버, OS 같은 클라우드 인프라스트럭처를 관리하거나 컨트롤하지 않으나 배포
제어 가능.
– NIST -
PaaS(Platform as a Service)
PaaS 개념
5. by
PaaS 특장점
개발환경 접근용이 : 클라우드 기반 환경
개발시간 및 비용 절감 : 개발시스템,S/W 구매/도입/설치등의 절차 불필요
개발 편이성 : 손쉬운 애플리케이션 설치 자동화
확장성 : 개발자별 사용 패키지 추가 및 배포 용이
개발 환경 및 개발 프레임워크 표준화 용이 : 표준화 버전 적용
소스 코드 관리 용이
배포 편리 : 빌드, 배포툴 기본 제공
개발자단에서의 제어와 배포를 할 수 있는 DevOPS 가능
멀티테넌시, 공유, 셀프서비스, 유연성, 실시간적인 버저닝, 확장성 등의 기능 제공
PaaS(Platform as a Service)
6. by
PaaS 환경
1.업무 개발 계획 수립
2.예산 산정
3.코드 개발
4.테스트
5.실행
6. 자동 확장
1.업무 개발 계획 수립
2.예산 산정
3.VM 생성 요청
4.대기
5.framework/appserver 설치
6.테스트 툴 설치
7.테스트 툴 시험
8.코드 개발
9.운영 VM 구성
10.코드 업로드
11.실행
12.요구에 따라 운영VM 추가요청
13.대기
14.새로운 VM에 운영환경 구성
15.기타 작업
가상화 환경
1.업무 개발 계획 수립
2.예산 산정
3.하드웨어 구매 요청
4.대기
5.하드웨어 구매
6.하드웨어 설치
7.OS 설치
8.OS 패치 적용
9.사용자 계정 생성
10.framework/appserver 설치
11.테스트 툴 설치
12.테스트 툴 시험
13.코드 개발
14.운영 서버 구성
15.코드 업로드
16.실행
17.요구에 따라 새로운 서버 구매
18.대기
19.새로운 서버 구성
20.기타 작업
물리적인 환경
PaaS : 개발단계 간소화
PaaS(Platform as a Service)
7. by
DevOps
PaaS(Platform as a Service)
DevOps는 소프트웨어 개발자들과 IT 종사자들 사이의 의사소통,
협업, 융합을 강조한 소프트웨어 개발 방법론이며, 소프트웨어 개발
과 IT 운영간의 상호 의존관계에 대한 산물이다. DevOps 는 조직에
서 소프트웨어 상품과 서비스를 신속히 생산하는 것에 도움이 되는
것을 목적으로 한다.
- Wikipedia –
자동화된 빌드와 릴리즈
자동화된 인프라스트럭처와 시스템 프로비저닝
DevOps 팀간의 일관된 도구 사용
설정과 같은 코드는 어플리케이션 코드와 분리
공유가 가능한 버전 관리 도구 보유
감사시 릴리스 추적 가능(요구사항에서 운영까지)
모델화된 수명주기 (예로 버전관리되는 SDLC)
Bes Practice
9. by
Apache 2.0 License
오픈소스 기반의 PaaS(Platform-as-a-Service)
온디맨드 방식의 셀프서비스 포털 제공
애플리케이션의 개발, 배포, 관리 편이성 제공
다중 언어 및 어플리케이션 프레임워크, 툴들 제공
Public/Private 서비스 제공
탄력성과 확장성을 지원하는 Auto-Scaling 지원
RHEL(RedHat Enterprise Linux) 기반위에서 구성 지원
OpenShift Enterprise 소개
공개 SW기반 PaaS 솔루션 OPENSHIFT
10. by
OpenShift Enterprise 종류
OpenSource 기반의 커뮤니티 프로젝트
2012 ~
http://openshift.github.io/
Amazon기반의 Public PaaS 서비스
2011 ~
http://www.openshift.com
Private/Hybrid PaaS 위한 솔루션
2014. 5. OSE2.1
http://www.redhat.com/products/cloud-
computing/openshift-enterprise/
공개 SW기반 PaaS 솔루션 OPENSHIFT
12. by
Node
Gear
OpenShift 주요 구성 요소
오픈쉬프트 기반의 모든 어플리케이션 관리 시스템
사용자 로그인, 어플리케이션 상태, 콘솔 등 오픈쉬프트 동작 관리
DNS 인증 및 다중 Node 제어 관리
Broker
Perl, PHP, Python, Ruby, MySQL, Spring같은 어플리케이션
Default/Custom(DIY) 카트리지 제공
어플리케이션 위한 실질 기능 제공
Catridge
하나 또는 그 이상의 카트리지를 실행하기 위한 자원 컨테이너
내부에 안전한 컨테이너 제공
하나의 기어노드에 여러 개의 카트리지 포함 가능
단일 물리 머신 또는 가상 머신 기준
사용자 Gear들이 실제 배치 되는 곳
RHEL RHEL
Node Node Node
Gear
MySQL
AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal
Catridge
Etc.
Ruby
Python
PHP
Java
Postgres
MySQL
Broker
RHEL
DNSMongoDB
1
2
3
4
공개 SW기반 PaaS 솔루션 OPENSHIFT
13. by
Platform
Amazon, Google compute등 Public Cloud Service기반에서 구축 가능
RHEV, Vmware, HyperV 등 다양한 가상화 기반에서 구축 가능
물리서버에 베어메탈 방식으로 구축 가능
OpenShift Enterprise 플랫폼
공개 SW기반 PaaS 솔루션 OPENSHIFT
15. by
DIY Catridge
OpenShift Enterprise 카트리지 (cont.)
공개 SW기반 PaaS 솔루션 OPENSHIFT
Custom Catridge
사용자(개발자) 정의 카트리지
공통 카트리지로 생성
카트리지 생성 규칙 준수
Admin에 의한 관리 필요
사용자(개발자) 정의 카트리지
개별 카트리지로 생성
생성자만 사용 가능한 카트리지
개인별 관리
16. by
OpenShift Enterprise 보안
Security
RHEL RHEL
SELinux 정책들은 노드의 인스턴스들을 안전하게 분리
Broker Node Node Node
RHEL
• CC 인증 EAL4+ 를 취득한 RHEL6 기반
• SELinux를 통한 멀티테넌트간의 리소스 독립적인 할당 및
영역(District)간의 격리 제공
• 개발자들의 접근에 대해 SSH key 인증를 통한 접근 제어 제공
• 사용자 계정 및 도메인 등의 인증관리를 하는 관리 노드와
사용자 노드간 분리를 통해 사용자의 접근 제어
공개 SW기반 PaaS 솔루션 OPENSHIFT
17. by
OpenShift Enterprise 상호 작용
REST APIs
커맨드라인
개발통합IDE
웹브라우저
콘솔
지원 사항
•IDE : Eclipse, Jboss Developer Studio 등 지원
•Ruby와 Git를 이용한 개발과 소스 동기화 지원
•브라우저 기반에서의 콘솔 지원
•REST API를 통한 사용자용 개발툴 또는 IDE 지원
OpenShfit 클라이언트 툴
•로컬 인증 : ruby(rubygem), git, SSH key 필요
•지원 OS : Windows, Max OS X, Linux
(Ubuntu/Debian ,openSUSE, Fedora, RHEL등)
공개 SW기반 PaaS 솔루션 OPENSHIFT
18. by
오픈쉬프트 파트너 생태계 시스템
• http://www.openshift.com/partners
• 시스템 통합업체들은 오픈쉬프트를 기반으로 고객들에게 컨설팅과 설계 서비스를 제공.
• 오픈쉬프트를 이용해서 자체 애플리케이션들이나 SaaS 솔루션들을 개발하고자 하는 개발 파트너
• 자체 사설 PaaS나 오픈쉬프트를 통한 클라우드 서비스를 공급하는 업체들
• 개발자들이나 관리자들을 위해 오픈쉬프트에 기능을 추가하거나 보완적인 기술들을 제공하는 ISV
OpenShift Enterprise 에코 시스템
공개 SW기반 PaaS 솔루션 OPENSHIFT
19. by
OpenShift Enterprise 워크 플로우
GEAR생성
개발자가 새로운 App 생성 -> OpenShift가 GEAR 생성
Web Console
Eclipse IDE
Cmd Line
OpenShift
Gear
RHEL
Broker Node Node
RHEL
공개 SW기반 PaaS 솔루션 OPENSHIFT
20. by
OpenShift Enterprise 워크 플로우(계속)
Catridge 설치
오픈쉬프트는 카트리지를 통해 개발언어와 미들웨어설치
RHEL
Broker Node Node
RHEL
JBoss MySQL
Web Console
Eclipse IDE
Cmd Line
공개 SW기반 PaaS 솔루션 OPENSHIFT
21. by
OpenShift Enterprise 워크 플로우(계속)
Code 동기화
개발자는 application 개발 후 Git를 통해 코드 푸쉬(push)
RHEL
Broker Node Node
RHEL
JBoss
Code
Git
Repo
MySQL
Web Console
Eclipse IDE
Cmd Line
Git Protocol / ssh
Push
공개 SW기반 PaaS 솔루션 OPENSHIFT
22. by
OpenShift Enterprise 워크 플로우(계속)
빌드 및 배포
코드에 대한 빌드 및 테스트, 배포 자동화
RHEL
Broker Node Node
RHEL
Jenkins
(CI)
Maven
(Builds) Apache
(HTTP)
JBossCode
Git
Repo MySQL
배포
공개 SW기반 PaaS 솔루션 OPENSHIFT
23. by
OpenShift Enterprise 워크 플로우(계속)
애플리케이션 확장
HA Proxy를 이용한 애플리케이션 서비스 확장
트래픽 가중치에 의한 확장 지원
Web, WAS, DB등의 애플리케이션 해당
Broker Node Node Node
Java
C
ode
Java
C
ode
Java
Code
RHEL
HA-Proxy
MySQL
공개 SW기반 PaaS 솔루션 OPENSHIFT
33. by33
OpenShift 적용 사례 : 국내
해외 진행 사례
내부 애플리케이션 개발 플랫폼
클라이언트를 위한 PaaS 서비스 제공
PaaS Lab환경
신뢰가능한 파트너
Feature-set
유연성/커스터마이징
최적화된 개발을 위한 PaaS 구축 계획
다중 언어 지원
오픈소스 기반
유연성, 커스터마이징
요구사항 적합
Red Hat Tech Stack
5,000 개발자
15,000 JVM 환경
- 이에 대한 관리와 생산성 향상 검토
표준화된 개발 워크플로우 제공
표준화된 스택 지원
고급 기술 지원 가능
보다 빠른 애플리케이션 생성
표준화된 엔터프라이즈 서비스 제공
표준화된 개발 워크플로우
신뢰가능한 대형 벤더
개발자들을 위한 셀프 서비스
스택들에 대한 표준화
Reference
37. by
OpenShift Mobile
Next Plans
모바일 개발 애플리케이션
• Android
• iOS(Beta)
• Windows Phone
OpenShift Online 적용 상태
OpenShift Enterprise
- 2014.하반기 적용 예정