아파치 유니콘(Apache YuniKorn)로 아파치 스파크(Apache Spark)에서 AWS EKS의 리소스 관리 - 핀터레스트 사례
핀터레스트의 배치 처리 플랫폼인 모나크(Monarch)는 초기에 대규모의 아파치 스파크(Apache Spark)와 맵리듀스(MapReduce) 워크로드를 지원하기 위해 설계되었습니다. 그러나 회사에서는 아파치 하둡(Apache Hadoop)을 사용하지 않고, 대신에 차세대 쿠버네티스(Kubernetes) 기반 플랫폼인 모카(Moka)를 사용하기로 결정했습니다. 해결해야 할 주요 문제는 컨테이너화로 인한 애플리케이션 분리, GPU 지원, 하둡 업그레이드 노력, 하둡 커뮤니티 지원이었습니다. 이러한 문제를 해결하기 위해, 핀터레스트에서는 계층적 큐를 지원하고 애플리케이션 및 사용자별로 스케줄링할 수 있는 아파치 유니콘(Apache YuniKorn)을 사용하기로 결정했습니다. 또한, 회사에서는 여러 기능과 수정 사항을 아파치 유니콘 커뮤니티에 기여했습니다. 기여한 기능과 수정 사항에는 maxApplications 지원, 선점 방지, 헤드룸 확인 시 발생하는 버그 수정 등이 있습니다. 핀터레스트는 커뮤니티와 함께 아파치 유니콘의 기능을 풍부하게 하고, 안정성과 효율성을 개선하기 위해 계속해서 작업하고 있습니다. 또한, 회사에서는 완전한 기능을 갖춘 리소스 관리 콘솔을 개발하고, 이벤트 스트리밍 지원을 활용하는 상태 저장 서비스를 설계하고 있습니다.