360, APISIX로 클라우드 리소스 관리 개선
December 11, 2020
개요
360 기본 운영 및 유지보수 플랫폼 소개
360 기본 운영 및 유지보수 플랫폼은 기업을 대상으로 한 클라우드 기반 애플리케이션 관리 및 모니터링 플랫폼으로, 기업이 클라우드 리소스를 더 잘 관리하고 애플리케이션의 가용성과 성능을 향상시키며 비즈니스 요구 사항을 충족할 수 있도록 설계되었습니다.
APISIX를 사용하기 전, 360 기본 운영 및 유지보수 플랫폼의 게이트웨이 계층에는 대량의 트래픽을 처리할 때 성능과 확장성이 부족하고 관리 및 모니터링이 복잡한 문제가 있었습니다. 따라서 팀은 플랫폼의 응답 시간과 관리 효율성을 개선하기 위해 게이트웨이 계층을 개편할 계획을 세웠습니다. 팀은 고성능, 확장성, 관리가 쉬운 게이트웨이 계층을 구축하여 클라우드 애플리케이션을 더 잘 관리하고 모니터링할 목표를 세웠습니다.
도전 과제
- 애플리케이션 복잡성: 클라우드 기반 애플리케이션은 전통적인 애플리케이션보다 일반적으로 더 복잡하며, 여러 모듈과 서비스를 포함하고 있어 더 복잡한 배포와 관리가 필요합니다.
- 애플리케이션 가용성 및 성능: 클라우드 기반 애플리케이션은 사용자 요구를 충족하기 위해 높은 가용성과 성능을 유지해야 합니다. 이를 위해 더 나은 모니터링과 문제 해결이 필요합니다.
- 애플리케이션 보안: 클라우드 기반 애플리케이션은 데이터 보안과 개인 정보 보호를 보장해야 하며, 더 나은 접근 제어와 보안 정책이 필요합니다.
결과
- 플러그인 기반 아키텍처가 성공적으로 구축되어 시스템의 맞춤화와 확장에 더 큰 유연성을 제공합니다.
- 플랫폼은 높은 부하 상황에서도 높은 가용성과 응답성을 유지할 수 있습니다.
- 관리자는 시스템을 실시간으로 모니터링하고 문제를 신속하게 식별 및 해결하여 시스템이 항상 최고의 효율로 운영되도록 할 수 있습니다.
360이 APISIX를 선택한 이유
360 기본 운영 및 유지보수 플랫폼 팀은 최종적으로 Apache APISIX를 선택한 주된 이유는 etcd의 저장 옵션이 사용 시나리오에 더 적합하기 때문입니다. 저장 솔루션을 선택할 때는 데이터 유형, 데이터 양, 읽기/쓰기 빈도, 데이터 접근 패턴, 데이터 보안 등 여러 요소를 고려해야 합니다. etcd와 비교했을 때, 다른 저장 옵션들은 일부 부족한 점이 있습니다.
예를 들어, Postgres는 복잡한 데이터 쿼리와 트랜잭션 처리에 적합하지만 읽기/쓰기 성능과 확장성 면에서 부족합니다. Cassandra는 대규모 데이터 저장 및 분석에 적합하지만 높은 읽기/쓰기 성능과 데이터 일관성이 부족합니다. Redis는 고속 캐싱 및 데이터 저장에 적합하지만 데이터 일관성과 신뢰성 면에서 개선이 필요합니다. PaaS는 빠른 애플리케이션 구축, 배포, 관리에 적합하지만 더 유연하고 확장 가능한 저장 솔루션이 필요합니다. Zookeeper는 분산 애플리케이션 관리 및 조정에 적합하지만 데이터 일관성과 신뢰성 면에서 여전히 부족합니다.
비교했을 때, etcd는 고신뢰성, 확장성, 성능, 사용 편의성을 갖춘 분산 키-값 저장 시스템으로, 360 클라우드 컴퓨팅 기본 운영 및 유지보수 플랫폼의 요구를 더 잘 충족시키므로 저장 솔루션으로 선택되었습니다. 저장 옵션 외에도 APISIX는 360 기본 운영 및 유지보수 플랫폼 팀에 다른 놀라운 점을 가져다주었습니다. 아래 표는 저장 선택 외에도 APISIX와 유사 제품 간의 차이점을 보여줍니다.
API 게이트웨이 | APISIX | Kong | Tyk | Apigee | AWS | Aliyun |
---|---|---|---|---|---|---|
배포 모드 | 단일 노드 & 클러스터 | 단일 노드 & 클러스터 | 단일 노드 & 클러스터 | 단일 노드 배포 불가능 | PaaS | PaaS |
저장 선택 | etcd | Postgres, Cassandra | Redis | Postgres, Cassandra, Zookeeper | PaaS | PaaS |
오픈소스 여부 | Apache License 2.0 | Apache License 2.0 | MPL License | 아니오 | 아니오 | 아니오 |
핵심 기술 | NGINX + Lua | NGINX + Lua | Golang | / | / | / |
프라이빗 배포 | ✓ | ✓ | ✓ | ✕ | ✕ | ✕ |
커스텀 플러그인 | ✓ | ✓ | ✓ | ✕ | ✕ | ✕ |
커뮤니티 참여 | 높음 | 높음 | 높음 | 보통 | 낮음 | 낮음 |
YAML 지원 여부 | 지원 | 지원 | 지원하지 않음 | 지원하지 않음 | 지원하지 않음 | 지원하지 않음 |
다음 다이어그램은 360 기본 운영 및 유지보수 플랫폼 프로젝트의 최종 아키텍처를 보여줍니다. 여기에는 회사의 컨테이너 클라우드에 배포된 게이트웨이 서비스와 3대의 가상 머신에 걸쳐 배포된 etcd 서비스가 포함됩니다.
APISIX 사용 후 성과
플러그인 기반 개발 성공적으로 구축
Apache APISIX는 플러그인을 활용하여 고객의 다양한 트래픽 처리 요구와 특정 시나리오를 충족시킵니다. 현재 100개 이상의 즉시 사용 가능한 플러그인이 있으며, 사용자는 새로운 기능을 지원하기 위해 커스텀 플러그인을 개발할 수 있습니다.
현재 360 운영 및 유지보수 플랫폼은 APISIX에서 제공하는 자체 개발 및 기본 플러그인을 사용하여 사용자 인증, IP 속도 제한, 요청 전달, 로그 기록, 알람 기능 등 다양한 기능을 구현했습니다.
360 기본 운영 및 유지보수 플랫폼의 프로젝트 파일에는 "libs"와 "plugins" 두 개의 디렉토리가 있습니다. "libs" 디렉토리에는 일반적으로 사용되는 라이브러리가 포함되어 있으며, "plugins" 디렉토리에는 커스텀 비즈니스 플러그인이 포함되어 있습니다. 360 플랫폼의 모든 비즈니스 작업은 플러그인 메커니즘을 사용하여 개발되었습니다. 프로젝트에는 두 개의 진입 도메인이 있습니다: 하나는 OpenAPI 접근을 위한 것으로, 기본 인증 플러그인을 사용하며, 다른 하나는 웹 브라우저 접근을 위한 것으로, 웹 인증(쿠키 인증) 플러그인을 사용합니다. 다음 그림은 현재 프로젝트에서 사용 중인 플러그인을 보여줍니다.
높은 트래픽 양을 쉽게 관리
적절한 기술을 선택하고 효과적으로 구현함으로써, 360 기본 운영 및 유지보수 플랫폼은 비즈니스 요구 사항의 증가를 충족할 수 있는 고성능 및 견고한 클라우드 기반 애플리케이션 관리 플랫폼을 구축할 수 있었습니다.
360 기본 운영 및 유지보수 플랫폼은 현재 게이트웨이에 거의 900개의 API가 추가되었으며, 일일 평균 약 1천만 PV를 기록하고 있습니다. 모니터링 시스템에 따르면, 게이트웨이와 다양한 마이크로서비스가 원활하게 운영되고 있습니다. 이는 플랫폼의 인프라가 높은 트래픽 양을 처리하고 사용자에게 높은 가용성을 보장할 수 있음을 나타냅니다. 또한 APISIX를 게이트웨이 계층으로 선택하여 시스템 아키텍처를 설계하고 구현한 개발 팀의 훌륭한 작업을 보여줍니다. 이 성공은 APISIX의 확장성과 신뢰성, 그리고 etcd를 저장 솔루션으로 사용한 것 등 여러 요인에 기인할 수 있습니다. 앞으로 플랫폼은 시스템 성능을 계속 모니터링하고 필요에 따라 개선하여 사용자에게 높은 품질과 서비스를 유지할 것입니다.
시스템을 효율적으로 모니터링
APISIX가 제공하는 관찰 가능성 기능은 360 기본 운영 및 유지보수 플랫폼에 여러 가지 이점을 가져다줍니다:
-
첫째, APISIX의 관찰 가능성 기능은 개발자가 시스템을 더 효율적으로 모니터링하고 잠재적인 문제를 적시에 감지 및 해결하여 시스템 신뢰성을 향상시킬 수 있습니다.
-
둘째, 접근 로그와 실시간 메트릭 모니터링은 개발자가 문제를 신속하게 찾고 시스템 성능을 최적화하여 시스템 가용성과 성능을 향상시킬 수 있습니다.
-
마지막으로, 건강 상태 검사는 백엔드 서비스의 가용성을 보장하고 요청 전달 전략을 자동으로 조정하여 사용자 경험을 개선하고 사용자에게 더 나은 서비스를 제공할 수 있습니다.
APISIX의 관찰 가능성 기능은 360 기본 운영 및 유지보수 플랫폼이 시스템을 더 효율적으로 모니터링하고 관리하며, 시스템 가용성, 성능, 신뢰성을 향상시키고 사용자에게 더 나은 서비스 경험을 제공할 수 있도록 도와줍니다.
요약
360 기본 운영 및 유지보수 플랫폼은 etcd의 저장 옵션이 사용 시나리오에 더 적합하기 때문에 APISIX를 선택했습니다. APISIX는 또한 플러그인 기반 개발, 우수한 관찰 가능성, 시스템의 더 나은 모니터링 및 관리와 같은 다른 이점을 가져다주었습니다.