OpenShift

OpenShift는


클라우드 PaaS 환경에서 사용자의 어플리케이션을 개발, 배포, 운영 및 관리 할 수 있도록 개발 환경을 생성해 주는 오픈 소스 플랫폼 입니다.

OpenShift 개발 관리 시스템은 관리 노드인 브로커(Broker)호스트와 개발자(사용자) 영역인 기어(Gear)가 올라가는 노드(Node) 호스트로 구성됩니다.

관리 노드(Broker)는 네임서버, 세션관리, 인증, 그리고 사용자 및 상태 등이 데이터가 저장되는 DB로 구성됩니다. 그리고, 기어(Gear)는 개발자(사용자)들이 클라이언트를 통해 개발 환경인 PaaS에 접속하고, 개발소스를 동기화하기 위한 Git, 그리고, 관련 애플리케이션들이 설치되는 영역입니다.



<그림 1> Openshift Scalable Architecture (*출처 : openshift.com)

OpenShift 기본 구조

OpenShift는 개발자/사용자 계정을 생성한 이후 ssh를 이용한 커넥션을 통해 개발 및 소스 동기화 등의 과정을 진행합니다. 소스코드의 commit된 사항에 대해서는 브라우저를 통해 정상적으로 구현되어 있는지 확인합니다. 이러한 과정에 대한 세션 정보 등은 메시징을 통해서 처리가 되며 관련 인증이나 사용자 설정정보, 어플리케이션 정보 등은 관리 노드인 브로커 호스트에 저장됩니다.

OpenShift 주요 구성 요소

OpenShift는 개발자/사용자에 설치되는 rubygem, git, ssh등의 클라이언트 모듈과 인증 및 네임서버, 데이터 관리를 하는 관리 모듈인 Broker, 그리고, 실제 사용자가 사용하는 영역인 Gear가 구성되는 node host 영역으로 구성됩니다.

OpenShift 업무 흐름

OpenShift는 클라이언트 형태의 개발자와 인증 및 네임 서비스 등을 관리하고 데이터를 저장하는 Broker, 그리고, 개발자(사용자) 영역으로 어플리케이션(Catridge)가 설치되고, 개발 소스 코드가 저장되는 Node Gear들간의 흐름을 웹 기반을 통해 손쉽게 가능하도록 지원합니다.

다양한 애플리케이션 및 개발 언어 지원

클라우드 기반 개발 플랫폼(PaaS)은 다양한 개발 언어 및 미들웨어, DBMS, 기타 개발 관련 툴들을 제공하여 표준화 및 생산성을 높일 수 있도록 해야 합니다.

OpenShift에서는 이에 대한 여러 애플리케이션과 버전들을 제공한다. 주요 제공 어플리케이션은 아래와 같습니다.

  • 개발언어: Python, Java, Php, Node.js, Ruby, Perl
  • 미들웨어: 아파치/JBossEWS, 톰캣/Jboss EAP
  • 어플리케이션 백엔드 데이타베이스: MySQL, PostgreSQL
  • 관리 용도의 기타: Cron, Git, Jenkins, Maven, HA proxy
  • DIY(Do-It-Yourself): OpenShift에서 지원하지 않은 어플리케이션을 사용자가 사용하고자 하는 경우 자체적으로 만드는 카트리지

다양한 개발자 환경 지원

클라우드 기반의 개발플랫폼에서는 개발자/사용자의 다양한 개발 클라이언트 환경에 대한 지원이 되어야 합니다. Eclipse같은 IDE를 통한 개발 및 소스 동기화, CLI를 통한 개발플랫폼(PaaS) 연계 및 소스 동기화, 빌드 지원, Git를 이용한 소스 동기화, 브라우저를 통한 개발 commit소스에 대한 실시간 적인 확인 등을 지원합니다.