왜 오픈 소스인가?

오픈 소스는 우리 커뮤니티와 우리 비즈니스의 강점입니다. 우리가 하는 모든 것의 중심에 오픈 소스가 있습니다. 그 이유를 알려드리겠습니다.

수백 건에서 수억 건에 이르기까지

Elasticsearch 같은 프로젝트가 2010년 다운로드 횟수가 불과 몇 건 밖에 되지 않다가 2018년에 무려 2억 5천여 건에까지 이르게 된 배경에는 바로 오픈 소스가 있습니다. 코드가 무료로 개방되어 있기 때문에 사용자의 진입 장벽을 낮추고, 사용자 수가 놀랄 만큼 급증하게 됩니다.

그러나 오픈 소스는 소프트웨어를 배포하기 위한 효과적인 방법일 뿐만 아니라, 가능한 최고의 제품을 만들 수 있는 효과적인 방법이기도 합니다. 한 번 또 한 번 다운로드 될 때마다 프로젝트가 향상되고 진화할 수 있는 기회가 됩니다. 사용자들이 코드를 면밀히 살펴볼 때마다 보안은 더 견고해집니다. 다양한 아키텍처와 환경에서 엄격한 테스트를 거침으로써 신뢰성과 탄력성도 더 확실하게 확립됩니다. 사용자들이 새로운 사용 사례를 가지고 실험하며 프로젝트의 범위를 넓혀주는 통합과 애드온, 플러그인, 프레임워크를 빌드하기 때문에 확장성도 증가합니다.

Elasticsearch와 같은 오픈 소스 프로젝트는 코드가 완벽해질 때까지 정체를 숨기고 있으면 오늘날의 모습에 이를 수 없습니다. 바로 오픈 소스인 인큐베이터에 던져놓고 다운로드 횟수가 거듭되면서 자연적으로 진화하도록 함으로써 오늘날의 모습을 갖게 되는 것입니다.

커뮤니티와 협력으로

소프트웨어를 빌드하는 것은 좋은 일이지만, 소프트웨어를 둘러싼 커뮤니티를 만드는 것은 더 좋은 일입니다.오픈 소스를 이용하면, 처음 다운로드가 이루어질 때부터 커뮤니티가 생겨납니다. 바로 그 첫 번째 다운로드는 포럼이나 IRC 채널에서 작성자와 사용자 간에 최초의 직접적인 접촉으로 이어지며, 이것은 질문이나 관찰로 이어지고, 그 뒤에 최초의 개방된 사안이 뒤따르고, 최초의 풀 리퀘스트가 생겨나고, 마침내 최초의 개선이나 향상이 이루어지는 것입니다. 이들은 함께 버그를 수정하거나 문서의 오타를 정정하게 될 수도 있습니다. 크든 작든 협력 덕분에 소프트웨어는 개선됩니다. 이제, 수백만 건의 다운로드가 이루어진 뒤에 그 과정이 어떨지 상상해 보세요.

모두가 동일한 코드를 가지고 작업하기 때문에, 우리 제품은 일종의 자연 선택을 통해 성장합니다. 이것을 어떤 사람들은 BDFL 접근이라고 부르기도 합니다. 물론, 커뮤니티 내에서 한 기능이 여러 버전으로 나타날 수도 있습니다. 그러나 선별된 특정 그룹만이 어떤 것들이 통합될 지 최종 결정을 내립니다. 이것은 우리가 임의적인 기능들을 갖게 되는 것이 아니라, 제품을 훨씬 강력하게 해주고 개선할 수 있는 기능들만을 갖게 된다는 뜻입니다.

