2020.10.08

2020 베스트 오픈소스 소프트웨어 25선

ames R. Borck, Martin Heller, Steven Nunez, Andrew C. Oliver, Ian Pointer and Peter Wayner | InfoWorld
자애로운 보그(Borg)처럼 오픈소스가 소프트웨어 세계를 뒤흔들고 있으며 닿는 곳마다 혁신을 가져오고 있다. 그리고 해마다 인포월드의 오픈소스 어워드, 일명 ‘보시’(Bossies, 최고의 오픈소스 소프트웨어-The Best of Open Source Software) 또한 발전하고 있다. 2020년 보시(Bossies)의 25개 수상작을 살펴본다. 


 
  • 하수라(Hasura)
  • 프리즈마(Prisma)
  • 제킬(Jekyll)
  • 개츠비(Gatsby)
  • 드루팔(Drupal)
  • 불칸(Vulkan)
  • 레디스(Redis)
  • 아파치 에어플로우(Apache Airflow)
  • 아파치 슈퍼세트(Apache Superset)
  • 야누스그래프(JanusGraph)
  • 아파치 드루이드(Apache Druid)
  • 아파치 애로우(Apache Arrow)
  • 아르고(Argo)
  • 셀던 코어(Seldon Core)
  • 옵튜나(Optuna)
  • K9s
  • 쿠버디렉터(KubeDirector)
  • 보틀로켓(Bottlerocket)
  • SPIFFE
  • 렘(Lem)
  • 채플(Chapel)
  • 아프로모어(Apromore)
  • 소스그래프(Sourcegraph)
  • 퀘스트DB(QuestDB)
  • OPA(Open Policy Agent)


하수라(Hasura)
현대 애플리케이션은 GraphQL로 작성되곤 한다. 1,000개의 REST 호출을 보내는 대신, GraphQL로 최적화하는 기법이 널리 알려져 있다. 하수라(Hasura)는 실질적인 보안, 구독 및 실시간 쿼리를 통해 이를 더욱 확장한다. GraphQL 쿼리 구축, 실행 및 구성에 유용한 그래픽 도구를 제공한다. 

게다가 하수라는 PostgreSQL 및 PostgreSQL 호환 데이터베이스를 염두에 두고 개발됐다(그리고 지금은 MySQL로 지원한다). 자바스크립트/REST API 시대가 MongoDB 및 NoSQL과 연관되어 있다면 GraphQL 시대는 PostgreSQL 및 분산형 SQL과 연관되어 있다고 표현할 수 있겠다. 하수라는 이런 최신 애플리케이션 트렌드에서 등장한 최고의 오픈소스 GraphQL 스택이다.

프리즈마(Prisma)
타입스크립트(TypeScript) 애플리케이션을 위한 많은 ORM이 존재하지만 프리즈마는 그 중에서도 유독 개발자 친화적이다. SQL 쿼리 자동 작성 등의 기능도 갖췄다. 기술적으로 개발자들은 프리즈마를 ORM이라 생각하지 않는다. gRPC 및 GraphQL을 포함하여 API 개발을 염두에 두고 설계됐다. 

프리즈마는 기본적으로 PostgreSQL, MySQL 및 SQLite 데이터베이스와 호환된다. 비주얼 스튜디오 코드 확장 기능이 있으며 최신 데이터베이스 API 및 맵핑 솔루션에서 기대할 수 있는 모든 것을 갖추고 있다. 객체 및 쿼리 측면에서 생각하고 타입 안전성 및 모든 해결사항이 있는 개발자들은 프리즈마를 고려해볼 만하다. 

제킬(Jekyll)
오래전 웹에는 별도의 파일로 저장된 HTML 페이지들이 가득했다. 그리고 누군가 동적 웹 페이지를 발명했고 모두가 모든 URL에 유연성과 사용자 정의성을 추가하는 데 집착하게 됐다. 고정된 불변성의 HTML이 사라졌다. 대신에 개발자들은 모든 정보를 정보가 바뀌지 않더라도 사용자마다 개별적인 데이터 패킷을 생성하는 정교한 데이터베이스가 뒷받침되는 애플리케이션에 집어넣었다.

그리고 어떤 스마트한 프로그래머들이 이 모든 작업을 다시 수행하는 것이 어리석다는 사실을 깨달았다. 제킬은 최고의 새로운 정적 사이트 생성기이며 정보와 패키지를 콘텐츠 제공 네트워크로 밀어낼 수 있는 개별적인 웹 페이지 콜렉션으로 변환할 수 있다. 데이터베이스도 없다. 가짜 사용자 정의도 없다. 제킬은 텍스트를 가져다 템플릿에 넣어 버린다. 적절한 템플릿과 엣지에서 적정 파일을 저장하는 속도의 이점을 함께 누릴 수 있는 유연성이 제공된다.

개츠비(Gatsby)
진보적인 웹 애플리케이션에 대한 아이디어와 사랑에 빠져 리액트의 정교한 멀티 패널 접근방식을 도입한 사람은 여전히 무엇인가를 창작하느라 바빴을 것이다. 개츠비는 리액트를 기반으로 플러그인을 적용하여 작업들을 위해 쇼피파이(Shopify) 매장 같은 큰 것, JSON 데이터 피드 같은 작은 것 및 2,000개 이상의 다른 모듈을 배치한다.

개츠비 프로젝트의 주된 목표 중 하나는 빠른 웹 페이지를 제공하는 것이며 적절한 캐싱, 정적 페이지 생성 및 엣지 기반 CDN 데이터 소스를 활용하여 이 목표를 추구한다. 이 프로젝트에서는 이런 신중한 집중으로 ‘정적 프레임워크보다 2.5배 빠른’ 정적 웹 페이지가 생성된다고 주장한다. 개츠비는 분명 우아하면서 빠르다. 

드루팔(Drupal)
드루팔의 철학은 새로울 것이 없다. 드라이즈 부이태트(Dries Buytaert)가 개발자들이 여러 개의 필드로 구성된 데이터가 풍부한 노드로 채워진 웹 사이트를 스핀업 할 수 있도록 2001년에 첫 번째 버전을 오픈소스로 공개했다. 이 풍부한 프레임워크가 더 풍부해져 도표 데이터를 포용하게 되었다. 

이제는 코드가 수정되고 개선되며 재작성 되어 완전히 새로운 것처럼 보인다. 드루팔 9이 6월에 공개됐으며 컴포저(Composer), 심포니(Symphony) 및 트위그(Twig) 등의 PHP 도구를 기반으로 구축된 최신 PHP 웹 애플리케이션이다.

이 프로젝트가 가속화되면서 워드프레스와 줌라 같은 PHP 도구들도 더욱 발전하고 있다. PHP 개발자들이 자바와 Node.js의 성공에 힘입어 JIT(Just-In-Time) 컴파일러 기법 중 일부를 도입하면서 이 언어가 점차 빨라지고 있다. 모듈 생태 또한 인상적인 미니 오픈소스 프로젝트의 콜렉션이며 코어에 크고 작은 기능을 추가하기가 상대적으로 용이하다. 단순히 하나의 오픈소스 프로젝트가 아니라 진화하는 코드의 기라성이다.

불칸(Vulkan)
불칸은 차세대 그래픽 및 컴퓨팅 API이며 PC와 콘솔부터 스마트폰과 임베디드 플랫폼까지 광범위한 장치에서 사용되는 최신 GPU에 대한 매우 효율적인 교차 플랫폼 액세스를 제공한다. 불칸 API는 게임, 모바일 및 워크스테이션 개발을 지원한다. OpenGL 표준의 계승자이다.

