빌드, 배포 솔루션 비교자료 (Bitbucket, Github, Gitlab)


본 페이지는  빌드, 배포 솔루션간의 차이점을 기술한 페이지입니다.

Github, Gitlab, Bitbucket의 장단점을 파악하고, 올바른 구매를 위한 판단 하시기 바랍니다.

아틀라시안 제품에 대한 자세한 문의는 atlassian@osci.kr 로 메일 부탁드립니다.



개요

DevOps, Agile, Lean 방법론은 짧은 개발주기, 소통, 협업으로 고객의 요구사항과 시장의 변화를 빠르게 대응합니다.

시장에 빠른 대응과 좋은 가치가 전달될 때 "프로젝트가 성공했다." 라고 말할 수 있습니다.

그러기 위해서는 협업문화와 더불어 현상관리, 자동화된 빌드, 테스트, 배포 시스템이 구축되어야합니다.


형상관리

Git

프로그램 등의 소스 코드 관리를 위한 분산 버전 관리 시스템입니다.

Remote(중앙) server, Client 는 각각 Node의 개념을 갖습니다.

Client에서 add, commit을 할 수 있습니다. Remote와 연결되는 환경에서 Push와 Merge를 하면됩니다.

Git을 UI환경, 권한, 부가기능을 추가한 대표적인 솔루션으로 Bitbucket, GitLab, Github이 있습니다.

Self Hosting이 가능합니다.

가격

Bitbucket, GitLab, GitHub 3사 중에서는 Bitbucket이 가격에서 경쟁력이 있습니다.

Bitbucket Server버전은 첫해에는 100% 금액, 다음 년도에서 50% 금액으로 라이선스 갱신할 수 있습니다.

GitLab Community 버전은 Pull Request 기능이 없기 때문에 제외했습니다.

기능

Bitbucket

Bitbucket은 Jira와 강력한 통합을 지원합니다.

▲ 이슈 화면 Development 패널에서 Create branch 기능 제공


이슈와 코드를 연결하여 이슈별로 코드리뷰, 테스트, 빌드, 배포를 할 수 있습니다.

▲ Git Status, History 확인


사용자 관리, LDAP연결 등 관리자 설정을 관리자 화면에서 할 수 있습니다.

▲ Bitbucket 관리자 화면


Github Enterprise

Github의 기능을 동일하게 사용할 수 있으나 가격이 비싸다는 단점이 있습니다.

Jira는 Github연결을 기본으로 제공하고 있습니다.

하지만 Create branch는 Bitbucket만 지원됩니다.


GitLab

GitLab은 chef framework로 구성되어 있습니다.

Ruby언어로 개발되었습니다. 관리자 설정 gitlab_config.rb 파일 수정후 서비스 재시작이 필요한 경우가 있습니다.

Jira와 연결하기 위해서는 별도의 커넥터 Jira Addon 구매가 필요합니다.


▲ GitLab의 빌드, 배포 기능


GitLab의 장점은 빌드, 배포할 수있는 기능이 내장되어 있습니다. 

GitLab은 가격별로 기능을 다르게 제공하고 있습니다.

빌드, 배포

Jenkins

오픈소스로된 빌드, 배포 솔루션입니다.

가장 유명한 솔루션입니다.

▲ Jenkins Build List


하지만 보안에 취약하다는 단점이 있습니다.

Jenkins 담당자는 보안 취약점에 대응해야합니다. 

▲ 보안 취약점 사이트에서 Jenkins 항목

빌드 도구 솔루션에는 개발소스, 서버정보 등 중요한 정보들이 있습니다.

요즘 해커들은 Web,WAS를 공격하지 않고 Jenkins를 공격합니다.

Bamboo

Jira, Bitbucket 과 강력한 통합을 지원합니다.

Application 통합으로 추가 설정 없이 화면에서 Bitbucket Repository를 선택하거나

Jira Release에서 Bamboo Build Plan을 선택할 수 있습니다.

▲ Jira Release 환경


▲ Bamboo Build 화면


▲ Bamboo 취약점 패치

Atlassian에서 Bamboo의 취약점을 패치하고 리포팅합니다.

보안 담당자 또는 관리자는 Atlassian의 지원을 받아서 시간을 아낄 수 있습니다.



▲ Bamboo vs Jenkins


Bamboo는 Atlassian 제품과 강력한 통합을 지원하고 Branch별로 빌드 테스트할 수 있습니다.


종합 의견

Atlassian Stack

Jira, Confluence, Bitbucket, Bamboo 등 Atlassian 제품들의 UI는 일관성이 있습니다.

하나의 제품의 대해서 익숙해 진다면 다른 제품의 관리 기능도 쉽게 접근할 수 있습니다.

각 제품의 URL로 쉽게 통합할 수 있으며 사용자 관리도 Jira또는 Crowd 제품으로 중앙에서 할 수 있습니다.

AD, LDAP과 연동이 가능하며, Crowd 제품으로 Atlassian 제품을 SSO(Single Sign On)할 수 있습니다.

Atlassian은 DevOps, Agile 구현을 위한 모든 솔루션을 제공하는 유일한 회사입니다.

Atlassian Marketplace

Atlassian Marketplace는 다양한 확장 기능을 제공합니다.

확장 기능으로 Atlassian 제품을 고객 요구사항을 충족시킬 수 있습니다.

무료, 유료 Add-on이 있으며 사용자 수에 따라서 가격이 책정됩니다.