본문 바로가기

인공지능

Openship란? 오픈소스 셀프 호스팅 CI/CD 배포 플랫폼의 특징과 동작 방식

728x90
반응형
728x170

Openship 소개

애플리케이션을 서버에 배포하는 과정은 생각보다 많은 작업이 필요합니다. 소스코드 빌드부터 컨테이너 생성, 서버 배포, 도메인 연결, SSL 인증서 발급, CI/CD 구성까지 각각의 요소를 별도로 구축하고 관리해야 하기 때문입니다.

Openship은 이러한 배포 과정을 하나의 플랫폼으로 통합한 오픈소스(Self-hostable) 배포 플랫폼입니다. Git 저장소를 연결하면 애플리케이션을 자동으로 빌드하고 배포하며, 라우팅과 TLS(SSL) 종료까지 하나의 파이프라인으로 처리할 수 있습니다.

또한 데스크톱 애플리케이션, 웹 대시보드, CLI 등 다양한 인터페이스를 제공하여 개인 개발자는 물론 팀 환경에서도 동일한 방식으로 서비스를 운영할 수 있습니다.

이번 글에서는 Openship의 개념과 구조, 주요 기능, 배포 방식 그리고 제공하는 특징을 정리해보겠습니다.

반응형

Openship란?

Openship은 오픈소스 기반의 셀프 호스팅 배포 플랫폼으로, 애플리케이션의 빌드부터 배포, 라우팅, SSL 구성까지 하나의 플랫폼에서 관리할 수 있도록 설계되었습니다.

저장소(Repository)를 연결하면 다음과 같은 작업을 자동으로 수행합니다.

  • 애플리케이션 분석
  • 빌드
  • 배포
  • 라우팅 구성
  • TLS(SSL) 인증서 적용
  • CI/CD 실행

별도의 복잡한 설정 파일을 작성하지 않아도 대부분의 프로젝트를 자동으로 분석하여 배포를 진행할 수 있으며, 필요한 경우 설정 파일을 통해 동작을 직접 제어할 수도 있습니다.


Openship의 배포 방식

Openship은 사용 환경에 따라 세 가지 실행 방식을 제공합니다.

1. Desktop App

개인 개발자를 위한 방식입니다.

특징은 Openship의 Control Plane이 로컬 PC에서만 실행된다는 점입니다.

  • SSH를 통해 서버 연결
  • 로그인 없이 사용 가능
  • 별도의 항상 실행되는 서버 불필요
  • 노트북에서 직접 서버 배포 가능

Push-to-Deploy나 팀 협업 기능이 필요하지 않은 경우 가장 간단한 방식입니다.


2. Self-hosted Server

항상 실행되는 Openship 서버를 직접 운영하는 방식입니다.

CLI를 설치한 후 다음 명령으로 환경을 구성합니다.

curl -fsSL https://get.openship.io | sh

openship

또는 CI/CD 서버에서는 다음과 같이 실행할 수 있습니다.

openship up

이 방식은 다음 기능을 사용할 수 있습니다.

  • Push-to-Deploy
  • 팀 협업
  • 항상 실행되는 Dashboard
  • 자체 서버에서 애플리케이션 호스팅

3. Openship Cloud

별도의 인프라를 직접 운영하지 않는 방식입니다.

  • 관리형 Sandbox 제공
  • 설치 과정 없음
  • 즉시 배포 가능

인프라 관리보다 애플리케이션 개발에 집중하려는 환경에 적합합니다.


Openship의 동작 과정

Openship은 하나의 프로젝트를 다음과 같은 순서로 배포합니다.

1. 프로젝트 분석(Detect)

먼저 프로젝트를 자동으로 분석합니다.

다음과 같은 파일을 기반으로 애플리케이션 정보를 추론합니다.

  • package.json
  • Framework 설정
  • Lockfile
  • docker-compose.yml
  • openship.json

이를 통해

  • 사용 언어
  • 패키지 관리자
  • Build 명령
  • Start 명령
  • 실행 포트

등을 자동으로 결정합니다.

별도의 설정 없이도 동작하며, 필요하면 openship.json으로 자동 분석 결과를 재정의할 수 있습니다.


2. Build

분석 결과를 기반으로 애플리케이션을 빌드합니다.

환경에 따라

  • Docker Image
  • Bare Release

형태로 생성됩니다.

또한 배포 시점의 설정을 Snapshot으로 저장하기 때문에 이후 재배포(Redeploy)나 Rollback 시 동일한 환경을 그대로 재현할 수 있습니다.


3. Run

빌드된 애플리케이션은

  • Docker Container
  • Host Process

중 하나의 방식으로 실행됩니다.

컨테이너는 Loopback에서만 공개되므로 외부에 직접 노출되지 않습니다.


4. Routing 및 TLS

애플리케이션이 실행된 이후 Openship은 OpenResty 기반 Edge를 통해

  • Reverse Proxy 구성
  • 도메인 연결
  • Let's Encrypt 인증서 발급

