마이크로소프트(MS)의 윈도는 오픈소스 소프트웨어가 아니다. 윈도는 오픈소스SW 진영의 오랜 적이었지만, 지금의 MS 윈도는 리눅스를 위해 고안된 ‘깃(Git)’ 버전관리시스템으로 만들어지고 있다. 오늘날 MS는 전세계 최대 규모의 깃 저장소를 운영하는 회사다.
MS 윈도는 오픈소스에 의지해 상용 소프트웨어를 개발한다는 새로운 대세를 보여주는 대표 사례다.
2013년 MS는 자사의 통합개발환경(IDE) 제품인 ‘비주얼스튜디오’와 앱 수명주기관리 툴인 ‘팀파운데이션(TFS)’에 깃 지원을 추가한다는 로드맵을 발표했다. 같은 해말 MS의 테크니컬펠로이자 팀파운데이션서버(TFS) 책임자인 브라이언 해리는 "MS가 분산 소스코드 제어 플랫폼으로 깃을 지지한다"고 밝혔다.
수년이 흐른 후 MS는 깃에 상당한 규모의 오픈소스 기여를 하고 있다. 올해 MS는 깃버추얼파일시스템(GVFS)를 MIT 라이선스 기반의 오픈소스로 내놨다. GVFS는 MS의 제품팀이 대규모 소스코드 저장소를 운영하는데 깃 클라이언트를 확장하게 해준다.
MS는 모든 윈도 코드를 깃과 GVFS에 포팅하기 시작했다. 이 작업은 상당부분 진행됐고, MS는 지구상에서 가장 큰 규모의 깃 저장소를 만들어냈다.
브라이언 해리는 지난달 24일 블로그에서 "윈도 코드 베이스는 대략 3.5MB 파일이고, 깃 저장소에 체크인됐을 때 저장소에 남는 결과는 약 300GB다"라고 설명했다.[브라이언 해리 블로그 바로가기]
이는 파일에 대한 설명에 불과하다. 그는 이어 "윈도팀의 약 4천명 엔지니어와 엔지니어링 시스템은 매일 440개 브랜치를 아우루는 1천760개의 랩 빌드를 생산하고, 빌드 검증 요청이 수천개에 이른다"며 "파일 수, 저장소 크기, 활동 등의 세 차원 각자가 확장에 도전을 만들고, 훌륭한 경험을 만들어낼 수 거의 불가능하게 만든다"고 설명했다.
그는 3개월 간 진행한 이 작업에 대해 두려웠던 경험이라 표현했다.
그는 "첫째이자 최대의 어려움은 3월22일 윈도 원코어팀 2천명 엔지니어에게 (Git/GVFS를) 열었을 때 일어난 일"이라며 "금요일 소스데포(Source Depot)에서 일하는 2천명의 엔지니어는 주말동안 귀가했다가 월요일 아침에 출근해 깃 기반의 새로운 경험을 맞이했다"고 적었다.
이어 "내 팀원들은 주말 내내 숨죽인 채 월요일에 어떤 작업을 할 수 없게 된 화난 엔지니어가 주먹으로 치지 않길 기도했다"며 "놀랍게도 매우 부드럽게 엔지니어들이 하루동안 생산적이었다"고 술회했다.
모든 게 문제없이 지나간 건 아니었다. 그는 "첫주에 풀리퀘스트와 병합 충돌 해결을 위한 UI가 크기 변경에 간단히 확장하지 못했다"며 "목록을 가상화하는데 어려움을 겪었고, 응답없음을 보이지 않은 UI의 데이터를 점진적으로 가져오는데 어려움을 겪었다"고 적었다.
이어 "우리는 이틀 꼬박 그 문제를 해결했고, 그 주가 예상보다 훨씬 더 잘 지나갔다고 생각한다"고 덧붙였다.
현재 MS의 윈도 개발자 대다수가 깃을 이용해 작업하고 있다. 향후 수개월에 걸쳐 적어도 500명의 개발자가 깃으로 추가 이동한다.
MS는 왜 깃을 쓰게 됐을까. 브라이언 해리는 환상적인 시스템 운영 확장성을 꼽았다. 그는 구체적 데이터를 들어 자신의 의견을 부연했다.
그에 의하면, 지난 4개월 동안 소스코드 저장소에서 25만건 이상의 깃 커밋이 있었다. 하루당 평균 8천421건의 푸시가 일어난다. 업무일당 평균 6천600명의 리뷰담당자가 2천500건의 풀리퀘스트를 한다. 4천352건의 활성 토픽 브랜치가 운영되고 있으며, 하루당 1천760건의 공식 빌드가 나오고 있다.
MS는 지속적으로 GVFS 원격 사용을 고도화했다. 깃 명령을 원격에서 내렸을 때 빠른 속도로 수행될 수 있게 하고 있다.
MS는 GVFS를 오픈소스 프로젝트로 공개하고, 누구나 사용해볼 수 있게 했다. 비주얼스튜디오 팀서비스 계정에서 깃 저장소를 생성할 수 있다. 아틀라시안의 소스트리와 깃 타워 등을 포함한 깃 프로그램도 GVFS를 지원한다.
관련기사
- 윈도가 PC 지배?…리눅스는 세상 삼켰다2017.06.14
- 리눅스 시대 "큰 힘엔 큰 책임 따른다"2017.06.14
- "리눅스로 되는 거, 윈도10도 되게 한다"2017.06.14
- 오라클 리눅스 총괄 MS행...MS-리눅스 나올까2017.06.14
아이러니하게도 리눅스 깃 클라이언트만 GVFS를 지원하지 않는다. 그러나 MS 내부적으로 리눅스와 맥을 지원하고 있다고 한다.
깃은 리눅스의 창시자인 리누스 토발즈의 발명품이다. 그는 리눅스 커널 개발을 위해 깃을 만들었다. 토발즈는 "만약 MS조차 리눅스를 위한 애플리케이션을 쓴다면, 그건 내가 이겼다는 뜻"이라고 말하기도 했었다. MS 윈도가 리눅스용 기술로 만들어지는 지금, 과연 승자는 누구일까.