기본적으로 그래픽 API인 OpenGL과 비교하여 불칸은 GPU API에 더 가깝다. AMD, Arm, 브로드컴, 이미지네이션, 인텔, 엔비디아, 퀄컴 및 베리실리콘이 불칸 드라이버를 제공하며, 윈도우, 리눅스, 맥OS/iOS 및 안드로이드용 불칸 SDK가 있다. 대부분의 유명 게임 엔진에는 현재 불칸 지원도 포함되어 있다. 

레디스(Redis)
속도, 민첩성, 확장성 및 유연성이 조합된 강력한 레디스는 NoSQL 인메모리 데이터 구조로써 데이터베이스, 캐시 및 메시지 중개자로 기능할 수 있다. 레디스에는 반복 검증, Lua 스크립트, LRU 축출, 트랜잭션 및 다양한 수준의 온디스크 일관성이 내재되어 있다. 레디스 센티넬을 통해 높은 가용성을 제공하고 레디스 클러스터를 통해 자동 파티셔닝을 제공한다. 레디스는 일반적으로 100만분의 1초 미만의 데이터베이스 지연 속도를 제공한다.

코어 레디스 데이터 모델은 키 값이지만 Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps 등 많은 종류의 값이 지원된다.  레디스는 반경 쿼리와 스트림을 통해 공간 인덱스를 지원한다. 레디스 6는 여러 주요 기능을 추가했으며, 그 중에는 속도를 2배나 향상시킨 스레디드 I/O도 포함된다. ACL(Access Control List)가 추가되면서 레디스 6는 사용자의 개념을 갖게 되었으며 개발자들이 더욱 안전한 코드를 작성할 수 있다.

아파치 에어플로우(Apache Airflow)
포레스트 검프의 말처럼 일은 벌어지게 마련이다. 하지만 때로는 일이 특성 순서로 벌어지고 이후에 다른 일이 벌어지도록 촉발해야 한다. 즉, 워크플로우가 필요하다. 파이썬 개발자에게 파이썬 중심적인 워크플로가 필요한 경우라면 에어비앤비가 개발한 아파치 에어플로우가 좋을 수 있다.

에어플로우를 통해 워크플로를 방향성 비사이클 그래프로 구성할 수 있다. 심지어 동적 워크플로를 구성할 수도 있다. 워크플로를 XML이나 다른 메타데이터 언어로 변환해야 하는 다른 도구와는 달리 에어플로우는 ‘코드로써 구성’ 원칙에 따라 이 모든 것을 파이썬 스크립트로 작성할 수 있다.

아파치 슈퍼세트(Apache Superset)
타블로(Tableau)의 가격을 정하고 심장이 멎는 것 같았던 것이 있는가? 단순한 대시보드만 원하는 비용이 너무 높다는 말이다. 즉, 타블로가 원하는 시각화를 못하거나 잘 하지 못했던 경우가 있었는가? 아파치 슈퍼세트를 검토해볼 만하다. 여기에도 에어비앤비가 기여했다.

SQL IDE, 데이터 탐색기, 드래그 앤 드롭 대시보드 편집기 및 사용자 정의 시각화 구성을 위한 플러그인을 결합한 슈퍼세트는 여러 관계형 및 비 관계형 데이터베이스에서 대시보드를 생성할 수 있는 시각화 툴킷이며 아파치 드릴 및 아파치 드루이드에 연결할 수 있다. 무엇보다도 슈퍼세트는 클라우드 네이티브이며 독커화 되어 있는 최신 스케일 아웃이다.

야누스그래프(JanusGraph)
그래프 데이터베이스는 항상 100% 소화하기 어려웠다. 물론, 그래프 쿼리와 그래프 문제가 존재한다. 하지만 그래프가 정말로 데이터를 저장하는 적절한 수단일까? Neo4j 사람들은 너무 효율적이어서 최신 분산형 스토리지 및 샤딩과 파티셔닝 등도 필요 없다고 말한다. 하지만 정말로 큰 데이터 세트를 구동하면 이내 그래프 분석이 효율적일 수 있지만 스토리지 그래프는 그렇지 않다는 사실을 발견하게 된다. 

야누스그래프를 통해 그렘린 그래프 쿼리를 실행하면서 실제 데이터를 카산드라, 유가바이트, ScyllaDB, HBase 또는 구글의 빅테이블 같은 분산형 데이터베이스에 저장할 수 있다. Neo4j 및 다른 ‘네이티브 그래프’ 데이터베이스와 마찬가지로 야누스그래프는 트랜잭션을 수행하여 인덱싱 되며 그래프형 OLTP 용도 및 OLAP 분석 용도에 적합하다. 정말로 큰 그래프 작업을 한다면 야누스그래프가 적합할 수 있다.

아파치 드루이드(Apache Druid)
애널리틱스 세상이 바뀌고 있다. 과거에는 모든 것을 거대한 MPP 시스템에 일괄 로딩하고 장시간 실행되는 쿼리를 기다렸지만 이벤트가 발생하고 스트리밍 되면서 새로운 대규모 애널리틱스 서브세트가 실시간으로 수행되고 있다. 어쨌든 어제 또는 1주일 전에 일어났던 일이 오래 전의 일이 될 수도 있다.

아파치 드루이드는 분산형 칼럼 스토어 데이터베이스이며 저 지연 데이터 수집 및 이에 기초한 저 지연 쿼리를 제공한다. 아파치 카프카 같은 메시지 버스 및 HDFS 같은 데이터 소스와의 기본적인 통합을 제공하는 BI 또는 OLAP 스타일의 데이터베이스이다. 데이터 웨어하우스이면서 검색 시스템이기도 한 드루이드는 엄청난 양의 데이터를 취급할 수 있으며 클라우드 시대에 맞추어 고안되었다.

아파치 애로우(Apache Arrow)
최신 1.0 릴리즈를 통해 아파치 애로우는 더욱 강력해졌으며 인메모리 칼럼식 형식을 C/C++, 고(Go), 자바/JVM, 파이썬, 자바스크립트, 매트랩, R, 루비 및 러스트 같은 여러 언어에 적용하고 있다. 애로우를 직접 다운로드할 수는 없지만 사용 중인 여러 빅데이터 및 머신러닝 프로젝트에서 발견할 수 있다. 아파치 스파크, 다스크, 아마존 아테나 및 텐서플로우 등이 그 예이다.

애로우 프로젝트는 현재 인메모리뿐 아니라 머신들 사이의 통신으로 관심을 돌리고 있다. 아파치 애로우 플라이트는 새로운 범용 클라이언트-서버 프레임워크이며 네트워크 인터페이스를 통한 고성능 대규모 데이터 세트 이동을 간소화하기 위해 고안되었다. 플라이트는 앞으로 분산형 컴퓨팅 애플리케이션 중 일부의 클러스터 데이터 전송을 지원하게 될 것이다. 

아르고(Argo)
아파치 우지(Oozie)와 아파치 에어플로우 등 많은 오픈소스 워크플로 엔진이 존재하지만 이런 것들과 달리 아르고는 처음부터 쿠버네티스와 호환되도록 개발됐다. 본래 인투잇이 개발한 아르고는 배치에 적합하며 쿠버네티스 리소스뿐만이 아니라 독커 주도 사용자 정의 단계와 직접 상호작용할 수 있다.

지난 1년 동안 아르고는 템플릿 및 탄력성을 위해 여러 기능을 추가했으며 이제는 클러스터 안에서 쿼리를 처리하는 최고의 수단이 되었다. 아르고 프로젝트에는 더 많은 기능이 포함되어 있어 워크플로를 이벤트 그리고 심지어 CI/CD 시스템별로 트리거할 수 있으며 세심하게 계획된 모듈 방식 덕분에 아르고 생태계를 원하는 만큼 사용할 수 있다.

