[오픈소스컨설팅] OpenShift PaaS Platform How-to

3,661 views
3,184 views

Published on

레드햇의 PaaS(Platform as a Service) 솔루션인 OpenShift 개요 및 설치 방법, 구성 등에 대한 자세한 설명을 담고 있습니다.

Published in: Technology

[오픈소스컨설팅] OpenShift PaaS Platform How-to

  1. 1. OpenShift 2013. 12 Certified Partner by
  2. 2. 목차  OpenShift 개요  OpenShift 전체 아키텍처  OpenShift 동작 방법  OpenShift 구축  RHC Client Tool 2 - Internal Use Only -
  3. 3. OpenShift 개요 Open Shift는 클라우드 PaaS 환경에서 사용자의 어플리케이션을 개발, 배포 및 관리를 할 수 있도록 개발 환경을 생성해 주는 오픈 소스 솔루션 입니다. 어플리케이션 개발과 테스트 관리에 필요한 디스크, CPU, 및 메모리 자원을 할당해 줄 뿐만 아니라, 웹 서버인 아파치(Apache)와 오픈소스 미들웨어 제이보스(JBoss)를 함께 제공 하며, PHP, Python, Java, Ruby등을 제공 합니다. Open Shift는 어플리케이션 프레임워크를 제공하기 위한 두 가지 기본 유닛인 브로커(Broker)와 카트리지(Catridges)가 있습니다. 3 - Internal Use Only -
  4. 4. OpenShift 종류 OpenShift - Origin -오픈 소스 프로젝트이며, 직접 설치해서 사용 할 수 있는 커뮤니티 버전 입니다. OpenShift - Enterprise - 기업용 버전 및 Red Hat PaaS 솔루션 입니다. OpenShift - Online - Red Hat 인프라를 서버로 하여 무료 사용 할 수 있는 버전 입니다. origin 4 - Internal Use Only -
  5. 5. OpenShift 사전 요구사항 1/2 H/W 요구사항 - 베어메탈 또는 가상화 - AMD64 또는 Intel 64 아키텍처 - 최소 1GB 메모리 최소 8GB 디스크 공간 - 네트워크 연결 Linux 호환되는 Cloud/Virtualization 환경 - AWS, CloudForm, OpenStack - RHEV, KVM, vSphere, Hyper-V 지원 5 - Internal Use Only -
  6. 6. OpenShift 사전 요구사항 2/2 사용자 인증 지원 - 단순 로컬 인증 (apache htpasswd) - LDAP - Kerberos plugins(Windows Active Directory, krb5 등) OpenShift Client Tools - 클라우드 환경 관리 도구: ruby, git 필요 - 지원 OS: Windows, Max OS X, Linux(Ubuntu/Debian/openSUSE,Fedora RHEL 등) OpenShift 구성요소 - Broker : User app 관리, 사용자 인증, Node 관리 - Node(s) : User app이 배포되는 호스트(들) 6 - Internal Use Only -
  7. 7. 브로커 (Broker) 브로커는 Open Shift에서 운영되고 있는 모든 어플리케이션들을 관리하는 단일 포인트로써 사용자의 로그인 또는 어플리케이션의 상태와 일반적인 사용자 어플리케이션의 편성 상태를 관리 합니다. 웹 콘솔 (Web Consol), CLI Tool(Command Line interface) 또는 Jboss Tool같이 표준으로 제공하고 있는 REST-API를 이용하여 사용자와 상호작용 (Interaction)을 하게 됩니다. 브로커는 MongoDB, ActiveMQ 그리고 BIND(DNS) 서비스 기반으로 동작 합니다. 상용 제품 7 - Internal Use Only -
  8. 8. 노드 (Node) 노드는 시스템을 호스팅하는 사용자 응용 프로그램이며, 다음과 같은 구성으로 돌아 갑니다. - 기어(Gear): 하나 또는 그 이상의 카트리지를 실행하기 위한 자원 컨테이너를 제공하며, 카트리지가 활용하는 메모리와 디스크 공간에 대한 용량을 제한 할 수 있습니다. 또한 Open Shift에서는 관리자가 구성하고 구현하는 방식에 따라서 하나 또는 여러 개의 다양한 크기의 기어를 생성할 수 있습니다. 사용자가 PaaS 플랫폼에서 개발을 하기 위해 사용하게 될 기어(Gear)의 기본 스펙은 Mem 512MB와 Disk 1G를 제공 합니다. 상용 제품 - 카트리지(Cartridges): 카트리지는 어플리케이션을 운영하기 위해서 실제적으로 필요한 기능을 제공 하고 있으며 개발 언어인 Perl, PHP, Ruby와 같은 언어를 지원할 뿐만 아니라, PostgreSQL 이나 MySQL 같은 다양한 데이터베이스 카트리지도 제공 합니다. 8 - Internal Use Only -
  9. 9. Open Shift 전체 아키텍처 Open Shift 솔루션의 전체 흐름 이며, 각 역할에 대하여 자세히 설명 하는 부분은 아래 페이지 참조 9 - Internal Use Only -
  10. 10. Simple Job Flow View 상용 제품 10 - Internal Use Only -
  11. 11. OpenShift 동작 방법 11 - Internal Use Only -
  12. 12. 인프라 위에 PaaS(Platform as a Software) 12 - Internal Use Only -
  13. 13. OpenShift 의 기반은 Linux Ubunt CentOS Fedora 13 - Internal Use Only - RHEL
  14. 14. 브로커 시스템은 노드들을 관리 Brokers Node Node Node Node는 사용자 APP이 위치 한 곳이고, Broker는 OpenShift 동작을 관리 합니다. 14 - Internal Use Only -
  15. 15. 사용자 소스 보안 관리는 SELinux로 관리 사용자 소스 SELinux 관리 Brokers Node Node SELinux 정책들은 노드의 인스턴스들을 안전하게 분리 시킵니다. 15 - Internal Use Only - Node
  16. 16. Developer Workflow WEB Console Eclipse IDE CLI OpenShift Gear Linux Brokers Linux Node Node Linux Node 개발자가 새로운 APP을 생성 -> OpenShift가 Gear를 생성 16 - Internal Use Only -
  17. 17. Cartridge를 통해 Gear구성을 자동화 WEB Console Eclipse IDE CLI JBoss My SQL Linux Brokers Linux Node Node Linux Node OpenShift 카트리지가 DB 및 미들웨어, Languages 설치 합니다. 17 - Internal Use Only -
  18. 18. 카트리지엔 사용자가 정의한 APP 생성 Java My SQL PHP Postgres Python JBoss Ruby Etc CUSTOM OpenShift 기본 카트리지 개발자는 custom language, data-store, 또는 미들웨어를 custom 카트리지를 통해 추가 가능 합니다. 18 - Internal Use Only -
  19. 19. 소스 코딩 후, 업로드 Git Protocol / ssh Code Git repo JBoss My SQL Linux Brokers Linux Node Node Linux Node 개발자는 응용 프로그램 통해 GIT 소스 관리 시스템으로 소스를 업로드를 합니다. 19 - Internal Use Only -
  20. 20. OpenShift에서 개발하는 방법 개발 응용 프로그램 웹 브라우저 콘솔 Command Line Tool REST APIs 20 - Internal Use Only -
  21. 21. 어떤 장치에서도 동작하는 웹 콘솔 21 - Internal Use Only -
  22. 22. Command Line Tool 1.Create App rhc app create -a javasample -t jbossas-7 2.Add MongoDB rhc app cartridge add -a javasample –c mongodb-2.0 3.Add add EAR file to your deployments directory cd javasample cp /path/to/ear/earfilename.ear ./deployments 1.Add the EAR file to git git add ./deployments/earfilename.ear 2.Push your code git push 3.Done 22 - Internal Use Only -
  23. 23. 개발 응용 프로그램 23 - Internal Use Only -
  24. 24. 개발자는 언어 , 프레임웍, 미들웨어 선택 24 - Internal Use Only -
  25. 25. OpenShift 구축
  26. 26. 사전 준비 사항 대상 시스템 - Broker Host - Node Host 준비 사항 및 필요한 서비스 - RHEL, OpenShift Enterprise 서브스크립션 등록 - NTP 동기화 - SSH - Yum repository 26 - Internal Use Only -
  27. 27. DNS Install and Configure 목적 - named 기반으로 Broker, Node, Gear 시스템 관리 대상 시스템 - Broker Host 준비 사항 및 필요한 서비스 - SSH - BIND - text editor (vi, emacs, nano, etc) - 환경 변수 설정 - SELinux 27 - Internal Use Only -
  28. 28. DHCP Client and Hostname 목적 - 특정 DNS 서버를 사용하도록 Broker 호스트를 구성 하려면 /etc/dhcp/dhclient[네트워크 장치]를 편집 해야 합니다. 대상 시스템 - Broker Host 준비 사항 및 필요한 서비스 - text editor (vi, emacs, nano, etc) 28 - Internal Use Only -
  29. 29. Installing MongoDB 목적 - 사용자 인증 - 기본 Gear 크기 지정 - 관리 사용자 계정 생성 - 일반 사용자 계정 생성 대상 시스템 - Broker Host 준비 사항 및 필요한 서비스 - text editor (vi, emacs, nano, etc) - yum - mongo, chkconfig, service, lokkit, firewall-cmd 29 - Internal Use Only -
  30. 30. Installing and Configuring Active MQ 목적 - Broker 시스템과 Node간의 메시지를 전송하기 위한 서비스 구성 대상 시스템 - Broker Host 준비 사항 및 필요한 서비스 - text editor (vi, emacs, nano, etc) - yum - lokkit - firewall-cmd - chkconfig - service 30 - Internal Use Only -
  31. 31. Verify that Active MQ is Working 웹 사이트 접속하여 정상 설치 및 설정 테스트 - http://localhost:8161 - 아래와 같은 화면이 나오면 정상 31 - Internal Use Only -
  32. 32. Installing and Configuring Mcollective 목적 - Broker 시스템과 Node간의 메시지를 수신하는 서비스 구성 대상 시스템 - Broker Host 준비 사항 및 필요한 서비스 - text editor (vi, emacs, nano, etc) - yum 32 - Internal Use Only -
  33. 33. Installing and Configuring the Broker Application 목적 - Broker Cllient 도구 및 REST API를 제공하기 위한 애플리케이션 설치 대상 시스템 - Broker Host 준비 사항 및 필요한 서비스 - text editor (vi, emacs, nano, etc) - yum - sed - chkconfig - lokkit - openssh, ssh-keygen, fixfiles, restorecon 33 - Internal Use Only -
  34. 34. Broker Plugins 목적 - DNS, 인증, 메시징 구성이 제대로 작동 되는지 확인 하기 위한 Plugin 설정 대상 시스템 - Broker Host 준비 사항 및 필요한 서비스 - text editor (vi, emacs, nano, etc) - cat - echo - enviroment variables - pushd - semodule - htpasswd, mongo, bundler, chkconfig, service 34 - Internal Use Only -
  35. 35. Verifying the Broker Configuration REST API가 정상적으로 동작 하는지 확인 - curl -Ik https://localhost/broker/rest/api - Status: 200 메시지가 나오면 정상 35 - Internal Use Only -
  36. 36. The Web Console 목적 - OpenShift 웹 콘솔은 Ruby로 개발 되어 있으며 Gear, Host에 배포 된 응용 프로그램의 Gear를 생성하고 관리하는 웹 관리 페이지를 생성 대상 시스템 - Broker Host 준비 사항 및 필요한 서비스 - text editor (vi, emacs, nano, etc) - yum - service - chkconfig 36 - Internal Use Only -
  37. 37. Installing and Configuring Mcollective on Node hosts 목적 - Broker와 Node 간의 통신 할 수 있는 환경 설치 및 설정 대상 시스템 - Node 준비 사항 및 필요한 서비스 - text editor (vi, emacs, nano, etc) - yum - dig - chkconfig 37 - Internal Use Only -
  38. 38. Verifying the Mcollective Configuration Broker host에서 mco ping 명령어 이용 - Broker와 Node 간의 통신이 정상적으로 되어 있는지 확인 38 - Internal Use Only -
  39. 39. Installing and Configuring the Node Application 목적 - Node Host에서 동작하기 위한 필요한 Package 설치 대상 시스템 - Node 준비 사항 및 필요한 서비스 - text editor (vi, emacs, nano, etc) - yum - dig - chkconfig 39 - Internal Use Only -
  40. 40. Configuring Multi-Tenancy on the Node Host 대상 시스템 - Node 준비 사항 및 필요한 서비스 - text editor (vi, emacs, nano, etc) - sed - restorecon - chkconfig - service - mount - quotacheck 40 - Internal Use Only -
  41. 41. Verifying the OpenShift 웹 브라우저 접속 화면 - http://broker.example.com 41 - Internal Use Only -
  42. 42. Trouble Shooting oo-diagnostics - Broker 및 Node 전체 시스템에 문제가 될 만한 요소가 있는지, 또는 문제가 있다면 해결 방법에 대한 메시지를 출력 해주는 스크립트 - 시스템의 문제가 발생시 Red Hat 기술 지원 요청을 할 때 필요한 스크립트 42 - Internal Use Only -
  43. 43. Trouble Shooting - Broker Broker 설정 확인 스크립트 - oo-accept-broker - broker 시스템 구성에 잠재적인 문제가 있는지 설정상에 문제가 있는지 최종 확인 할 수 있는 스크립트 파일 - 문제가 없으면 PASS 메시지 출력 43 - Internal Use Only -
  44. 44. Trouble Shooting - node node 설정 확인 스크립트 - oo-accept-node - node 시스템 구성에 잠재적인 문제가 있는지 설정상에 문제가 있는지 최종 확인 할 수 있는 스크립트 파일 - 문제가 없으면 PASS 메시지 출력 44 - Internal Use Only -
  45. 45. RHC Client Tool
  46. 46. Installing the RHC client tool & setup 대상 시스템 - localhost 준비 사항 및 필요한 서비스 - ruby - sudo - git - yum - gem - rhc 46 - Internal Use Only -
  47. 47. PHP 애플리케이션 설치 대상 시스템 - localhost - node host 준비 사항 및 필요한 서비스 - rhc 47 - Internal Use Only -
  48. 48. Verifying the user application. 웹 브라우저 접속 화면 - http://firstphp-ose.example.com 48 - Internal Use Only -
  49. 49. OPEN SHARE CONTRIBUTE ADOPT REUSE 49 - Internal Use Only -

×