을 수행합니다.

라우팅과 TLS 작업은 애플리케이션이 정상적으로 실행된 이후 진행되므로, DNS나 인증서 발급 문제가 발생하더라도 기존 애플리케이션의 배포에는 영향을 주지 않습니다.


5. Push-to-Deploy

GitHub Webhook과 연동하면 저장소에 Push가 발생할 때마다 자동으로 배포됩니다.

또한 Monorepo 환경에서는 변경된 서비스만 다시 빌드하여 효율적으로 배포를 수행합니다.


다양한 인터페이스 제공

Openship은 동일한 백엔드를 여러 인터페이스에서 사용할 수 있도록 구성되어 있습니다.

Desktop App

GUI 기반으로 실시간 로그와 배포를 관리할 수 있습니다.

개인 개발자에게 적합합니다.


Web Dashboard

브라우저에서 사용하는 관리 화면입니다.

팀 단위 운영 환경을 고려하여 제공됩니다.


CLI

스크립트 작성 및 CI 환경에서 사용하기 위한 인터페이스입니다.

설치부터 관리까지 대부분의 기능을 CLI로 수행할 수 있습니다.


MCP Endpoint 및 REST API

자동화를 위한 인터페이스도 제공합니다.

  • MCP Endpoint
  • REST API

권한이 허용된 경로만 MCP Tool로 노출되며, 모든 요청은 권한을 다시 확인하도록 설계되어 있습니다.


Openship 주요 기능

Openship은 다양한 개발 환경을 지원합니다.

Built-in CI/CD

  • Push-to-Deploy
  • Preview Environment
  • Staging/Production Workflow
  • Rollback 지원

다양한 기술 스택 지원

다음과 같은 다양한 언어 및 플랫폼을 지원합니다.

  • Node.js
  • Python
  • Go
  • Rust
  • PHP
  • Ruby
  • Java
  • .NET
  • Docker
  • Monorepo

다양한 배포 대상 지원

동일한 인터페이스로 여러 환경에 배포할 수 있습니다.

  • Openship Cloud
  • VPS
  • Dedicated Server
  • Bare Metal
  • Homelab
  • Multi-server 환경

배포 대상이 달라져도 동일한 방식으로 관리할 수 있는 것이 특징입니다.


간단한 사용 예제

프로젝트를 Openship으로 배포하는 과정은 매우 단순합니다.

프로젝트를 연결합니다.

cd your-project

openship init

이후 배포를 실행합니다.

openship deploy

이후 Openship이 프로젝트를 분석하고 빌드, 실행, 라우팅 및 TLS 구성까지 자동으로 수행합니다.


Openship의 특징 정리

Openship의 주요 특징은 다음과 같습니다.

  • 오픈소스 기반 셀프 호스팅 지원
  • 빌드부터 배포까지 자동화된 CI/CD 제공
  • Docker와 Bare 환경 모두 지원
  • Desktop, Web, CLI 등 다양한 인터페이스 제공
  • GitHub Push 기반 자동 배포 지원
  • 다양한 언어와 프레임워크 지원
  • 도메인 및 Let's Encrypt SSL 자동 구성
  • VPS, Cloud, Dedicated Server 등 다양한 배포 환경 지원

현재 개발 현황

Openship은 현재 핵심 기능은 Production Ready 상태이며 지속적으로 개발이 진행되고 있습니다.

셀프 호스팅은 무료로 제공되며, 앞으로 다음과 같은 기능이 추가될 예정입니다.

  • Multi-node Cluster
  • Load Balancing UI
  • Private Networking
  • Advanced Monitoring
  • Visual CI/CD Pipeline

728x90

Openship은 애플리케이션 배포 과정에서 필요한 빌드, 배포, 라우팅, SSL, CI/CD를 하나의 플랫폼으로 통합한 오픈소스 배포 플랫폼입니다.

특히 개인 개발자를 위한 로컬 기반 Desktop App부터 팀 협업을 위한 Self-hosted Server, 별도 설치 없이 사용할 수 있는 Cloud 환경까지 다양한 운영 방식을 제공하여 사용 목적에 맞는 배포 환경을 선택할 수 있습니다.

또한 프로젝트를 자동으로 분석하여 별도의 복잡한 설정 없이 배포를 수행하고, Docker 및 Bare 환경을 모두 지원하는 점은 운영 편의성을 높이는 요소입니다.

애플리케이션 배포와 운영을 보다 일관되고 효율적으로 관리하고자 하는 개발자와 팀이라면 Openship의 자동화된 배포 방식과 통합 관리 기능을 검토해볼 만합니다.

300x250

https://github.com/oblien/openship

 

GitHub - oblien/openship: Self-hosted deployment platform

Self-hosted deployment platform. Contribute to oblien/openship development by creating an account on GitHub.

github.com

728x90
반응형
그리드형