셀던 코어(Seldon Core)
좋은 머신러닝 모델을 만드는 것은 어렵지만 그것은 시작에 불과하다. 배치, 모니터링 및 유지관리가 장기적으로 머신러닝 전략의 성공에 더욱 중요할 가능성이 높다.

쿠버네티스에서 모델을 배치하는 툴킷인 셀던 코어는 이를 제대로 돕는다. 자바로 작성된 모델을 파이토치(PyTorch) 모델을 이용해 똑같은 방식으로 배치할 수 있도록 하는 다국어 API, 다양한 모델에 대한 임의적인 그래프 구성 기능, A/B 또는 다중 암(Arm) 밴디트(Bandit) 실험에 대한 라우팅 요청 지원 및 중요한 지표를 위해 프로메테우스와의 통합 등 많은 기능을 제공한다.

그리고 모든 것이 쿠버네티스와 이스티오 또는 앰배서더 등의 표준 구성 요소를 기반으로 구축된다. 앞으로 여러 기업의 모델 배치 전략의 핵심에 셀던 코어가 있을 것이다.

옵튜나(Optuna)
머신러닝 전문가에게 하이퍼파라미터 튜닝에 대한 조언을 구한다면 하이퍼옵트로 안내할 가능성이 높다. 하지만 프리퍼드 네트웍스의 옵튜나를 사용해 보아야 할 것이다. 새로운 옵튜나 2.0 릴리즈는 기본적으로 텐서플로우, 사이킷-런, 아파치 MXNet 및 파이토치와 통합될 수 있으며 케라스, 파이토치 라이트닝, 파이토치 이그나이트 및 패스트AI에 대한 특정 프레임워크 지원도 제공한다.

더욱 빠른 샘플러와 초대역 프루닝을 제공하는 옵튜나는 성능 기준에 맞는 파라미터 옵티마를 찾는 데 소요되는 시간을 크게 줄여주며, 이 모든 것을 몇 줄의 코드로 얻을 수 있다. 또한, 이 프레임워크는 제공된 통합을 벗어나는 시나리오에 맞추어 놀랍도록 쉽게 확장할 수 있다.

K9s
K9s는 SRE의 가장 좋은 친구다. 터미널 중 하나에 숨겨져 있는 것을 발견하는 경우가 많을 것이다. 쿠버네티스 클러스터 멘토링의 맥가이버 칼인 K9s는 이 모든 kubectl 기능을 지속적으로 업데이트되는 방식으로 지원한다. 모든 팟을 한 눈에 확인하거나 1개의 키를 눌러 설명과 로그를 살펴볼 수 있다.

게다가 K9s는 같은 명령줄 인터페이스에서 리소스를 편집하고 쉘을 통해 팟에 진입하며 벤치마크도 실행할 수 있다. 광범위한 플러그인 시스템과 스킨 지원을 갖추고 있는 이 쿠버네티스용 해커 친화적인 인터페이스를 한 번 접하고 나면 절대로 포기할 수 없을 것이다.

쿠버디렉터(KubeDirector)
쿠버디렉터는 쿠버네티스 클러스터에서 네트워크 연결 상태를 추적할 수 있는 애플리케이션을 손쉽게 실행하도록 고안된 오픈소스 프로젝트이다. 일반적으로 사용자 정의 연산자를 작성해야 하며, 애플리케이션 및 쿠버네티스에 대한 높은 수준의 전문지식이 필요한 작업이다.

쿠버디렉터는 장기간에 걸쳐 지켜보는 네트워크 연결 상태를 추적할 수 있는 애플리케이션의 조정을 위한 쿠버네티스 연산자로 이행된다. 애플리케이션 도메인을 모델링하여 사용자가 서비스 종점, 영구적 디렉터리 및 인스턴스화 사이에서 일관성을 유지해야 하는 다른 모든 것을 지정할 수 있다.

아파치 카프카, 아파치 스파크, 텐서플로우, 클라우데라 및 카산드라가 포함된 애플리케이션 카탈로그 예시가 있다. 제공된 쿠버네티스 클러스터가 있다면 몇 분 안에 이 애플리케이션을 사용하기 시작할 수 있다.

보틀로켓(Bottlerocket)
대규모 쿠버네티스 클러스터에서 컨테이너를 실행하기 위해 개발된 리눅스 파생물인 보틀로켓은 OS보다는 소프트웨어 어플라이언스에 가깝다. REST API, 명령줄 클라이언트 또는 웹 콘솔을 통해 관리가 이루어진다. 업데이트는 쿠버네티스 연산자로 ‘2개 파티션 패턴’을 사용하여 한 번에 관리되며 오류 발생 시 롤백 된다. 최소한의 공격 표면을 제공하고 cgroups, 커널 명칭 공간 및 eBPF를 통해 컨테이너간 고립을 실행하여 보안이 향상된다. SELinux가 기본적으로 활성화된다.

보틀로켓은 아마존EKS에서 구동하도록 고안되었지만 구내에서도 구동된다. 소스 코드는 깃허브에 있으며 OS를 손쉽게 빌드할 수 있다. 핵심 구성 요소는 러스트로 작성되며 아마존은 자체 연산자나 제어 컨테이너를 손쉽게 추가할 수 있도록 했다. 높은 성능을 제공하며 표준 리눅스에 기초하고 AWS가 지원하는 보틀로켓은 멀티클라우드 전략을 이행하는 AWS 추종자와 고객들이 주목하지 않을 수 없는 옵션이다.

SPIFFE
SPIFFE(Secure Production Identity Framework For Everyone)는 클라우드 네이티브가 호스트 및 프로세스가 빈번하게 생성 및 파괴되는 환경으로 정의되는 ‘클라우드 네이티브 보안’을 위한 사양이다. SPIFFE는 서비스 식별, 서비스 자격 증명 발행 및 제공자와의 자격 증명 검증 방법 등 대규모 컨테이너 클러스터에 내재된 ID 문제를 해결한다.

단일 클라우드 환경에서 커버로스와 OAuth는 IT 관리와 잘 호환되지만 진정한 하이브리드 및 멀티클라우드 설정에서는 조금 까다로워진다. 이 문제를 해결하기 위해 SPIFFE는 ID를 특정 호스트 대신에 작업 부하 항목에 결부시킨다. 즉, 컨테이너가 오고 가면서 같은 ID를 유지할 수 있는 것이다.

또한 SPIFFE는 제로트러스트 네트워크를 가정하며 ID 수립을 위해 키나 비밀번호가 필요 없다. 인증 정보를 시스템에 입력할 필요가 없기 때문에 비밀 정보 누설이 방지된다. SPIFFE는 OAuth 같은 기존의 ID 제공자와 호환될 수 있다.

렘(Lem)
‘하드코어’ 프로그래머들의 40년 지기인 Emacs를 현대화 하려는 시도가 다수 있었다. 그러나 모두 근본적으로 기본 엔진인 Emacs Lisp에 의해 제한된다. Lisp는 편집기에 좋은 도구이며 Lisp Machine의 훌륭한 편집기인 Zmacs의 기초였지만 Emacs Lisp는 군사용 애플리케이션 배치에 적합한 언어를 개발하기 위해 DARPA가 Common Lisp ANSI 사양 프로세스에 지출한 수 백만 달러의 지원금 적용 대상에서 제외되었다.

