Elasticsearch로 검색 및 로그 관리를 확장하여 뛰어난 사용자 경험을 제공하는 Profit.co

illustration-scalability-gear-1680x980_(1).jpg

Profit.co는 리더가 진행 상황을 실행하고 측정하는 데 도움이 되는 OKR 관리 소프트웨어를 구축합니다. 스타트업부터 포춘 500대 기업까지 다양한 브랜드를 보유한 Profit.co의 플랫폼은 고객이 원하는 결과를 달성할 수 있도록 비즈니스 목표, 리소스 및 성과를 관리할 수 있는 단일 보기를 제공합니다.

Profit.co는 고객의 생산성을 높이고 참여를 유도하는 기능을 제공하는 데 어떻게 도움이 되었을까요? 회사에는 확장 가능한 풀텍스트 검색 솔루션이 필요했습니다. 이것이 Profit.co가 Elastic 제품 및 솔루션의 강력한 엔진인 Elasticsearch를 선택한 이유입니다. Profit.co는 검색 경험을 획기적으로 개선할 수 있었습니다. 검색의 초기 성공 이후, Profit.co 팀은 중앙 집중식 로그 관리도 Elasticsearch로 옮겼습니다.

현재, Profit.co는 Elasticsearch를 사용하여 긍정적인 검색 경험을 창출하고 로그 관리를 간소화하며, 최종 사용자 요구 사항을 충족하기 위해 지속적으로 성능을 최적화하고 있습니다. Elastic이 Profit.co의 과제를 어떻게 해결했는지 자세히 알아보세요.

icon-quote

Elasticsearch는 놀라운 제품입니다. 저와 같은 직업의 다른 팀들 중에는 MongoDB 등과 같은 제품을 사용하는 팀도 있습니다. 하지만 API 지원, 기능, 통합 지원 등 Elastic Platform이 구축되는 방식은 정말 흥미롭습니다.

Bastin Gerald, CEO Profit.co

점진적인 향상이 어려운 Postgres

처음에, Profit.co는 다양한 솔루션을 사용했습니다. Profit.co의 Kumar Devarakonda 부사장 겸 엔지니어링 책임자에 따르면 "MySQL로 시작했고 나중에 Postgres로 옮겼는데, Postgres에는 MySQL에 비해 몇 가지 추가 기능이 있었기 때문입니다."

그러나 Postgres를 확장하는 데 어려움을 겪었습니다. Profit.co의 사용자는 여러 필드를 검색하고, 더 빠르게 결과를 얻고, 정확도에 따라 결과를 정렬해야 합니다. 사용자를 돕기 위해, Profit.co는 풀텍스트 검색 솔루션이 필요하다는 것을 깨달았습니다. Devarakonda 부사장 겸 엔지니어링 책임자는 이렇게 설명합니다. "쿼리하려는 모든 테이블에 Postgres를 결합해 두었었습니다. 객체를 저장할 때, 모든 필드에서 모든 데이터를 캡처한 다음, 해당 단일 열에 이를 저장했었습니다. 하지만 이것은 아주 느렸습니다. 또한 정확도 점수와 같은 정확한 결과도 나오지 않았습니다.”

Profit.co 팀이 검색할 때, 이들은 대부분의 솔루션이 매우 느리고 Profit.co 고객이 요구하는 정확성이 부족하다는 사실을 발견했습니다. 솔루션을 탐색하던 중, Profit.co 팀은 Elasticsearch를 발견했고 2014년에 전환했습니다.

Devarakonda 부사장 겸 엔지니어링 책임자에 따르면, "Elastic은 애플리케이션 확장성 측면에서 Profit.co에 도움이 되었습니다." Elastic으로의 전환은 느렸습니다. Devarakonda 부사장 겸 엔지니어링 책임자는 계속해서 이렇게 말합니다. "풀텍스트 검색으로 시작했고, Postgres와 Elasticsearch에서 이중 저장 공간을 유지하곤 했습니다. Postgres에 기록을 저장했고, Elasticsearch에도 데이터를 푸시하곤 했습니다."

그때 Devarakonda 부사장 겸 엔지니어링 책임자는 이렇게 생각하게 되었습니다. "왜 이중 저장 공간을 유지해야 하지? 왜 Elasticsearch로 직접 들어가면 안되지?” Elasticsearch에 모든 것을 저장함으로써, Profit.co는 속도를 높이고 최종 사용자뿐만 아니라 내부 팀의 경험을 간소화할 수 있었습니다.

속도의 필요성

전환의 주된 이유는 속도였습니다. 하지만 Devarakonda 부사장 겸 엔지니어링 책임자는 이렇게 말합니다. "우리는 점수 정확도를 제공할 수 있는 솔루션을 찾기 시작했습니다. Elastic이 없었다면, 분명히 항상 정보를 검색하는 고객을 계속해서 불만스럽게 만들었을 것입니다. 그리고 고객들은 정확한 정보를 얻지 못했을 것입니다."

Postgres의 속도 저하로 인해 모든 리소스에 영향을 미쳤습니다. 사용자들은 기다리고 있었습니다. 엔지니어링 팀도 변경 사항을 구현하려고 할 때 지연을 경험했습니다. 그러나 Elastic을 통해, 속도가 향상되었습니다. 기존 데이터베이스를 사용하면 검색 쿼리에 10초가 넘게 소요될 것입니다. 팀이 Elastic을 사용했을 때, 복잡한 쿼리(여러 필드에 대한 검색)는 100밀리초 미만의 시간에 응답을 반환했습니다.

