Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elasticsearch 와 Kibana 의 SSPL & Elastic License 듀얼 라이선스 전환 정리 #159

Open
occidere opened this issue Jan 16, 2021 · 0 comments

Comments

@occidere
Copy link
Owner

occidere commented Jan 16, 2021

Doubling down on open, Part II


TL; DR

완전 핵심만

  • 라이선스 변경 대상
    • 바이너리 배포판: 변경 없음 (Elastic License 유지)
    • 소스코드
      • 7.10까지는 Free OSS 버전은 Apache-2.0 라이선스, 나머지는 Elastic License 적용중
      • 7.11의 릴리즈와 더불어 모든 버전에 대해, Free OSS 타입이 SSPL 과 Elastic License 의 듀얼 라이선스 체제로 변경 (둘중 택 1)
      • 추후 Free 버전과 Basic 버전을 통합하여 SSPL & Elastic License 의 듀얼 체제를 적용할 예정
  • 사용 유형별 영향
    • Elastic Cloud 사용자 또는 직접 다운받아서 쓰는 사용자의 경우 영향 없음
    • Elasticsearch 또는 Kibana 의 소스코드를 가지고 자체 서비스 제작해 남들에게 제공하는 경우 영향 있음
      • 소스코드 변경 및 릴리즈를 모두 공개해야 함

본문 자체 요약

  • 여태까지 Free OSS 타입의 소스코드를 Apache 2.0 라이선스로 오픈했음
  • 그런데 Amazon 과 같이 소스코드 가져다가 수정해서 외부에 서비스하면서 이익 창출은 했으나, ES 쪽에 기여는 하나도 없는 상황이 지속 발생
    - 제대로 된 기여의 선순환이 이뤄져야 커뮤니티도 번창하고 회사도 성장할 수 있음
  • 따라서 이런 식의 코드 수정해서 서비스 제공하는 업체들을 막기 위해 SSPL & Elastic License 의 듀얼 라이선스 정책 도입
  • 이제부터 소스코드 수정해서 서비스하려면, 변경된 소스코드 및 릴리즈를 모두 오픈해야 됨
  • Elastic Cloud 나 배포판 다운받아서 쓰는 일반 유저들은 변경사항 없음


다가오는 Elasticsearch 와 Kibana 의 라이선스 변화

우리는 Elasticsearch 와 Kibana 의 소스코드의 라이선스를 Apache2.0 에서 Server Side Public License (SSPL) 와 Elastic License 의 듀얼 라이선스로 전환해 나가고 있으며, 유저들은 둘 중 어떤 라이선스를 사용할 지 선택할 수 있습니다. 이러한 라이선스 변화는 우리의 커뮤티니와 고객들에게 자유롭게 코드를 사용, 수정, 재배포 및 코드에 협업할 수 있는 권한을 가질 수 있게 해줍니다. 또한 이는 Elasticsearch 와 Kibana 를 서비스로 제공하면서도, 재공헌을 하지 않는 클라우드 서비스 제공자들을 제한함으로써 우리가 무료로 공개 및 배포할 수 있도록 하고, 제품 개발에 대한 지속적인 투자도 가능하도록 보호해줍니다. 이러한 조치는 두 제품에 대해 다가오는 7.11 버전이 릴리즈 되기 전 유지보수중인 모든 브랜치에 적용될 예정입니다. 우리의 릴리즈들은 지난 3년간 그래왔듯이 Elastic License 가 적용될 예정입니다.

이러한 소스코드 라이선스에 대한 변화는 무료 기본 배포판을 사용중인 유저 커뮤니티의 거의 대다수에겐 아무런 영향이 없습니다. 또한 우리의 클라우드 서비스 고객들과 직접 설치해서 사용하는 고객들에게도 아무런 영향이 없습니다.

최근 몇년간 시장이 발전해왔고, 커뮤니티는 오픈소스 기업들이 지속적으로 혁신하고 필요한 투자를 하려면 그들의 소프트웨어에 더 나은 보호조치가 이뤄져야 된다는 것을 인식하게 되었습니다. 기업들이 점점 SaaS 를 제공하는 방식으로 이동함에 따라, 일부 클라우드 서비스 공급업체들은 오픈소스 제품들을 가져다가 커뮤니티에 다시 투자하지도 않고 그들의 서비스로 제공하고 있습니다. SSPL 또는 Elastic License 를 사용하는 듀얼 라이선스 정책으로 전환하는 것은, 상업적인 코드를 공개하고 무료 티어를 만들어준 이후에 거진 3년간 Elastic License로 사용할 수 있도록 한 우리에게 있어 자연스러운 수순이였습니다. 이는 최근 몇년 새 SSPL 라이선스를 개발한 MongoDB 와 같은 타 오픈소스 기업들이 정한 방식과 유사합니다. SSPL 은 당신이 제품을 서비스로 제공할 시, SSPL 의 관리 계층 하에 있는 소스코드 뿐만 아니라 어떠한 변경사항이라도 공개적으로 릴리즈 해야 한다는 단순한 요구사항을 따른다면, 제한 없는 사용과 수정을 자유롭게 허용합니다.