은 Common Lisp를 사용하여 Emacs를 재작성한 것이다. Common Lisp를 통해 Lem은 최신 그래픽 경험을 위한 GUI 라이브러리(Electron GUI의 알파 버전이 있음)에 액세스하고 C/C++를 원활하게 호출하며 광범위한 제3자 라이브러리에 액세스할 수 있다. 이미 많은 기여자, 재정적 지원 및 28개 언어로 된 편집 모드가 존재한다. Emacs 해커들은 분명 렘이 편안하게 느껴질 것이다.

채플(Chapel)
데이터 세트가 점차 커지면서 예측 모델을 구축할 때 동시성, 병렬성 및 분산성이 점차 중요해졌고 슈퍼컴퓨팅 사람들보다 이것을 잘 하는 사람은 없다. HPC(High Performance Computing) 프로그램은 C/C++ 또는 포트란 코드, 일부 쉘 스크립트, OpenMP/MPI 및 이 모든 것을 결합시키기 위한 높은 수준의 기술로 구성될 수도 있는 저 수준 프로그래밍 작업이다.

채플은 파이썬 또는 매트랩 등의 언어와 유사한 병렬 컴퓨팅을 위한 더 높은 수준의 언어 구조를 제공하여 이를 용이하게 한다. 수 천 개의 노드에 걸쳐 분산된 어레이, 어느 노드에서나 사용할 수 있는 명칭 공간 및 동시성과 병렬 기초 생성 등 C에서 HPC를 다루기 어렵게 하는 모든 요소들이 채플에서는 더 높은 수준으로 처리된다.

HPC는 항상 틈새에 가까웠다. 이전에 수요가 없었고 기술을 가진 사람이 드물었던 것도 그 이유이다. 채플을 통해 모든 소프트웨어 프로그래머가 머신러닝 알고리즘을 초대형 규모로 실행할 수 있다. 최소한 모두가 이 언어로 우아하게 표면화된 아이디어와 개념을 이해할 수 있다는데 가치가 있다.

아프로모어(Apromore)
장기적인 비즈니스 프로세스의 효율성을 개선하거나 새로운 준법감시 모니터링 서비스를 출시할 때 IT 시스템을 정확히 파악하는 것이 성공의 첫걸음이다. 아프로모어(Apromore) 프로세스 검색 도구는 IT 백엔드에서 얻은 KPI를 분석하고 BPMN 활동을 소화하며 운영 의존성 그래프를 작성하여 이런 통찰을 제공한다.

아프로모어의 브라우저 기반 시각 대시보드는 리소스, 활동, 타임스탬프 및 도메인별 속성에 대한 애니메이션화된 프로세스 맵을 표시하여 통계 및 시간적 통찰을 제공한다. 손쉬운 필터링을 통해 필요한 디테일을 얻을 수 있다. 아프로모어는 심지어 애플리케이션 워크플로와 이를 이행하는 인간 자본 사이에서 초점을 바꾸어 이상점과 병목을 확인할 수 있다.

필요한 애플리케이션 기능 및 BI 커넥터 플러그인에 액세스하려면 엔터프라이즈 에디션을 구매해야 한다. 하지만 아프로모어가 제공하는 지표와 시각적 통찰은 기업 워크플로 안에서의 변화 영향 분석과 E2E 최적화에 대한 정보를 제공한다.

소스그래프(Sourcegraph)
기업용 앱 개발 프로젝트가 너무 복잡해져서 IDE만으로는 관리할 수 없다. 최신 코드베이스와 그것들의 의존성은 여러 프로그래밍 언어, 저장소 및 지리적으로 분산된 팀에 분산되어 있어 검색 또는 리팩터링은 고사하고 코드를 인덱싱하는 것도 어렵다.

주요 IDE 및 웹 브라우저용 플러그인을 통해 소스그래프는 개발 워크플로에 통합하여 검색 프로세스를 통일한다. 일반적인 수식과 언어별 필터를 사용하여 코드 인텔리전스, 포괄적인 탐색 및 브라우저 안에서 참조와 정의를 제공하는 도움말풍선 등으로 향상된 코드베이스 전체에 대한 신속하고 완전한 시야를 얻을 수 있다. 

소스그래프는 구글과 페이스북 엔지니어들만 사용하던 새로운 수준의 코드 탐색, 검토 및 인텔리전스 도구를 사용하여 구시대의 IDE를 강화한다. 개발팀이 코드 검색, 코드 검토 및 코드 재사용 위치를 찾느라 시간을 보낸다면 소스그래프를 활용해 보는 것도 좋을 것이다.

퀘스트DB(QuestDB)
고성능 시계열 데이터베이스는 유지보수 비용이 높을 뿐 아니라 전매 특허 쿼리 언어를 학습해야 하는 클로즈드 소스 제품인 경우가 많다. QuestDB는 그렇지 않다. 

신속한 시계열 데이터 및 이벤트 처리를 위해 개발된 무료 오픈소스 데이터베이스인 QuestDB는 익숙한 SQL과 함께 시간 집계를 위한 시계열 확장 기능을 사용하여 쿼리 처리된다. 그리고 그 자바 기반 쿼리 엔진은 최소한 지연 속도로 엄청나게 빠른 응답시간을 제공한다. 

인상적인 쿼리 성능을 제공하기 위해 QuestDB는 사용자 정의 스토리지 엔진, 수정된 Google Swiss Table, SIMD 지침, 병렬 실행 대기 및 파이프라인 프리패치(Prefetch) 최적화를 활용한다. 그 온보드 웹 콘솔은 양방향 쿼리용 코드 편집기인 스키마 탐색기와 일부 기본적인 테이블 및 시각화 도구를 제공한다.

QuestDB는 여전히 개발되는 중이다. 아직 모든 쿼리가 최적화되지 않았으며 SQL 방언이 여전히 구체화되고 있다. 하지만 SQL 지원을 통한 획기적인 시계열 쿼리 성능을 얻게 되면 이런 단점은 눈에 띄지 않을 것이다. 

아파치 2.0에 따라 라이선스가 제공되는 QuestDB는 리눅스, 맥OS 및 윈도우에서 구동하며 독커와 홈브루(Homebrew)를 위한 패키지를 제공한다.

OPA (Open Policy Agent)
승인 정책 실행은 일반적으로 즉석에서 하드 코딩된 규칙을 사용하여 수동으로 수행되며, 모든 애플리케이션 및 서비스에 같은 작업을 반복할 때 더욱 그렇다. 이런 불안정한 접근방식으로 인해 유지관리 또는 감사가 불가능해지는 파편화된 정책 승인 포인트 솔루션으로 이어질 수밖에 없다. 

OPA는 애플리케이션 레벨 실행에서 정책 의사결정을 분리시키는 범용 승인 엔진을 제공한다. OPA는 일련의 JSON 속성을 수락하며 범위 안의 정책 및 데이터에 따라 평가하고 애플리케이션에 ‘예’ 또는 ‘아니오’ 결정으로 응답하여 호출자가 실행하도록 한다.

OPA는 데몬으로 실행되거나 서비스에 라이브러리로 직접 통합될 수 있다. 마이크로서비스, 서비스 메시, API 승인 및 쿠버네티스 승인 관리 등의 사용 사례에 적합하지만 SaaS 제공 모델 등의 용도로도 손쉽게 확장할 수 있다.

유연한 실행과 정책 생성을 간소화하는 선언 정책을 결합한 OPA는 베어메탈부터 클라우드까지 정책을 스택에서 통일성 있고 논리적으로 관리할 수 있는 코드처럼 취급하여 광범위한 기술에 대한 통제권을 관리자에게 돌려준다. ciokr@idg.co.kr



