Community

넷플릭스 데이터 플랫폼의 머신러닝 기반 자동 복원

* 넷플릭스에서 운영 자동화를 위해 머신러닝을 사용한 케이스를 정리한 첫 글 * 자동 진단, 자동 수정, 자동 구성, 자동 튜닝, 자동 확장, 자동 디버깅 등 운영 자동화는 최신 데이터 플랫폼의 성공을 위한 핵심 요소 * 룰베이스에서 ML 서비스를 사용해 자동으로 수정하는 것을 목표로 했던 프로젝트에 대한 소개 * Spark 작업의 Memory 구성 오류와 분류되지 않은 오류를 처리하기 위해 자동 복원(Auto Remediation) 기능을 배포했고, 그 효과는 메모리 설정 오류의 56%를 자동으로 수정하고 모든 오류로 인한 금전적 비용 50% 절감했음 * 소개 * 넷플릭스의 데이터 플랫폼엔 하루에 수십만 개의 Workflow, 수백만개의 Job이 실행되고 있음 * 장애가 발생한 작업이 전체 워크로드 중 작은 부분이여도 장애를 진단하고 해결하는 것이 운영 부담이 될 수 있음(여러 일이 생기기에) * 오류를 효율적으로 처리하기 위해 룰 베이스 분류기를 사용하는 Pensive라는 서비스를 개발함 -> 일련의 규칙에 따라 작업 오류를 분류 -> 스케줄러가 작업을 다시 시도할지 여부를 결정 -> 엔지니어가 진단하고 해결할 수 있는 인사이트 제공 * 그러나 시스템의 규모가 커지고, 복잡해지면서 메모리 설정 오류, 미분류 오류 처리에 대한 지원이 제한되었음. 예를 들어 OOM 오류로 인한 작업 실패를 진단하기 위해 팀 전체의 노력이 필요함 * 머신러닝을 사용해 재시도 성공 확률, 재시도 비용을 예측하고 최적의 후보 구성을 권장 사항으로 선택함. 그리고 자동으로 적용 * 장점 * Integreate Intelligence : 통합된 지식 * 도메인 전문가의 컨텍스트를 기반으로 Error Class 별로 Static하고 결정론적인 분류 결과를 제공 * 작업별로 성능과 비용을 고려한 권장 사항 제공 * Full Automated : 완전 자동화 * 오류를 분류, 권장 사항을 가져오고, 적용하는 파이프라인이 완전 자동화 * 수정 프로세스에 사람의 개입이 필요하지 않음 * Multi-objective Optimization : 다양한 목적의 최적화 * 성능(재시도 성공 확률)과 컴퓨팅 비용 효율성(작업 실행에 드는 금전적 비용)을 모두 고려해 권장 사항을 생성 * 예를 들어 메모리 설정 오류는 작업 실행의 메모리 사용량과 관련된 파라미터를 검색하고, 실패 확률과 컴퓨팅 비용의 선형 조합을 최소화하는 조합을 추천함 * 규칙 기반 분류기 * Log collector : 로그 수집 * Rule Execution Engine : 미리 정의된 Rule과 일치시키는 작업. 오류를 식별하기 위한 정규식이 포함 * Result Finalizer : 오류 분류 결과를 확정하는 역할. 가장 먼저 일치하는 규칙의 분류에 따라 최종 분류 결정 * 도전 과제 * 메모리 설정 오류 * 일시적이지 않은 오류는 여전히 엔지니어가 수동으로 작업을 해야 함 * 메모리를 작게 설정하면 OOM, 크게 설정하면 리소스 낭비 * 데이터 플랫폼에 1달에 약 600건의 메모리 설정 오류가 발생 -> 많은 노력 * 분류되지 않은 오류 * 규칙을 수동으로 추가해야 오류로 분류가 됨 * 새 규칙 추가를 위한 노력도 필요함 * 300개 이상의 규칙이 추가되었지만 전체 장애의 50%가 분류되지 않음 * Auto Remediation * 권장사항 생성 : 규칙 기반으로 모든 오류 분류, 그 후에 머신러닝 서비스를 사용해 권장사항 제공 * Nightingale : Metaflow를 사용해 학습된 머신러닝 모델을 실행하는 서비스. 재시도 권장 사항을 생성하는 역할 * 오류를 다시 시작할 수 있는지 여부 * 작업을 다시 시작하기 위한 권장 구성 * ConfigService : 온라인 설정 서비스 * 정의된 Scope와 함께 JSON patch로 ConfigService에 저장 * 스케줄러가 권장 설정을 가져오기 위해 ConfigService를 호출하면 스케줄러는 원래 구성을 ConfigService에 전달 -> ConfigService는 원래 구성에 JSON 패치를 적용 -> 스케줄러가 변경된 설정으로 다시 작업 시작 * Pensive : 룰베이스 오류 분류기 * 스케줄러 : 작업을 스케줄링. Netflix Maestro 사용 * 머신러닝 서비스 * 나이팅게일이 실패한 작업에 대한 재시도 정책을 생성하고, 재시도 성공 확률과 작업 실행 비용의 균형을 맞춤 * 예측 모델 : 재시도 속성에 따라 성공 확률, 재시됴 비용을 추정 * 매일 오프라인으로 재학습 * 최적화 프로그램 : 실패 확률과 비용의 선형 조합을 최소화하는 구성을 도출 * 데이터 플랫폼에서 재시도 성공 결과와 실행 비용을 모두 기록해 신뢰할 수 있는 레이블을 제공 https://netflixtechblog.com/evolving-from-rule-based-classifier-machine-learning-powered-auto-remediation-in-netflix-data-039d5efd115b

알림

알림이 없습니다