이제, 그러한 대규모 커뮤니티를 유지관리하는 것이 코드를 유지관리하는 것만큼이나 큰 노력이 필요한 일일 수 있습니다. 세월이 흐르면서, 우리는 많은 것을 배웠습니다. 우리는 따뜻하게 환영하는 커뮤니티를 만드는 것이 중요하다는 것을 배웠습니다. 모두가 환영받는다고 느끼는 그런 커뮤니티 말입니다. 우리는 정말로 모든 사람의 의견에 귀기울여야 한다는 것을 배웠습니다. (완전히 극과 극인 요청이 있을 때조차도 말이죠.) 그리고 우리의 배움은 아직 끝나지 않았습니다.

완전히 새로운 것으로

초창기에는 Elasticsearch를 단순히 엔터프라이즈 검색을 위한 아주 훌륭한 엔진으로 생각하기가 쉬웠습니다. 그러나 오픈 소스가 되면서, 사용자들은 새로운 방향으로 쉽게 제품의 사용을 넓혀갈 수 있습니다.

예를 들어, 미국의 아주 먼 주에서 서로 떨어져 살고 있던 시스템 관리자 Jordan Sissel과 Rashid Khan은 로그 파일을 Elasticsearch로 보내서 시각화하면 어떻게 될까 궁금해 했습니다. 그때 새로운 사용 사례(로깅)와 함께 갑자기 데이터 수집 파이프라인인 Logstash와 시각화 엔진인 Kibana가 등장했습니다. 이것은 나중에 단독 제품이 아니라 소프트웨어 스택이 되었습니다.

바다 건너에서는 Monica Sarbu와 Tudor Golubenco가 에지 장비에서 네트워크 패킷 데이터를 받아 Elasticsearch로 전송하는 것에 대해 생각하고 있었습니다. 그래서 바로 이런 일을 하는 Packetbeat를 개발했습니다. 이것은 나중에 Beats라고 하는 경량 데이터 수집기가 되어 수많은 유형의 데이터를 처리하는 큰 패밀리를 이루게 됩니다.

이런 패턴은 커뮤니티가 만들어내고 영감을 준 기능, 익스텐션, 플러그인, 애드온, 사용 사례들과 함께 계속되었습니다. 머신 러닝에서부터 자연 언어 처리, 애플리케이션 성능 메트릭과 색상 분류, 보안 이벤트와 블로그 KPI에 이르기까지 말입니다.

우리는 수천 명의 사람들이 한 개의 코드베이스를 놓고 혁신하면 어떻게 될 지 상상할 필요가 없었습니다. 직접 목격했으니까요.

우리의 오픈소스 모델

오픈 소스 비즈니스를 구축하는 것은 그 나름의 어려움이 있을 수 있습니다. 그리고 우리는 다른 사람들을 관찰하면서 많은 것을 배웠습니다.

어떤 오픈 소스 회사들은 수익 목표 기반을 지원만 제공하는 비즈니스 모델에 두고 있습니다. 우리는 이 접근 방법이 회사의 이익과 사용자의 이익이 서로 충돌하도록 만든다고 생각합니다. 한쪽이 어려워져야 다른 한 쪽이 성공할 수 있는 거죠. 이 접근 방법에는 제품의 사용을 쉽게 하거나 고객들이 성공적이 되도록 힘을 실어주는 인센티브가 결여되어 있습니다. 회사의 총매출이 정기적인 지원을 필요로 하는 고객들을 기반으로 하고 있기 때문입니다.