2020.10.08

2020 베스트 오픈소스 소프트웨어 25선

ames R. Borck, Martin Heller, Steven Nunez, Andrew C. Oliver, Ian Pointer and Peter Wayner | InfoWorld
자애로운 보그(Borg)처럼 오픈소스가 소프트웨어 세계를 뒤흔들고 있으며 닿는 곳마다 혁신을 가져오고 있다. 그리고 해마다 인포월드의 오픈소스 어워드, 일명 ‘보시’(Bossies, 최고의 오픈소스 소프트웨어-The Best of Open Source Software) 또한 발전하고 있다. 2020년 보시(Bossies)의 25개 수상작을 살펴본다. 


 
  • 하수라(Hasura)
  • 프리즈마(Prisma)
  • 제킬(Jekyll)
  • 개츠비(Gatsby)
  • 드루팔(Drupal)
  • 불칸(Vulkan)
  • 레디스(Redis)
  • 아파치 에어플로우(Apache Airflow)
  • 아파치 슈퍼세트(Apache Superset)
  • 야누스그래프(JanusGraph)
  • 아파치 드루이드(Apache Druid)
  • 아파치 애로우(Apache Arrow)
  • 아르고(Argo)
  • 셀던 코어(Seldon Core)
  • 옵튜나(Optuna)
  • K9s
  • 쿠버디렉터(KubeDirector)
  • 보틀로켓(Bottlerocket)
  • SPIFFE
  • 렘(Lem)
  • 채플(Chapel)
  • 아프로모어(Apromore)
  • 소스그래프(Sourcegraph)
  • 퀘스트DB(QuestDB)
  • OPA(Open Policy Agent)


하수라(Hasura)
현대 애플리케이션은 GraphQL로 작성되곤 한다. 1,000개의 REST 호출을 보내는 대신, GraphQL로 최적화하는 기법이 널리 알려져 있다. 하수라(Hasura)는 실질적인 보안, 구독 및 실시간 쿼리를 통해 이를 더욱 확장한다. GraphQL 쿼리 구축, 실행 및 구성에 유용한 그래픽 도구를 제공한다. 

게다가 하수라는 PostgreSQL 및 PostgreSQL 호환 데이터베이스를 염두에 두고 개발됐다(그리고 지금은 MySQL로 지원한다). 자바스크립트/REST API 시대가 MongoDB 및 NoSQL과 연관되어 있다면 GraphQL 시대는 PostgreSQL 및 분산형 SQL과 연관되어 있다고 표현할 수 있겠다. 하수라는 이런 최신 애플리케이션 트렌드에서 등장한 최고의 오픈소스 GraphQL 스택이다.

프리즈마(Prisma)
타입스크립트(TypeScript) 애플리케이션을 위한 많은 ORM이 존재하지만 프리즈마는 그 중에서도 유독 개발자 친화적이다. SQL 쿼리 자동 작성 등의 기능도 갖췄다. 기술적으로 개발자들은 프리즈마를 ORM이라 생각하지 않는다. gRPC 및 GraphQL을 포함하여 API 개발을 염두에 두고 설계됐다. 

프리즈마는 기본적으로 PostgreSQL, MySQL 및 SQLite 데이터베이스와 호환된다. 비주얼 스튜디오 코드 확장 기능이 있으며 최신 데이터베이스 API 및 맵핑 솔루션에서 기대할 수 있는 모든 것을 갖추고 있다. 객체 및 쿼리 측면에서 생각하고 타입 안전성 및 모든 해결사항이 있는 개발자들은 프리즈마를 고려해볼 만하다. 

제킬(Jekyll)
오래전 웹에는 별도의 파일로 저장된 HTML 페이지들이 가득했다. 그리고 누군가 동적 웹 페이지를 발명했고 모두가 모든 URL에 유연성과 사용자 정의성을 추가하는 데 집착하게 됐다. 고정된 불변성의 HTML이 사라졌다. 대신에 개발자들은 모든 정보를 정보가 바뀌지 않더라도 사용자마다 개별적인 데이터 패킷을 생성하는 정교한 데이터베이스가 뒷받침되는 애플리케이션에 집어넣었다.

그리고 어떤 스마트한 프로그래머들이 이 모든 작업을 다시 수행하는 것이 어리석다는 사실을 깨달았다. 제킬은 최고의 새로운 정적 사이트 생성기이며 정보와 패키지를 콘텐츠 제공 네트워크로 밀어낼 수 있는 개별적인 웹 페이지 콜렉션으로 변환할 수 있다. 데이터베이스도 없다. 가짜 사용자 정의도 없다. 제킬은 텍스트를 가져다 템플릿에 넣어 버린다. 적절한 템플릿과 엣지에서 적정 파일을 저장하는 속도의 이점을 함께 누릴 수 있는 유연성이 제공된다.

개츠비(Gatsby)
진보적인 웹 애플리케이션에 대한 아이디어와 사랑에 빠져 리액트의 정교한 멀티 패널 접근방식을 도입한 사람은 여전히 무엇인가를 창작하느라 바빴을 것이다. 개츠비는 리액트를 기반으로 플러그인을 적용하여 작업들을 위해 쇼피파이(Shopify) 매장 같은 큰 것, JSON 데이터 피드 같은 작은 것 및 2,000개 이상의 다른 모듈을 배치한다.

개츠비 프로젝트의 주된 목표 중 하나는 빠른 웹 페이지를 제공하는 것이며 적절한 캐싱, 정적 페이지 생성 및 엣지 기반 CDN 데이터 소스를 활용하여 이 목표를 추구한다. 이 프로젝트에서는 이런 신중한 집중으로 ‘정적 프레임워크보다 2.5배 빠른’ 정적 웹 페이지가 생성된다고 주장한다. 개츠비는 분명 우아하면서 빠르다. 

드루팔(Drupal)
드루팔의 철학은 새로울 것이 없다. 드라이즈 부이태트(Dries Buytaert)가 개발자들이 여러 개의 필드로 구성된 데이터가 풍부한 노드로 채워진 웹 사이트를 스핀업 할 수 있도록 2001년에 첫 번째 버전을 오픈소스로 공개했다. 이 풍부한 프레임워크가 더 풍부해져 도표 데이터를 포용하게 되었다. 

이제는 코드가 수정되고 개선되며 재작성 되어 완전히 새로운 것처럼 보인다. 드루팔 9이 6월에 공개됐으며 컴포저(Composer), 심포니(Symphony) 및 트위그(Twig) 등의 PHP 도구를 기반으로 구축된 최신 PHP 웹 애플리케이션이다.

이 프로젝트가 가속화되면서 워드프레스와 줌라 같은 PHP 도구들도 더욱 발전하고 있다. PHP 개발자들이 자바와 Node.js의 성공에 힘입어 JIT(Just-In-Time) 컴파일러 기법 중 일부를 도입하면서 이 언어가 점차 빨라지고 있다. 모듈 생태 또한 인상적인 미니 오픈소스 프로젝트의 콜렉션이며 코어에 크고 작은 기능을 추가하기가 상대적으로 용이하다. 단순히 하나의 오픈소스 프로젝트가 아니라 진화하는 코드의 기라성이다.

불칸(Vulkan)
불칸은 차세대 그래픽 및 컴퓨팅 API이며 PC와 콘솔부터 스마트폰과 임베디드 플랫폼까지 광범위한 장치에서 사용되는 최신 GPU에 대한 매우 효율적인 교차 플랫폼 액세스를 제공한다. 불칸 API는 게임, 모바일 및 워크스테이션 개발을 지원한다. OpenGL 표준의 계승자이다.

