'AI옵스' 자율운영 클라우드로 가는 길
인공지능 기술의 발달로 IT 시스템 운영 자동화도 새 국면을 맞았다. AI 역량을 최대한 활용함으로써 복잡한 IT 시스템 운영 프로세스를 자율운영 수준으로 끌어올리는 시도가 활발하다. 이런 AI옵스는 클라우드 환경에서도 주목받고 있다. 최근 마이크로소프트 리서치는 블로그에서 '클라우드 인텔리전스' 시리즈를 연재하고 있다. 이 연재는 AI와 기계학습(ML) 기술로 복잡한 클라우드 플랫폼 및 서비스를 규모에 맞게 효과적이고 효율적으로 설계, 구축 및 운영하는 데 도움이 되는 AI옵스(AIOps)에 대한 연구 성과를 다룬다. 클라우드는 기업 IT 인프라의 기본 모델로 자리잡았고, 전례 없는 규모와 복잡성으로 IT관리자에게 큰 부담으로 작용하고 있다. 마이크로소프트는 AI옵스에서 '시스템용 AI', '고객용 AI', '데브옵스용 AI' 등으로 구분해 연구를 진행중이다. 또 AI옵스의 주요 연구 영역으로 탐지, 진단, 예측, 최적화 등을 꼽아 연구 로드맵을 이어가고 있다. 이 로드맵은 더 자율적이고 능동적이며 관리가능하고 포괄적인 클라우드 플랫폼 구축을 목표로 구상됐다. ■ 자울운영 클라우드 자율운영 클라우드는 시스템 운영을 완전히 자동화해 다운타임을 최소화하고 수작업을 줄이는 것이다. 클라우드는 컴퓨팅 리소스를 적절하게 관리하고 장애를 신속하게 해결하기 위해 매초 수많은 조치와 결정을 필요로 한다. 실제로 이러한 행동과 결정은 전문 지식을 바탕으로 구축된 규칙 기반 시스템에 의해 생성되며, 숙련된 엔지니어가 수동으로 수행한다. 그러나 클라우드 플랫폼의 규모와 복잡성 증가에 따라 이런 방식에 한계가 드러나고 있다. 엄격한 규칙 기반 시스템은 종종 엄청난 수의 규칙을 포함하고, 더 나은 적용 범위와 적응성을 위해 빈번한 유지 관리를 필요로 한다. 실제 이런 시스템을 최신 상태로 유지하기란 비현실적이다. 일관성을 보장하고 모든 규칙 간의 충돌을 피하는 것은 훨씬 더 어렵다. 엔지니어링 작업은 더 많은 시간을 요구하고, 오류 발생이 쉬우며, 확장하기 어렵다. 블로그 저자는 "기존 솔루션의 범위와 확장성 제약을 깨고 의사결정 시스템의 적응성과 관리성을 개선하려면 클라우드 플랫폼을 더 자율적인 관리 패러다임으로 전환해야 한다"며 "전문 지식에만 의존하는 대신 운영 데이터와 전문 지식을 융합해 효율적이고 안정적이며 자율적인 관리 결정을 내릴 수 있는 적합한 AI/ML 모델을 활용해야 한다"고 설명했다. 그는 "그러나 자율 솔루션을 개발하고 클라우드 플랫폼에 배포하는 데 있어 다양한 장벽을 극복하려면 많은 연구 및 엔지니어링 노력이 필요하다"고 덧붙였다. 자율운영 클라우드를 구현하려면 두가지 과제를 해결해야 한다. 첫번째는 클라우드 데이터의 이질성이다. 클라우드 플랫폼은 원격 측정 신호, 기계 생성 로그 파일, 엔지니어와 사용자의 입력 등 다양한 형식의 모니터링 데이터를 수집한다. 이런 데이터의 패턴과 분포는 높은 수준의 다양성을 보이며, 시간이 지나면 변경될 수 있다. AI옵스 솔루션이 이런 환경에서 자율적으로 작동하려면 이기종 데이터소스에서 유용한 정보를 학습하고, 다양한 시나리오에서 올바른 결론을 도출할 수 잇는 강력하고 확장가능한 AI 모델을 활용해야 한다. 관리시스템의 지속적 학습과 강화가 필수인 것이다. 두번째는 서로 다른 구성요소와 서비스 간 복잡한 상호작용이다. 하나 혹은 몇개의 구성요소나 서비스에서 자율운영 기능을 구현하기는 쉽다. 그러나 클라우드의 복잡한 종속성을 자동으로 탐색할 수 있는 종단 간 시스템 구성 방법은 매우 어려운 일이다. 이를 해결하려면 도메인 지식과 데이터를 모두 활용해 애플리케이션 시나리오에서 자동화 경로를 최적화하는 게 중요하다. 연구원과 엔지니어는 모든 의사결정 단계에서 신뢰가능한 의사결정 알고리즘을 구현해 전체 종단 간 의사결정 프로세스의 효율성과 안정성을 개선해야 한다. 지난 몇 년 동안 마이크로소프트 연구그룹은 이러한 문제를 극복하고 AI옵스 문제 공간에서 다양한 클라우드 애플리케이션 시나리오의 자동화 수준을 개선하기 위한 많은 새로운 모델과 방법을 개발했다. 감지의 경우 문제가 있는 배포의 조기 감지를 위한 '간달프(Gandalf)', ATAD 계층적 결함 지역화를 위한 'HALO', 사건을 나타내는 로그를 탐지하기 위한 'Onion' 등이다. 진단의 경우 로그 구문 분석을 위한 SPINE 및 UniParser, 회귀 및 사건 진단을 위한 Logic 및 Warden, 배치 실패 진단 을 위한 CONAN 등이 있다. 예측의 경우 사고를 완화하기 위한 시간을 예측하기 위한 TTMPred, 클라우드 서버의 저용량 상태 예측을 위한 LCS, 스팟 가상 머신의 퇴거를 예측하기 위한 퇴거 예측 등이 있다. 최적화에서 컨테이너 재할당을 최적화하기 위한 MLPS 클라우드 인프라의 메모리 누수 관리를 위한 RESIN이 있다. 이러한 솔루션은 보다 자동화된 설계로 서비스 효율성을 개선하고 관리 시간을 단축할 뿐만 아니라 인적 오류를 줄여 더 높은 성능과 안정성을 제공한다. 온라인 서비스에서 새로운 패치와 빌드의 지속적통합/지속적배포(CI/CD)는 버그 수정과 기능 업데이트를 적시 제공하는데 중요하다. 감지되지 않은 버그나 호환되지 않는 문제를 담은 배포는 심각한 서비스 중단과 고객 이탈을 초래할 수 있다. 클라우드 플랫폼은 각 새로운 배포를 프로덕션 환경에 내보내기 전 엄격한 안전 배포 절차를 시행한다. 이 절차는 범위를 확장할 수 있는 카나리아 환경에서 다단계 테스트 및 확인을 포함한다. 이런 단계 중 하나에서 배포 관련 이상을 식별하면 추가 진단과 수정을 위해 책임있는 배포가 롤백된다. 마이크로소프트는 안전한 배포에서 자동적이고 신뢰할 수 있는 이상 감지를 지원하기 위해 시계열 신호에서 배포 관련 이상을 효과적으로 감지하기 위한 ATAD((Active Transfer Anomaly Detection)란 방법론을 활용하고 있다. 이 방법은 시계열 신호의 다양한 패턴으로 변경 사항을 캡처하는 문제와 높은 레이블 지정 비용으로 인해 레이블이 지정된 이상 샘플이 부족한 문제를 해결한다. ATAD는 전이 학습과 능동 학습의 아이디어를 결합해 입력 신호의 시간 정보를 잘 활용하고 모델 교육에 필요한 레이블이 지정된 샘플 수를 줄인다. ATAD는 레이블 지정 데이터의 1%-5%만 갖고도 다른 최첨단 변칙 탐지 접근 방식을 능가하는 것으로 확인됐다. 마이크로소프트의 운영 조직은 애저의 제품 팀과 협력해 간달프를 개발하고 배포했다. 간달프는 배포 시간을 줄이고 애저에서 잘못된 배포를 감지하는 정확도를 높이는 엔드투엔드 자동 안전 배포 시스템이다. 데이터 기반 시스템인 간달프는 성능 메트릭, 오류 신호 및 배포 기록을 비롯한 다양한 정보를 모니터한다. 전체 안전한 배포 프로세스에서 다양한 패턴의 이상 징후를 감지한다. 변칙을 감지한 후 투표 거부 메커니즘을 적용해 감지된 각 변칙이 특정 새 배포로 인해 발생하는지 확실하게 결정한다. 그런 다음 수정을 위해 관련 새 배포를 중지해야 하는지 또는 다음 단계로 진행하기에 충분히 안전한지 여부를 자동으로 결정한다. 간달프는 애저에서 잘못된 배포를 캡처하는 데 효과를 입증했다. ■ 선제적 클라우드 클라우드의 기존 의사 결정은 즉각적인 리소스 사용을 최적화하고 새로운 문제를 해결하는 데 중점을 둔다. 이 반응적 설계는 상대적으로 정적인 시스템에서 잘 작동하지만 동적 환경에서 근시안적 결정으로 이어질 수 있다. 클라우드 플랫폼에서 컴퓨팅 리소스의 수요와 활용은 정기적인 주기 패턴, 예상치 못한 급증, 시간적 및 공간적 차원의 점진적인 변화를 포함하여 끊임없는 변화를 겪는다. 클라우드 플랫폼의 장기적인 효율성과 안정성을 향상시키려면 의사 결정 과정에서 시스템의 미래 상태를 고려하는 선제적 설계를 채택하는 것이 중요하다. 선제적 설계는 데이터 기반 모델을 활용해 클라우드 플랫폼의 미래 상태를 예측하고 다운스트림 선제적 의사 결정을 가능하게 한다. 개념적으로 일반적인 능동적 의사 결정 시스템은 예측 모듈과 의사 결정 모듈의 두 가지 모듈로 구성된다. 예측 모듈은 배포를 위한 예측 모델을 교육하고 미세 조정하기 위해 과거 데이터를 수집 및 처리한다. 배포된 예측 모델은 온라인 데이터 스트림을 받아 실시간으로 예측 결과를 생성한다. 의사 결정 모듈은 도메인 지식 및 과거 의사 결정 기록과 같은 기타 정보와 함께 현재 시스템 상태와 예측된 시스템 상태를 모두 고려해 현재 및 미래 혜택의 균형을 맞추는 의사 결정을 내린다. 선제적 클라우드의 설계는 시스템의 장기적인 효율성과 안정성을 개선할 기회를 만들 수 있다. 그러나 의사 결정 프로세스를 추가 위험에 노출시킬 수도 있다. 클라우드 플랫폼의 일상적인 운영에 내재된 임의성 덕분에 능동적 의사 결정은 실행 중인 시스템과 환경 모두에서 확률적 요소로 인한 불확실성 위험에 항상 노출된다. 반면에 예측 모델의 신뢰성은 사전 예방적 의사 결정에 또 다른 위험 요소를 추가한다. 따라서 능동적 설계의 성능을 보장하려면 엔지니어는 이러한 위험을 해결할 수 있는 메커니즘을 마련해야 한다. 불확실성 위험을 관리하려면 엔지니어는 사전 예방적 설계에서 의사 결정을 재구성해 불확실성 요소를 설명해야 한다. 최적화 문제의 대상 기능에 불확실성을 통합하기 위해 종종 예측+최적화 및 기회 제약 조건에서의 최적화와 같은 방법론적 프레임워크를 사용할 수 있다. 잘 설계된 ML/AL 모델은 불확실성 요소에 대한 사전 예방적 결정을 개선하기 위해 데이터에서 불확실성을 학습할 수 있다. 예측 모델과 관련된 위험에 대해 예측 오류를 줄이기 위해 품질 인식 기능 엔지니어링, 강력한 데이터 대체 및 데이터 재조정을 포함하여 데이터 품질을 개선하기 위한 모듈을 적용해야 한다. 엔지니어는 예측 모델의 견고성을 개선하고 업데이트하기 위해 지속적으로 노력해야 한다. 마이크로소프트는 AI옵스 연구에서 예측 및 최적화 문제에서 반응적 의사 결정에서 사전 예방적 의사 결정으로 전환을 시도했다. 주목할만한 능동적 설계 솔루션으로 하드웨어 장애 완화를 위한 Narya 및 Nenya, 지능형 가상 머신 프로비저닝을 위한 UAHS 및 CAHS, 워크로드 예측 예약을 위한 CUC, UCaC 등이 포함된다. 블로그 저자는 "기회 제약 하에서 빈 패킹 최적화를 위해. 아래 논의에서는 클라우드 시나리오에서 능동적 설계를 적용할 수 있는 방법을 설명하기 위해 하드웨어 오류 완화를 예로 들 수 있다"고 적었다. 클라우드 플랫폼의 주요 위협 중 하나는 하드웨어 장애다. 일반적으로 하드웨어 오류는 오류 발생 후에만 사후 대응적으로 해결되며, 호스팅된 가상머신의 일시적인 중단과 영향을 받는 하드웨어의 수리 또는 교체를 포함한다. 이는 부정적인 고객 경험을 줄이는 데 제한적인 도움을 제공한다. Narya는 장애 발생 전에 완화 조치를 취할 수 있는 능동적인 디스크 장애 완화 서비스다. 특히 Narya는 ML 모델을 활용해 잠재적인 디스크 오류를 예측한 다음 그에 따라 결정을 내린다. 불확실성과 관련된 위험을 제어하기 위해 Narya는 고객에 대한 예상 영향을 기반으로 후보 완화 조치를 평가하고 최소한의 영향을 미치는 조치를 선택한다. 예측 및 결정 모듈을 개선하기 위해 후속 평가를 수집하기 위한 피드백 루프도 존재한다. 클라우드 시스템의 하드웨어 오류는 종종 매우 상호 의존적이다. 예측 오류의 영향을 줄이기 위해 Narya는 장애 예측 모델을 개선하기 위해 노드 간의 종속성 관계를 인코딩하는 새로운 종속성 인식 모델을 도입했다. Narya는 A/B 테스트 및 적기 모델링을 사용해 조치의 영향을 추정하는 기능을 개선하는 적응형 접근 방식을 구현한다. 안전하지 않은 완화 조치를 취할 기회를 제거하기 위해 Narya의 여러 단계에 있는 여러 보호 메커니즘도 마련됐다. 애저의 프로덕션 환경에서 Narya를 구현해 가상머신의 노드 하드웨어 중단률을 26% 이상 줄인 것으로 나타났다. 사전 예방적 장애 완화의 또 다른 예인 Nenya는 강화 학습 프레임워크에서 구동되는 완화 솔루션이다. 예측 및 의사 결정 모듈을 종단 간 능동적 의사 결정 시스템에 융합한다. 불확실성에 대한 비용 효율적인 완화 조치의 우선 순위를 더 잘 정하기 위해 완화 비용과 실패율을 모두 평가할 수 있다. 기존의 장애 완화 방법은 일반적으로 데이터 불균형 문제를 갖는데, 실패 사례는 대부분 건강한 상황인 모든 사례 중 아주 작은 부분을 차지한다. 데이터 불균형은 예측 및 의사 결정 프로세스 모두에 편향을 일으킬 수 있다. 이 문제를 해결하기 위해 Nenya는 단계적 프레임워크를 채택하여 완화 결정이 막대한 비용으로 이뤄지지 않도록 한다. 블로그 저자는 "관리 시스템이 더욱 자동화되고 능동적이 됨에 따라 클라우드 시스템의 안전과 클라우드 고객에 대한 책임 모두에 특별한 주의를 기울이는 것이 중요하다"며 "자율적이고 능동적인 의사 결정 시스템은 수동 작업이 거의 없는 고급 AI/ML 모델에 크게 의존하며, 이러한 접근 방식으로 내린 결정이 안전하고 책임이 있는지 확인하는 방법은 향후 작업에서 대답해야 하는 필수 질문"이라고 강조했다. 또 "자율적이고 능동적인 클라우드는 클라우드 플랫폼 관리 및 운영의 모든 단계에서 효과적인 데이터 사용 및 피드백 루프에 의존한다"며 "한편으로 자율적이고 능동적인 의사 결정 시스템을 가능하게 하려면 클라우드 시스템 상태에 대한 고품질 데이터가 필요하며, 관리 시스템을 개선하기 위해서는 각 결정이 전체 클라우드 플랫폼에 미치는 영향을 모니터링하고 분석하는 것이 중요하다"고 설명했다. 그는 "이러한 피드백 루프는 많은 관련 애플리케이션 시나리오에 대해 동시에 존재할 수 있다"며 "따라서 자율적이고 능동적인 클라우드를 더 잘 지원하기 위해 처리 및 피드백 루프를 담당하는 통합 데이터 평면이 전체 시스템 설계에서 중심 역할을 할 수 있으며 핵심 투자 영역이 돼야 한다"고 덧붙였다.