지속적 통합 / 지속적 전달 (CI/CD) 데브옵스 워크 플로우를 내장
단일 DevSecOps 플랫폼으로 Github 보다 TCO(Total Cost of Ownership)가 더 낮음
단일 DevSecOps 플랫폼으로 Tool Chain 통합을 지원. (기본 기능을 충분히 제공함)
GitLab을 사용하면 Github처럼 여러 솔루션을 결합하여 생기는 숨은 비용이 들지 않음
다양한 보안 기능을 기본 제공함
소프트웨어 라이프 사이클의 모든 단계에 보안을 통합한 단일 애플리케이션을 지원
Cloub Agnostic 운영방식을 취함
사용자가 원하는 CI/CD 도구를 직접 통합 해야함
고객이 서드 파티 파트너 공급업체에서 추가 도구를 조달하고 유지 관리 하며 업데이트를 해야함
→ Github 사용에 따른 TCO는 높아지고 운영하기도 복잡해짐
Azure에만 의존하여 하나의 클라우드에 종속되어 있음
(GitHub와 GitLab의 기능 커버리지)
# 📍GitHub와 GitLab의 핵심 차이점 'DevOps'
> 데브옵스(DevOps) : Development Operations의 약어로, 소프트웨어 개발과 운영을 통합하여 효율성, 협력, 속도, 안정성을 개선하는 개발 및 운영 방법론
깃랩은 CI/CD와 데브옵스 워크플로우를 내장했다.
반면, 깃허브를 사용하면 사용자가 원하는 CI/CD 도구를 직접 통합해야 한다.
깃허브 사용자는 보통 젠킨스, CircleCI, TravisCI 같은 써드파티 프로그램을 사용한다.
📎 github가 속도를 우선시 한다면, gitlab은 안정성에 중점을 둔다.
📎 기본 기능은 같지만 서비스를 만든 철학과 초점에 차이를 갖기 때문에 사용하기에 앞서 각각의 목적과 업무 체계를 고려하여 적합한 서비스를 선택하여 사용해야 한다.
GitHub는 새로운 브랜치를 마스터 분기와 병합하는 것을 지지한다. 그 덕에 신속한 배포가 가능하고, 문제 발생 시 이전 버전으로 신속하게 복원할 수 있다.
GitLab의 워크플로우는 변경한 각 세트를 마스터 브랜치와 별도의 안정적인 브랜치로 생성한다. 프로덕션과 스테이징의 분기가 최소한으로 있다. 이런 다중 분기 접근방식은 여러 단계의 테스트 프로세스를 필요로 한다. 병합 요청 시 코드 검토가 까다로워진다는 단점이 있다.
→ 단, GitHub나 GitLab에서 브랜치 운영 방식을 병합이나 분리로 고정하진 않는다. 사용자 선택에 따라 원하는 방식을 택한다.
GitHub는 자체적으로는 보다 적은 수의 소프트웨어 서비스를 제공한다. 대신 외부 프로그램 및 서비스와 통합하는 쉬운 방법을 제공한다. 깃허브 마켓플레이스에서 다양한 외부 서비스와 프로그램, 깃허브와 통합을 위한 소프트웨어를 이용할 수 있다.
GitLab은 완전한 소프트웨어 개발 솔루션을 제공하며, 올인원의 데브옵스 플랫폼이라고 강조한다.
지라-Jira, 마이크로소프트 팀즈, 슬랙, G-mail 같은 애플리케이션 및 플랫폼 통합을 제공한다.
이러한 차이점이 많지만 GitHub와 GitLab은 많이 유사하다.
리눅스 서버에서 실행된다는 점, 이슈 트래커를 함께 제공한다는 점 광범위한 타사 통합과 가져오기 도구를 제공한다는 점이 그에 해당한다.
인터페이스 역시 고급 개발자를 위한 커맨드라인인터페이스CLI를 가졌고, 초급 개발자를 위한 웹 인터페이스도 제공한다.
두 서비스 모두 오픝소스를 지원하지만 저장소 자체는 혼합 프로그래밍 모델을 사용한다. 기본적으로 GitHub와 GitLab 모두 오픈소스의 웹 기반 Repository, 깃 기반 코드 관리, 원격 Repository를 통한 로컬 파일 변경등을 제공한다. 기본적인 깃 기능을 원하지만 깃을 계속 실행하는 것을 걱정한다면 두 서비스 모두 유용하다.
📌 DevOps LifeCycle 전체를 위한 첫 번째 단일 어플리케이션 GitLab

GitHub와 GitLab은 모두 Git Repository를 중심으로 개발 업무를 진행하는 것은 큰 차이가 없지만, 실제로 GitLab의 경우는 개발 영역 뿐만 아니라 모든 라이프 사이클을 커버하기 때문에 GitHub보다 많은 편의를 제공한다. 관리부터 이슈를 트래킹하고 결국에는 모니터링과 보호까지 GitLab이라는 하나의 툴을 통하여 많은 것을 할 수 있게 된다. 이러한 것들은 프로젝트 산출물에 재사용성을 높여 기업의 자산 및 부가가치를 만드는데 크게 기여한다.
하지만 무엇보다 개발자 관점에서 실무 워크플로우에 영향을 가장 크게 미치는 것은 얼마나 완전한 CI/CD를 통한 DevOps환경을 구출하느냐가 중요하다.
📌 GitLab vs. GitHub CI/CD 비교 요약

🔎 본 포스팅은 'InfoGrab'의 포스팅을 참고하였습니다.
🔎 본 포스팅은 'ZDNET Korea'의 포스팅을 참고하였습니다.