기본적으로 그래픽 API인 OpenGL과 비교하여 불칸은 GPU API에 더 가깝다. AMD, Arm, 브로드컴, 이미지네이션, 인텔, 엔비디아, 퀄컴 및 베리실리콘이 불칸 드라이버를 제공하며, 윈도우, 리눅스, 맥OS/iOS 및 안드로이드용 불칸 SDK가 있다. 대부분의 유명 게임 엔진에는 현재 불칸 지원도 포함되어 있다. 

레디스(Redis)
속도, 민첩성, 확장성 및 유연성이 조합된 강력한 레디스는 NoSQL 인메모리 데이터 구조로써 데이터베이스, 캐시 및 메시지 중개자로 기능할 수 있다. 레디스에는 반복 검증, Lua 스크립트, LRU 축출, 트랜잭션 및 다양한 수준의 온디스크 일관성이 내재되어 있다. 레디스 센티넬을 통해 높은 가용성을 제공하고 레디스 클러스터를 통해 자동 파티셔닝을 제공한다. 레디스는 일반적으로 100만분의 1초 미만의 데이터베이스 지연 속도를 제공한다.

코어 레디스 데이터 모델은 키 값이지만 Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps 등 많은 종류의 값이 지원된다.  레디스는 반경 쿼리와 스트림을 통해 공간 인덱스를 지원한다. 레디스 6는 여러 주요 기능을 추가했으며, 그 중에는 속도를 2배나 향상시킨 스레디드 I/O도 포함된다. ACL(Access Control List)가 추가되면서 레디스 6는 사용자의 개념을 갖게 되었으며 개발자들이 더욱 안전한 코드를 작성할 수 있다.

아파치 에어플로우(Apache Airflow)
포레스트 검프의 말처럼 일은 벌어지게 마련이다. 하지만 때로는 일이 특성 순서로 벌어지고 이후에 다른 일이 벌어지도록 촉발해야 한다. 즉, 워크플로우가 필요하다. 파이썬 개발자에게 파이썬 중심적인 워크플로가 필요한 경우라면 에어비앤비가 개발한 아파치 에어플로우가 좋을 수 있다.

에어플로우를 통해 워크플로를 방향성 비사이클 그래프로 구성할 수 있다. 심지어 동적 워크플로를 구성할 수도 있다. 워크플로를 XML이나 다른 메타데이터 언어로 변환해야 하는 다른 도구와는 달리 에어플로우는 ‘코드로써 구성’ 원칙에 따라 이 모든 것을 파이썬 스크립트로 작성할 수 있다.

아파치 슈퍼세트(Apache Superset)
타블로(Tableau)의 가격을 정하고 심장이 멎는 것 같았던 것이 있는가? 단순한 대시보드만 원하는 비용이 너무 높다는 말이다. 즉, 타블로가 원하는 시각화를 못하거나 잘 하지 못했던 경우가 있었는가? 아파치 슈퍼세트를 검토해볼 만하다. 여기에도 에어비앤비가 기여했다.

SQL IDE, 데이터 탐색기, 드래그 앤 드롭 대시보드 편집기 및 사용자 정의 시각화 구성을 위한 플러그인을 결합한 슈퍼세트는 여러 관계형 및 비 관계형 데이터베이스에서 대시보드를 생성할 수 있는 시각화 툴킷이며 아파치 드릴 및 아파치 드루이드에 연결할 수 있다. 무엇보다도 슈퍼세트는 클라우드 네이티브이며 독커화 되어 있는 최신 스케일 아웃이다.

야누스그래프(JanusGraph)
그래프 데이터베이스는 항상 100% 소화하기 어려웠다. 물론, 그래프 쿼리와 그래프 문제가 존재한다. 하지만 그래프가 정말로 데이터를 저장하는 적절한 수단일까? Neo4j 사람들은 너무 효율적이어서 최신 분산형 스토리지 및 샤딩과 파티셔닝 등도 필요 없다고 말한다. 하지만 정말로 큰 데이터 세트를 구동하면 이내 그래프 분석이 효율적일 수 있지만 스토리지 그래프는 그렇지 않다는 사실을 발견하게 된다. 

야누스그래프를 통해 그렘린 그래프 쿼리를 실행하면서 실제 데이터를 카산드라, 유가바이트, ScyllaDB, HBase 또는 구글의 빅테이블 같은 분산형 데이터베이스에 저장할 수 있다. Neo4j 및 다른 ‘네이티브 그래프’ 데이터베이스와 마찬가지로 야누스그래프는 트랜잭션을 수행하여 인덱싱 되며 그래프형 OLTP 용도 및 OLAP 분석 용도에 적합하다. 정말로 큰 그래프 작업을 한다면 야누스그래프가 적합할 수 있다.

아파치 드루이드(Apache Druid)
애널리틱스 세상이 바뀌고 있다. 과거에는 모든 것을 거대한 MPP 시스템에 일괄 로딩하고 장시간 실행되는 쿼리를 기다렸지만 이벤트가 발생하고 스트리밍 되면서 새로운 대규모 애널리틱스 서브세트가 실시간으로 수행되고 있다. 어쨌든 어제 또는 1주일 전에 일어났던 일이 오래 전의 일이 될 수도 있다.

아파치 드루이드는 분산형 칼럼 스토어 데이터베이스이며 저 지연 데이터 수집 및 이에 기초한 저 지연 쿼리를 제공한다. 아파치 카프카 같은 메시지 버스 및 HDFS 같은 데이터 소스와의 기본적인 통합을 제공하는 BI 또는 OLAP 스타일의 데이터베이스이다. 데이터 웨어하우스이면서 검색 시스템이기도 한 드루이드는 엄청난 양의 데이터를 취급할 수 있으며 클라우드 시대에 맞추어 고안되었다.

아파치 애로우(Apache Arrow)
최신 1.0 릴리즈를 통해 아파치 애로우는 더욱 강력해졌으며 인메모리 칼럼식 형식을 C/C++, 고(Go), 자바/JVM, 파이썬, 자바스크립트, 매트랩, R, 루비 및 러스트 같은 여러 언어에 적용하고 있다. 애로우를 직접 다운로드할 수는 없지만 사용 중인 여러 빅데이터 및 머신러닝 프로젝트에서 발견할 수 있다. 아파치 스파크, 다스크, 아마존 아테나 및 텐서플로우 등이 그 예이다.

애로우 프로젝트는 현재 인메모리뿐 아니라 머신들 사이의 통신으로 관심을 돌리고 있다. 아파치 애로우 플라이트는 새로운 범용 클라이언트-서버 프레임워크이며 네트워크 인터페이스를 통한 고성능 대규모 데이터 세트 이동을 간소화하기 위해 고안되었다. 플라이트는 앞으로 분산형 컴퓨팅 애플리케이션 중 일부의 클러스터 데이터 전송을 지원하게 될 것이다. 

아르고(Argo)
아파치 우지(Oozie)와 아파치 에어플로우 등 많은 오픈소스 워크플로 엔진이 존재하지만 이런 것들과 달리 아르고는 처음부터 쿠버네티스와 호환되도록 개발됐다. 본래 인투잇이 개발한 아르고는 배치에 적합하며 쿠버네티스 리소스뿐만이 아니라 독커 주도 사용자 정의 단계와 직접 상호작용할 수 있다.

지난 1년 동안 아르고는 템플릿 및 탄력성을 위해 여러 기능을 추가했으며 이제는 클러스터 안에서 쿼리를 처리하는 최고의 수단이 되었다. 아르고 프로젝트에는 더 많은 기능이 포함되어 있어 워크플로를 이벤트 그리고 심지어 CI/CD 시스템별로 트리거할 수 있으며 세심하게 계획된 모듈 방식 덕분에 아르고 생태계를 원하는 만큼 사용할 수 있다.