우리의 기원

제 오픈소스에 대한 개인적인 여정은 오래 전으로 거슬러 올라갑니다. 2005년, 저는 아내를 위한 레시피 앱을 만드는 동안 Apache Lucene 위에서 동작하는 Java 프레임워크를 제공하기 위해 Compass 라는 첫번째 오픈 소스를 제공하였습니다. 이후 5년 동안, 코드를 작성하는 것 부터 버그를 잡고, 기능을 추가하고, 질문에 답변하는 등 유저를 돕기 위해 많은 주말과 밤을 투자했습니다.

저는 제가 어떤 일을 하고 있는지 몰랐습니다. 특히 "부업" 이라는 직업을 가지고 말이죠. 하지만 저는 훌륭한 제품을 만들려고 노력하는 것 뿐만 아니라 오픈 소스의 힘을 통해서 긍정적인 영향을 줄 수 있다는 기회에 반했습니다.

2009년에 이것을 다시 해보기로 결심했고 Elasticsearch 라는 새로운 이름의 프로젝트를 시작하게 되었습니다. 이를 완성시키는데 다시 많은 주말과 밤을 지새웠으며 2010년 오픈소스로 탄생하게 됩니다. 심지어 기존에 하던 일을 관두고 여기에 모든 집중을 쏟기로 결정했습니다. 유저들을 위해서 코드를 작성하고, GitHub 과 메일, 그리고 IRC 등에 참여하며 활동하였습니다.

그리고 2012년 Elastic 을 회사로 설립했을 때, 우리는 이런 정신을 회사에도 동일하게 부여했습니다. 우리는 무료로 제공되는 우리의 제품들에 많은 투자를 했고, 유저 커뮤니티의 급격한 성장에도 지원했습니다. 우리는 Elasticsearch 부터 시작하여 Kibana, Logstash, Beats 까지 확장해 나갔으며, 지금은 Elastic Enterprise Search, Observability, Security 와 같은 Elastic Stack 으로 구성된 솔루션들을 제공하고 있습니다.

우리는 제품 성숙도를 높이고, 활기찬 관련 커뮤니티를 육성하며, 유저들에게 최고의 가치를 제공하기 위해 노력하고 있습니다. 오늘날 우리에겐 매일 우리의 제품 발전을 위해 노력하는 수백명의 엔지니어들이 있습니다. 그리고 우리에겐 함께 참여하며 공동의 성공을 위해 기여하는 수십만명의 커뮤니티 구성원들이 있습니다.

우리가 세운 회사가 자랑스러우며, 사용자 기반에서 얻은 신뢰에 대해 겸손하게 받아들이고 있습니다. 이 모든 것은 개방적이고 투명하게 시작되었으며, 우리의 커뮤니티와 사용자 기반으로 이뤄진 선택들에 대해 진실되게 지속되고 있습니다.


자유롭고 개방된 것이 최고!

2018년으로 돌아와서, 우리는 source-available 라이선스인 Elastic License 하에서 우리의 유/무료 기능들을 공개했으며, 기본 배포판이 이 모든 기능들을 포함시켜 모두 무료로 사용 가능하도록 변경했습니다.

우리가 이런 결정을 내린 데에는 몇가지 이유가 있습니다. 이를 통해 우리는 커뮤니티를 대하는 방식과 동일하게 공개적인 방식으로 유료 고객들과 교류할 수 있게 되었습니다. 이는 또한 기능을 무료로 제공하여, Amazon Elasticsearch Service 와 같이 우리의 오픈소스 소프트웨어를 가져다가 서비스를 제공하며 이익을 얻는데도 커뮤니티에 기여는 하지 않는 회사들에겐 기회를 주지 않으면서, 우리의 유저들을 강하게 할 수 있습니다.

이러한 방식은 잘 받아들여져서 오늘늘 90% 이상의 신규 다운로드가 이 배포판을 선택했으며, 성공적인 회사를 만드는 것과 동시에 많은 기능들을 무료로 제공할 수 있었습니다.

