Apache APISIX가 WPS Office가 수백만 QPS를 쉽게 처리하도록 지원

Yilia Lin

Yilia Lin

September 28, 2021

Case Study

미리보기

킹소프트와 WPS 오피스 소개

킹소프트 오피스는 중국에 본사를 둔 선도적인 소프트웨어 및 인터넷 서비스 회사인 킹소프트의 자회사 중 하나입니다. 홍콩 증권거래소에 상장된 킹소프트의 주력 제품인 WPS 오피스는 문서 작성, 스프레드시트, 프레젠테이션, PDF 관리를 포함한 올인원 오피스 제품군입니다. 2022년 기준으로 WPS 오피스는 월간 활성 사용자 수가 4억 9,400만 명을 넘어섰고, 설치 수는 12억 건을 초과했습니다.

초기에 킹소프트는 운영상의 문제를 해결하기 위해 NGINX를 API 게이트웨이로 사용했습니다. 초기 버전은 동적 업스트림, 블랙리스트 기능, 웹 애플리케이션 방화벽(WAF)과 같은 기본 기능만 제공했습니다. 그러나 요구사항이 확장되면서 킹소프트 오피스는 변화하는 요구에 더 잘 부응할 수 있는 대체 API 게이트웨이 솔루션을 탐색하기 시작했습니다.

도전 과제

  • 이전 시스템은 기본적인 운영 및 유지보수 요구를 충족하는 데 한계가 있었고, 동적 확장 기능이 부족했습니다.
  • 시스템은 상당한 양의 트래픽을 처리하며 최적의 성능을 위해 강력한 API 게이트웨이가 필요했습니다.
  • 변경 사항을 동적으로 로드할 수 없어 수정 사항을 적용하려면 재로드가 필요했습니다.

결과

  • 고성능 및 저지연 동적 업데이트를 제공하는 솔루션을 구현하여 원활한 사용자 정의 및 확장이 가능해졌습니다.
  • 초당 수백만 건의 쿼리(QPS)를 쉽게 처리할 수 있는 시스템의 용량을 크게 늘려 비즈니스 안정성을 확보했습니다.
  • 고가용성 조치를 성공적으로 구축하고 시스템 보안을 강화하여 중요한 운영을 보호했습니다.

배경

초기 단계에서 킹소프트 오피스는 운영 문제를 해결하기 위해 API 게이트웨이를 사용했으며, OpenResty와 Lua를 기반으로 자체 솔루션을 개발했습니다. 이 솔루션은 동적 업스트림 관리, 블랙리스트 기능, 웹 애플리케이션 방화벽(WAF)과 같은 기능을 제공했습니다. 그러나 1.0 단계에서는 몇 가지 단점이 있었습니다.

예를 들어,

  • 업스트림만 동적이었습니다.
  • 새로운 도메인 이름을 업데이트하고 반영하려면 재로드가 필요했으며, 이는 팀이 매일 새로운 도메인과 경로를 변경해야 하는 부담을 주었습니다.
  • 기본 아키텍처는 효율적인 관리와 운영을 위해 설계되었으며, 기능과 확장성이 제한적이었습니다.

동시에, 비즈니스가 성장하면서 킹소프트는 API 게이트웨이의 기능에 대한 요구사항이 점점 더 많아졌습니다. 결과적으로, 새로운 API 게이트웨이 솔루션을 찾기 시작했습니다.

킹소프트 오피스가 APISIX를 선택한 이유

2019년 말, 킹소프트 오피스가 API 게이트웨이 제품을 조사하기 시작했을 때 많은 인기 있는 선택지가 있었습니다. 그러나 이후 테스트 결과, 평가한 API 게이트웨이의 성능이 요구사항을 충족하지 못하는 것으로 나타났습니다.

보다 강력한 솔루션을 찾기 위해 킹소프트 오피스는 더 깊이 조사를 진행했고, 그때 Apache APISIX를 발견했습니다.

일부 다른 API 게이트웨이는 PostgreSQL을 구성 센터로 사용했기 때문에 경로 업데이트는 비이벤트 기반 방식으로만 가능했으며, 각 노드에서 경로를 재로드해야 했습니다.