셀던 코어(Seldon Core)
좋은 머신러닝 모델을 만드는 것은 어렵지만 그것은 시작에 불과하다. 배치, 모니터링 및 유지관리가 장기적으로 머신러닝 전략의 성공에 더욱 중요할 가능성이 높다.

쿠버네티스에서 모델을 배치하는 툴킷인 셀던 코어는 이를 제대로 돕는다. 자바로 작성된 모델을 파이토치(PyTorch) 모델을 이용해 똑같은 방식으로 배치할 수 있도록 하는 다국어 API, 다양한 모델에 대한 임의적인 그래프 구성 기능, A/B 또는 다중 암(Arm) 밴디트(Bandit) 실험에 대한 라우팅 요청 지원 및 중요한 지표를 위해 프로메테우스와의 통합 등 많은 기능을 제공한다.

그리고 모든 것이 쿠버네티스와 이스티오 또는 앰배서더 등의 표준 구성 요소를 기반으로 구축된다. 앞으로 여러 기업의 모델 배치 전략의 핵심에 셀던 코어가 있을 것이다.

옵튜나(Optuna)
머신러닝 전문가에게 하이퍼파라미터 튜닝에 대한 조언을 구한다면 하이퍼옵트로 안내할 가능성이 높다. 하지만 프리퍼드 네트웍스의 옵튜나를 사용해 보아야 할 것이다. 새로운 옵튜나 2.0 릴리즈는 기본적으로 텐서플로우, 사이킷-런, 아파치 MXNet 및 파이토치와 통합될 수 있으며 케라스, 파이토치 라이트닝, 파이토치 이그나이트 및 패스트AI에 대한 특정 프레임워크 지원도 제공한다.

더욱 빠른 샘플러와 초대역 프루닝을 제공하는 옵튜나는 성능 기준에 맞는 파라미터 옵티마를 찾는 데 소요되는 시간을 크게 줄여주며, 이 모든 것을 몇 줄의 코드로 얻을 수 있다. 또한, 이 프레임워크는 제공된 통합을 벗어나는 시나리오에 맞추어 놀랍도록 쉽게 확장할 수 있다.

K9s
K9s는 SRE의 가장 좋은 친구다. 터미널 중 하나에 숨겨져 있는 것을 발견하는 경우가 많을 것이다. 쿠버네티스 클러스터 멘토링의 맥가이버 칼인 K9s는 이 모든 kubectl 기능을 지속적으로 업데이트되는 방식으로 지원한다. 모든 팟을 한 눈에 확인하거나 1개의 키를 눌러 설명과 로그를 살펴볼 수 있다.

게다가 K9s는 같은 명령줄 인터페이스에서 리소스를 편집하고 쉘을 통해 팟에 진입하며 벤치마크도 실행할 수 있다. 광범위한 플러그인 시스템과 스킨 지원을 갖추고 있는 이 쿠버네티스용 해커 친화적인 인터페이스를 한 번 접하고 나면 절대로 포기할 수 없을 것이다.

쿠버디렉터(KubeDirector)
쿠버디렉터는 쿠버네티스 클러스터에서 네트워크 연결 상태를 추적할 수 있는 애플리케이션을 손쉽게 실행하도록 고안된 오픈소스 프로젝트이다. 일반적으로 사용자 정의 연산자를 작성해야 하며, 애플리케이션 및 쿠버네티스에 대한 높은 수준의 전문지식이 필요한 작업이다.

쿠버디렉터는 장기간에 걸쳐 지켜보는 네트워크 연결 상태를 추적할 수 있는 애플리케이션의 조정을 위한 쿠버네티스 연산자로 이행된다. 애플리케이션 도메인을 모델링하여 사용자가 서비스 종점, 영구적 디렉터리 및 인스턴스화 사이에서 일관성을 유지해야 하는 다른 모든 것을 지정할 수 있다.

아파치 카프카, 아파치 스파크, 텐서플로우, 클라우데라 및 카산드라가 포함된 애플리케이션 카탈로그 예시가 있다. 제공된 쿠버네티스 클러스터가 있다면 몇 분 안에 이 애플리케이션을 사용하기 시작할 수 있다.

보틀로켓(Bottlerocket)
대규모 쿠버네티스 클러스터에서 컨테이너를 실행하기 위해 개발된 리눅스 파생물인 보틀로켓은 OS보다는 소프트웨어 어플라이언스에 가깝다. REST API, 명령줄 클라이언트 또는 웹 콘솔을 통해 관리가 이루어진다. 업데이트는 쿠버네티스 연산자로 ‘2개 파티션 패턴’을 사용하여 한 번에 관리되며 오류 발생 시 롤백 된다. 최소한의 공격 표면을 제공하고 cgroups, 커널 명칭 공간 및 eBPF를 통해 컨테이너간 고립을 실행하여 보안이 향상된다. SELinux가 기본적으로 활성화된다.

보틀로켓은 아마존EKS에서 구동하도록 고안되었지만 구내에서도 구동된다. 소스 코드는 깃허브에 있으며 OS를 손쉽게 빌드할 수 있다. 핵심 구성 요소는 러스트로 작성되며 아마존은 자체 연산자나 제어 컨테이너를 손쉽게 추가할 수 있도록 했다. 높은 성능을 제공하며 표준 리눅스에 기초하고 AWS가 지원하는 보틀로켓은 멀티클라우드 전략을 이행하는 AWS 추종자와 고객들이 주목하지 않을 수 없는 옵션이다.

SPIFFE
SPIFFE(Secure Production Identity Framework For Everyone)는 클라우드 네이티브가 호스트 및 프로세스가 빈번하게 생성 및 파괴되는 환경으로 정의되는 ‘클라우드 네이티브 보안’을 위한 사양이다. SPIFFE는 서비스 식별, 서비스 자격 증명 발행 및 제공자와의 자격 증명 검증 방법 등 대규모 컨테이너 클러스터에 내재된 ID 문제를 해결한다.

단일 클라우드 환경에서 커버로스와 OAuth는 IT 관리와 잘 호환되지만 진정한 하이브리드 및 멀티클라우드 설정에서는 조금 까다로워진다. 이 문제를 해결하기 위해 SPIFFE는 ID를 특정 호스트 대신에 작업 부하 항목에 결부시킨다. 즉, 컨테이너가 오고 가면서 같은 ID를 유지할 수 있는 것이다.

또한 SPIFFE는 제로트러스트 네트워크를 가정하며 ID 수립을 위해 키나 비밀번호가 필요 없다. 인증 정보를 시스템에 입력할 필요가 없기 때문에 비밀 정보 누설이 방지된다. SPIFFE는 OAuth 같은 기존의 ID 제공자와 호환될 수 있다.

렘(Lem)
‘하드코어’ 프로그래머들의 40년 지기인 Emacs를 현대화 하려는 시도가 다수 있었다. 그러나 모두 근본적으로 기본 엔진인 Emacs Lisp에 의해 제한된다. Lisp는 편집기에 좋은 도구이며 Lisp Machine의 훌륭한 편집기인 Zmacs의 기초였지만 Emacs Lisp는 군사용 애플리케이션 배치에 적합한 언어를 개발하기 위해 DARPA가 Common Lisp ANSI 사양 프로세스에 지출한 수 백만 달러의 지원금 적용 대상에서 제외되었다.

