[오픈소스컨설팅] openshift paas platform how-to

49
2013. 12 OpenShift Certified Partner by

Upload: ji-woong-choi

Post on 29-Nov-2014

2.266 views

Category:

Technology


9 download

DESCRIPTION

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

TRANSCRIPT

2013. 12

OpenShift

Certified Partner by

2 - Internal Use Only -

목차

OpenShift 개요

OpenShift 전체 아키텍처 OpenShift 동작 방법

OpenShift 구축

RHC Client Tool

3 - Internal Use Only -

OpenShift 개요

Open Shift는 클라우드 PaaS 환경에서 사용자의 어플리케이션을 개발, 배포 및

관리를 할 수 있도록 개발 환경을 생성해 주는 오픈 소스 솔루션 입니다.

어플리케이션 개발과 테스트 관리에 필요한 디스크, CPU, 및 메모리 자원을

할당해 줄 뿐만 아니라, 웹 서버인 아파치(Apache)와 오픈소스 미들웨어

제이보스(JBoss)를 함께 제공 하며, PHP, Python, Java, Ruby등을 제공 합니다.

Open Shift는 어플리케이션 프레임워크를 제공하기 위한 두 가지 기본 유닛인

브로커(Broker)와 카트리지(Catridges)가 있습니다.

4 - Internal Use Only -

OpenShift 종류

OpenShift - Origin

-오픈 소스 프로젝트이며, 직접 설치해서 사용 할 수 있는 커뮤니티 버전 입니다.

OpenShift - Enterprise

- 기업용 버전 및 Red Hat PaaS 솔루션 입니다.

OpenShift - Online

- Red Hat 인프라를 서버로 하여 무료 사용 할 수 있는 버전 입니다.

origin

5 - Internal Use Only -

OpenShift 사전 요구사항 1/2

H/W 요구사항

- 베어메탈 또는 가상화

- AMD64 또는 Intel 64 아키텍처

- 최소 1GB 메모리 최소 8GB 디스크 공간

- 네트워크 연결

Linux 호환되는 Cloud/Virtualization 환경

- AWS, CloudForm, OpenStack

- RHEV, KVM, vSphere, Hyper-V 지원

6 - Internal Use Only -

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이 배포되는 호스트(들)

7 - Internal Use Only -

브로커 (Broker)

상용 제품

브로커는 Open Shift에서 운영되고 있는 모든 어플리케이션들을 관리하는 단일 포인트로써

사용자의 로그인 또는 어플리케이션의 상태와 일반적인 사용자 어플리케이션의 편성 상태를

관리 합니다.

웹 콘솔 (Web Consol), CLI Tool(Command Line interface) 또는 Jboss Tool같이 표준으로

제공하고 있는 REST-API를 이용하여 사용자와 상호작용 (Interaction)을 하게 됩니다.

브로커는 MongoDB, ActiveMQ 그리고 BIND(DNS) 서비스 기반으로 동작 합니다.

8 - Internal Use Only -

노드 (Node)

상용 제품

노드는 시스템을 호스팅하는 사용자 응용 프로그램이며, 다음과 같은 구성으로 돌아 갑니다.

- 기어(Gear): 하나 또는 그 이상의 카트리지를 실행하기 위한 자원 컨테이너를 제공하며, 카트리지가

활용하는 메모리와 디스크 공간에 대한 용량을 제한 할 수 있습니다. 또한 Open Shift에서는 관리자가

구성하고 구현하는 방식에 따라서 하나 또는 여러 개의 다양한 크기의 기어를 생성할 수 있습니다. 사용자가

PaaS 플랫폼에서 개발을 하기 위해 사용하게 될 기어(Gear)의 기본 스펙은 Mem 512MB와 Disk 1G를 제공

합니다.

- 카트리지(Cartridges): 카트리지는 어플리케이션을 운영하기 위해서 실제적으로 필요한 기능을 제공 하고

있으며 개발 언어인 Perl, PHP, Ruby와 같은 언어를 지원할 뿐만 아니라, PostgreSQL 이나 MySQL 같은

다양한 데이터베이스 카트리지도 제공 합니다.

9 - Internal Use Only -