킹소프트 오피스는 성능, 기술 아키텍처, 커뮤니티라는 세 가지 주요 고려 사항을 바탕으로 APISIX를 선택했습니다.

APISIX 기술 아키텍처

1. 초고성능

Apache APISIX는 단일 코어 QPS 18,000, 평균 지연 시간 0.2ms로 다른 API 게이트웨이 중 최고의 성능을 제공합니다. 킹소프트 오피스 내에서 엄격한 테스트와 벤치마킹을 통해 APISIX의 우수한 성능을 지속적으로 확인했으며, 이를 통해 킹소프트 오피스는 높은 부하를 처리하고 최적의 사용자 경험을 제공할 수 있었습니다.

2. 확장 가능하고 탄력적이며 고가용성 아키텍처

APISIX는 etcd를 구성 센터로 사용하여 경로, 플러그인 및 기타 중요한 구성 요소를 효율적이고 동적으로 관리할 수 있습니다. 이 분산 키-값 저장소는 APISIX의 유연성을 높여 원활한 업데이트를 가능하게 하고 수동 구성 변경과 관련된 운영 부담을 줄였습니다. Apache APISIX를 통해 킹소프트 오피스는 이벤트 기반 방식을 활용할 수 있었으며, 개별 노드에서 수동으로 경로를 재로드할 필요가 없어졌습니다.

3. 활발하고 지원적인 커뮤니티

킹소프트 오피스는 혁신을 주도하고 리소스를 제공하는 데 있어 활발하고 지원적인 커뮤니티의 가치를 인식했습니다. APISIX는 개발에 기여하고, 모범 사례를 공유하며, 지원을 제공하는 활발하고 참여적인 커뮤니티를 자랑했습니다. 이 커뮤니티 중심의 환경은 혁신과 협력을 촉진했으며, 킹소프트 오피스의 기술 발전 최전선에 있겠다는 약속과 완벽하게 일치했습니다.

킹소프트 오피스의 최적화된 etcd 아키텍처

킹소프트 오피스의 원래 아키텍처에는 수많은 NGINX 정적 구성이 있었기 때문에 팀은 APISIX의 CLI를 사용하여 자동으로 구성을 생성하지 않기로 결정했습니다. 대신, Apache APISIX를 백업으로 사용하고 구성을 APISIX로 점진적으로 마이그레이션하여 원활한 전환을 보장했습니다.

구현 과정에서 킹소프트 오피스 팀은 APISIX를 기반으로 일부 사용자 정의를 수행했으며, 예를 들어 etcd 아키텍처를 최적화했습니다. 일반적으로 회사 내 API 게이트웨이 아키텍처에는 수백 대의 머신이 관여할 수 있습니다. 또한, 작업자 수가 많아지면 머신 부하가 증가합니다.

결과적으로, 여러 머신이 동일한 키를 모니터링하면 etcd에 상당한 부담이 가해집니다. 이러한 상황에서 데이터 일관성을 위해 etcd는 모든 이벤트가 새로운 요청을 처리하기 전에 수신 요청에 반환되도록 요구합니다. 여러 머신이 동시에 모니터링할 때 etcd가 시간 초과되거나 과부하 오류를 표시하는 등의 문제가 발생합니다.

이 문제를 해결하기 위해 킹소프트 오피스는 아래 아키텍처 다이어그램의 오른쪽 부분과 같은 etcd 프록시를 개발했습니다. Apache APISIX와 etcd 사이에서 작동하는 etcd 프록시는 키를 모니터링하고 결과를 받은 후 Apache APISIX에 반환합니다. APISIX 버전 3.2가 출시된 이후로 연결 수는 더 이상 리소스에 영향을 받지 않아 etcd의 부담이 크게 줄었습니다.

킹소프트 오피스의 최적화된 etcd 아키텍처

또한, 회사 규모가 커짐에 따라 경로 수도 증가합니다. 경로가 자주 업데이트되면 게이트웨이의 CPU 사용량이 증가하고 패킷 손실이 발생합니다. 킹소프트 오피스 팀은 Lua 코드 환경 내에서 table.sort 사용의 비효율성을 해결했습니다. Apache APISIX도 업데이트된 버전에서 이 문제를 해결했습니다.