은 Common Lisp를 사용하여 Emacs를 재작성한 것이다. Common Lisp를 통해 Lem은 최신 그래픽 경험을 위한 GUI 라이브러리(Electron GUI의 알파 버전이 있음)에 액세스하고 C/C++를 원활하게 호출하며 광범위한 제3자 라이브러리에 액세스할 수 있다. 이미 많은 기여자, 재정적 지원 및 28개 언어로 된 편집 모드가 존재한다. Emacs 해커들은 분명 렘이 편안하게 느껴질 것이다.

채플(Chapel)
데이터 세트가 점차 커지면서 예측 모델을 구축할 때 동시성, 병렬성 및 분산성이 점차 중요해졌고 슈퍼컴퓨팅 사람들보다 이것을 잘 하는 사람은 없다. HPC(High Performance Computing) 프로그램은 C/C++ 또는 포트란 코드, 일부 쉘 스크립트, OpenMP/MPI 및 이 모든 것을 결합시키기 위한 높은 수준의 기술로 구성될 수도 있는 저 수준 프로그래밍 작업이다.

채플은 파이썬 또는 매트랩 등의 언어와 유사한 병렬 컴퓨팅을 위한 더 높은 수준의 언어 구조를 제공하여 이를 용이하게 한다. 수 천 개의 노드에 걸쳐 분산된 어레이, 어느 노드에서나 사용할 수 있는 명칭 공간 및 동시성과 병렬 기초 생성 등 C에서 HPC를 다루기 어렵게 하는 모든 요소들이 채플에서는 더 높은 수준으로 처리된다.

HPC는 항상 틈새에 가까웠다. 이전에 수요가 없었고 기술을 가진 사람이 드물었던 것도 그 이유이다. 채플을 통해 모든 소프트웨어 프로그래머가 머신러닝 알고리즘을 초대형 규모로 실행할 수 있다. 최소한 모두가 이 언어로 우아하게 표면화된 아이디어와 개념을 이해할 수 있다는데 가치가 있다.

아프로모어(Apromore)
장기적인 비즈니스 프로세스의 효율성을 개선하거나 새로운 준법감시 모니터링 서비스를 출시할 때 IT 시스템을 정확히 파악하는 것이 성공의 첫걸음이다. 아프로모어(Apromore) 프로세스 검색 도구는 IT 백엔드에서 얻은 KPI를 분석하고 BPMN 활동을 소화하며 운영 의존성 그래프를 작성하여 이런 통찰을 제공한다.

아프로모어의 브라우저 기반 시각 대시보드는 리소스, 활동, 타임스탬프 및 도메인별 속성에 대한 애니메이션화된 프로세스 맵을 표시하여 통계 및 시간적 통찰을 제공한다. 손쉬운 필터링을 통해 필요한 디테일을 얻을 수 있다. 아프로모어는 심지어 애플리케이션 워크플로와 이를 이행하는 인간 자본 사이에서 초점을 바꾸어 이상점과 병목을 확인할 수 있다.

필요한 애플리케이션 기능 및 BI 커넥터 플러그인에 액세스하려면 엔터프라이즈 에디션을 구매해야 한다. 하지만 아프로모어가 제공하는 지표와 시각적 통찰은 기업 워크플로 안에서의 변화 영향 분석과 E2E 최적화에 대한 정보를 제공한다.

소스그래프(Sourcegraph)
기업용 앱 개발 프로젝트가 너무 복잡해져서 IDE만으로는 관리할 수 없다. 최신 코드베이스와 그것들의 의존성은 여러 프로그래밍 언어, 저장소 및 지리적으로 분산된 팀에 분산되어 있어 검색 또는 리팩터링은 고사하고 코드를 인덱싱하는 것도 어렵다.

주요 IDE 및 웹 브라우저용 플러그인을 통해 소스그래프는 개발 워크플로에 통합하여 검색 프로세스를 통일한다. 일반적인 수식과 언어별 필터를 사용하여 코드 인텔리전스, 포괄적인 탐색 및 브라우저 안에서 참조와 정의를 제공하는 도움말풍선 등으로 향상된 코드베이스 전체에 대한 신속하고 완전한 시야를 얻을 수 있다. 

소스그래프는 구글과 페이스북 엔지니어들만 사용하던 새로운 수준의 코드 탐색, 검토 및 인텔리전스 도구를 사용하여 구시대의 IDE를 강화한다. 개발팀이 코드 검색, 코드 검토 및 코드 재사용 위치를 찾느라 시간을 보낸다면 소스그래프를 활용해 보는 것도 좋을 것이다.

퀘스트DB(QuestDB)
고성능 시계열 데이터베이스는 유지보수 비용이 높을 뿐 아니라 전매 특허 쿼리 언어를 학습해야 하는 클로즈드 소스 제품인 경우가 많다. QuestDB는 그렇지 않다. 

신속한 시계열 데이터 및 이벤트 처리를 위해 개발된 무료 오픈소스 데이터베이스인 QuestDB는 익숙한 SQL과 함께 시간 집계를 위한 시계열 확장 기능을 사용하여 쿼리 처리된다. 그리고 그 자바 기반 쿼리 엔진은 최소한 지연 속도로 엄청나게 빠른 응답시간을 제공한다. 

인상적인 쿼리 성능을 제공하기 위해 QuestDB는 사용자 정의 스토리지 엔진, 수정된 Google Swiss Table, SIMD 지침, 병렬 실행 대기 및 파이프라인 프리패치(Prefetch) 최적화를 활용한다. 그 온보드 웹 콘솔은 양방향 쿼리용 코드 편집기인 스키마 탐색기와 일부 기본적인 테이블 및 시각화 도구를 제공한다.

QuestDB는 여전히 개발되는 중이다. 아직 모든 쿼리가 최적화되지 않았으며 SQL 방언이 여전히 구체화되고 있다. 하지만 SQL 지원을 통한 획기적인 시계열 쿼리 성능을 얻게 되면 이런 단점은 눈에 띄지 않을 것이다. 

아파치 2.0에 따라 라이선스가 제공되는 QuestDB는 리눅스, 맥OS 및 윈도우에서 구동하며 독커와 홈브루(Homebrew)를 위한 패키지를 제공한다.

OPA (Open Policy Agent)
승인 정책 실행은 일반적으로 즉석에서 하드 코딩된 규칙을 사용하여 수동으로 수행되며, 모든 애플리케이션 및 서비스에 같은 작업을 반복할 때 더욱 그렇다. 이런 불안정한 접근방식으로 인해 유지관리 또는 감사가 불가능해지는 파편화된 정책 승인 포인트 솔루션으로 이어질 수밖에 없다. 

OPA는 애플리케이션 레벨 실행에서 정책 의사결정을 분리시키는 범용 승인 엔진을 제공한다. OPA는 일련의 JSON 속성을 수락하며 범위 안의 정책 및 데이터에 따라 평가하고 애플리케이션에 ‘예’ 또는 ‘아니오’ 결정으로 응답하여 호출자가 실행하도록 한다.

OPA는 데몬으로 실행되거나 서비스에 라이브러리로 직접 통합될 수 있다. 마이크로서비스, 서비스 메시, API 승인 및 쿠버네티스 승인 관리 등의 사용 사례에 적합하지만 SaaS 제공 모델 등의 용도로도 손쉽게 확장할 수 있다.

유연한 실행과 정책 생성을 간소화하는 선언 정책을 결합한 OPA는 베어메탈부터 클라우드까지 정책을 스택에서 통일성 있고 논리적으로 관리할 수 있는 코드처럼 취급하여 광범위한 기술에 대한 통제권을 관리자에게 돌려준다. ciokr@idg.co.kr



X