Discourse + 웹 서버. 가능한가요, 아니면 피하는 게 나을까요?

@OrbitStorm

사실, Discourse는 현재 지구상에서 가장 뛰어난 포럼 및 커뮤니티 구축 오픈소스 소프트웨어입니다(개인적 의견). 그 이유는 많지만, 몇 가지만 언급하자면 다음과 같습니다:

  1. Discourse는 오픈소스이며, 강력한 커뮤니티와 매우 똑똑하고(또한 능력이 있는) 핵심 개발 팀을 보유하고 있습니다.

  2. Discourse는 프로덕션 환경에서 Docker 컨테이너로 실행되도록 설계되어 있으며, 이는 많은 이점이 있습니다:

  • Discourse는 외부 웹 서버나 데이터베이스가 필요 없이 standalone mode(스탠드얼론 모드)로 쉽게 배포할 수 있습니다.

  • Discourse는 multi-container mode(멀티 컨테이너 모드)로 쉽게 배포할 수 있어 더 높은 안정성과 무중단 업그레이드를 제공합니다.

  • Discourse는 Docker Swarm과 Kubernetes를 사용하여 매우 높은 가용성 구성으로 배포할 수도 있으며, 이 경우 Discourse는 "온디맨드"로 확장 및 축소될 수 있습니다.

  • Discourse는 백업과 복원이 쉽습니다. 표준 Discourse 백업을 OOTB(Out of the Box, 별도 설정 없이)로 생성한 후, 전 세계 어디에서나 새롭고 깨끗한 Docker 컨테이너에 복원할 수 있습니다.

  1. Discourse는 Apache2와 nginx 리버스 웹 프록시 서버 뒤에 쉽게 실행됩니다. 이 또한 많은 장점이 있으며, 몇 가지를 들자면:
  • Discourse는 Docker가 노출하는 TCP/IP 포트나 UNIX 도메인 소켓을 통해 기존 웹 서버(nginx 또는 Apache2)에서 적은 노력으로 실행할 수 있습니다.

  • 리버스 프록시 뒤에 웹 기반 앱을 실행하는 것은 이미 잘 정립된 방식입니다. 이 설정은 Discourse에 고유한 것은 아니지만, Discourse는 이에 대한 지원을 제공합니다.

  • 리버스 프록시 뒤에서 SSL을 설정하는 것은 매우 간단하며, 지원되는 무료 LETSENCRYPT를 사용하여 certbot -d my.great-discourse.site 명령만으로 간단히 처리할 수 있습니다.

  1. Discourse는 GitHub에서 커밋 단위로 완전히 문서화되어 있어 누구나 코드 변경 사항을 추적할 수 있습니다.

  2. Discourse는 점진적인 비즈니스 모델을 가지고 있으며, 여기에는 몇 가지 주요 이점이 포함됩니다:

  • Discourse의 핵심 소프트웨어와 많은 훌륭한 플러그인, 테마, 구성 요소는 무료입니다.

  • Discourse는 meta에서 표준 구성 지원을 포함한 무료 지원을 제공합니다.

  • Discourse는 자체 호스팅을 원하지 않거나 더 “손을 덜 대고” 운영하기를 선호하는 사람들을 위한 상용 호스팅을 제공합니다.

  • Discourse는 커뮤니티 내에서 상용 컨설팅과 플러그인 개발을 장려하여 실행 가능한 비즈니스 생태계를 조성합니다.

  1. 더 많은 장점이 있지만, 여기서 마무리하겠습니다!

저(우리)는 핵심 Discourse 팀이 내린 모든 결정에 동의합니까? 그리고 그들이 우리(또는 저)의 모든 아이디어와 제안에 동의합니까?

물론 아닙니다. 그리고 그들이, 우리, 또는 제가 그렇게 할 필요도 없습니다. 우리는 자유롭게 제안하고, 코드 수정 제안, PR을 제출할 수 있으며, 핵심 Discourse 팀은 이러한 제안들을 열린 마음으로 대할 것입니다.

그러나 결국, 핵심 팀은 Discourse 커뮤니티를 하나의 방향으로 조화롭게 이끌어 나가야 합니다. 이는 서로 다른 문화권의 수백 명의 사람들이 다른 구성을 원하고, 다른 우선순위, 비즈니스 모델, 아이디어를 가지고 있을 때 쉬운 일이 아닙니다.

즉, Discourse에서 "회피"할 것(여러분의 주제 제목 표현)은 없습니다. 특히 리버스 프록시 설정과 Docker 숙련도는 그렇습니다. 많은 사람들(저도 포함)이 Discourse 때문에 Kubernetes로 전환하고 있습니다. 이는 Discourse뿐만 아니라 다른 웹 앱들도 마찬가지입니다.

Discourse는 “방해 요소”(다시 말하지만, 여러분의 표현입니다)와는 “가장 거리가 먼” 것입니다. 그리고 컨테이너 기반으로 설계되어 있기 때문에, 숙련된 시스템 관리자가 Discourse를 어떻게 확장 가능한 프로덕션 환경에 배포할 수 있는지에 대해서는 "하늘이 한계"입니다. 또한 초보자가 standalone mode로 쉽게 배포할 수 있을 정도로 단순합니다.

더 말씀드릴 필요가 있을까요?

REM의 노래(Losing My Religion) 가사처럼:

Oh no, I’ve said too much, I set it up

이 주제를 마무리합니다… @OrbitStorm, 행운을 빕니다.