이 새롭고 개방적이면서도 독점적인 라이선스 하에서 개선된 내용들은 매우 대단합니다. 저는 우리의 팀과 커뮤니티가 우리의 모든 제품에 걸쳐 이뤄낸 놀라운 진전에 대해 겸허히 받아들이면서, 그 내용중 일부를 공유드리고자 합니다:

우리는 새로운 분산 합의 알고리즘을 통해 Elasticsearch 의 속도, 확장성 그리고 안정성을 극적으로 개선하면서 메모리 사용량도 상당히 줄였고, 인덱싱 및 쿼리 성능을 향상시킴과 동시에 새로운 데이터 저장소와 압축방식을 통하여 일반적인 인덱스 크기에 비해 40% 가까이 용량을 절약할 수 있었습니다. 우린 지리적 공간(geospatial) 분석을 위해 새로운 필드 타입을 추가했으며, 로그를 저장 및 검색하고, 보안 데이터에 대해 대소문자를 구분하지 않는 빠른 검색을 수행할 수 있는 효율적인 방법을 추가했습니다. Kibana 에선 로딩 시간을 80% 가량 단축했으며 다년간의 플랫폼 재구축 프로젝트 덕분에 전체 페이지를 새로고침 하는 방식을 제거할 수 있었습니다. 동시에 직관적인 드래그 앤 드롭 방식으로 데이터를 시각화할 수 있는 Kibana Lens 를 도입했으며, 대시보드 드릴 다운과 같은 주요 기능들도 제공하였습니다.

지난 3년동안, 가장 일반적인 use-case 들에서 최고의 경험들을 쌓을 수 있었습니다. 보안 영역에선, Elasticsearch 의 EQL 이라 불리는 새로운 쿼리 언어를 통해 간단한 규칙부터 복잡한 상호작용까지 지원하는 강력한 탐지 엔진을 가진 무료 공개형 SIEM 을 Kibana 내에서 사용할 수 있도록 추가하였습니다. 우리는 우리의 커뮤니티와 콜라보레이션을 통해 공개적으로 개발한 수백개의 탐지 룰들을 포함시켰습니다. 그리고 우리는 업계 최고의 엔드포인트 보안 회사인 Endgame 와 협력하여, 우리의 중앙 집중식 통합 관찰 및 보안 에이전트인 Elastic Agent 의 일부로 강력한 악성 프로그램 (malware) 보호 기능을 무료로 릴리즈했습니다.

Observability 영역에서의 이야기도 이와 비슷합니다. 우리는 실시간 로그 테일링 UI 부터 키 메트릭과 host, pod, container 에 걸쳐 알람을 보내는 직관적인 인프라 레벨의 뷰까지의 전체적인 관측 관련 기능들을 Kibana 내에 포함되도록 했습니다. 그리고 우리는 현재 OpenTelemetry, 실사용자 모니터링 (real user monitoring; RUM), 통합 모니터링 및 최근 추가된 사용자 경험 모니터링을 포함한 완벽한 APM 을 갖췄습니다.

Elastic Enterprise Search 에선 풍부한 어플리케이션 구축을 단순화하고, 사용 방식을 분석해주는 기능과, 리밸런싱 튜닝을 위한 강력한 관리 인터페이스를 제공하는, Elasticsearch 의 최상위 계층인 App Search 도입했습니다. 또한 Google Workplace, Microsoft 365, Atlassian Jira, Confluence, Salesforce 와 같이 일상이나 회사에서 사용하는 컨텐츠들을 쉽게 통합하여 검색할 수 있는 Workplace Search 를 무료로 제공합니다.

우리가 이 모든 기능을 만들어 우리 커뮤니티에 무료로 제공할 수 있었던 것은 정말 놀라운 일입니다. 우리의 제품에 대한 참여 및 채택이 이뤄지는 수준과, 이러한 것들이 어떻게 수많은 사람들과 기업들의 성공을 도울 수 있었는지를 볼 수 있다는 것에 대해 겸허히 받아들이고 있습니다. 그리고 이건 모두 우리 커뮤니티의 대다수가 Elastic License 하에서 모든 기능이 무료로 제공되는 기본 배포판을 선택해준 덕분입니다.

왜 변화하게 되었나?

앞서 언급했듯이, 지난 3년간 시장은 발전했고, 커뮤니티에선 오픈소스 기업들이 제품에 더 높은 수준의 투자 및 혁신을 이뤄내려면 그들의 제품을 더 잘 보호해야 한다는 사실을 인식했습니다. 기업들이 SaaS 를 제공하는 모델으로 전환하며 일부 클라우드 서비스 제공 업체들은 오픈소스를 가져다가 그들의 서비스로 제공하면서 재공헌은 하지 않는 식으로 부당한 이익을 취하고 있었습니다. 이런 식의 제품에 재투자 되어야 할 자금을 빼돌리는 것은 사용자와 커뮤니티에 피해를 입히고 있습니다.

