(Case Study) MuleSoft의 Enterprise Service Bus에 사용된 개발 도구


 

설립: 2006년, Mule 프로젝트는 2003년에 시작
사무실: 캘리포니아주 샌프란시스코에 본사, 런던과 아르헨티나에 사무실.
업종: 오픈 소스 ESB(엔터프라이즈 서비스 버스)
직원 수: 약 50명
사용 도구: JIRA, Confluence, GreenHopper, Bamboo, FishEye, Crowd(Crucible 설치됨)

Atlassian은 오픈 소스 커뮤니티에 낯선 존재가 아닙니다. Atlassian은 초기부터 자체 코드를 제공하고 회사 소프트웨어를 기부하여 다른 프로젝트를 지원했으며 오픈 소스 사용자 그룹을 후원하여 오픈 소스 커뮤니티에 보답했습니다.
최근 MuleSoft의 Amber Taylor가 제게 접촉하여 Atlassian의 개발 도구를 어떻게 사용하고 있는지 소식을 전해주겠다는 의향을 전달했습니다. MuleSoft는 2004년부터 우리의 도구를 만족스럽게 사용해 온 오픈 소스 고객이며, 대부분의 Atlassian 도구를 사용하여 전체 오픈 소스 커뮤니티 사이트(www.mulesoft.org)를 지원하고 있습니다. 2007년으로 거슬러 올라가 공동 창립자를 만났을 때 당시 그들의 개발자는 15명, 다운로드 수는 650,000건, 사용자는 1,000명이었습니다. 하지만 불과 3년만에 직원 수 약 50명, 다운로드 수 15,000,000건, 프로덕션 배포 2,500건으로 성장했습니다! 이 사실에 관심이 쏠려 저는 Amber와 MuleSoft 소프트웨어 엔지니어인 Mark Griffin과 인터뷰 약속을 잡게 되었습니다.
예전에 MuleSource였던 MuleSoft는 웹 미들웨어 기업으로 세계에서 가장 많이 사용되는 오픈 소스 응용프로그램 인프라 제품인 Mule ESBApache Tomcat을 기반으로 하는 엔터프라이즈급 소프트웨어를 제공하고 있습니다. Mule ESB, Tomcat Server 및 iBeans를 제공하는 MuleSoft는 오늘날의 웹 응용프로그램에 맞는 단순성과 성능을 이상적으로 조합합니다. Mule ESB 관련 오픈 소스 커뮤니티는 프로젝트 기여도 면에서 굉장히 적극적입니다. 이들은 웹 사이트를 통해 커뮤니티를 지원하는 것을 매우 중요하게 생각하는데, 웹 사이트의 근본적인 부분에는 대부분 Atlassian 도구를 사용하고 있습니다.

인터뷰

본사 도구를 어떻게 사용하십니까?

Mule 프로젝트 자체에서 사용하고 또 MuleForge의 커뮤니티 기여 프로젝트에서도 사용합니다. 우리는 대부분 원래 용도에 맞게 제품을 사용합니다. JIRA는 버그 추적용, Bamboo는 빌드용 등입니다. 하지만 우리가 가장 유용하게 사용하는 제품은 Confluence인 것 같습니다. 사용자 편집 가능 콘텐츠뿐만 아니라 주요 콘텐츠 제공 시스템에 대해서도 Confluence를 사용하고 있습니다.

어떤 제품부터 사용하기 시작했습니까?

Confluence와 JIRA부터 시작했고 그 다음에는 Bamboo를 사용했습니다. Cenqua 인수 전에는 FishEye를 썼습니다. 그리고서 더 많은 제품을 추가하기 시작했고 제품을 여러 군데 설치했습니다. 그 다음으로 LDAP 디렉터리에서 실행할 후크에 대해 생각하며 후크가 과연 얼마나 많은 오버헤드를 일으킬까 우려했습니다. 그때 Atlassian 측에서 Crowd를 선보였죠. 현재 30,000명 이상의 사용자를 인증한 그 도구 말입니다.

JIRA

JIRA는 어떻게 사용하고 있습니까?

각각의 MuleForge 프로젝트가 자체 JIRA 프로젝트를 갖습니다. 또 자체 JIRA 프로젝트를 갖는 Mule 커뮤니티 프로젝트가 있고 자체적으로 하나를 갖는 Mule 엔터프라이즈도 있습니다. JIRA는 대내용과 대외용으로 사용됩니다. 현재 우리의 공용 설치에는 100개가 넘는 프로젝트가 있습니다. mulesoft.org/jira의 경우 버그 추적과 프로젝트 관리에 사용됩니다. 현재는 3.13 버전을 사용 중입니다. [현재에는 버전 4.0].

사용자 지정과 플러그인은 어떻습니까?

