APISIX, Lenovo의 경량화 및 분산형 Gateway 구축 지원
June 6, 2023
이 블로그는 레노버의 시니어 IT 아키텍트인 Leon Yang의 연설에서 발췌한 내용입니다. 그는 소프트웨어 엔지니어링 컴포넌트의 재사용을 촉진하고 공유 기술 생태계를 구축하는 데 전념해 왔습니다.
개요
레노버 소개
레노버 그룹 리미티드는 1984년 11월 1일 레전드(Legend)로 설립되었으며, 일반적으로 레노버로 알려진 미국-중국 다국적 기술 기업입니다. 이 회사는 소비자 전자제품, 개인용 컴퓨터, 소프트웨어, 비즈니스 솔루션 및 관련 서비스의 설계, 제조 및 마케팅을 전문으로 합니다.
도전 과제
-
기업 내에서 관리되지 않고 흩어져 있는 많은 API 인터페이스와 API의 부적절한 사용으로 인해 IT 운영 비용이 높아짐.
-
중앙 집중식 API 게이트웨이 아키텍처는 단일 장애 지점을 유발하고 시스템의 확장성과 가용성을 저해하여 서비스 중단 및 장애를 초래할 수 있음.
-
단일 게이트웨이 노드에 너무 많은 API 시나리오와 경로를 배포하면 지연 문제가 발생하고 시스템에 과부하가 걸릴 수 있으며, 각 API 게이트웨이에 etcd/ZK를 설치하면 아키텍처가 너무 무거워짐.
-
다양한 제공업체로부터의 다중 API 인증을 포함한 이기종 시스템 아키텍처는 API 사용을 복잡하게 만들어 관리 및 유지보수가 어려워짐.
결과
-
적절한 튜닝을 통해 게이트웨이 성능을 20,000 TPS 이상으로 개선할 수 있음.
-
100개 이상의 로우코드 비즈니스 애플리케이션이 이 경량 API 게이트웨이 컴포넌트 아키텍처를 활용하여 성능과 탄력성을 향상시킴.
-
모든 게이트웨이에 대해 통합된 방식으로 전체 API 라이프사이클을 효율적으로 관리함.
-
통합 API 관리 마켓플레이스를 제공하여 개발자의 시간과 노력을 크게 절약함.
-
포괄적인 API 분석 및 모니터링을 구축함.
배경
오늘날 비즈니스는 점점 더 복잡해지고 있습니다. 기술은 날마다 변화하며, 이는 소프트웨어 개발에 큰 영향을 미치고 있습니다. 레노버는 더 낮은 비용으로 프로젝트를 효율적으로 전달할 수 있는 방법, 즉 컴포넌트화를 통해 기존 시스템 자원을 재사용하는 방법을 모색해 왔습니다.
첫 번째 단계는 많은 컴포넌트를 포함한 즉시 사용 가능한 내부 API 생태계를 구축하는 것입니다. 따라서 우리 팀은 기술 기능을 컴포넌트화하고 아키텍처를 표준화하여 기존 소프트웨어 자산을 재사용할 수 있습니다.
이는 기업에게 효과적인 방법으로, 개발자들이 더 이상 다양한 기술 선택에 직면하지 않아도 됩니다.
결과적으로, 레노버는 컴포넌트 기반 패턴을 기반으로 내부 애플리케이션을 개발하기 시작했으며, 엔지니어링 애플리케이션 개발 비용을 줄이고 소프트웨어 전달 품질과 효율성을 향상시켰습니다. 동시에, Yang의 팀은 내부 시스템과 외부 파트너의 기능을 완전히 재사용할 수 있는 고품질의 기업 API 서비스 생태계를 구축하여 강력한 비즈니스 솔루션을 구축했습니다.
레노버가 APISIX를 선택한 이유
레노버는 Apache APISIX를 선택한 주된 이유는 APISIX가 다음과 같은 장점을 가지고 있기 때문입니다.
-
NGINX와 LuaJIT로 구축된 APISIX는 고성능, 풍부한 OpenResty 라이브러리, 그리고 사용자 정의가 용이합니다. 과거에 레노버는 Gartner의 리더 사분면에 위치한 여러 상용 API 게이트웨이 제품을 채택했습니다. 그러나 이러한 제품들은 기업의 고유한 요구 사항, 예를 들어 인증 흐름과 대시보드의 사용자 정의를 충족시키는 데 어려움을 겪었습니다.
-
APISIX는 경량 배포 아키텍처를 제공합니다. 레노버는 애플리케이션 내에 내장된 컴포넌트로 기능할 수 있는 경량 게이트웨이가 필요했습니다. 그러나 대부분의 상용 또는 오픈소스 API 게이트웨이 제품은 우리 시스템에 너무 무거웠습니다.
-
**동적 핫 리로딩**은 시스템 재시작 없이 API를 게시할 수 있게 하여 다운타임을 줄이고 비즈니스 시스템 운영 SLA를 개선합니다.
-
유연한 플러그인 사용자 정의는 개발자가 기업의 고유한 요구 사항을 충족하는 개인화된 프로세스를 만들 수 있게 합니다.
-
활발한 커뮤니티와 생태계의 강력한 지원으로 kafka-logger 및 authz-keycloak과 같은 다양한 고품질 플러그인을 제공하여 레노버는 기능 향상과 광범위한 사용자 정의 옵션을 누릴 수 있습니다.
-
활성화된 웹 애플리케이션 방화벽(WAF)은 필수 보안 조치 및 트래픽 제어 기능을 제공하여 레노버 시스템의 전반적인 보호와 성능을 강화합니다.
-
친근한 오픈소스 라이선스: Apache License 2.0. 레노버는 보안 규정 준수 측면에서 Apache License 2.0과 MIT 두 가지 프로토콜만을 사용하는 것을 고려합니다.
APISIX 기반의 분산 게이트웨이와 중앙 집중식 개발 포털
레노버는 APISIX와의 통합을 위해 여러 가지 조치를 취했습니다.
먼저, 레노버는 API 관리 및 사용의 효율성과 품질을 향상시키기 위해 중앙 집중식 API 개발 포털을 구축했습니다. 그런 다음, 게이트웨이 상태 확인 및 API 구독 동기화를 위한 중앙 집중식 레지스트리 센터(etcd)를 설정하여 여러 레지스트리 센터를 배포했습니다.
또한, 레노버는 비즈니스 애플리케이션이나 도메인 내에 위임된 경량 게이트웨이를 제공하여 중앙 집중식 게이트웨이 없이도 애플리케이션 및 서비스에 안전하게 접근할 수 있게 했습니다. 이 접근 방식은 접근 및 인증에 대한 더 세밀한 제어를 가능하게 하고, 확장성과 성능을 개선하며, 단일 장애 지점의 위험을 줄입니다.
마지막으로, API 제공 서비스의 인증을 오프로드하고 API 소비자의 인증을 비즈니스 애플리케이션이나 도메인에 위임함으로써 레노버는 API 보안을 더 잘 관리하고 개발자 경험을 개선할 수 있습니다.
APISIX 사용 후의 성과
APISIX를 도입한 후, 레노버 내에서 상당한 변화가 있었습니다.
유연한 구성으로 성능 개선
APISIX의 뛰어난 확장성은 레노버에게 필요한 유연성을 제공합니다. APISIX를 통해 레노버의 분산 게이트웨이 아키텍처는 고성능 및 고확장성의 기업급 API 게이트웨이 솔루션을 제공하여 중앙 집중화로 인한 병목 현상을 효과적으로 제거했습니다.
이전에는 시스템 자원으로 인해 단일 클러스터에 배포할 수 있는 API 수가 1,000개 미만으로 제한되었습니다. 게이트웨이 성능은 일부 자원 집약적인 API로 인해 병목 현상이 발생하여 평균 처리량이 4,000 TPS 미만이었습니다. 또한, API 실패는 전체 API 라우팅 성능을 저하시키고 모든 클라이언트에 영향을 미쳤습니다.
그러나 APISIX를 활용함으로써 레노버의 분산 게이트웨이 아키텍처는 특정 비즈니스 시나리오에 기반하여 게이트웨이 노드와 API를 효율적으로 배포할 수 있게 했습니다. 각 게이트웨이 노드는 시스템 자원과 작업량에 따라 독립적으로 구성 및 최적화될 수 있습니다. 결과적으로 네트워크 전체에 배포할 수 있는 API의 총 수에 더 이상 제한이 없습니다. 또한, 적절한 튜닝을 통해 게이트웨이 성능을 20,000 TPS 이상으로 크게 개선할 수 있습니다.
보안 및 확장성 향상
애플리케이션이나 비즈니스 도메인의 컴포넌트로 경량 게이트웨이를 배포함으로써 애플리케이션 보안이 개선되었으며, 시나리오별 API 배포의 유연성이 크게 향상되었습니다.
각 비즈니스 시나리오는 독립적인 API 라우팅과 맞춤형 보안 정책을 통해 이점을 얻을 수 있으며, 이는 서로 다른 시나리오 간의 완전한 격리를 제공합니다. 이를 통해 각 비즈니스 시나리오는 특정 계획에 따라 API 변경 및 시작-중지 작업을 수행할 수 있습니다.
지금까지 100개 이상의 로우코드 비즈니스 애플리케이션이 이 경량 API 게이트웨이 컴포넌트 아키텍처를 활용하여 성능과 탄력성을 향상시켰으며, 통합 게이트웨이 운영 및 유지보수 문제에 방해받지 않았습니다. 이 경량 API 게이트웨이 컴포넌트 아키텍처는 향후 2~3년 내에 대부분의 비즈니스 시나리오를 포괄할 것으로 예상됩니다.
전체 API 라이프사이클 관리 실현
중앙 집중식 API 개발 포털은 API 제공자가 모든 게이트웨이에 대해 통합된 방식으로 전체 API 라이프사이클을 효율적으로 관리할 수 있게 합니다.
API 개발 포털을 사용하여 API 정보를 관리함으로써 다양한 비즈니스 팀이 API 관리 도구를 중복해서 개발하는 것을 효과적으로 방지할 수 있습니다. 또한, 통합된 API 기술 표준, 문서 표준 및 보안 표준을 수립할 가능성을 제공합니다. 다양한 비즈니스 도메인의 복잡한 이기종 시스템 또는 레거시 시스템을 통합하기 위해 API 개발 포털은 basic-auth, OAuth2, Customized Header 등과 같은 APISIX 플러그인에서 확장된 다양한 인증 프로세스를 API의 백엔드 서비스에 제공합니다. 지금까지 100명 이상의 개발자가 API 관리를 위해 API 개발 포털을 사용하고 있습니다.
통합 API 관리 마켓플레이스 제공
APISIX가 제공하는 API 마켓플레이스는 개발자가 필요한 API를 찾는 과정을 단순화하는 데 중요한 역할을 합니다. 이러한 마켓플레이스는 또한 대기업 내에서 부서 간에 API 정보를 효율적으로 공유하고 발견할 수 있게 하여 API 검색에 소요되는 시간을 줄입니다.
현재 1,000명 이상의 개발자가 다양한 비즈니스 도메인에서 필요한 API 정보를 검색하고 접근하기 위해 API 마켓플레이스를 활용하고 있습니다. 이는 개발 프로세스를 간소화하고 최신 및 정확한 API 정보에 접근할 수 있게 하는 필수 도구임이 입증되었습니다.
APISIX가 API 마켓플레이스 내에서 기능과 커버리지를 계속 확장함에 따라 더 많은 개발자들이 개발 요구 사항을 위한 귀중한 자원으로 APISIX를 의존할 것으로 예상됩니다. APISIX는 개발자에게 필요한 API를 검색하고 접근할 수 있는 중앙 집중식 플랫폼을 제공하여 개발 과정에서 시간과 노력을 크게 절약합니다. 또한, APISIX가 제공하는 API 마켓플레이스는 개발자들이 자신의 API를 공유할 수 있는 협업 환경을 제공하여 개발 커뮤니티 내에서 혁신과 협업을 촉진합니다.
향상된 모니터링 달성
API 분석 및 모니터링은 기업에게 API 성능에 대한 귀중한 통찰력을 제공합니다. APISIX는 레노버가 플랫폼을 모니터링하는 데 중요한 역할을 하여 개발자가 성능, 확장성 및 신뢰성을 향상시키기 위해 API를 최적화할 수 있게 합니다. 또한, 오류 및 지연과 같은 잠재적인 위험을 조기에 감지하여 심각한 문제가 되지 않도록 방지합니다.
요약
Leon은 고성능 기술 스택과 유연한 오픈소스 아키텍처의 결합이 레노버가 강력하고 효율적인 솔루션을 만들 수 있게 한다고 강조합니다. 이 강력한 조합은 조직이 복잡한 도전 과제를 해결하고 탁월한 결과를 제공하는 데 필요한 도구와 역량을 제공합니다.
이러한 역량을 고려하여, 레노버는 APISIX와 활발한 커뮤니티에 큰 신뢰를 가지고 있습니다. APISIX의 확고한 지원으로 레노버는 놀라운 성과를 달성하고 업계의 기술 발전 최전선에 계속 머물 수 있습니다. APISIX의 강점을 활용함으로써 레노버는 혁신을 주도하고 성장을 촉진하며 시장의 진화하는 요구를 충족시키는 최첨단 솔루션을 제공하는 데 앞장설 수 있습니다.