오픈시프트

**오픈시프트**(OpenShift)는 레드햇에서 개발한 컨테이너화 소프트웨어 제품군이다. 대표 제품은 **오픈시프트 컨테이너 플랫폼**(OpenShift Container Platform)으로, 레드햇 엔터프라이즈 리눅스를 기반으로 쿠버네티스에 의해 오케스트레이션 및 관리되는 리눅스 컨테이너를 중심으로 구축된 하이브리드 클라우드 서비스형 플랫폼이다. 이 제품군의 다른 제품들은 다양한 환경을 통해 이 플랫폼을 제공한다. **OKD**(Origin Community Distribution)는 커뮤니티 주도의 업스트림 역할을 하며(마치 페도라가 레드햇 엔터프라이즈 리눅스의 업스트림인 것과 유사함), 자체 관리형, 클라우드 네이티브 방식인 **ROSA**(AWS 기반 레드햇 오픈시프트 서비스), **ARO**(애저 레드햇 오픈시프트), **RHOIC**(IBM 클라우드 기반 레드햇 오픈시프트) 등 아마존 웹 서비스(AWS), 애저(Azure), IBM 클라우드에서 각각 제공되는 다양한 배포 방식이 존재한다. 또한 서비스형 소프트웨어인 온프시프트 온라인(OpenShift Online)과 관리형 서비스인 오픞ㄴ시프트 데디케이티드(OpenShift Dedicated)가 있다.

오픈시프트 콘솔에는 개발자 및 관리자 지향 뷰가 있다. 관리자 뷰에서는 컨테이너 자원 및 상태 모니터링, 사용자 관리, 오퍼레이터 작업 등을 수행할 수 있다. 개발자 뷰는 네임스페이스 내의 애플리케이션 자원 작업에 최적화되어 있다. 또한 오픈시프트는 쿠버네티스 CLI가 제공하는 기능의 상위 집합을 지원하는 CLI를 제공한다.

## 역사
오픈시프트는 원래 2010년 11월 레드햇이 리눅스 컨테이너 기반의 서비스형 플랫폼(PaaS)을 마케팅하던 회사인 마카라(Makara)를 인수하면서 시작되었다.
오픈시프트는 2011년 5월 독점 기술로 발표되었으며, 2012년 5월이 되어서야 오픈 소스가 되었다. 2015년 6월에 출시된 v3 이전까지는 컨테이너 기술과 컨테이너 오케스트레이션 기술로 자체 개발된 기술을 사용했다. v3에서 도커를 컨테이너 기술로, 쿠버네티스를 컨테이너 오케스트레이션 기술로 채택하며 변화가 생겼다. v4 제품은 많은 아키텍처적 변화가 있었는데, 그중 눈에 띄는 것은 컨테이너 런타임으로 CRI-O를(그리고 파드 및 컨테이너 상호작용을 위해 Podman을), 컨테이너 빌드 도구로 Buildah를 사용하도록 전환한 것이다. 이를 통해 도커에 대한 독점적 의존성을 탈피했다.

## 아키텍처
오픈시프트와 순정 쿠버네티스의 주요 차이점은 빌드 관련 아티팩트의 개념이다. 오픈시프트에서 이러한 아티팩트는 표준 쿠버네티스 작업이 적용될 수 있는 1급(first class) 쿠버네티스 자원으로 간주된다. 오픈시프트의 클라이언트 프로그램인 "oc"는 쿠버네티스의 메인라인 "kubectl" 클라이언트 프로그램에 포함된 표준 기능의 상위 집합을 제공한다. 이 클라이언트를 사용하면 하위 명령(예: "new-build" 또는 "start-build")을 사용하여 빌드 관련 자원과 직접 상호작용할 수 있다. 이 외에도 Source-to-Image (S2I)라는 오픈시프트 네이티브 파드 빌드 기술이 기본 제공되지만, 이는 쿠버네티스에 빌드 및 배포하는 클라우드 네이티브 방식인 Tekton으로 서서히 대체되고 있다. 오픈시프트 플랫폼에서 이는 젠킨스가 수행할 수 있는 것과 동등한 기능을 제공한다.

