APISIX가 Junrunrenli의 R&D 효율을 크게 향상시켰다
Peng Yuan
December 12, 2022
개요
도전 과제
- 너무 많은 비즈니스 시스템, CLB(Configurable Logic Block) 트래픽 전달, 그리고 빈번한 구성 변경으로 인해 개발 및 유지보수 시간이 많이 소모됩니다.
- 고동시성 비즈니스, 수십억 데이터를 내보낼 때 데이터베이스가 불안정하며, 이 문제는 서비스를 재시작하거나 새 버전을 출시해야만 해결할 수 있습니다.
- 접근한 비즈니스 데이터를 감독할 통합 플랫폼이 부족합니다.
- 크고 복잡한 트래픽, 효율적인 트래픽 관리 전략이 부족합니다.
- 하루에 수천만 건의 API 요청이 발생하며, 로그 데이터가 많고 디스크 부하 용량이 제한적입니다.
결과
- Apache APISIX는 준런런리(Junrunrenli)에 다양한 관찰 가능성과 보안 보호 방법을 제공하여 하루 수천만 건의 방문을 효율적으로 지원합니다.
- R&D 전달 효율이 크게 향상되었습니다: 일반 도메인 이름 구성이 몇 초 만에 적용되며, 제어 평면이 DevOps의 구성 부담을 줄입니다.
- 로드 밸런서를 200개 이상에서 10개 이하로 줄여 많은 비용을 절약했습니다.
준런런리 인적 자원 소개
준런런리 인적 자원은 기술 주도형 인적 자원 솔루션 서비스 제공업체로, 주로 블루칼라 고용 시장을 위한 원스톱 인적 자원 서비스를 제공합니다.
2019년에 설립된 준런런리는 1000개 이상의 고객에게 서비스를 제공했으며, 300만 명 이상의 블루칼라를 커버합니다. 3년 동안 R&D 팀은 20명 미만에서 250명 이상으로 성장했으며, 15개 이상의 인적 자원 서비스 플랫폼을 자체 개발했습니다. 또한, 준런런리는 B-사이드용 SaaS 애플리케이션과 최종 블루칼라 그룹을 위한 C-사이드 애플리케이션을 포함한 통합 인적 자원 서비스 생태계를 구축했습니다.
혁신의 속도는 시스템 아키텍처에 대한 더 높은 요구 사항을 가져옵니다. 고가용성, 동시성, 성능 외에도 준런런리는 탄력적인 확장성을 요구합니다.
그렇다면 준런런리는 어떻게 API 게이트웨이를 선택했을까요?
APISIX가 두각을 나타내는 이유
준런런리 팀은 후보 목록을 작성한 후 여러 API 게이트웨이를 조사했습니다. 이 중 몇 가지는 준런런리의 요구 사항을 완전히 충족하지 못해 제외되었습니다. 아래 그림에서 준런런리의 API 게이트웨이 선택을 자세히 살펴볼 수 있습니다.
위 그림은 Apache APISIX의 기능을 나타내며, 빨간색으로 표시된 부분은 준런런리가 가장 강조하는 부분입니다. 왜냐하면
-
준런런리는 많은 내부 비즈니스 시스템과 자체 구축된 내부 생태계를 가지고 있습니다. 따라서 준런의 빠른 비즈니스 변화를 지원할 수 있는 강력한 API 게이트웨이가 필요합니다. 준런런리는 라우트를 자주 구성하고 수정해야 하기 때문입니다. APISIX는 준런런리가 API 접근을 제어하는 다양한 방법을 세밀하게 조정할 수 있게 합니다.
-
준런런리의 비즈니스는 동시에 같은 작업을 수행하는 데 초점이 맞춰져 있습니다. 예를 들어, 수십억의 급여를 지급하거나 그 금액을 인출하는 경우입니다. 수십만 명의 블루칼라 사용자가 동시에 출근, 계약 체결, 작업 및 급여 수령을 합니다. 따라서 동시 트래픽이 매우 크며, 특히 중국의 "블랙 프라이데이" 기간에는 평소보다 두 배로 증가합니다.
-
다양한 시스템과 개인화된 요구 사항으로 인해 준런런리는 자체 개발을 진행하고 있습니다. "APISIX는 우리 요구 사항의 99%를 충족하지만, 나머지 1%는 우리가 직접 개발해야 합니다."라고 준런런리의 기술 전문가인 위안(Yuan)은 말했습니다. 모두가 Kong과 APISIX가 OpenResty NGINX + Lua를 기반으로 개발되었다는 것을 알고 있습니다. 준런런리가 Lua로 플러그인을 개발하려면 추가 비용이 발생할 것입니다. 다행히 APISIX의 외부 플러그인은 Java 프로그래밍 언어를 지원하여 학습 비용을 절약할 수 있습니다. 또한, APISIX 커뮤니티는 특히 활발합니다.
준런런리, APISIX로 시스템 강화
아래는 준런런리의 전체 아키텍처 다이어그램 개요입니다.
준런런리는 APISIX를 사용한 후 아래 네 가지 성과를 달성했습니다.
1. 효율적인 라우트 관리를 위한 혁신적인 라우트 전략 생성
Radixtree와 etcd를 기반으로 한 Apache APISIX는 고속 라우트 매칭과 빠른 구성 동기화가 가능합니다. 이 모든 것은 빠른 성능과 초저지연 응답을 실현하기 위해 설계되었습니다.
시스템의 최대 사용 기간 동안 MySQL 데이터베이스는 수백만 건의 보고서 데이터를 내보낼 때 응답하지 못해 서비스를 사용할 수 없게 되며, 이는 재시작 후에야 정상적으로 작동할 수 있습니다. 더욱이, 내보내기가 계속되면 상황이 악화될 수 있으며, 이는 새 버전 출시로만 해결할 수 있습니다.
APISIX는 라우트 우선순위 구성과 serverless 플러그인을 통한 API 긴급 종료를 지원하여 몇 분 안에 구성할 수 있게 함으로써 라우트의 지능적인 관리를 가능하게 합니다.
또한, 준런런리의 비즈니스 시스템, 특히 SaaS 시스템은 고객 정의 도메인 이름 접근을 지원해야 합니다. 결과적으로, 준런런리 팀은 동일한 서비스에 대해 여러 도메인 이름을 구성하여 통합 진입점을 설정했습니다. 구성은 한 번만 설정하면 전체 시스템에서 활용할 수 있습니다.
2. 전체 보안 제어를 위한 PaaS 플랫폼 분리
준런런리는 APISIX의 카나리 릴리스, 보안 제어, 신원 인식 등의 특성을 활용하여 상위 비즈니스 시스템의 보안 제어를 위한 PaaS 게이트웨이를 설정했습니다.
아래 그림은 준런런리가 APISIX를 기반으로 두 계층의 게이트웨이 아키텍처를 구축하고, 그 위에 논리적으로 격리된 게이트웨이인 PaaS 플랫폼을 구축한 것을 보여줍니다.
사용자는 CLB에 접근한 후 APISIX가 요청을 비즈니스 시스템으로 전달합니다. 사용자가 사용하는 기능이 PaaS 기능을 사용해야 하는 경우, PaaS 서비스 게이트웨이를 통해 접근합니다. PaaS 플랫폼은 k8s 내부의 폐쇄된 영역으로, 많은 필수 서비스를 포함하고 있습니다.
3. APISIX의 트래픽 분할 플러그인으로 자동 트래픽 관리 가능
APISIX의 트래픽 분할 플러그인은 준런런리가 SSO(Single Sign On), PaaS 서비스, 급여 서비스와 같은 핵심 서비스의 트래픽을 관리할 수 있는 능력을 부여합니다.
두 가지 시나리오가 있습니다:
- 태그 필터링: 테스트 사용자 트래픽은 헤더 및 기타 매개변수와 같은 태그를 기반으로 사전 생산 서비스로 전달될 수 있습니다. 그런 다음 테스트 엔지니어는 사전 생산 환경에서 먼저 검증한 후, 이후 생산 환경에서 검증할 수 있습니다.
검증을 통과한 후, 엔지니어는 가중치를 기반으로 트래픽을 전환하고, 일정 기간 관찰 후 모든 트래픽을 새 버전으로 전환할 수 있습니다.
- 다중 버전 공존: 하나의 서비스에 여러 버전이 존재합니다. 이렇게 하면 다른 비즈니스 시스템이 다른 버전을 방문할 수 있습니다. 태그를 활용하여 트래픽을 올바른 서비스로 전달할 수 있습니다.
4. APISIX의 Kafka 플러그인으로 준런런리의 투명한 로그 데이터 모니터링 달성
이 그림에서 볼 수 있듯이, APISIX와 pod 서비스는 모두 k8s에 배포되며, 모든 백엔드 라우트는 동일한 서비스에 바인딩됩니다. APISIX의 Kafka 플러그인은 로그 데이터 수집을 위해 맞춤 제작된 것처럼 보입니다.
관찰 데이터에 따르면, 하루에 수천만 건의 API 요청이 발생하며, 하루 30GB의 로그 데이터가 생성되고, 총 로그 양은 1TB 이상에 달합니다.
Skywalking과 Sky Agent도 pod의 서비스 시작 스크립트에 구성되었습니다. Kafka 플러그인과 결합하여, Skywalking과 로그 클라우드에서 전체 호출 링크를 관찰할 수 있으며, requestId
와 traceId
에 따라 각 링크의 API 요청 로그 기록과 소요 시간이 로그 데이터 모니터링을 위해 투명하게 제공됩니다.
준런런리, APISIX 사용 후 혜택
1. 비즈니스 개발 지원
APISIX 사용 후, 준런런리의 시스템 기능이 더 풍부해졌고, 성능이 더 강력해졌습니다. API 서비스에 대한 다양한 관찰 가능성과 보안 보호 방법을 제공하여, 하루 수천만 건의 접근 트래픽을 효율적으로 지원합니다.
2. R&D 전달 효율 향상
APISIX 사용 전, 준런런리는 각 DNS 해석을 구성하는 데 10분이 걸렸지만, 이제는 몇 초만에 범용 도메인 이름을 구성할 수 있습니다. 10개 이상의 시스템과 100개 이상의 서비스가 있으며, 많은 구성이 있습니다. 개발자는 CLB와 NGINX 모두에서 구성을 수정해야 했습니다. APISIX는 구성 수정을 위한 중앙 데이터 평면을 제공하여 DevOps의 작업량을 크게 줄입니다.
3. 비용 절감
로드 밸런서의 높은 비용을 절약하고, 200개 이상의 서비스를 10개 이하로 줄였습니다.
준런런리의 미래 계획
-
준런런리는 java-plugin-runner를 사용자 정의하고 sentinel을 통합하여 플러그 가능한 동적 속도 제한 서비스를 활성화하고, 일일 및 월간 트래픽 제어를 지원할 계획입니다.
-
준런런리 팀은 API 요청 로그 데이터를 저장한 후 규칙 엔진을 기반으로 위험 제어 식별을 수행하고, 경고 정보를 푸시하며, 운영 및 유지보수에 신속하게 개입하는 것을 고려하고 있습니다.
-
준런런리는 계층적 거버넌스를 수행할 계획입니다. 현재는 하나의 진입점만 있지만, 나중에 더 많은 APISIX 클러스터를 제공할 예정입니다. 예를 들어, 오픈 플랫폼은 준런런리의 k8s 내부 서비스에 별도의 진입점을 통해 접근할 수 있습니다.
-
또한, 준런런리는 로그와 sky 플러그인을 결합하여 전체 체인 로그 분석을 수행할 계획입니다.
APISIX 지원을 찾고 계신가요?
Apache APISIX는 모든 API와 마이크로서비스를 위한 오픈 소스, 동적, 확장 가능, 고성능의 클라우드 네이티브 API 게이트웨이입니다. API7.ai가 Apache Software Foundation에 기부한 APISIX는 최상위 오픈 소스 Apache 프로젝트로 성장했습니다.
준런런리 인적 자원처럼 자신 있게 개발을 가속화하고 싶으신가요? APISIX 지원을 극대화하려면 API7이 필요합니다. 우리는 귀하의 요구에 따라 APISIX 및 API 관리 솔루션에 대한 심층 지원을 제공합니다!
언제든지 연락주세요: https://api7.ai/contact.