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


  • 넷플릭스에서 운영 자동화를 위해 머신러닝을 사용한 케이스를 정리한 첫 글

    • 자동 진단, 자동 수정, 자동 구성, 자동 튜닝, 자동 확장, 자동 디버깅 등 운영 자동화는 최신 데이터 플랫폼의 성공을 위한 핵심 요소

    • 룰베이스에서 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

Evolving from Rule-based Classifier: Machine Learning Powered Auto Remediation in Netflix Data...

Medium

Evolving from Rule-based Classifier: Machine Learning Powered Auto Remediation in Netflix Data...

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 4월 27일 오전 10:31

댓글 0