다른 오픈소스 동료들과 마찬가지로, 우리의 상표권이 오용되는 것부터, 우리의 OSS 제품을 리패키징하여 오픈하거나 심지어 우리 소유의 코드를 베껴가는 노골적인 행위들을 통해 우리의 커뮤니티를 분열시키는 것까지 모두 직접 경험해봤습니다. 타 오픈소스 기업들이 이 이슈에 조금씩 다른 접근 방법을 취했으나, 대체로 무료 소프트웨어에 대한 그들의 투자를 보호하면서도 개방, 투명성, 협업 등의 원칙을 유지하는 방향으로 라이선스를 수정했습니다. 마찬가지로 우리도 자연스럽게 소스 코드의 라이선스 방식을 변경하는 절차를 밟고 있습니다. 이 변화는 우리의 대다수 사용자들에겐 영향이 없지만, 우리 제품을 서비스로 제공중인 클라우드 서비스 제공자들은 제한을 받게 될 것입니다.

우리의 일부 경쟁자들이 이 변화에 대해 모든 방면으로 불확실한 의문들을 제기할 것을 이미 예상하고 있습니다. 그런 우려를 하시는 분들께 분명히 말씀드리겠습니다. 우린 자유롭고 개방된 제품에 대한 원칙과 커뮤니티에 대한 투명성을 깊게 믿고 있습니다. 우리의 행보는 이러한 헌신을 잘 말해주고 있으며, 앞으로도 우린 이를 계속 발전시켜 나갈 것입니다.


변경사항

다가오는 7.11 릴리즈부터 시작해서, 우린 Apache 2.0 라이선스가 적용된 Elasticsearch 와 Kibana 코드를 SSPL 과 Elastic License 의 듀얼 라이선스 체제로 옮길 예정이며, 유저들은 둘 중 어떤 라이선스를 적용할 것인지 선택할 수 있습니다. SSPL 은 오픈소스 원칙을 구체화하는 동시에 재공헌 없이 오픈소스 제품을 서비스로 제공하는 공공 클라우드 제공업체들로 부터 보호받기 위해 MongoDB 가 만든 source-available 한 라이선스입니다. SSPL 은 남들에게 오픈소스를 서비스로 제공하는 경우 SSPL 하에 관리되는 소스코드와 모든 변경사항을 공개적으로 릴리즈해야 한다는 단순한 요구사항만 지키면, 무료로 제한없이 수정이 가능합니다.

image

우린 이 방식이 우리 커뮤니티와 회사를 보호하면서도 최대한 개방성을 유지할 수 있는 기회를 주기에 선택했습니다. 어떤 면에서는 이 변화가 오히려 우리를 훨씬 더 개방적이게 만들었습니다. 이 변경에 대한 후속 조치로 우리의 Elastic License 로 무료로 제공중이던 독점 기능들을 SSPL 을 포함한 듀얼 라이선스 체제로 이전하게 될 것이며, 이는 결국 더 관용적이기 때문에 제품을 최대한 자유롭고 개방적으로 만든다는 우리의 목표에 더 잘 부합하게 됩니다.

소스코드에 대한 라이선스 변경은 어떤 면에선 큰 변화일 수도 있으나, 우리 커뮤니티의 대다수 사용자들에겐 실제로 별다른 변화가 없을 것입니다. 만약 당신이 Elastic Cloud 또는 On-Premise 타입의 우리 고객이라면 어떠한 변화도 없습니다. 그리고 만약 기본 배포판을 다운받아 사용중이라면 계속 동일한 Elastic License 하에 무료로 사용할 수 있습니다. 또한 당신이 Elasticsearch 또는 Kibana 에 기여한 적이 있는 경우에도 (감사합니다!) 아무런 변화가 없을 것입니다.

우린 커뮤니티와 협력하며 우리 코드를 공개적으로 개발해나갈 것이며, 지난 3년간 해온 대로 Elastic License 하에 우리의 릴리즈를 무료로 배포할 예정입니다. 우린 무료 및 유료 구독 방식에서 사용할 수 있는 기능들을 변경하지 않으면서, 모든 무료 기능들을 무료로 유지할 수 있도록 최선을 다하고 있습니다.

단결된 커뮤니티에 대한 우리의 신념은 그 어느 때 보다도 강력합니다. 이 변화는 지난 10년간 그래왔듯이 앞으로도 계속 우리의 약속을 입증하며 여러분의 신뢰를 얻을 수 있도록 할 것입니다.


Resources:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant