오픈소스

BOSSIE 2022 | 올해 최고의 오픈소스 소프트웨어 28선

James R. Borck, Martin Heller 등 | InfoWorld 2022.10.25

 

ⓒ IDG

 

스핀네이커

스핀네이커(Spinnaker)는 데브옵스팀이 릴리즈를 자동화하고 카나리(Canary) 및 기타 배치 전략을 구현하는 데 도움이 되는 오픈소스 멀티 클라우드 연속 제공 플랫폼이다. 에어비앤비, SAP, 핀터레스트, 머카리(Mercari), 세일즈포스 등 220곳 이상의 기업이 스핀네이커를 사용하고 있고, 커뮤니티 기여자는 2,500명이 넘는다. 소규모 엔지니어링 기업도 스핀네이커를 성공적으로 활용하고 있는데, 예를 들어, 업웨이브(Upwave)의 20명 규모 엔지니어링팀은 주당 100회의 배치를 관리하며, 변경사항 시 리드 타임은 20분 미만이다. 주요 클라우드 서비스 업체가 스핀네이커를 지원하며, 개발자를 위한 많은 문서를 제공한다. 스핀네이커는 2020년 바이든 대통령 선거 캠프 등에서도 활용된 바 있다.
 

하이퍼트레이스

하이퍼트레이스(Hypertrace)는 제멋대로 뻗어 나가는 클라우드 네이티브 아키텍처 전반에 걸쳐 다양한 서비스로부터 엄청난 양의 실시간 성능 데이터를 수집, 처리할 수 있는 오픈소스 분산형 추적 및 가관측성 엔진이다. 트레이서블(Traceable)이 아파치 카프카(Apache Kafk)를 기반으로 개발했다. 하이퍼트레이스는 애플리케이션과 마이크로서비스를 모니터링하고 여러 터치포인트의 분산형 트랜잭션을 추적하며 모든 정보를 서비스 지표와 애플리케이션 플로 지도로 만든 후 사용자 정의 대시보드에 표시한다. 

하이퍼트레이스는 경로 기반 분석을 지원하는 것 외에 결과에 영향이 미치기 전에 애플리케이션 성능 병목을 선제적으로 해결하는 데 도움이 되는 실시간 경고를 제공한다. 기본적으로 집킨(Zipkin), 예거(Jaeger) 등의 인기 추적 형식을 지원하며 자바, 고(Go), 파이썬을 위한 네이티브 기기 에이전트를 제공한다. 
 

ⓒ IDG

 

그래비티

그래비티(Gravitee) API 관리 플랫폼은 분산된 API를 중앙에서 관리, 관장, 보호한다. 오늘날의 이벤트 기반 API 및 마이크로서비스 세계에서는 비용과 복잡성을 관리하기 위해 더 필수적이다. 그래비티의 콕핏(Cockpit) 포털을 통해 가이드 액세스와 공개, 문서화, API 발견을 위한 기능이 풍부한 툴셋을 함께 제공하고, 온보드 API 디자이너는 개발 및 문서화 모델화를 위한 시각적 로우코드 접근방식을 지원한다. 작업 자동화는 오류를 최소화하고 디버깅 속도를 높여주며 배치를 간소화한다. 보안 액세스와 감사 기능 덕분에 인증 및 승인 서비스를 통해 종점을 보호할 수 있다. 기업 라이선스를 구매하면 추가적인 디자이너 및 생산 게이트웨이 기능을 쓸 수 있고, 경고 엔진, 이상 감지, 실시간 분석 등의 기능도 활용할 수 있다.
 

오픈텔레메트리

오늘날의 분산형 애플리케이션에서 가시성을 확보하기 위해서는 기존의 단순한 로그와 지표로는 부족하다. 따라서 개발자가 애플리케이션을 더 심층적인 수준에서 파악할 수 있도록 집킨과 예거 등 가관측성 도구와 허니콤(Honeycomb) 등의 유료 서비스가 등장했다. 물론, 이런 새로운 도구의 확산의 단점은 모두 작동 방식이 조금씩 다르다는 점이다. 

오픈텔레메트리(OpenTelemetry)는 일련의 표준 API와 도구를 통해 가관측성 시스템 사이의 공백을 메운다. 생성, 배출, 수집, 처리, 원격 측정 데이터 내보내기를 제공업체를 가리지 않고 통합한다. 한 업체의 가관측성 제품으로 시작한 후 다른 제품으로 변경하고 싶었던 경험이 있다면, 오픈텔레메트리가 정답이다. 몇 가지 사소한 구성 변경 만으로 이를 구현할 수 있다.
 

ⓒIDG


그라파나

그라파나(Grafana)의 개발자는 모든 것을 관리하는 하나의 오픈소스 대시보드를 만들기 위해 노력했다. 그 결과 완전한 상용 제품 혹은 부분 유료 옵션이 있는 오픈소스 중에서 그라파나와 유사한 제품은 거의 찾기 힘들다. 그라파나 8.0은 프로메테우스(Prometheus) 경고 시각화와 그라파나의 네이티브 경고를 병합하고, 프로메테우스 얼러트매니저(Prometheus Alertmanager) 처리로 이를 강화했다. 그라파나 9.0은 프로메테우스 PromQL과 로키(Loki) LogQL 쿼리 언어를 위한 쿼리 구축 도구를 추가하며, 단순한 설명 대신 썸네일을 통해 대시보드를 미리 확인할 수 있게 했다. 기업용 버전의 경우 역할 기반 액세스 관리까지 지원한다.
 

Dapr 

분산형 애플리케이션은 새로 서비스를 구축할 때마다 연결 보안, 가관측성 구성, 상태 처리, 메시징 처리 등 같은 리스크를 반복해야 한다. 이 모든 것을 몇 번이고 계속 수행해야 하며, 특히 서로 다른 서드파티 서비스를 사용하는 경우가 많기 때문에 코드에 좋지 못한 계층이 추가되고 필요하지 않은 외부 서비스가 연계되는 경우가 종종 있다.

이런 어려움과 중복을 해결하기 위한 CNCF(Cloud Native Computing Foundation)의 프로젝트가 바로 Dapr이다. 애플리케이션의 보조재처럼 사용해 마이크로서비스 연결성의 복잡성을 줄여준다. 앱은 Dapr과 통신하고 Dapr이 나머지를 처리하기 때문에, 예를 들어 AWS에서 운용하고 키네시스(Kinesis)를 사용하거나 구글 클라우드에서 운용하고 펍섭(PubSub)을 사용할 수 있다. 결과적으로 애플리케이션 로직에 더 많은 시간을 투자하고 모든 연결 코드에 소요되는 시간을 절약할 수 있다. 
 

ⓒ IDG

 

레드판다

레드판다(Redpanda)는 시스타(Seastar) 비동기 프레임워크와 래프트(Raft) 합의 알고리즘을 사용해 분산형 로그를 구현한다. C++로 작성된 카프카를 위한 플러그인 대체제이기도 하다. 최대 10배 낮은 평균 지연 속도와 최대 6배 빠른 카프카 트랜잭션을 제공하면서 더 적은 리소스를 사용할 수 있다. 레드판다는 주키퍼(ZooKeeper)나 JVM을 사용할 필요가 없으며 소스는 깃허브에서 BSL(Business Source License)로 제공된다. 

또한, 레드판다는 비동기 비공유 코어당 스레드 모델을 사용하며 얽매임이 없고 환경 전환이 최소화되며 TL(Thread-Local) 메모리 액세스를 지원한다. 레드판다는 카프카 프로토콜을 넘어 인라인 웹어셈블리 전환과 지리적 복제 계층화 스토리지/쉐도우(Shadow) 인덱싱까지 점점 더 발전하고 있다.
 

아파치 아이스버그

초대용량 분석 테이블을 위한 고성능 형식인 아파치 아이스버그(Apache Iceberg)는 빅데이터에 SQL 테이블의 신뢰성과 간결성을 제공하며, 트리노(Trino), 스파크(Spark), 소나(Sonar), 프레스토(Presto), 하이브(Hive), 플링크(Flink), 임팔라(Impala) 등의 엔진이 동시에 같은 테이블을 안전하게 작업할 수 있도록 지원한다. 아이스버그는 유연한 SQL 명령을 지원해 새로운 데이터를 병합하고 기존의 열을 업데이트하며 표적화 된 삭제를 수행한다. 읽기 성능을 높이기 위해 읽기 데이터 파일을 열심히 재작성하거나 더 빠른 업데이트를 위해 삭제 델타를 활용할 수 있다. 또한, 아이스버그는 기본적으로 스키마 혁신, 자동 파티셔닝, TTQ(Time Travel Query), 버전 롤백, 데이터 단축을 지원한다. 
 

ⓒ IDG

 

아파치 드루이드

아파치 드루이드(Apache Druid)는 고속 쿼리, 높은 동시 실행, 카프카, 키네시스 등의 플랫폼의 스트림 수집에 대한 실시간 및 이력 인사이트를 제공하는 실시간 분석 데이터베이스이다. 이 기술은 10년 치의 릴리즈, 400명 이상의 기여자, 데이터 웨어하우스, 시계열 데이터베이스, 검색 시스템의 아이디어를 결합한 분산형 데이터 스토어 아키텍처에 기반을 두고 있다. 넷플릭스, 세일즈포스, 월마트(Walmart) 등 수천 개 기업이 드루이드로 분석 애플리케이션을 지원하고 있다. 사용 사례에는 클릭스트림 분석, 위험 및 사기 분석, 공급망 분석이 포함된다. 초보자라면 아파치 드루이드 소개서와 성공 스토리 전자책을 먼저 살펴볼 것을 권한다.
 

JAX 