어떤 오픈 소스 회사들은 원래의 오픈 소스 프로젝트와 상용(또는 “엔터프라이즈") 제품군을 갈라놓습니다. 우리는 이로 인해 프로젝트 코드와 커뮤니티에 균열이 생긴다고 생각합니다. 또한 커뮤니티의 신뢰를 갉아먹고, 제품 테스트에 한계가 생기며, 제품의 품질을 약화시키고, 궁극적으로는 애초에 오픈 소스 소프트웨어에서 얻은 비즈니스 효율성과 경쟁하는 상황에 놓이게 됩니다.

그래서 우리는 비즈니스를 다르게 구축했습니다. 우리의 비즈니스 목표는 단일한 오픈 소프트웨어 스택에서 오픈 소스와 상용 코드 간에 건강한 균형을 이루는 것입니다. 지원과 서비스가 추가되고요.우리에게 투자하도록 우리의 전 제품에 걸쳐 사용자들에게 충분한 가치를 (그래서 충분한 이유를) 제공하는 것은 우리에게 달려 있습니다. 결과적으로, 우리는 사용하기 쉽고 믿을 수 있으며, 우리 사용자들이 기술적으로 뛰어나고, 지식이 풍부하고, 그럼에도 계속 성공적인 회사가 되도록 힘을 실어주는 제품들을 엔지니어링할 수 있습니다.

성장은 개발에서 시작되지만 개발에만 머물지 않습니다

우리의 코드가 유기적으로 진화되어 간다는 점에서, 비즈니스 내에서 우리가 채택하는 것도 유기적으로 성장합니다. 보통은 우리 제품을 시험적으로 사용해보고 좋은 경험을 갖는 “제로 개발자”로 시작됩니다. 그리고 나서 이들의 사용은 다른 동료들에게로 퍼져가고, 작은 개념 증명은 미션 크리티컬 시스템을 지원하는 대규모의 배치로 금방 바뀝니다.

결국, 의사결정권자나 임원이 주목하고 Elastic에 공식적으로 투자를 할 것인지 여부를 놓고 전화를 해옵니다. 이들은 가치를 제공하고, 비즈니스를 좀더 효율적으로 운영하는데 도움이 되며, 아울러 조직 전체의 기술 개발자들이 사용하고 싶어하는 도구에 투자하고 싶어합니다.

공통 분모는 바로 가치입니다. 처음 채택하게 만드는 원인이 오픈 소스라는 점이라면, 투자를 추진하게 만드는 것은 가치입니다. Elastic이 단독의 애플리케이션 검색 프로젝트에서 로깅 사용 사례, 위협 추적 프로젝트, 애플리케이션 성능 모니터링 프로젝트, 그 밖에도 여러 가지를 처리하기까지 확장될 수 있었던 것은 바로 이런 과정을 거치면서입니다.

오픈 소스 소프트웨어에 대한 변치 않는 신념

우리는 오픈 소스를 믿습니다. 그리고 오픈 소스에 대한 우리의 투자는 변하지 않을 것입니다. 우리가 성장하는 동안에도 수많은 사업체들이 점점 더 폐쇄적이 되어가고 있습니다. 우리는 그렇지 않습니다. 우리는 더욱 개방적이 되고 우리의 비즈니스 인센티브를 계속해서 우리의 오픈 소스 커뮤니티에 맞추겠다는 분명한 선택을 했습니다.

그래서 우리는 우리의 독점적인 Elastic Stack 기능에 대한 코드를 개방했습니다(이전에는 X-Pack에 번들로 포함되어 있었죠). 이렇게 개방하는 것은 과도한 오버헤드와 복잡성을 제거함으로써 개발 속도를 높여주고, 전체 커뮤니티의 참여를 증가시킵니다.

오픈 소스라는 경로는 언제나 쉽지만은 않습니다. 그러나 우리는 이것이 소프트웨어를 개발하고, 우리의 제품, 회사, 커뮤니티에 지속적인 성공을 보장해주는 최상의 방법이라고 굳게 믿습니다.

Elastic에 대해 좀더 알아보세요

Elastic에 대한 모든 것을 알아보고 제품 및 활용 방법, 그리고 전체 커뮤니티와 조화를 이루는 방법을 확인하세요.

우리의 고객

기업들이 매일 어떻게 Elastic을 사용하는지 알아보세요.

자세히 보기

우리의 문화

우리가 어떻게 지내는지 읽어보세요.

자세히 보기

우리의 제품

우리가 만드는 것들에 대해 알아보세요.

자세히 보기