Evolving from Rule-based Classifier: Machine Learning Powered Auto Remediation in Netflix Data...
Medium
넷플릭스에서 운영 자동화를 위해 머신러닝을 사용한 케이스를 정리한 첫 글
자동 진단, 자동 수정, 자동 구성, 자동 튜닝, 자동 확장, 자동 디버깅 등 운영 자동화는 최신 데이터 플랫폼의 성공을 위한 핵심 요소
룰베이스에서 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
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 4월 27일 오전 10:31