JIRA와 클러스터링

(골드피처 주)


JIRA를 위한 클러스터링에 대해 궁금해 하시는 사용자분들이 간혹 있으십니다. 대부분의 경우 과부하를 피하기 위한 클러스터링을 요구하는 경우는 그리 흔한 경우는 아니지만, 며칠 전 본사의 웨비나를 통한 Scarlet 이란 JIRA 클러스터링 플랫폼에 대해 후기를 작성하면서 같이 정리하도록 하겠습니다.


우선, JIRA의 클러스터링에 대한 저희 본사의 답변은 아래와 같습니다.




JIRA는 클러스터링을 지원하나요?

결론적으로 지원하지 않습니다. 현재 사용자분들이 지원해 달라는 요청을 JIRA clustering 기능요청이슈 등록한 상태입니다.



만약 JIRA를 클러스터 환경에 적용하려 한다면, JIRA Webapp이 오직 하나의 클러스터 노드에 있도록 하십시요. 대부분의 클러스터링된 어플리케이션 서버들은 이러한 기능을 제공합니다. (예를들면, WebLogic). 또한 로드밸런싱이 JIRA에 대한 모든 요청사항을 클러스터내에서의 정확한 JIRA 노드로 전달되도록 설정하십시요.



만약 JIRA를 여러 노드에 동시에 운영하고 싶다면, 각 노드별로 라이센스가 필요합니다. 여러노드를 한꺼번에 구매하는 경우의 할인정책을 이곳에서 확인하실 수 있습니다.


만약 하드웨어 장애대처를 위한 클러스터링에 관심이 있다면, 분산된 데이터베이스, 프론트앤드 로드밸런스와 2개의 독립된 서버를 설정하실 수 있습니다.



Primary JIRA 인스턴스가 메인서버에서 동작하고 Second 서버는 구동되지 않은 무료 개발 라이센스 인스턴스를 가지도록 설정하실 수 있습니다. 로드밸랜스는 Primary 서버로의 요청사항을 100%로 전달하다고 서버가 다운되는 경우, 로드밸런서가 백업 인스턴스를 구동한 후 모든 요청사항을 Primary 서버가 리셋될 때까지 Secondary 서버로 전달하도록 합니다.




그럼에도 불구하고 Atlassian에서 JIRA 클러스터링을 공식 지원하지 않으므로, 다른 대안을 검토해 보십시요:



  1. WAN Disco (/) 사이트 확인결과 2010년 초까지는 JIRA MultiSuite 라는 제품명으로 판매하였었으나 현재는 페이지가 없어진 것으로 보아 해당 제품판매를 중단한 것으로 보입니다.
  2. Scarlet


그리고 현재 시점에서는 유일한 대안이라고 할 수 있는 Scarlet에 대한 웨비나 내용을 정리해 보도록 하겠습니다.



Scarlet


자료에서도 나와 있는데로 Scarlet은 오픈소스를 기반으로 하여 JIRA 의 소스를 수정하여 클러스터링을 지원하도록 만든 JIRA이 클러스터 버전의 오픈소스입니다.



그런데 JIRA 3.13.x 를 지원하는 1.2 Beta 2 버전까지는 JIRA의 소스를 수정하지 않고 테라코타(Terracotta) 오픈소스 플랫폼을 사용하였었기 때문에 소스포지(SourceForge) 사이트에서 다운로드가 가능하지만, JIRA 4.x 를 지원하는 새로운 버전은 JBoss Community의 인피니스팬(Infinispan) 오픈소스 플랫폼을 이용하여 JIRA의 소스를 수정하는 방식으로 개발이 되어 현재 배포 사이트가 없이 필요한 사람이 직접 소스센스에 요청해야 합니다. (향후 어떻게 바뀔런지 (?))


주요특징으로는 다음과 같습니다.


  • Infinispan 을 이용한 캐쉬 클러스터링
  • Lucene의 최적화를 통한 인덱싱 클러스터링
  • Apache HTTPd를 사용하는 경우의 mod_cluster 를 이용한 로드 밸런싱
  • BoxGrinder를 사용한 Virual Machine 지원 (EC2, KVM, VMWare 등)


만약 JIRA 3.13.x 이하 버전을 사용한다면 소스포지(SourceForge)에서 다운로드 하여 시도해 보실 수 있으며, 만약 4.x 버전을 사용한다면 소스센스에 직접 문의해 보시기 바랍니다.


클러스터링을 필요로 하는 경우가 많지 않겠지만, 클러스터링 여부를 떠나 이와 같은 오픈소스 기술들을 응용하여 남이 시도하지 않은 결과물을 만든다는 것은 매우 고무적이라고 할 수 있을 것 같습니다.


참고로 아래화면은 Scarlet 1.2 (혹은 1.0) 버전을 이용하여 JIRA를 클러스팅하는 방법에 대한 문서입니다.




웨비나 발표 동영상



웨비나 발표자료




Ininispan 이란


JBoss Community에 최근 추가된 프로젝트로 꽤 성숙된 오픈소스 프로젝트입니다.



분산캐쉬를 제공하는 오픈소스 플랫폼으로서 성능향상을 위한 클러스터링에 활용될 수 있으며 순수 자바로 개발된 오픈소스 입니다.



유사한 솔루션으로는 Memcached, Hazelcast, Ehcache, JBoss Cache 등의 오픈소스 솔루션이 있고 상용으로는 Oracle Coherence등이 있습니다.


특징으로는 대규모 캐쉬를 구현하며 Grid라고 하는 로직을 통해 병렬처리를 한다는 것입니다.


BoxGrinder 란


루비를 기반으로 개발된 일종의 메타 가상머쉰(Virutal Machine) 플랫폼 이라고 할 수 있습니다.


이를 통해 현재 널리 사용되는 대표적인 클라우드 가상머쉰에 대한 이미지를 매우 쉽게 생성하여 사용, 관리 할 수 있는 기능을 제공합니다.



자세한 사항은 아래의 자료와 공식사이트를 참조하십시요.






>










































































댓글

이 블로그의 인기 게시물

Confluence 내의 스프레드 시트 기능이 필요하시다면 애드온을 활용해 보십시요

시스템에 숨어있는 "윤초" 버그에 대해 준비하십시요

Confluence 페이지의 분류와 관련된 잘 몰랐던 기능 3가지를 확인해 보십시요