Open Shift 전체 아키텍처

Open Shift 솔루션의 전체 흐름 이며, 각 역할에 대하여 자세히 설명 하는 부분은 아래 페이지 참조

10 - Internal Use Only -

Simple Job Flow View

상용 제품

11 - Internal Use Only -

OpenShift 동작 방법

12 - Internal Use Only -

인프라 위에 PaaS(Platform as a Software)

13 - Internal Use Only -

OpenShift 의 기반은 Linux

Ubunt CentOS Fedora RHEL

14 - Internal Use Only -

브로커 시스템은 노드들을 관리

Node는 사용자 APP이 위치 한 곳이고, Broker는 OpenShift 동작을 관리 합니다.

Brokers Node Node Node

15 - Internal Use Only -

사용자 소스 보안 관리는 SELinux로 관리

SELinux 정책들은 노드의 인스턴스들을 안전하게 분리 시킵니다.

Brokers Node Node Node

사용자 소스 SELinux 관리

16 - Internal Use Only -

WEB Console Eclipse IDE

CLI

Developer Workflow

Linux Linux Linux

OpenShift Gear

Brokers Node Node Node

개발자가 새로운 APP을 생성 -> OpenShift가 Gear를 생성

17 - Internal Use Only -

WEB Console Eclipse IDE

CLI

Cartridge를 통해 Gear구성을 자동화

Linux Linux Linux

My SQL

Brokers Node Node Node

JBoss

OpenShift 카트리지가 DB 및 미들웨어, Languages 설치 합니다.

18 - Internal Use Only -

카트리지엔 사용자가 정의한 APP 생성

Java

OpenShift 기본 카트리지

My SQL

PHP Postgres

Python JBoss

Ruby Etc

CUSTOM

개발자는 custom language, data-store, 또는 미들웨어를 custom 카트리지를 통해 추가 가능

합니다.

19 - Internal Use Only -

Git Protocol / ssh

소스 코딩 후, 업로드

Linux Linux Linux

My SQL

Brokers Node Node Node

Code Git repo JBoss

개발자는 응용 프로그램 통해 GIT 소스 관리 시스템으로 소스를 업로드를 합니다.

20 - Internal Use Only -

OpenShift에서 개발하는 방법

개발 응용 프로그램

웹 브라우저 콘솔 Command Line Tool

REST APIs

21 - Internal Use Only -

어떤 장치에서도 동작하는 웹 콘솔

22 - Internal Use Only -

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

23 - Internal Use Only -

개발 응용 프로그램

24 - Internal Use Only -

개발자는 언어 , 프레임웍, 미들웨어 선택

OpenShift 구축

26 - Internal Use Only -

사전 준비 사항

대상 시스템

- Broker Host

- Node Host

준비 사항 및 필요한 서비스

- RHEL, OpenShift Enterprise 서브스크립션 등록

- NTP 동기화

- SSH

- Yum repository

27 - Internal Use Only -

DNS Install and Configure

목적

- named 기반으로 Broker, Node, Gear 시스템 관리

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

- SSH

- BIND

- text editor (vi, emacs, nano, etc)

- 환경 변수 설정

- SELinux

28 - Internal Use Only -

DHCP Client and Hostname

목적

- 특정 DNS 서버를 사용하도록 Broker 호스트를 구성 하려면 /etc/dhcp/dhclient-

[네트워크 장치]를 편집 해야 합니다.

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

- text editor (vi, emacs, nano, etc)

29 - Internal Use Only -

Installing MongoDB

목적

- 사용자 인증

- 기본 Gear 크기 지정

- 관리 사용자 계정 생성

- 일반 사용자 계정 생성

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

- text editor (vi, emacs, nano, etc)

- yum

- mongo, chkconfig, service, lokkit, firewall-cmd

30 - Internal Use Only -

Installing and Configuring Active MQ

목적

- Broker 시스템과 Node간의 메시지를 전송하기 위한 서비스 구성

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

- text editor (vi, emacs, nano, etc)

- yum

- lokkit

- firewall-cmd

- chkconfig

- service

31 - Internal Use Only -

Verify that Active MQ is Working