APISIX 도입 후의 이점

1. 수백만 QPS를 쉽게 지원

비즈니스 측면에서 킹소프트 오피스는 수천 개의 서비스로 구성된 복잡한 생태계를 운영하며, 이는 내부 클라우드 네이티브 플랫폼에 컨테이너화되어 배포됩니다. 이 동적 환경에서 Apache APISIX는 다양한 서비스와 사용자 간의 원활한 통신과 상호 작용을 촉진하는 중앙 게이트웨이로 중요한 역할을 합니다. 특히 중앙 플랫폼 부서의 요구를 충족하기 위해 APISIX는 엄청난 양의 요청을 효율적으로 관리하며, 초당 수백만 건의 쿼리를 정확하고 안정적으로 처리합니다.

2. 확장 가능하고 유연한 API 관리 달성

APISIX를 도입함으로써 킹소프트 오피스는 이전 API 관리 솔루션의 한계를 극복하고, 미래 성장과 혁신을 위한 기반을 마련했습니다.

APISIX로 마이그레이션함으로써 킹소프트 오피스는 빠르게 확장되는 사용자 기반과 변화하는 비즈니스 환경의 요구를 충족하기 위해 API 인프라를 쉽게 확장할 수 있는 능력을 얻었습니다. APISIX의 모듈식 아키텍처는 기존 시스템 및 서비스와의 원활한 통합을 가능하게 하여, 진행 중인 운영을 방해하지 않고도 API 관리 기능을 확장할 수 있었습니다.

또한, APISIX는 킹소프트 오피스에 경로, 트래픽, 인증 정책에 대한 세밀한 제어를 제공하여 API 관리에 있어 전례 없는 유연성을 제공했습니다. 이 새로운 유연성은 회사가 특정 사용 사례에 맞게 API 관리 전략을 조정하여 성능을 최적화하고 사용자 경험을 향상시킬 수 있게 했습니다.

3. 시스템 고가용성 및 보안 개선

또한, 킹소프트 오피스는 여러 데이터 센터 간의 비례적 트래픽 분배 및 원클릭 경로 차단 기능을 포함하여 시스템의 고가용성과 보안을 강화하기 위해 여러 기능을 구현했습니다.

비율을 구성함으로써, 사전 정의된 비율에 따라 여러 데이터 센터 간의 트래픽 또는 요청 분배가 최적화됩니다. 이는 시스템 리소스의 효율적인 활용을 보장하고 단일 데이터 센터의 장애 영향을 완화하여 부하 분산, 시스템 가용성 개선, 장애 허용 능력 향상을 가져옵니다.

특정 경로에 문제가 발생하거나 일시적으로 차단해야 할 경우, 관리자는 원클릭 경로 차단 기능을 사용하여 해당 경로의 트래픽 전송 또는 접근을 즉시 중단할 수 있습니다. 이는 악의적인 활동으로부터 시스템을 보호하면서 네트워크 트래픽과 경로를 관리하는 원활하고 편리한 접근 방식을 제공합니다.

결론

실제 적용 과정에서 킹소프트 오피스 팀은 Apache APISIX의 탁월한 유연성과 성능을 발견했습니다. APISIX의 안정성과 신뢰성은 킹소프트 오피스의 신뢰를 얻었으며, 플러그인 수정 및 사용자 정의 컴파일을 수용할 수 있는 능력은 맞춤형 사용자 정의를 위한 충분한 여지를 제공했습니다.

팀은 APISIX의 제품 변경 사항을 꾸준히 추적하여 최신 업데이트와 동기화를 유지하고 있습니다. APISIX를 통해 킹소프트 오피스는 초당 수백만 건의 쿼리를 쉽게 처리하며, 솔루션의 견고성과 빠르게 확장되는 사용자 기반의 요구를 충족할 수 있는 능력을 입증했습니다. Apache APISIX를 도입함으로써 킹소프트 오피스는 변화하는 요구사항을 효과적으로 해결하고, 운영 효율성을 높이며, 동적인 네트워크 제품 환경에서 미래 성장을 위한 위치를 확보했습니다.

Tags: