Discourse의 공식 "클라우드 네이티브" Docker 이미지

안녕하세요,

최근 팀에서 인터페이스를 통한 롱 폴링(long polling) 비활성화 기능을 제거했습니다. 이로 인해 bitnami 도커 이미지에서 필요한 기능이 깨졌습니다. 해당 이미지는 passenger를 사용하며, 정상적으로 작동하지 않습니다. 관련 내용은 https://github.com/bitnami/bitnami-docker-discourse/issues/177을 참고하세요. bitnami 이미지는 환경 변수를 직접 전달하지 않으므로, 누군가가 bitnami 이미지를 확장할 때까지 이 문제는 해결되지 않을 것입니다. 관련 PR: DEV: Drop `enable_long_polling` and `long_polling_interval` settings - Pull Request #16323 - discourse/discourse - GitHub.

물론 저에게도 이런 질문이 떠올랐습니다. Discourse가 이미 도커 컨테이너로만 배포되고 있는 상황에서, 팀이 “클라우드 네이티브” 도커 이미지를 유지보수할 가능성이 있을까요?

bitnami 이미지와 여러분의 이미지 사이에서 가장 큰 차이는 운영 모드입니다. 현대적인 인프라는 설치를 자동화할 수 있기를 기대합니다. 보통 k8s에서는 helm을 통해, 그리고 VM을 사용하는 비교적 전통적인 환경에서는 ansible 배포를 통해 동일한 결과를 얻습니다. 따라서 현재 다소 방치된 bitnami 이미지와 동등한 수준으로 Discourse를 끌어올리기 위해서는 자동 설치 루틴을 추가하고, 경우에 따라서는 helm 템플릿을 수정해야 할 것입니다.

여기 계시는 김에, Discourse 자체와 그 "클라우드 준비 상태(cloud readiness)"에 대한 피드백도 남기고자 합니다.

일반적으로 현재 고객 프로젝트에서 Discourse를 재현 가능한 설정에 통합하려는 시도를 해본 결과, Discourse가 현대적인 인프라의 관점에서 설계되지 않았다는 점이 빠르게 드러났습니다. 한 가지 예로, 공유 NFS 스토리지가 필요합니다. 이는 신뢰할 수 없을 뿐만 아니라 확장성도 떨어집니다. 다행히 이 중 대부분은 이미 S3로 리디렉션할 수 있지만, 플러그인 부분은 여전히 남아 있습니다.

플러그인 문제를 해결하는 방법은 세 가지가 있습니다:

  • 데이터베이스에 저장된 평가 코드(권장하지 않음)
  • Discourse 컨테이너 시작 전에 휘발성 스토리지(예: tmpfs)에 쓰는 사전 패키지화된 사이드카 컨테이너(kubernetes 용어로는 emptyDir에 쓰는 initContainers로 사용됨, 비록 매우 편리하지는 않지만 권장됨)
  • 시작 시 데이터베이스에서 현재 플러그인 정보와 설치 명령을 가져오고, 런타임에도 플러그인을 설치하는 워처/리스너 루틴을 갖춘 설치 루틴(권장하지 않음, 매우 느리고 오류가 발생하기 쉬움)
3개의 좋아요

이것은 여기에서 꽤 광범위하게 논의된 것 같습니다:

3개의 좋아요

솔직히 bitnami가 쉽게 해결했기 때문에 이 문제에 대해 너무 많이 논의할 이유는 없습니다. discourse를 쉽게 배포하는 것은 로켓 과학이 아니에요.

우리는 클라우드 환경에서 수많은 Discourse 사이트를 운영하고 있으며, NFS 스토리지 대신 오브젝트 스토리지(S3)를 통해 자산과 업로드를 처리합니다. 소스 코드(코어 및 플러그인)는 부트스트랩된 컨테이너 이미지에 영구적으로 저장됩니다.

4개의 좋아요

음, 이미 답변이 있었습니다: 다행히 이 중 대부분은 이미 S3로 리디렉션할 수 있지만, 플러그인 부분은 여전히 남아 있습니다. 사용 중인 Helm 차트를 통해 적절하게 업그레이드하지 못할 위험을 높이기 때문에, 사전에 컨테이너를 빌드해 사용하는 것은 잘못된 관행입니다.

이 부분에 대해 좀 더 자세히 설명해 주실 수 있나요? 플러그인이 왜 공유 NFS 스토리지를 필요로 하는지 이해가 되지 않습니다.

정말 죄송하지만, 이 주제에 대해 논의하기 위해 이미 해당 에픽(topics)이 있습니다.

논의를 분산시키고 싶지 않습니다. 아이디어가 있다면 다음 곳에서 논의해 주세요:

3개의 좋아요