오픈시프트를 쿠버네티스와 비교했을 때의 다른 차이점은 다음과 같다:

# 오픈시프트는 설치 시 이미지 저장소가 기본으로 함께 제공된다.
# 이미지스트림(ImageStreams, 배포와 연관될 수 있는 이미지 포인터의 시퀀스)과 템플릿(Templates, 애플리케이션 구성 요소용 패키징 메커니즘)은 오픈시프트만의 고유한 기능으로, 애플리케이션 배포와 관리를 단순화한다.
# 애플리케이션 배포를 시작하는 데 사용되는 "new-app" 명령은 생성되는 모든 자원에 자동으로 앱 레이블(--name 인수에서 가져온 값)을 적용한다. 이는 애플리케이션 자원 관리를 단순화할 수 있다.
# 플랫폼 측면에서 오픈시프트는 과거 레드햇의 서비스로만 제한되었으나, 2020년 오픈시프트 4부터는 AWS, IBM 클라우드, vSphere 및 베어메탈 배포 등을 지원한다.
# 오픈시프트의 배포 구현체인 DeploymentConfig는 쿠버네티스의 컨트롤러 기반 Deployment 객체와 비교하여 로직 기반으로 작동한다. v4.5부터 오픈시프트는 CLI의 기본 동작을 변경하여 Deployment 쪽으로 더 유도하고 있다.
# 내장된 OperatorHub를 제공한다. 이는 사용자가 쉬운 수명 주기 관리를 위해 패키징된 쿠버네티스 오퍼레이터 라이브러리를 탐색하고 설치할 수 있는 웹 GUI이다. 여기에는 레드햇 제작 오퍼레이터, 레드햇 인증 오퍼레이터 및 커뮤니티 오퍼레이터가 포함된다.

오픈시프트 v4는 사용되는 운영체제를 엄격하게 제어한다. "제어 평면(control plane)" 구성 요소는 반드시 레드햇 코어OS(Red Hat CoreOS)를 실행해야 한다. 이러한 제어 수준 덕분에 클러스터는 최소한의 노력으로 제어 평면 노드의 업그레이드 및 패치를 지원할 수 있다. 컴퓨팅 노드는 모든 리눅스 OS나 심지어 윈도우에서도 실행될 수 있다.

오픈시프트는 쿠버네티스 클러스터로 유입되는 트래픽의 진입점인 '루트(route)' 개념을 도입했다. 쿠버네티스의 인그레스(ingress) 개념은 이를 모델로 삼아 만들어졌다.

오픈시프트에는 애플리케이션 런타임뿐만 아니라 쿠버네티스 생태계의 인프라 구성 요소와 같은 기타 소프트웨어가 포함되어 있다. 예를 들어 관측 가능성(observability) 요구 사항을 위해 프로메테우스, Fluentd, Vector, Loki, Istio(및 그 의존성)가 포함된다. Istio의 레드햇 브랜딩 명칭은 Red Hat Service Mesh이며, 이는 순정 Istio를 오픈 소스 오픈시프트의 요구 사항에 맞춘 Maistra라는 오픈 소스 프로젝트를 기반으로 한다.

## 제품
### OpenShift Container Platform
오픈시프트 컨테이너 플랫폼(OpenShift Container Platform, 이전 명칭 OpenShift Enterprise)은 레드햇의 온프레미스 프라이빗 서비스형 플랫폼 제품이다. 레드햇 엔터프라이즈 리눅스 및 레드햇 엔터프라이즈 리눅스 코어OS 위에서 CRI-O 기반 애플리케이션 컨테이너를 중심으로 구축되었으며, 쿠버네티스를 통한 오케스트레이션 및 관리를 제공한다.

### OKD
2018년 8월까지 OpenShift Origin으로 알려졌던 OKD(Origin Community Distribution)는 오픈시프트 온라인, 오픈시프트 데디케이티드 및 오픈시프트 컨테이너 플랫폼에서 사용되는 업스트림 커뮤니티 프로젝트이다. 도커 컨테이너 패키징과 쿠버네티스 컨테이너 클러스터 관리 코어를 중심으로 구축된 OKD는 애플리케이션 수명 주기 관리 기능과 DevOps 툴링으로 보강되었다. OKD는 오픈 소스 애플리케이션 컨테이너 플랫폼을 제공한다. OKD 프로젝트의 모든 소스 코드는 깃허브에서 아파치 라이선스 (버전 2.0)에 따라 사용할 수 있다.