사용자 정의 권한 구성표와 사용자 정의 필드 정의가 있습니다. 문서 작성자를 위한 설정이 되어 있어서 문서에 문제가 있으면 작성자에게 알림이 전달됩니다. 요즘에는 모든 사용자 지정을 이루 다 헤아리기가 어렵습니다. 엄청 많아져서요!
플러그인의 경우 JIRA Agile, FishEye 플러그인이 있고 얼마간은 SalesForce 플러그인을 사용했습니다. JIRA는 플러그인을 많이 사용하지 않고 Confluence는 정말 주력으로 사용합니다.

Atlassian 이외 소프트웨어와의 통합은요?

Codehaus의 뿌리 격 소프트웨어에서 파생된 제품인 Xircles와 통합했습니다. 이것은 일종의 프로젝트 관리 도구인데 아직 개발 단계에 있습니다. 새 프로젝트를 만들 때 이 도구는 자체 SVN 리포지토리를 시작합니다. 개발 도구 관리 용도이며 동일한 LDAP 디렉터리를 공유합니다.

JIRA와 관련해 소규모 회사에 조언하실 말이 있습니까?

JIRA가 정말 마음에 듭니다. 회사 규모에 알맞게 확장이 되며, 버그가 거의 없이 안정적입니다. JIRA는 우리가 가장 만족하는 도구입니다. 일말의 주저 없이 JIRA를 추천합니다. 메모리 공간은 실제 성능에 비해 가벼운 것 같습니다. 정말 좋죠.

Confluence

Confluence는 어디에 사용하십니까?

지금 2.10 버전부터 계속 사용 중이고 [현재에는 버전 5.6] 여러 가지 이유로 이 제품을 사용합니다. Confluence는 Mule ESB 제품의 주요 콘텐츠 제공 시스템입니다. 각각의 제품은 자체 공간을 갖습니다. 그 외에 각 MuleForge 프로젝트도 전용 공간을 갖습니다. 공간이 100~150개입니다. Confluence 전에는 wiki 제품이 없었습니다.
사용자 지정과 관련해서는 Adaptavist Theme Builder를 사용합니다. 이 제품은 wiki가 아닌 웹 사이트처럼 보이도록 만드는 유연성을 제공합니다. 이 방식이 우리에게 잘 들어맞았죠. 원래 우리는 Confluence가 사용자 편집이 많은 콘텐츠를 배치하는 wiki에 더 가깝다고 생각했는데 하다보니 정적 콘텐츠를 포함하는 기존의 웹 사이트로 주로 사용하게 되었습니다.

Confluence가 어떻게 조직 전체에 확산되었습니까?

본사의 기업 wiki는 소규모로 시작해서 다양한 부서로 확대되었습니다. 이 방식이 아주 잘 들어맞았습니다. 처음에 아주 소규모일 때는 '이름'이라든지 '연락처' 같은 직원 리소스를 표시하는 단순한 공간 하나였습니다. 그때부터 이것을 확장하기 시작해서 각 부서가 자체 공간을 갖고 그에 맞게 권한이 주어졌습니다. Confluence의 학습 곡선은 작습니다. 더 쓰기 편하도록 여러 사용자 지정 매크로를 작성했습니다. 바로 이 점이 제가 Confluence에서 가장 마음에 드는 부분입니다. 단순한 구문과 사용자 매크로가 정말 좋습니다. 우리는 사람들이 질겁하지 않을 정도의 꽤 복잡한 중첩 매크로를 가지고 있습니다.

Confluence에 대해 문의하는 소규모 회사에 무슨 말을 하시겠습니까?

wiki에는 아주 좋지만 일반 콘텐츠 관리 시스템에 사용하는 경우에는 원하는 만큼 확장되지 않습니다. 솔직히 말하자면 이것은 최신이 아닌 현재 설치된 버전 [현재 버전: 5.6]을 기반으로 말하는 것이고 우리는 원래 설계 의도와도 다르게 사용하고 있다는 점 말씀드립니다. 아마 다른 회사보다 10배나 20배 더 큰 공간을 사용하고 있을 겁니다.

Crowd

Crowd를 어떻게 사용하십니까?

Crowd는 이 모든 제품의 중재자 역할입니다. 이 제품애는 모든 것을 통합하게 해주는 캐싱 기능이 있습니다. 우리는 외부 인스턴스와 내부 인스턴스가 있습니다. JIRA, Confluence, Bamboo, FishEye 및 Jive Forums는 Crowd를 통해 실행됩니다. Crowd를 LDAP 디렉터리에 대한 대리 인증으로 사용합니다. 그룹을 관리할 뛰어난 UI를 제공하는데, 더 중요한 점은 모든 응용프로그램에서 후크되는 아주 편리한 커넥터가 있다는 것입니다. 이 때문에 많은 캐싱이 필요합니다.

마지막으로 하실 말은?

Atlassian 도구는 마케팅과 개발 두 측면 모두에서 막대한 시간을 절감하게 해주었습니다. 개발 도구는 정말 편하며 회사에 큰 도움이 됩니다. Bamboo를 사용해서 개발자 빌드의 스냅숏을 찍을 뿐만 아니라 게시하기도 합니다. 대단하죠.
감사합니다. Mark 씨, Amber 씨!

댓글

이 블로그의 인기 게시물

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

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

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