[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석

1,262 views
1,083 views

Published on

[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,262
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
122
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석

  1. 1. 0 Open PaaS 심층 분석(OpenShift) 2014. 7. 30.(수) 장 선진 대표 ㈜소프트웨어 인라이프
  2. 2. 발표 순서 1. 개요 2. 제품 라인업 3. 아키텍처 구조 분석 3-1 아키텍처 구조 3-2 멀티테넌시 구조 4. 실행 흐름 분석 4-1 실행 흐름 구조 4-2 시퀀스 흐름 5. 운영 흐름 분석 5-1 운영 흐름 구조 5-2 시퀀스 흐름 6. 개방성 분석 6-1 지원 언어 및 서비스 6-2 확장 방안 7. 설치 방법 및 구성 7-1 설치 방법 7-2 설치 구성도
  3. 3. 2 Why Open PaaS? 1. 개요 - 출처 : OpenShift Online (http://www.openshift.com)
  4. 4. 3 OpenShift 1. 개요 항 목 내 역 정의 OpenShift는 Cloud Computing 등의 기술을 바탕으로 PaaS 환경을 구축하고 개발, 배포, 운 영 관리 등을 종합적으로 지원하는 Open Source 플랫폼 제공 버전 - OpenShift Orign v3.1 - OpenShift Enterprise v2.1 - OpenShift Online 라이선스 Apache 2.0 License 개발 그룹 - OpenShift Origin Developers Community - Redhat, Inc. 소스코드 저장소 - OpenShift Origin : https://github.com/openshift - 출처 : OpenShift Online (http://www.openshift.com)
  5. 5. 4 OpenShift Product Line-up 2. 제품 라인업 공개 소프트 웨어 ’12년 1분기 퍼블릭 클라우드 서비스 ’11년 1분기 ’12년 4분기 엔터프라이즈 제공 버전 • OpenShift의 주요 상품군은 다음과 같습니다.
  6. 6. 5 3. 아키텍처 구조 분석 Node MCollective Gears MongoDB Broker MCollective Authentication DNS Node MCollective Gears Node MCollective Gears Client 클라이언트 모듈 브로커 모듈 인증 및 데이터 관리 모듈 통신 모듈 노드 & 기어 모듈 • OpenShift의 주요 아키텍처는 다음과 같습니다. <<include>> 1 2 3 4 3-1.아키텍처 구조
  7. 7. 6 상세 아키텍처 구조 3. 아키텍처 구조 분석 Component External system Function call External call [범례] Developer’s Host API Client Broker Host Broker (Rails Application) MQ Publisher Data Storage Interface Authentication Interface DNS Update Inteface OpenShift D atabase (Mo ngo) Auth (AD) DNS Bind Logs Messaging Bus Active MQ REST Node Host . Gear 2 App Code Re pository (Git) Cartridge 1 Cartridge … Gear 3 App Code Re pository (Git) Cartridge 2 Cartridge … MQ Subscriber Node Manager Mediator Node Manager Log Interface Application Repository (Git) Gear 1 (Default) HA ProxyReverse Proxy Server User’s Host Browser SSH End-point SSH Open Stack HEAT HTTP(S) Open ShiftInternet 1 2 3 4
  8. 8. 7 OpenShift Node 구성 • OpenShift의 주요 기반 기술은 Open Source 소프트웨어입니다. 기반 기술 역 할 Docker - Docker는 Linux 기반의 Container RunTime 오픈소스이다. - Docker는 VM처럼 Hardware를 가상화 해주는 것이 아니라, Guest OS (Container)를 Isolation해준 다. - Docker는 Image 관리의 간편화와 Container 관리를 간편하게 해준다. LXC(Linux Containers) - Linux Kernel 기반에서 운영 체제의 가상화를 지원하는 기술이다. - Linux Kernel을 cgroup으로 분리하여 CPU, Memory, I/O, Network 등을 격리시켜준다. - cgroup는 namespace 단위로 격리되어 어플리케이션에 필요한 운영 환경 등을 격리시켜준다. Puppet - Puppet은 IT자동화 소프트웨어로 시스템관리자가 인프라의 라이프사이클, 프로비져닝, 관리 및 관 련 규정 준수를 위한 패치 구성 등을 관리 할 수 있게 한다. - Puppet을 사용하면, 반복되는 업무를 쉽게 자동화 할 수 있게 해주며, 빠르게 중요한 어플리케이션 을 전개 할 수 있게 한다. 3. 아키텍처 구조 분석
  9. 9. 8 OpenShift Node 구성 • Docker를 사용하였을 경우에 효율적인 Cloud Infrastructure 관리가 가능합니다. 3. 아키텍처 구조 분석 - 출처 : Docker (https://docker.com/)
  10. 10. 9 OpenShift Cloud 기술 지원 • OpenShift는 다양한 IaaS 기술을 지원합니다. 3. 아키텍처 구조 분석
  11. 11. 10 3. 아키텍처 구조 분석 10 태넌트 A 태넌트 B 태넌트 C Broker Authentication (SSH, IPTables, Cgroups) Node #1 Node #2 Node #3 Gear #1-1 Gear #1-2 MySQL Cartridge JBoss Cartridge Gear #2-1 Gear #2-2 Tomcat Cartridge Gear #3-1 Gear #3-2 Postgre SQL Cartridge PHP Cartridge SELinux (PAM) MySQL Cartridge Redis Cartridge Redis Cartridge SELinux (PAM) SELinux (PAM) 3-2. 멀티테넌시 구조
  12. 12. 11 4. 실행 흐름 분석 1 Broker Node/Gear Java Cartridge MongoDB Authentication Dyn DNS Service IaaS API 1. 어플리케이션 생성 요청 2. 사용자 인증 요청 및 처리 3. VM 생성 요청 및 처리 6. Gear 생성 요청 및 처리 4. DNS 설정 7. Cartridge 생성 요청 및 처리 8. Git 소스 코드 저장소 설정 9. SSH로 로그인하여 어플리케이션 설정 10. 생성된 Cartridge에 소스코드 배포 11. 어플리케이션 실행 및 확인 개발자 사용자 5. 관련 정보 설정 4-1. 실행 흐름 구조
  13. 13. 12 4. 실행 흐름 분석 Message Queue MQ Subscriber Node Manager Mediator Log InterfaceBroker Node Manager 기어 생성 결과 Node 영역Broker 영역 Geard 애플리케이션 생성 메시지 처리 애플리케이션 생성 메시지 처리 로깅 기어 생성 Cartridge Gear 기어 생성 카트리지 추가 카트리지 추가 카트리지 설정 <<반환>> <<반환>> Git 저장소 설정 <<반환>> 4-2. 시퀀스 흐름 – OpenShift Cartridge 구성
  14. 14. 13 4. 실행 흐름 분석 Reverse Proxy Server HA-Proxy WAS Cartridge DB Cartridge End-user (Web Browser) Application 데이터 CRUD <<반환>> 요청 처리 <<반환>> <<반환>> <<반환>> <<반환>> HTTP(S) 요청 포워딩 부하 분산 HTTP(S) 요청 Gear 영역Node 영역외부 사용자 4-2. 시퀀스 흐름 – OpenShift Cartridge 구성
  15. 15. 14 5. 운영 흐름 분석 IaaS Broker Node 데이터 관리 Authentication Gear MongoDB SELinux (PAM, Cgroup) Git Repository Auth (SSH) DNS 관리 IaaS 연동 HEAT API DNS Bind Cartridge Tomcat (Java) Cartridge MySQL Cartridge Jenkins (Maven)Source Code SSH Cron Logs OpenStack, AWS, Docker(LXC), Baremetal, KVM, VMWare, Hyper-V Physical Machine Virtualization Technology Private Cloud Computing Public Cloud Computing $> rhc_ $> ssh_ CLI를 통한 운영IDE를 통한 운영 Web Console을 통한 운영 SSH를 통한 운영 어플리케이션에 HTTP/S 접속Git을 통한 운영 5-1. 운영 흐름 구조
  16. 16. 15 IDE 통합개발환경인 이클립스 에 OpenShift 관리를 위한 플러그인이 함께 제공되어, 개발, 배포, 운영 등의 과정 을 IDE 내에서 모두 가능 $> rhc_ CLI CLI(Command Line Interface) 도구로써 rhc가 제공되며, OpenShift 설정, 애플리케이션 관리, Auto Scaling 설정, 사용자 계정 및 인증 관리 등의 기능을 제공 WEB GUI환경에서 OpenShift 관 리를 위해 웹 콘솔을 제공. Rhc와 동일한 기능을 제공 하며, 편리한 인터페이스를 제공 https:// REST API OpenShift Broker는 웹 애 플리케이션으로 작성되어 RESTful API를 제공하므로, 직접적으로 REST 통신을 통해 Broker에서 제공하는 API를 사용하여 OpenShift 제어 가능 5. 운영 흐름 분석5-1. 운영 흐름 구조
  17. 17. 16 5. 운영 흐름 분석 Developer’s Host $> rhc_ CLI WEBIDE https:// REST API Node Host Node Manager Configuration Cartridge Gear Broker Host Broker DNS Data Storage Authentication Client 툴을 이용 운영환경 제어 Client 제어에 따라 노드 시스템 제어 클라이언트 툴은 HTTP(S) 통신을 통 해 브로커에서 제공 하는 REST API를 사 용한다. 애플리케이 션, 기어, 카트리지, 정책 설정 등은 모 두 브로커를 통해 제어된다. 1 1 2 3 4 5 브로커는 클라이언 트의 요청을 받아 설정 및 노드를 제 어하게 되며, 노드 및 인증, DNS 관련 데이터를 관리하고, 노드에 메시지를 송 신하는 역할을 한다. 2 브로커 호스트 내에 는 OpenShift의 설 정 정보 및 메타 데 이터를 저장하기 위 한 데이터 스토리지 가 있으며 MongoDB를 사용 하여 관리한다. 3 브로커로부터 메시 지를 수신하여 실질 적인 기어 생성 및 초기화, 카트리지 추가 삭제 등의 작 업을 수행하며, 노 드 호스트 내의 설 정 정보들을 관리한 다. 4 로드밸런싱을 위해 사용되는 HAProxy 는 카트리지로 추가 되어 동작하며, 등 록된 기어들의 상태 및 부하에 따라서 노드 매니저에게 기 어 추가/삭제를 요 청하여 자동 확장의 기능을 수행 5
  18. 18. 17 6. 개방성 분석 • OpenShift의 카트리지는 응용프로그램이 실행 환경 및 단위이며, 개발 언어, 데이터베이스, 서버 등 소 프트웨어와 Custom 카트리지로 구성 되며, 기어와 카트리지가 결합하여 응용프로그램이 실행 된다. 카트리지 명 지원 버전 JBoss EAP 6.1 6.2 JBoss AS / Wildfly 7.1 8.0 Tomcat (JBoss EWS) 6 7 PHP 5.3 5.4 5.5 Zend 5.6 6.1 Python 2.6 2.7 3.3 Ruby 1.8 1.9 2.0 Node.js 0.6 0.10 Vert.x 2.1 Perl 5.10 5.16 MongoDB 2.4 MySQL 5.1 5.5 PostgreSQL 8.4 9.2 JBoss Data Virtualization 6.0 Cartridge의 구성 - 출처 : OpenShift Online (http://www.openshift.com)
  19. 19. 18 6. 개방성 분석 jbossas-7 JBoss Application Server 7 web jboss-dv-6.0.0 (!) JBoss Data Virtualization 6 web jbosseap-6 (*) JBoss Enterprise Application Platform 6 web jenkins-1 Jenkins Server web nodejs-0.10 Node.js 0.10 web nodejs-0.6 Node.js 0.6 web perl-5.10 Perl 5.10 web php-5.3 PHP 5.3 web php-5.4 PHP 5.4 web zend-6.1 PHP 5.4 with Zend Server 6.1 web python-2.6 Python 2.6 web python-2.7 Python 2.7 web python-3.3 Python 3.3 web ruby-1.8 Ruby 1.8 web ruby-1.9 Ruby 1.9 web jbossews-1.0 Tomcat 6 (JBoss EWS 1.0) web jbossews-2.0 Tomcat 7 (JBoss EWS 2.0) web jboss-vertx-2.1 (!) Vert.x 2.1 web diy-0.1 Do-It-Yourself 0.1 web 10gen-mms-agent-0.1 10gen Mongo Monitoring Service Agent addon cron-1.4 Cron 1.4 addon jenkins-client-1 Jenkins Client addon mongodb-2.4 MongoDB 2.4 addon mysql-5.1 MySQL 5.1 addon mysql-5.5 MySQL 5.5 addon metrics-0.1 OpenShift Metrics 0.1 addon phpmyadmin-4 phpMyAdmin 4.0 addon postgresql-8.4 PostgreSQL 8.4 addon postgresql-9.2 PostgreSQL 9.2 addon rockmongo-1.1 RockMongo 1.1 addon switchyard-0 SwitchYard 0.8.0 addon haproxy-1.4 Web Load Balancer addon
  20. 20. 19 6. 개방성 분석 - 출처 : OpenShift Online (http://www.openshift.com) Cartridge의 구조
  21. 21. 20 7. 설치 방법 및 구성 각 호스트 기본 설정 셋팅 1. 사전 준비 주소 체계로 Broker, Node 및 Gear 시스템 관리 2. DNS 설정 Broker와 Node간의 메시지를 전달하기 위한 메시지 서비스 설치 5. Mcollective Gear 즉 애플리케이션이 동작을 위해 설치 9. Node 설치 Node에서 n개의 Gear를 생성하기 위한 설정 10. Multi-Tenancy Rest api제공 및 사용자 인증을 위해 설치 6. Broker 설치 DNS, 인증, Messaging 구성이 제대로 작동 되는지 확인 7. Broker Plugins Node에 Gear 생성 및 관리하는 웹 관리 페이지 설치 8. Web Console Broker와 Node간의 메시지를 전달하기 위한 메시지 큐 설치 4. ActiveMQ 사용자 관리 및 애플리케이션 정보 관리를 위해 설치 3. MongoDB 7-1. 설치 방법
  22. 22. 21 7. 설치 방법 및 구성 OpenShift Origin Web 화면 • 스크립트를 통한 설정 확인  Broker : oo-accept-broker  Node : oo-accept-node • Client tool인 rhc를 설치  rhc app-create <name> <cartridge> 설치 확인 7-1. 설치 방법
  23. 23. 22 7. 설치 방법 및 구성 Japan Region Broker MongDB MQ Nodes Management End-User 7-2. 설치 구성도 – On AWS
  24. 24. 23 OpenShift 관련 용어 정리 구분 단위 기능 내용 Developer's Host Developer Host 애플리케이션 개발자 및 배포자가 사용하게 되는 호스트 API Client Broker에서 제공하는 RESTful API를 사용하는 클라이언트 툴(rhc, Eclipse, Web Console 등) Application Repository (Git) 로컬(개발자가 작업하는 환경)에 위치해 있는 Git 소스코드 저장소 Broker Host Broker Host Broker가 설치되 있는 서버이며 클라이언트로부터 REST API 호출을 받아 OpenShift가 실행을 할 수 있 도록 하는 중계자 역할을 하는 호스트 Broker (client) rhc를 통해 DNS 갱신, 사용자 인증, 애플리케이션 관리 등을 담당 MQ Publisher Broker에서 Messag Queue로 메시지를 송신하는 역할을 하는 컴포넌트로써 Mcollective Client를 이용 Data Storage Interface 데이터베이스 지정 인터페이스. 사용자 정보, cartridge 정보 및 gear 정보들이 저장되는 인터페이스 Authentication Interface 실제 접속하는 사용자를 인증하는 인터페이스 DNS Update Interface DNS 추가 및 삭제 설정 업데이트 인터페이스 Messaging Bus Messaging Bus 메시지 큐잉 및 버스 호스트 Active MQ Message Queue로써 Broker와 Node 사이에서의 Messaging Bus 및 Queueing의 역할 Node Host Node Host Node가 설치된 서버이며 브로커로부터 받은 명령어들을 통해 Gear들을 관리하는 호스트 SSH End-point 실제 개발된 소스를 사용자로부터 gear에 있는 git으로 받기 전에 사용자 인증 담당 MQ Subscriber 메시지 큐(ActiveMQ)로 부터 메시지를 수신받아 노드로 전달하는 컴포넌트 Node Manager Mediator Active MQ에 있는 메시지를 큐에서 받아서 Node Manager에게 전달 Node Manager 전달 받은 메세지에 맞는 동작을 찾아 필요한 동작 실행 Log Interface Node, Gear 및 애플리케이션 상태에 대한 로그를 저장하는 인터페이스 Gear lcx (리눅스 컨텐이너) 를 레퍼한 Docker 0.7 version 사용 한 OpenShift의 전용 컨테이너 Cartridges 개발 언어, 데이터베이스, WAS 등을 패키지 형식으로 제공되며 추가적으로 custom cartridge로도 추가 가능 App Code Repository (Git) SSH Git 통신을 통해 로컬 개발 소스를 직접적으로 업로드 Reverse Proxy Server (Apache) End-user에게 제공될 애플리케이션 서버

×