Trace Id is missing
주 콘텐츠로 건너뛰기

일관성을 높여 오픈 소스 혁신을 가속화하는 .NET 인프라 팀

GitHub 리포지토리 전체에 걸쳐 공유되는 도구 및 단일 공유 CI 시스템이 어떻게 개발자 생산성을 크게 향상하는지 알아보세요.

당면 과제: 오픈 소스 기여자를 위한 협업 간소화

.NET Foundation은 개방형 개발 및 협업을 통해 혁신을 촉진하기 위해 설립된 독립 조직으로서,  .NET Core를 비롯하여 크고 복잡한 일련의 오픈 소스 프로젝트를 지원합니다. Microsoft .NET 엔지니어링 서비스 팀은 프로젝트에 기여하며 전 세계 기여자들이 함께 작업할 수 있게 하는 인프라를 상당 부분 책임지고 있습니다.

GitHub의 서로 다른 수십 개의 git 리포지토리, 광범위한 도구 및 프로젝트 전체에 걸쳐 사용 중인 여러 CI(연속 통합) 시스템으로 인해 생산성을 저해하는 혼란스러운 상황이 많이 있었습니다. 게다가 프로젝트 규모의 자체로도 복잡성이 가중되었습니다. 예를 들어  Roslyn (C# 컴파일러) 리포지토리는 끌어오기 요청의 1회 반복에 대해 600,000개가 넘는 자동화된 테스트를 단독으로 실행합니다. 주당 50개가 넘는 끌어오기 요청(각각에 다수의 반복이 있음)으로 인해 CI 테스트의 수는 수십억 회에 달합니다. CoreFx(라이브러리)의 경우 이 수는 훨씬 더 큽니다. .NET 엔지니어링 서비스 팀은 .NET Core 3.0 릴리스를 계획할 때 향상된 일관성을 확립하고 기여자들이 프로젝트의 모든 잠재력을 실현할 수 있도록 대규모로 변경하기로 했습니다.

대화를 하는 사람

당면 과제: 클라우드 운영 모델에 적응하기

"분산 리포지토리 구조 및 도구를 사용하면 개발자가 한 리포지토리에서 다른 리포지토리로 이동하기가 훨씬 더 어려워집니다. Microsoft 개발자에게도 이렇게 어려운데 대부분의 개인 기여자에게는 어떻게 이 문제를 해결할 수 있기를 기대할 수 있을까요"

.NET 엔지니어링 서비스 수석 소프트웨어 엔지니어, Matt Mitchell

공유 도구 및 단일 CI 시스템을 통한 생산성 향상

개발자가 소프트웨어 스택의 다른 부분 간에 쉽게 이동할 수 있도록 .NET 엔지니어링 서비스 팀은 공통 디렉터리 구조의 모든 리포지토리, 명령 세트 및 빌드 및 테스트 논리를 가져오기 위해 노력했습니다. 이 팀은 다양한 CI 시스템에 있던 기존의 모든 워크플로를  Azure Pipelines의 단일 시스템으로 이전함으로써 생산성에 대한 추가 장애 요인을 제거했습니다. 시스템이 완전 관리형이므로 CI 서버 인프라를 관리해야 하는 부담이 더 이상 없습니다. 이제 팀은 GitHub에 저장된 YAML 파일을 통해 구성을 코드로 실행하고 있습니다. 그리고 YAML 파이프라인은 모든 곳에서 사용됩니다. 일부 리포지토리는 이전에 CI를 순차적으로 수행했지만(개발자가 때로 코드의 반복 간에 2~3시간을 기다려야 했음), 이제 모든 CI 파이프라인이 병렬화되어 더 빠른 반복이 가능합니다.

당면 과제: 클라우드 운영 모델에 적응하기

"CI의 운영 측면에 대해 더 이상 걱정할 필요가 없으므로 Microsoft 개발자와 개별 기여자를 포함하여 모든 사용자가 느낄 추가 개선 사항에 자유롭게 집중할 수 있습니다."

.NET 엔지니어링 서비스 수석 소프트웨어 엔지니어, Matt Mitchell

효율적인 협업으로 더 나은 제품 출시 가능

오늘날의 개발자들은 과거에는 필요했던 전문 지식이 거의 없어도 리포지토리 간에 훨씬 더 쉽게 이전하고 버그의 근본 원인을 찾아내며 수정을 제안 및 테스트할 수 있습니다. GitHub의 간소화된 이 오픈 소스 협업을 통해 개발자들은 고품질 소프트웨어를 작성, 테스트, 빌드 및 출시하기 위해 함께 작업하므로 더 많은 사항을 신속하게 혁신할 수 있습니다. 그리고 .NET 엔지니어링 서비스 팀은 전체 스택에 걸쳐 인프라를 변경할 수 있으므로 개발자가 모든 리포지토리에서 훨씬 더 빠르고 효율적으로 활용할 수 있는 향상된 도구 기능을 제공할 수 있습니다.

책상에서 작업하는 사람들이 있는 사무실
팀의 경험과 의사 결정을 자세히 살펴보세요.
사례 전문 읽기