Piqama: Pinterest의 쿼터 관리 생태계
Piqama는 Pinterest 전반의 quota lifecycle과 right-sizing을 하나의 플랫폼으로 묶는다.
Piqama는 Pinterest가 memory, CPU, QPS, network bandwidth 같은 다양한 resource를 공통의 quota management platform으로 다루기 위해 만든 생태계다. UI portal, REST, Thrift를 통해 quota schema 관리, 검증, 권한 확인, 배포, enforcement까지 하나의 lifecycle로 연결한다.
핵심은 각 서비스가 제각각 quota를 처리하던 방식을 공통 control plane으로 모으면서도, 필요한 경우에는 서비스별 커스텀 logic을 유지할 수 있게 한 점이다. quota 정의는 계층 구조를 가질 수 있고, validation은 pluggable framework로 확장되며, update는 owner 기반 authorization을 거친다.
운영 이후에는 usage feedback과 governance, optimization이 이어진다. Piqama client는 enforcement와 usage statistics를 수집하고, 클라이언트를 쓰지 않는 시스템은 별도 feedback loop를 통해 데이터를 남긴다. 이 통계는 Apache Iceberg on Amazon S3에 저장되고 pre-aggregation을 거쳐 공간 효율을 높인다.
이 데이터는 자동 right-sizing의 입력이 된다. 별도 서비스가 Presto, Iceberg, user-defined data source를 읽어 organic growth, traffic burst, underutilization을 반영한 quota 조정을 수행하며, 현재는 capacity-based quota에 대한 strategy가 적용되고 있다.
실제 적용 사례는 두 가지다.
- Big Data Processing Platform: Moka와 Yunikorn 조합에서 Piqama가 memory, vcore, max concurrent applications 같은 physical resource quota를 관리한다.
- Online storage rate limiting: PinConf로 rule을 배포하고, local data path에서 rate limiting decision을 내리며, Piqama는 async control plane으로 quota lifecycle과 right-sizing을 담당한다.
Big Data 쪽에서는 Yunikorn Config Updater가 Piqama의 최신 quota 값을 주기적으로 읽어 설정을 갱신하고, job 종료 후의 resource usage는 S3와 resource database로 흘러들어간다. 사용량이 budget을 넘으면 최대 resource를 낮춰 over-budget 프로젝트의 burning speed를 조절한다.
온라인 서비스 쪽에서는 기존 rate limit framework의 한계였던 비선언적 규칙, 수동 수정, 고정 threshold 문제를 Piqama로 보완한다. Pinterest는 이를 Service-Protection Framework (SPF) 로 확장해 throttling과 concurrency control까지 다루고 있으며, TiDB와 Key-Value Store를 포함한 여러 서비스에 이미 통합을 마쳤다.
앞으로의 방향은 quota, entitlement, budget을 더 강하게 연결하고, 더 정교한 auto-right-sizing을 제공하는 것이다. 대상은 PinCompute, ML Training Platform, LLM Serving Services 같은 고부하 플랫폼으로 넓어질 예정이다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.