F5는 Apache Arrow(OTAP)를 이용한 오픈소스 OpenTelemetry 프로젝트의 2단계에서 Microsoft와 협력하고 있습니다. 이 프로젝트의 일환으로, OpenTelemetry 데이터는 SDK에서 에이전트, 수집기, 백엔드로 Apache Arrow 레코드 배치를 사용하여 사용, 처리되고 내보내집니다. 1단계의 성공을 바탕으로 원격 측정 데이터 압축률이 극적으로 개선되었으며, 이 다음 장에서는 Rust 기반, Arrow 네이티브 데이터 처리 파이프라인을 통해 OpenTelemetry의 경계를 한층 더 넓히는 것을 목표로 합니다.
Apache Arrow를 사용한 OpenTelemetry 프로젝트 2단계에서 F5와 Microsoft가 협업하여 Apache Arrow 생태계와 통합된 고성능 원격 측정 파이프라인을 개발할 예정이며, 이를 통해 소규모 및 대규모 사용에 적합한 다양한 애플리케이션을 제공할 예정입니다. 우리는 Rust 언어로 새로운 원격 측정 파이프라인 라이브러리를 만들고 있으며, 기존 OpenTelemetry Collector와의 통합을 통해 이 기능을 제공하고자 합니다.
이번 협업은 원격 측정 시스템의 성능을 혁신적으로 향상시켜 OpenTelemetry뿐만 아니라 Apache Arrow와 Rust 생태계 전반에 걸쳐 중요한 이정표를 세울 것으로 기대됩니다. 저희는 저희의 접근 방식에 자신감을 가지고 있으며 현재 이 새로운 Rust 기반 파이프라인을 적극적으로 구현하고 광범위한 성능 벤치마킹을 수행하여 발전 사항을 명확하게 보여주고 있습니다.
Apache Arrow를 활용한 OpenTelemetry의 1단계는 야심찬 목표를 가지고 시작되었습니다. 이 단계에서는 OTLP(OpenTelemetry Protocol)에 혁신을 도입하여 그 어느 때보다 원격 측정 데이터 전송을 최적화했습니다. 표준 OTLP 프로토콜과 비교했을 때 압축률이 30~70% 향상되었으며, 이는 향후 연구의 기반을 마련한 놀라운 성과입니다.
하지만 1단계는 빙산의 일각에 불과했습니다. 이는 OpenTelemetry와 Apache Arrow를 결합하면 얻을 수 있는 힘을 입증했으며, 훨씬 더 큰 임무, 즉 전체 OpenTelemetry 파이프라인을 고성능 열 기반 데이터 처리 강국으로 전환하는 토대를 마련했습니다.
2단계에서는 F5와 Microsoft가 Rust와 Apache Arrow로 구동되는 완전 네이티브 OpenTelemetry 파이프라인을 개발하여 성능 최적화를 더욱 심층적으로 추진하고 있으며, 그 목표는 Golang 컬렉터용 Rust 파이프라인을 구축하는 것입니다. 이를 통해 CPU 활용도, 메모리 효율성, 처리량, 지연 시간이 획기적으로 개선되며, 이는 모두 더욱 효율적인 데이터 처리 생태계에 기여합니다.
또한 저희의 목표는 최적의 데이터 압축, 가속화된 데이터 처리, 효율적인 통합을 현대적이고 열 중심의 관찰성과 균형 있게 맞추는 것입니다. 이를 통해 이 이니셔티브는 STEF와 같이 압축에만 주로 초점을 맞춘 다른 프로젝트와 차별화됩니다.
Rust에 "올인"하기로 한 결정은 기술 커뮤니티 사이에서 흥분과 약간의 논란을 불러일으켰습니다. 결국 OpenTelemetry의 Collector 프로젝트는 전통적으로 Golang을 사용하여 구축되었습니다. 그럼 왜 Rust인가?
Rust와 Apache Arrow는 데이터 처리 분야에서 가장 친한 친구와 같습니다. 두 기술은 서로 긴밀하게 보완되므로 Rust는 2단계 개발에 이상적인 선택입니다. 그 이유는 다음과 같습니다.
Rust와 Apache Arrow가 이끄는 Apache Arrow를 탑재한 OpenTelemetry는 단순히 성능 지표를 해결하는 데 그치지 않고 원격 측정 및 데이터 생태계 전반에 걸쳐 더 광범위하게 채택될 수 있는 토대를 마련하고 있습니다.
원격 측정 파이프라인이 데이터 레이크에 원활하게 내장되어 열 기반 분석 플랫폼에 직접 연결되는 세상을 상상해보세요. 이 종단간, 복사 없는 파이프라인을 통해 원격 측정 데이터가 프로덕션 시스템에서 다운스트림 시스템으로 원활하게 흐르도록 하여 이전에는 OpenTelemetry 내에서 상상할 수 없었던 통합이 가능해집니다.
2단계에서는 임베디드 기능 보호, 엄격한 메모리 제어 우선 순위 지정, 코어당 스레드 런타임 지원 활성화를 통해 이 Rust 기반 패러다임이 기대치를 능가할 뿐만 아니라 개발자와 기업 모두가 쉽게 접근할 수 있도록 보장합니다.
Rust에 대한 화제가 되고 있지만, 2단계가 Golang을 포기한다는 의미는 아닙니다. 실제로 F5와 Microsoft는 Go와 Rust 파이프라인 간의 호환성을 보장하기 위해 신중한 조치를 취하고 있습니다. Golang으로 작성된 어댑터와 기존 OpenTelemetry Collector 구성 요소는 계속 지원되고 유지 관리됩니다. 이를 통해 상호 운용성이 보장되어 조직이 단일 언어에 얽매이지 않고 워크플로에 가장 적합한 툴셋을 선택할 수 있습니다.
이러한 통합적 접근 방식은 생태계를 분열시키지 않고 성장시키려는 OpenTelemetry의 노력과 일치합니다. 상호 연결된 워크플로의 일부로 Rust와 Go 파이프라인을 연결함으로써 이 협업을 통해 OpenTelemetry는 다양한 사용자 기반이 계속 접근할 수 있도록 보장됩니다.
OpenTelemetry 거버넌스 위원회는 더 광범위한 OpenTelemetry 생태계 내에서 조화를 유지하면서 Rust 기반 혁신을 탐구하는 것의 중요성을 인식하고 2단계를 승인했습니다. F5의 "Beaubourg" 라이브러리와 같은 기여는 이미 이를 기반으로 구축할 수 있는 강력한 기반을 제공했습니다.
F5와 Microsoft가 이 노력에 협력하면서 단순히 성능을 최적화하는 데 그치지 않고 원격 측정 분야에 흥미로운 가능성을 열어가고 있습니다. 혁신에 대한 이러한 투자는 오픈 소스 원격 측정 시스템의 최첨단을 유지하려는 OpenTelemetry의 헌신을 잘 보여줍니다.
Apache Arrow를 통해 OpenTelemetry의 진행 상황을 추적하는 사람들에게 2단계는 효율성, 확장성, 유연성 측면에서 획기적인 진전을 의미합니다. Rust와 Apache Arrow를 최대한 활용함으로써, 이 협업은 원격 측정 데이터가 생성, 처리, 소비되는 방식을 새롭게 정의할 수 있는 잠재력을 가지고 있습니다.
기술 커뮤니티가 이 야심찬 단계의 결과를 기다리는 동안 한 가지 분명한 것은 Apache Arrow가 탑재된 OpenTelemetry가 분산형 관찰 시스템의 미래를 형성하는 데 도움이 된다는 것입니다.
2단계 개발에 대한 더 많은 정보와 이 프로젝트가 어떻게 고성능 컬럼형 데이터의 미래를 열어가고 있는지에 대한 최신 소식을 받아보세요. 크게, 그리고 빠르게 만들어 봅시다.
F5와 Microsoft의 협력은 오픈 소스 혁신의 정신을 잘 보여주는 사례이며, 이러한 노력이 어떻게 OpenTelemetry를 우리 모두에게 더 나은 방향으로 발전시킬지 기대됩니다. 우리는 단순히 현대적 도구를 도입하는 데 그치지 않고, 무엇이 가능한지 재정의하고 있습니다. 자세한 내용을 알아보려면 Microsoft 블로그 게시물을 읽어보세요 .