구글의 오픈소스 머신러닝 플랫폼 텐서플로우(TensorFlow)가 가장 혁신적인 점은 자동 차별화(오토그래드(Autograd))와 딥 러닝을 위한 XLA(Accelerated Linear Algebra) 최적화 컴파일러다. JAX 역시 구글이 개발한 프로젝트이며, 이 2가지 기술을 결합해 속도와 성능 측면에서 상당한 이점을 제공한다. GPU 또는 TPU에서 구동할 때 JAX는 넘파이를 호출하는 다른 프로그램을 대체할 수 있지만 프로그램은 훨씬 빠르게 구동한다(오토그래드 엔진은 네이티브 파이썬과 넘파이 코드를 자동으로 구분할 수 있다). 또한, 신경망에 JAX를 사용하면 텐서플로우 같은 대형 프레임워크를 확장하는 것보다 새로운 기능을 훨씬 쉽게 추가할 수 있다.
 

ⓒ IDG

 

nbdev 

주피터(Jupyter) 또는 구글 콜랩(Google Colab) 등의 환경을 사용하는 노트 프로그래밍의 잘 알려진 비밀은 역대 최악의 스파게티 코드를 만든다는 것이다. 데이터 사이언티스트가 셀마다 옮겨 다니면서 유지관리가 불가능할 정도의 혼란을 유발한다. 일각에서는 노트 프로그래밍이 과거의 고투(GOTO)만큼 유해할 수 있다고 지적하기도 한다.

nbdev는 이런 노트 프로그래밍의 단점을 줄이면서 장점을 극대화하는 대안이다. fast.ai의 깃 친화적 주피터 노트 기반 개발 플랫폼으로 데이터 사이언티스트에게 필요한 탐구 자유를 지원할 뿐만 아니라 같은 노트 안에서 문서화와 심지어 적절한 텍스트를 통해 모듈을 손쉽게 생성하는 기능을 지원한다. 넷플릭스와 리프트(Lyft), (당연히) fast.ai 등의 기업에서 사용하고 있는데 특히 넷플릭스는 nbdev를 사용해 새로운 버전의 fast.ai 라이브러리를 만들기도 했다.
 

액셀러레이트

코드 4줄만 추가해 모든 파이토치(PyTorch) 코드에 분산형 훈련 및 간섭을 대규모로 추가할 수 있다면 어떨까? 허깅페이스(Huggingface)의 액셀러레이트(Accelerate)는 기본적으로 단순한 구성 전환을 통해 TPU 장치나 마이크로소프트의 딥스피드(DeepSpeed) 최적화 등의 기능을 사용할 수 있다. 액셀러레이트 라이브러리가 모두 처리하는 분산형 훈련, 공유 병행성, 그래디언트(Gradient) 축적 등의 기법을 사용해 수십억 개의 파라미터 규모로 딥 러닝 모델을 훈련할 수 있다. 그동안 대형 모델의 훈련은 업계 대기업의 전유물이었는데, 액셀러레이트가 파이토치(Pytorch) 생태계의 일부로 자리잡으면서 다양성에 대한 기대가 커지고 있다.
 

ⓒ IDG

 

스테이블 디퓨전

스테이블 디퓨전(Stable Diffusion)은 엄청난 품질의 이미지를 만들어내는 텍스트-이미지 AI 모델이다. 2개월이 채 되지 않은 야생동물 같은 프로젝트지만, 전 세계의 열렬한 지지자가 이미 오리지널 버전을 개선해 이미지 생성 속도를 높이고 메모리가 적은 GPU에서 구동하도록 개선했다. 인페인팅(In-painting) 및 아웃페인팅(Out-painting) 지원이 추가됐고, 심지어 스테이블 디퓨전을 M1 기반 맥북에서 구동할 수도 있다.

Stability.ai는 이 모델을 훈련하기 위해 60만 달러를 투자했으며, 이를 즉시 오픈소스로 공개했다(오픈AI(OpenAI)의 DALL-E와는 딴판이다). 이런 모델은 분명 데이터세트 큐레이션(Curation), NSFW 이미지 생성 기능에 대한 우려로 이어지는 것이 사실이다. 그러나 앞으로의 연구 발전과 성과를 고려하면 일부 대기업보다는 모든 사람이 이 기술을 사용할 수 있도록 하는 것이 분명 더 낫다.
  

일루터AI

GPT-NeoX-20B는 일루터AI(EleutherAI)가 개발한 새로운 200억 개 파라미터 자연어 처리 모델이다. 해당 개발사는 이전에 60억 개 파라미터 모델인 GPT-J를 공개하기도 했다. 이 모델은 1,750억 개의 파라미터를 가진 오픈AI의 GPT-3와 비교해 작아 보일 수 있지만 LAMBADA, 위노그랜드(Winogrande), 헬라스웩(Hellaswag) 등 데이터 세트를 사용해 강력한 성능을 구현했다. GPT-J를 이용하면 문서를 완성하고 번역, 분류하는 등 더 발전된 NLP 작업을 수행할 수 있다.

일루터AI가 이런 강력한 모델을 오픈소스화할 수 있는 이유는 무엇일까? 해당 프로젝트의 설립자 중 한 명인 코너 리히는 “우리는 AI를 우리처럼 생각하지 않는 이상한 외계인이라고 생각해야 한다”라고 말했다. 일루터AI의 목표는 이 기술을 가능한 많은 연구원에게 제공해 통제하는 방법을 찾는 것이다.
editor@itworld.co.kr

Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.