Top Banner
2013. 12 OpenShift Certified Partner by
49

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

Nov 29, 2014

Download

Technology

Ji-Woong Choi

레드햇의 PaaS(Platform as a Service) 솔루션인 OpenShift 개요 및 설치 방법, 구성 등에 대한 자세한 설명을 담고 있습니다.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: [오픈소스컨설팅] OpenShift PaaS Platform How-to

2013. 12

OpenShift

Certified Partner by

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

2 - Internal Use Only -

목차

OpenShift 개요

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

OpenShift 구축

RHC Client Tool

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

3 - Internal Use Only -

OpenShift 개요

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

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

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

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

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

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

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

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

4 - Internal Use Only -

OpenShift 종류

OpenShift - Origin

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

OpenShift - Enterprise

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

OpenShift - Online

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

origin

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

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 지원

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

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

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

7 - Internal Use Only -

브로커 (Broker)

상용 제품

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

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

관리 합니다.

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

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

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

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

8 - Internal Use Only -

노드 (Node)

상용 제품

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

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

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

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

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

합니다.

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

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

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

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

9 - Internal Use Only -

Open Shift 전체 아키텍처

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

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

10 - Internal Use Only -

Simple Job Flow View

상용 제품

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

11 - Internal Use Only -

OpenShift 동작 방법

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

12 - Internal Use Only -

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

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

13 - Internal Use Only -

OpenShift 의 기반은 Linux

Ubunt CentOS Fedora RHEL

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

14 - Internal Use Only -

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

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

Brokers Node Node Node

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

15 - Internal Use Only -

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

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

Brokers Node Node Node

사용자 소스 SELinux 관리

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

16 - Internal Use Only -

WEB Console Eclipse IDE

CLI

Developer Workflow

Linux Linux Linux

OpenShift Gear

Brokers Node Node Node

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

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

17 - Internal Use Only -

WEB Console Eclipse IDE

CLI

Cartridge를 통해 Gear구성을 자동화

Linux Linux Linux

My SQL

Brokers Node Node Node

JBoss

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

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

18 - Internal Use Only -

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

Java

OpenShift 기본 카트리지

My SQL

PHP Postgres

Python JBoss

Ruby Etc

CUSTOM

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

합니다.

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

19 - Internal Use Only -

Git Protocol / ssh

소스 코딩 후, 업로드

Linux Linux Linux

My SQL

Brokers Node Node Node

Code Git repo JBoss

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

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

20 - Internal Use Only -

OpenShift에서 개발하는 방법

개발 응용 프로그램

웹 브라우저 콘솔 Command Line Tool

REST APIs

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

21 - Internal Use Only -

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

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

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

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

23 - Internal Use Only -

개발 응용 프로그램

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

24 - Internal Use Only -

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

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

OpenShift 구축

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

26 - Internal Use Only -

사전 준비 사항

대상 시스템

- Broker Host

- Node Host

준비 사항 및 필요한 서비스

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

- NTP 동기화

- SSH

- Yum repository

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

27 - Internal Use Only -

DNS Install and Configure

목적

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

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

- SSH

- BIND

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

- 환경 변수 설정

- SELinux

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

28 - Internal Use Only -

DHCP Client and Hostname

목적

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

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

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

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

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

29 - Internal Use Only -

Installing MongoDB

목적

- 사용자 인증

- 기본 Gear 크기 지정

- 관리 사용자 계정 생성

- 일반 사용자 계정 생성

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

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

- yum

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

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

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

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

31 - Internal Use Only -

Verify that Active MQ is Working

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

- http://localhost:8161

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

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

32 - Internal Use Only -

Installing and Configuring Mcollective

목적

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

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

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

- yum

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

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

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

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

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

35 - Internal Use Only -

Verifying the Broker Configuration

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

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

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

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

36 - Internal Use Only -

The Web Console

목적

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

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

대상 시스템

- Broker Host

준비 사항 및 필요한 서비스

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

- yum

- service

- chkconfig

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

37 - Internal Use Only -

Installing and Configuring Mcollective on Node hosts

목적

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

대상 시스템

- Node

준비 사항 및 필요한 서비스

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

- yum

- dig

- chkconfig

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

38 - Internal Use Only -

Verifying the Mcollective Configuration

Broker host에서 mco ping 명령어 이용

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

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

39 - Internal Use Only -

Installing and Configuring the Node Application

목적

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

대상 시스템

- Node

준비 사항 및 필요한 서비스

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

- yum

- dig

- chkconfig

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

40 - Internal Use Only -

Configuring Multi-Tenancy on the Node Host

대상 시스템

- Node

준비 사항 및 필요한 서비스

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

- sed

- restorecon

- chkconfig

- service

- mount

- quotacheck

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

41 - Internal Use Only -

Verifying the OpenShift

웹 브라우저 접속 화면

- http://broker.example.com

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

42 - Internal Use Only -

Trouble Shooting

oo-diagnostics

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

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

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

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

43 - Internal Use Only -

Trouble Shooting - Broker

Broker 설정 확인 스크립트

- oo-accept-broker

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

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

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

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

44 - Internal Use Only -

Trouble Shooting - node

node 설정 확인 스크립트

- oo-accept-node

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

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

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

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

RHC Client Tool

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

46 - Internal Use Only -

Installing the RHC client tool & setup

대상 시스템

- localhost

준비 사항 및 필요한 서비스

- ruby

- sudo

- git

- yum

- gem

- rhc

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

47 - Internal Use Only -

PHP 애플리케이션 설치

대상 시스템

- localhost

- node host

준비 사항 및 필요한 서비스

- rhc

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

48 - Internal Use Only -

Verifying the user application.

웹 브라우저 접속 화면

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

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

49 - Internal Use Only -

OPEN

SHARE

CONTRIBUTE

ADOPT

REUSE