저는 방대한 규모(게시물 1,200만 개 이상, 사용자 10만 명)의 vBulletin 4 포럼의 미래를 모색하고 있습니다.
현재 Discourse를 대안으로 검토 중인데, 여러 가지 질문이 떠오르고 있지만 이 시점에서 만족스러운 답변을 찾지 못해 직접 질문을 드려야겠다는 생각이 들었습니다.
이 포럼은 특정 회사 소유이며, 수익을 내지는 않지만 해당 커뮤니티에게는 여전히 중요한 장소입니다.
1/ "단일 컨테이너가 모든 것을 처리한다"는 철학을 이해하지 못하겠습니다. 제게 Docker는 마이크로서비스의 분리 및 Docker 네트워크를 통한 상호 연결이 핵심입니다. 저는 Redis, PostgreSQL 등을 포함한 멀티 컨테이너 프로젝트(최대 10~12개 컨테이너)를 Docker 도구만으로 실행하는 데 익숙합니다.
여기서 이 토픽을 읽었습니다: Can Discourse ship frequent Docker images that do not need to be bootstrapped? 하지만 그 정당성에 대해 확신이 서지 않습니다. 현재 사용 가능한 compose 파일들에서 확인되는 exec 및 파일들을 보면, compose 파일이 수행해야 할 역할과 Dockerfile이 수행해야 할 역할 사이에 오해가 있는 것 같습니다.
코드 업데이트는 새로운 Docker 이미지 빌드를 트리거해야 하며, 이 이미지는 가져와서 compose 및 환경 변수와 함께 실행되어야 합니다.
누군가가 GitHub 프로젝트에서 이를 시도하고 있는 것을 보았지만, 공식적으로 지원되지 않는다고 가정하고 있습니다.
현재 철학의 "왜"에 대해 명확한 설명을 주실 수 있으며, 2023년 인터넷에 존재하는 수많은 프로젝트처럼 실행할 계획이 있는지 알려주시기 바랍니다.
2/ 프로젝트를 소유한 회사는 이메일을 위해 Google Workspace를 사용합니다. 저는 다른 프로젝트에서 Google의 SMTP 릴레이 설정을 사용해 왔으며, 작동할 수 있도록 다른 도구를 사용할 계획이 없습니다. 이 포럼에서 이에 대해 서로 다른 내용을 읽었습니다. 이것이 작동할 것이라고 확신할 수 있는 명확한 방법이 있나요, 아니면 작동하지 않을 가능성이 있나요? (이것은 우리에게 결정적인 장애물이 될 것입니다)
3/ vBulletin에서 마이그레이션을 실행하는 스크립트가 있다는 것을 보았습니다 (여기: Migrate a vBulletin 4 forum to Discourse), 하지만 이는 가이드를 사용하라고 하면서도 Gem 파일로 컨테이너를 커스터마이징하는 등 모순된 지시를 내리고 있습니다. 이것이 유지보수성이나 지원에 얼마나 큰 영향을 미치나요? 문제가 발생했을 때 이미지가 여전히 지원되나요?
4/ 다른 도구와의 통합 (주로 Discord). 이 시점에서 vBulletin 포럼은 자체 사용자 데이터베이스를 가지고 있습니다. 예를 들어, 특정 시점에 사용자를 Discord 로그인과 매칭할 수 있도록 로컬 DB 사용자를 Discord 사용자로 "매끄럽게
이것은 시스템 관리가 무엇인지 모르는 사람들에게, 작동하게 만드는 데 도움이 필요할 때를 위한 것입니다. 대규모 포럼의 경우 최소한 2개의 컨테이너를 설치하거나, 직접 구축하는 대신 RDS와 Elasticache를 사용하는 것이 좋습니다.
Dockerfile을 사용하여 시작하려면 launcher를 사용하여 컨테이너를 빌드하고, 데이터베이스 마이그레이션과 에셋 사전 컴파일을 관리하는 방법을 찾아야 합니다.
Google을 거래용 이메일(Transactional Email)로 사용하는 방법을 알고 있다면 좋습니다. 대부분의 사람은 그렇지 않으며, 우리는 그들에게 가르치기를 원하지 않습니다.
오래된 포럼에 대한 대규모 마이그레이션은 일반적으로 많은 사용자 정의가 필요합니다. 마이그레이션을 개발 인스턴스에서 실행할지, 아니면 Docker 내부의 프로덕션 인스턴스에서 실행할지는 취향의 문제입니다. 저는 과거에는 개발 인스턴스에서 수행했지만, 요즘은 모든 마이그레이션을 Docker에서 실행합니다. 다양한 구성 요소를 모두 설치하는 방법을 알아내는 것은 좌절감을 줄 수 있습니다.
무엇을 하든, 사람들은 변화를 싫어합니다. Discourse를 vBulletin처럼 보이게 하려는 시도가 도움이 된다고 생각하지 않습니다. 포럼이 vBulletin처럼 작동하기를 원한다면, 그냥 계속 사용하면 됩니다. 많은 기능을 수행하는 수많은 테마가 있습니다. Search results for '#theme-component' - Discourse Meta 를 제외하고는 특별한 가이드는 없습니다. 거기서 헤엄치고 검색해 보실 수 있습니다.
누군가가 놓친 것으로 생각하는 한 가지가 있습니다. 스크립트를 처음 실행할 때는 며칠이 걸릴 수 있지만, 이미 가져온 데이터를 건너뛰기 때문에 subsequent(이후) 실행은 더 빠르며, 따라서 최종 실행은 너무 오래 걸리지 않을 것입니다.
장기적으로 일부 JS 관련 사항을 업그레이드하고 있으므로 완전히 최신 상태는 아닐 수 있습니다.
여기에 게시된 테마, 테마 컴포넌트, 플러그인의 약 100%가 오픈 소스이므로, 항상 코드를 살펴보고 자체 솔루션을 구축할 수 있습니다.
테마는 기본적으로 추가 기능이 있거나 없는 스킨입니다. 테마 컴포넌트는 일반적으로 기능을 추가합니다. 플러그인은 더 심층적인 서버 측 기능을 추가합니다.
저의 커뮤니티에서는 공식 커스터마이징이나 #pavilion과 같이 신뢰할 수 있고 확립된 저자 또는 회사의 것, 그리고 직접 유지보수할 수 있는 개인용 것을 사용하려고 노력합니다.
테마와 테마 컴포넌트는 런타임에 추가 및 제거할 수 있지만, 플러그인을 설치하고 제거하려면 커맨드 라인 앱을 재빌드해야 하며(10~15분 다운타임) 필요합니다.
사용자의 혼란이나 분노를 줄여줄 커뮤니티의 매끄러운 전환에 대해서는 때때로 까다로운 문제입니다. 분명히 100% 만족도는 거의 불가능에 가깝습니다.
또한 일부 커뮤니티는 다른 곳보다 확실히 더 보수적이거나 소음이 심할 수 있으며, 이에 따라 반응할 것입니다.
사용자 관점에서 보면, 가장 자주 제기되는 비판은 다음과 같습니다:
페이지네이션이 더 이상 없음
인터랙티브 타임라인으로 대체되었습니다. 둘 다 장단점이 있습니다. 이 변경에 적응하지 못하는 사람들을 가끔 들었습니다.
소규모 및 중규모 포럼 3건의 이주 경험을 바탕으로, 제 커뮤니티에서 타임라인 기능에 대해 부정적인 경험을 한 사람은 없었습니다.
인터페이스가 복잡함
기능이 시간이 지남에 따라 추가되면서 인터페이스에는 과거보다 더 많은 요소가 있습니다. 알림 메뉴가 커졌고, 사이드바가 도입되었으며, 채팅 기능이 추가되었습니다(디스코드 서버가 있다면 필요하지 않을 수 있음).
우리는 인터페이스의 복잡성을 잘 인지하고 있으며, 확실히 더 간결한 부분을 갖고 싶습니다.
Discourse에는 확실히 학습 곡선이 있습니다. 다른 포럼 소프트웨어와 동일한 기능(토픽 게시, 답변/개인 메시지 게시 등)을 가진 포럼이지만, 인터페이스와 추가 기능 측면에서는 여기서부터 차이가 납니다. 대부분의 사람들에게는 특별한 문제가 없다고 보지만, 이 포럼의 커뮤니티는 대부분의 사람들이 Discourse를 알고 있기 때문에 편향되어 있을 수 있습니다.
인터페이스에 익숙해지면 더 이상 노이즈를 보지 않고 실제로 사용하는 기능에 집중하게 되지만, 여기서는 이주/전환에 초점을 맞추고 계시기 때문에 이것이 정확히 관심사가 아니라는 점은 이해합니다.
사용자가 인터페이스와 기능을 이해하도록 돕는 내장 도구가 두 가지 있습니다.
@discobot. 우리가 상호작용할 수 있는 인터랙티브 봇 사용자로, 일부 토론 기능을 사용하는 방법을 가르쳐 줍니다.
신규 사용자 팁. 가입하면 인터페이스에 툴팁이 나타나는 부분이 설명됩니다. 모든 툴팁에서 언제든지 비활성화할 수 있으며, 사용자 설정에서 다시 활성화할 수 있습니다.
관리자 관점에서 보면 다음과 같습니다:
설정이 너무 많음
네, Discourse에는 많은 옵션이 있습니다. 포럼을 신중하게 설정하는 데는 시간이 수 시간 이상 걸리며, 만족할 때까지 조정해야 할 가능성이 높습니다. 좋은 점은 완료된 후에는 설정을 다시 조정하는 경우가 드물다는 것입니다.
많은 설정이 압도적으로 느껴지고 때로는 무언가를 찾는 것이 어렵게 만들 수 있다는 것을 알고 있습니다. 개선의 여지가 있습니다.
마지막으로, try.discourse.org의 사용자 샌드박스를 사용할 수 있습니다.
관리자 샌드박스는 없습니다. 관리자 레벨에서 무언가를 실험하고 싶을 때, 저는 보통 시간당 과금되는 저사양 Hetzner 서버를 설정하여 몇 시간 또는 며칠 동안 Discourse를 설치합니다.