웹 사이트 접속하여 정상 설치 및 설정 테스트

- http://localhost:8161

- 아래와 같은 화면이 나오면 정상

32 - Internal Use Only -

Installing and Configuring Mcollective

목적

- Broker 시스템과 Node간의 메시지를 수신하는 서비스 구성

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

- text editor (vi, emacs, nano, etc)

- yum

33 - Internal Use Only -

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

34 - Internal Use Only -

Broker Plugins

목적

- DNS, 인증, 메시징 구성이 제대로 작동 되는지 확인 하기 위한 Plugin 설정

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

- text editor (vi, emacs, nano, etc)

- cat

- echo

- enviroment variables

- pushd

- semodule

- htpasswd, mongo, bundler, chkconfig, service

35 - Internal Use Only -

Verifying the Broker Configuration

REST API가 정상적으로 동작 하는지 확인

- curl -Ik https://localhost/broker/rest/api

- Status: 200 메시지가 나오면 정상

36 - Internal Use Only -

The Web Console

목적

- OpenShift 웹 콘솔은 Ruby로 개발 되어 있으며 Gear, Host에 배포 된 응용

프로그램의 Gear를 생성하고 관리하는 웹 관리 페이지를 생성

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

- text editor (vi, emacs, nano, etc)

- yum

- service

- chkconfig

37 - Internal Use Only -

Installing and Configuring Mcollective on Node hosts

목적

- Broker와 Node 간의 통신 할 수 있는 환경 설치 및 설정

대상 시스템

- Node

준비 사항 및 필요한 서비스

- text editor (vi, emacs, nano, etc)

- yum

- dig

- chkconfig

38 - Internal Use Only -

Verifying the Mcollective Configuration

Broker host에서 mco ping 명령어 이용

- Broker와 Node 간의 통신이 정상적으로 되어 있는지 확인

39 - Internal Use Only -

Installing and Configuring the Node Application

목적

- Node Host에서 동작하기 위한 필요한 Package 설치

대상 시스템

- Node

준비 사항 및 필요한 서비스

- text editor (vi, emacs, nano, etc)

- yum

- dig

- chkconfig

40 - Internal Use Only -

Configuring Multi-Tenancy on the Node Host

대상 시스템

- Node

준비 사항 및 필요한 서비스

- text editor (vi, emacs, nano, etc)

- sed

- restorecon

- chkconfig

- service

- mount

- quotacheck

41 - Internal Use Only -

Verifying the OpenShift

웹 브라우저 접속 화면

- http://broker.example.com

42 - Internal Use Only -

Trouble Shooting

oo-diagnostics

- Broker 및 Node 전체 시스템에 문제가 될 만한 요소가 있는지, 또는 문제가

있다면 해결 방법에 대한 메시지를 출력 해주는 스크립트

- 시스템의 문제가 발생시 Red Hat 기술 지원 요청을 할 때 필요한 스크립트

43 - Internal Use Only -

Trouble Shooting - Broker

Broker 설정 확인 스크립트

- oo-accept-broker

- broker 시스템 구성에 잠재적인 문제가 있는지 설정상에 문제가 있는지 최종

확인 할 수 있는 스크립트 파일

- 문제가 없으면 PASS 메시지 출력

44 - Internal Use Only -

Trouble Shooting - node

node 설정 확인 스크립트

- oo-accept-node

- node 시스템 구성에 잠재적인 문제가 있는지 설정상에 문제가 있는지 최종

확인 할 수 있는 스크립트 파일

- 문제가 없으면 PASS 메시지 출력

RHC Client Tool

46 - Internal Use Only -

Installing the RHC client tool & setup

대상 시스템

- localhost

준비 사항 및 필요한 서비스

- ruby

- sudo

- git

- yum

- gem

- rhc

47 - Internal Use Only -

PHP 애플리케이션 설치

대상 시스템

- localhost

- node host

준비 사항 및 필요한 서비스

- rhc

48 - Internal Use Only -

Verifying the user application.

웹 브라우저 접속 화면

- http://firstphp-ose.example.com

49 - Internal Use Only -

OPEN

SHARE

CONTRIBUTE

ADOPT

REUSE