### Red Hat OpenShift Online
레드햇 오픈시프트 온라인(Red Hat OpenShift Online, RHOO)은 AWS와 IBM 클라우드에서 실행되는 레드햇의 퍼블릭 클라우드 애플리케이션 개발 및 호스팅 서비스이다.

온라인 버전은 OKD 프로젝트 소스 코드의 버전 2를 제공했으며, 이 역시 아파치 라이선스 버전 2.0에 따라 사용 가능했다. 이 버전은 자원 할당량(quota)인 "기어(gears)"에서 실행되는 사전 구축된 "카트리지(cartridges)"를 통해 다양한 언어, 프레임워크 및 데이터베이스를 지원했다. 개발자는 오픈시프트 카트리지 애플리케이션 프로그래밍 인터페이스를 통해 다른 언어, 데이터베이스 또는 구성 요소를 추가할 수 있었다. 이 방식은 오픈시프트 3를 위해 중단되었으며, 비유료 고객은 2017년 9월 30일에, 유료 고객은 2017년 12월 31일에 서비스가 종료되었다.

오픈시프트 3는 쿠버네티스를 기반으로 구축되었다. 모든 도커 기반 컨테이너를 실행할 수 있지만, 오픈시프트 온라인은 루트 권한이 필요하지 않은 컨테이너 실행으로 제한된다.

IBM Z 및 IBM LinuxONE용 레드햇 오픈시프트 4는 온프레미스, 클라우드 및 하이브리드 환경을 지원한다.

### OpenShift Dedicated
오픈시프트 데디케이티드(OpenShift Dedicated, OSD)는 레드햇의 관리형 프라이빗 클러스터 서비스로, 레드햇 엔터프라이즈 리눅스 기반 위에서 쿠버네티스에 의한 오케스트레이션과 관리, 도커 기반 애플리케이션 컨테이너 코어를 중심으로 구축되었다. 2016년 12월부터 아마존 웹 서비스(AWS), IBM 클라우드, 구글 클라우드 플랫폼(GCP) 마켓플레이스에서 사용할 수 있다. 관리형 프라이빗 클러스터 서비스는 마이크로소프트 애저에서도 Azure Red Hat OpenShift(ARO)라는 이름으로 제공된다.

### OpenShift Data Foundation
오픈시프트 데이터 파운데이션(OpenShift Data Foundation, ODF)은 클라우드, 온프레미스 및 하이브리드/멀티 클라우드 환경의 오픈시프트 컨테이너 플랫폼에서 실행되는 애플리케이션을 위해 클라우드 네이티브 스토리지, 데이터 관리 및 데이터 보호 기능을 제공한다.

### OpenShift Database Access
레드햇 오픈시프트 데이터베이스 액세스(Red Hat OpenShift Database Access, RHODA)는 관리형 오픈시프트 쿠버네티스 환경에서 관리자가 다양한 제공업체의 서비스형 데이터베이스(DBaaS) 서비스에 대한 연결을 설정할 수 있게 해주는 기능이다. RHODA는 OSD 및 AWS 기반 레드햇 오픈시프트 서비스(ROSA)의 애드온 서비스이다. RHODA의 초기 알파 릴리스에는 MongoDB용 MongoDB Atlas와 PostgreSQL용 Crunchy Bridge에 대한 지원이 포함되었다.

## 같이 보기
* 오픈스택
* 아파치 서비스믹스

## 각주

## 추가 문헌
* 
* 
* 

## 외부 링크
* 
* 

분류:클라우드 컴퓨팅 제공자
분류:클라우드 플랫폼
분류:클라우드 스토리지
분류:파일 호스팅
분류:컨테이너화 소프트웨어
분류:루비로 작성된 자유 소프트웨어
분류:레드햇 소프트웨어
분류:웹 호스팅
분류:웹 서비스
분류:Go로 작성된 자유 소프트웨어
분류:클라우드 컴퓨팅용 자유 소프트웨어