APISIX, 인간-기계 상호작용에서 운영 및 트래픽 제어를 강화하다
December 16, 2022
개요
CVTE와 Seewo 소개
CVTE는 LCD(액정 디스플레이) 기술 분야의 글로벌 리더로, LCD 메인보드, 스마트 인터랙티브 패널, 의료 기기 및 관련 지능형 하드웨어를 전문으로 합니다. 2005년에 설립된 이 회사는 LCD TV 메인보드 부문에서 31%의 시장 점유율을 차지하고 있습니다. 이러한 전문성은 Seewo와 같은 디지털 교육 도구 및 서비스 제공업체와 정교한 스마트 협업 플랫폼인 MAXHUB과 같은 여러 유명 산업 브랜드의 설립으로 이어졌으며, 이는 교육 협업과 기업 커뮤니케이션을 강화하는 데 기여했습니다.
6,500명 이상의 직원을 보유한 CVTE의 Seewo 인터랙티브 플랫 패널은 전 세계 100만 개의 교실에서 사용되고 있습니다. 디스플레이 드라이버, 신호 처리, 전원 관리, 인간-컴퓨터 상호작용, 애플리케이션 개발 및 시스템 통합 분야의 전문성을 바탕으로, 이 회사는 지속적인 기술 혁신을 통해 소비자 및 상업용 전자제품의 커뮤니케이션 경험을 향상시키는 데 전념하고 있습니다.
도전 과제
- 빠른 비즈니스 확장으로 인해 Seewo의 이중 레이어 게이트웨이 아키텍처에서 자주 리로딩이 발생하여 시스템의 성능과 안정성이 저하되고 사용자 경험이 저조해졌습니다.
- Seewo의 게이트웨이는 트래픽 제어를 효율적으로 조율하는 데 어려움을 겪어 운영 효율성이 저하되고 트래픽 제어 기능이 제한되었습니다.
- Seewo의 게이트웨이는 다양한 맞춤형 구성 요구 사항을 가진 많은 도메인을 관리해야 하므로 세심한 관리와 맞춤형 제어가 필요합니다.
결과
- APISIX는 더 유연하고 원활한 구성 업데이트 방법을 제공하여 Seewo가 필요에 따라 라우트와 인증서를 쉽게 업데이트할 수 있게 하여, 궁극적으로 Seewo의 운영 효율성과 시스템 안정성을 향상시켰습니다.
- APISIX 도입 후, Seewo는 서킷 브레이커와 속도 제한 기능을 강화하여 트래픽 제어를 개선하고 핵심 비즈니스 프로세스를 더욱 공고히 했습니다.
- APISIX 게이트웨이의 강력한 확장성과 뛰어난 플러그인 성능은 Seewo가 맞춤형 플러그인을 개발할 수 있게 하여, 게이트웨이 기능을 확장하고 지속적으로 증가하는 비즈니스 요구를 충족시킬 수 있게 했습니다.
배경
Seewo의 게이트웨이는 여러 차례의 개선을 거치며, 지속적인 기술 혁신과 팀의 끊임없는 헌신을 보여주는 여정을 보여주었습니다. 각 릴리스마다 이전 버전을 개선하고 최적화하여 사용자에게 더 효율적이고 안정적이며 풍부한 기능을 제공하는 네트워크 경험을 제공하기 위해 노력했습니다.
-
1세대 게이트웨이: Seewo의 초기 게이트웨이는 OpenResty와 NGINX를 사용하여 정적 구성으로 구축되었습니다. 그러나 Secure Copy(SCP)를 사용하여 배포해야 했기 때문에 원활한 릴리스를 위해 운영 지원이 필요했습니다.
-
2세대 게이트웨이: 2세대 시스템은 upsync 모듈을 OpenResty와 통합하고 Consul을 서비스 디스커버리로 도입하여 개선했습니다. 이 버전은 개발자가 독립적으로 업데이트를 릴리스할 수 있게 했지만, 확장을 위해 운영 지원은 여전히 필요했습니다.
-
3세대 게이트웨이: Seewo의 3세대 시스템은 Kubernetes(K8s)에서 개발되었습니다. 이 적응은 이전의 배포 및 확장성 문제를 해결했지만 새로운 복잡성을 도입했습니다. 일부 애플리케이션이 여전히 호스트 머신에 상주하고 있음을 인식하여, 게이트웨이 아키텍처는 K8s에서 Ingress NGINX를 두 번째 레이어로 통합하면서 OpenResty를 첫 번째 레이어 게이트웨이로 유지했습니다. 그러나 이 접근 방식은 확장성을 향상시키는 동시에 라우팅 변경 시 지속적인 연결을 가진 애플리케이션에 중단을 초래했습니다.
Seewo의 비즈니스 급속한 성장은 전반적인 안정성에 대한 요구를 높였습니다. 이 이중 레이어 게이트웨이 구조를 채택하면 첫 번째 레이어 NGINX의 리로딩이나 두 번째 레이어 게이트웨이의 라우팅 변경과 같은 조정이 지속적인 연결의 중단을 초래할 수 있습니다. 이는 특히 중단 없는 연결 유지가 중요한 시나리오에서 상당한 문제를 일으킬 수 있습니다. 예를 들어, Seewo의 소프트웨어가 교사의 수업 상태를 검색하는 도중에 연결이 끊어지는 상황을 상상해 보십시오. 이 중단은 상태 검색 프로세스를 방해할 뿐만 아니라 수업 경험의 질에도 직접적인 영향을 미칩니다.
APISIX 사용 전의 단점
-
이중 레이어 아키텍처에서의 시간 소모적인 리로딩: 이중 레이어 게이트웨이 구조에서 도메인 추가, 구성 수정 또는 특수 규칙 구현과 같은 사소한 조정도 시간이 많이 걸리는 NGINX 리로딩이 필요합니다. 이 과정은 번거롭고 Seewo의 운영 효율성에 영향을 미칩니다.
-
관리 불가능한 트래픽 제어 및 전환: 1천만 명 이상의 사용자를 서비스하는 Seewo의 아키텍처에서 복잡한 트래픽 제어 문제를 해결하려면 전체적인 관점이 필요합니다. Seewo는 방대한 사용자 기반을 고려하여 트래픽 제어를 위한 구성 요소를 조율하는 데 상당한 노력을 기울였습니다. 클라이언트 측 문제에서 Seewo는 서버 측 운영을 방해하고 연쇄적인 장애를 초래할 위험에 직면했습니다. 게이트웨이 수준에서 강력한 트래픽 제어가 부족한 것은 Seewo의 백엔드 시스템에 미치는 영향을 더욱 악화시켰습니다. 또한, NGINX와 Ingress 게이트웨이 간의 상호작용에서 지속적인 레거시 문제는 Seewo의 미래 트래픽 전환에 장애물로 작용하여 원활한 인프라 운영을 위해 신속한 해결이 필요했습니다.
-
도메인 과부하 및 맞춤화: Seewo의 운영에는 700개 이상의 도메인을 관리하는 것이 포함되었으며, 각 도메인에는 리디렉션, 차단 목록 및 허용 목록과 같은 다양한 맞춤형 구성이 수반되었습니다. 이러한 구성을 APISIX 플러그인에 적용하는 것은 상당한 복잡성을 초래했습니다.
-
복잡한 이중 레이어 DNS: Seewo는 이중 레이어 DNS 아키텍처로 인해 롤백 절차에 불편함을 겪었습니다. 동시에, 인프라 내부의 효율적인 내부 네트워크 호출을 위한 최적화가 부족했습니다.
이러한 도전 과제에 대응하고 운영 효율성을 개선하기 위해 Seewo는 APISIX 게이트웨이 솔루션을 채택하기로 전략적 결정을 내렸습니다.
APISIX로 마이그레이션할 때의 해결책
APISIX 라우트 생성 및 아키텍처 최적화
마이그레이션 프로세스 초기 단계에서 Seewo는 시스템 기능을 향상시키기 위해 APISIX 라우트를 전략적으로 설계했습니다. 이 결정은 "rewrite" 및 "set-header"와 같은 특정 기능의 추가 레이어를 제거하여 기존 아키텍처를 간소화하는 것을 포함했습니다. 이러한 기능은 두 번째 레이어 Ingress에 원활하게 통합되어 전체 구조를 더 효율적이고 단순화했습니다. 특히, Seewo는 APISIX 플러그인을 NGINX 구성에 원활하게 통합하여 APISIX의 다양성과 원활한 통합 능력을 강조했습니다.
라우트 전달 검증 및 성능 평가
라우트 생성 후, Seewo는 APISIX의 핵심 역할을 인식하며 전체 전달 프로세스를 검증하는 작업에 주력했습니다. goreplay 도구를 사용하여 기록 및 재생을 통해 라우트 전달의 정확성을 보장했습니다. 이는 APISIX가 정확성을 유지하는 데 있어 핵심적인 역할을 하는 것을 입증했습니다. 그런 다음, APISIX 플러그인의 기능을 검증하기 위해 엄격한 자동화 테스트를 적용하여 원활한 작동을 보장했습니다. 기능이 확인된 후, Seewo는 APISIX가 내부 성능 요구 사항과 얼마나 잘 부합하는지 평가하는 데 전략적으로 초점을 맞췄습니다. 이를 위해 elastic-apm
플러그인을 도입하고 QPS에 영향을 미치는 특정 플러그인을 최적화하여 APISIX가 전체 프로세스에서 성능과 기능을 모두 향상시키는 데 있어 다재다능한 능력을 강조했습니다.
원활한 롤백을 위한 트래픽 전환 간소화
게이트웨이 마이그레이션에서 가장 큰 장애물은 트래픽 전환 중에 발생했으며, 이는 생산 품질에 직접적인 영향을 미쳤습니다. goreplay를 사용하여 트래픽을 기록하고 재생했지만, 신뢰할 수 있는 롤백 솔루션이 필수적이었습니다. 트래픽 전환으로 인한 전달 문제나 APISIX 충돌과 같은 이상 현상이 발생할 경우, Seewo는 신속하고 신뢰할 수 있는 롤백 메커니즘이 필요했습니다.
이 문제를 해결하기 위해 Seewo는 공용 네트워크 트래픽 전환을 전략적으로 시작하여 APISIX의 핵심적인 역할을 강조했습니다. 이 전략적 조치는 Seewo가 전환 중에 소스 주소를 효율적으로 수정할 수 있게 하여 예외적인 상황에서 신속한 트래픽 롤백을 보장했습니다. 예외적인 상황에서의 트래픽 전환 프로세스는 몇 초 내에 원활하게 실행될 수 있었으며, 이는 APISIX가 빠르고 중단 없는 전환을 촉진하는 데 있어 중요한 역할을 하는 것을 보여줍니다.
APISIX 배포 시 SSL 및 라우트 매칭 문제 극복
Seewo가 처음 APISIX를 구현했을 때, SSL 핸드셰이크와 관련된 문제에 직면했습니다. 예를 들어, 구형 시스템이나 OpenSSL 라이브러리에서 ssl_ciphers가 서버의 기본값과 교차하지 않아 SSL 핸드셰이크가 실패했습니다. 그러나 APISIX 팀은 이러한 문제를 적극적으로 해결했습니다. Seewo의 구형 시스템에서 호환성 문제를 해결하고 버전을 업그레이드하는 동안, Seewo는 APISIX 팀과 긴밀히 협력하여 효과적인 솔루션을 찾았으며, 원활한 마이그레이션을 위해 배포 전에 SSL 핸드셰이크 교차를 확인할 것을 권장했습니다.
한편, APISIX 버전 2.15 LTS로의 업그레이드는 특히 라우트 매칭에서 새로운 문제를 야기했습니다. 문제가 발생했음에도 불구하고, APISIX 팀은 신속하게 대응하여 마스터 브랜치에서 이를 해결했습니다. 이러한 도전에도 불구하고, APISIX는 강력한 지원을 적극적으로 제공하고 있습니다. 이 협력은 기술적 영역을 넘어 긍정적인 비즈니스 발전을 이끄는 공동의 여정을 나타냅니다.
APISIX 사용 후의 성과
최적화된 운영 효율성
APISIX를 운영 프레임워크에 원활하게 통합한 후, Seewo는 리로딩과 관련된 문제를 완전히 해결하는 놀라운 성과를 달성했습니다. 이 성과는 Seewo가 라우트와 인증서 업데이트를 매우 쉽게 실행할 수 있게 하여 개발자 팀의 작업 흐름을 간소화하고 더 효율적으로 만들었습니다.
향상된 트래픽 관리 능력
APISIX의 뛰어난 확장성과 플러그인 성능 덕분에, Seewo의 인프라에 APISIX를 통합함으로써 서킷 브레이커와 속도 제한 기능이 크게 향상되었습니다. 이 전략적 구현은 Seewo의 트래픽 관리 및 제어 능력을 강화할 뿐만 아니라 핵심 비즈니스 프로세스를 상당히 강화했습니다. APISIX의 내재된 강점은 Seewo의 운영 전반의 탄력성을 높여 더 원활하고 안정적인 서비스 제공을 보장합니다. APISIX의 강력한 확장성을 활용하여 Seewo는 플러그인 개발에 적극적으로 참여하여 역량을 더욱 확장하고 변화하는 요구를 해결하고 있습니다.
게이트웨이 강화를 위한 맞춤형 플러그인 개발
Seewo는 APISIX의 확장성과 신뢰할 수 있는 플러그인 성능을 활용하여 맞춤형 플러그인 개발에 참여했습니다. 주목할 만한 예로는 APISIX에 통합 인증 기능을 원활하게 통합하여 새로운 서비스를 온보딩할 때 별도의 인증 시스템이 필요 없게 한 것입니다. 이 간소화된 접근 방식은 Seewo의 제품 반복 프로세스를 크게 가속화하여 회사가 변화하는 요구와 시장 요구에 더 빠르게 적응할 수 있게 하여 더 민첩하고 반응성이 뛰어난 운영 프레임워크를 조성했습니다.
비용 절감을 위한 효율적인 아키텍처
Seewo의 비용 절감과 운영 효율성 개선은 중복된 NGINX 레이어를 제거함으로써 이루어졌습니다. 이전의 이중 레이어 게이트웨이 구조에서 개발자들은 초기 NGINX 레이어에 대해 불투명성을 겪었습니다. 그러나 두 게이트웨이 레이어를 하나로 통합함으로써 중복을 제거하고 개발자에게 라우트, 플러그인 등을 포함한 아키텍처 구성에 대한 투명한 시야를 제공했습니다. 이 조화로운 통합은 문제 해결 및 문제 해결을 간소화할 뿐만 아니라 Seewo의 인프라 내에서 명확성과 효율성을 촉진하는 데 있어 APISIX의 중요한 역할을 강조했습니다.
요약
APISIX를 도입한 이후, Seewo는 운영 효율성과 트래픽 제어 능력을 크게 향상시켰습니다. 동시에, 게이트웨이 기능을 강화함으로써 제품 반복 프로세스도 가속화되어 전반적인 작업 효율성이 높아지고 비용이 절감되었습니다. 이 여정 동안 Seewo는 커뮤니티에 적극적으로 기여하여 batch_request
기능의 맞춤형 URI 지원 개선 및 hmac-auth
플러그인의 요청 본문 검증 구현과 같은 다양한 문제를 해결하고 개선하기 위해 총 8개의 풀 리퀘스트를 제출했습니다. 앞으로 Seewo는 APISIX의 기능을 최대한 활용하고 탐구하며, 미래에 더 많은 협업 기능을 도입할 계획입니다.