확장 불가능성

향상된 검색 경험과 함께, Elastic으로의 이전은 Profit.co의 확장에도 도움이 되었습니다. Devarakonda 부사장 겸 엔지니어링 책임자에 따르면, "Postgres와의 연결 수 제한으로 인해 어려움을 겪었습니다. Elastic의 수평적 확장성을 통해, 미리 결정된 연결 수가 아닌 인프라 리소스 가용성에 따라 원하는 수의 클라이언트를 연결할 수 있습니다."

이제 Profit.co는 사용자를 클러스터로 분리하는 것에 대한 걱정 없이 여러 클러스터를 갖출 수 있습니다. Elastic은 중첩 필드에 대한 지원도 제공합니다. Profit.co는 대용량 문서라도 문서의 모든 데이터를 저장할 수 있습니다. 그리고 Devarakonda 부사장 겸 엔지니어링 책임자의 팀은 "데이터를 저장하기 전에 분석할 필요가 없다"고 말합니다. 이를 통해 귀중한 개발 시간이 절약되므로 팀은 보다 가치 있는 작업에 집중할 수 있습니다.

Elastic을 사용하는 이유

속도와 규모 외에도, Profit.co가 Elastic을 선택한 이유는 무엇일까요? Devarakonda 부사장 겸 엔지니어링 책임자는 팀의 성과를 높이는 데 도움이 될 수 있는 특정 기능이 필요했습니다. "중첩 필드에 대한 쿼리도 우리가 Elastic을 선택한 이유 중 하나입니다. 게다가 통합에 대한 지원이 우리가 궁극적으로 Elastic을 선택하게 된 이유입니다."

팀원들에게는 간단한 전환이었습니다. "Elastic은 개발자 관점에서 배우기 쉽습니다. 온보딩이 매우 빠릅니다." Devarakonda 부사장 겸 엔지니어링 책임자는 이렇게 설명합니다. 게다가, Elastic은 기대치를 충족할 뿐만 아니라 그 이상을 제공할 만큼 충분히 안전합니다. Elastic은 일반 SQL과 달리 Devarakonda 부사장 겸 엔지니어링 책임자에게 코딩에 대한 엄격한 제어를 제공합니다. 그는 계속해서 이렇게 말합니다. "맞춤 쿼리를 작성할 필요가 없습니다. 모든 것이 API로 제공되므로, 코딩 중에 오류가 줄어듭니다." 오류가 적다는 것은 더 나은 기능과 더 긍정적인 사용자 경험을 의미합니다.

중앙 집중식 로그 관리

Profit.co가 검색에 Elastic을 사용하기 시작하자, 팀은 Elastic이 조직에 가져다 줄 수 있는 추가적인 이점을 깨달았습니다. Elastic + Google Cloud는 로그 모니터링 기능을 간소화하는 데 도움이 되었습니다. "중앙 집중식 로깅 시스템을 갖추는 것은 우리가 Google Cloud로 이전하기 전에 찾고 있던 것이었습니다." Devarakonda 부사장 겸 엔지니어링 책임자는 계속해서 이렇게 말합니다. "Elastic을 사용하면, 자동화된 스크립트로 쉽게 확인하고 디버깅 등에 필요한 로그 파일을 찾을 수 있었습니다."

Profit.co의 CEO이자 창립자인 Bastin Gerald도 엄청난 가치를 발견했습니다. "나가고 들어오는 모든 것은 우리가 확인하는 데 사용하는 별도의 Elastic 클러스터에 있는 해당 데이터베이스에 기록됩니다." 이제 팀은 Elastic을 사용하여 하루에 약 200만 건의 요청에서 데이터 손실, 예방 등을 식별할 수 있습니다. Elasticsearch를 사용하면 Profit.co 팀도 총 비용의 약 90%를 절약할 수 있습니다. 모든 애플리케이션 노드 및 마이크로서비스에서 수집된 로그는 하루에 단 5GB의 저장 공간만 차지합니다.

Gerald CEO 겸 창립자는 이렇게 설명합니다. "나가고 들어오는 요청과 응답을 모니터링하는 측면에서, 모든 것을 별도의 클러스터에 기록합니다. 특정 클라이언트의 성능이 좋지 않거나 데이터 크기가 큰 경우, 이것이 우리가 분석하는 정렬 요청입니다." 성능에 대한 조감도를 얻을 수 있으면 고객의 우려 사항이 더 큰 문제가 되기 전에 해결하는 데 도움이 됩니다.

Profit.co의 미래

Profit.co는 현재 약 500명의 고객을 지원합니다. 고객 기반이 계속 확장됨에 따라, Elastic도 함께 성장할 것입니다.

icon-quote

당사는 Elastic을 좋아합니다. 지난 8년 동안 당사가 Elasticsearch를 사용해 왔다는 뜻입니다. 개인적으로 제품, 개발, 출시 측면에서, Elastic은 당사에 없어서는 안 될 부분입니다.

Bastin Gerald, CEO Profit.co

Elasticsearch에 대해 자세히 알아보고 몇 분 만에 원하는 클라우드에 배포하세요. Elasticsearch를 14일 동안 무료로 사용해 보실 수 있습니다. 지금 등록하세요.