피드 구독

마이크로서비스가 수십 개에서 수백 개에 이르는 복잡한 시스템을 대규모로 실행하려는 수요가 크게 증가했습니다. 최종 사용자는 연중무휴 24시간 서비스가 가용 상태이기를 기대하므로 단 몇 분의 다운타임도 문제가 됩니다. 사전 예방적인 카오스 엔지니어는 프로덕션 환경에서 다운타임이 발생하기 전에 서비스를 강화하고 병목 현상을 식별하여 사용자의 기대를 충족하도록 지원합니다. 카오스 엔지니어링은 최종 사용자의 신뢰를 유지하는 데 있어 필수적입니다.

Red Hat은 복원력이 뛰어난 쿠버네티스 플랫폼에 대한 요구 사항을 해결하고 향상된 사용자 환경을 제공하기 위해 오픈소스 커뮤니티 및 최종 사용자와 협력하여 Krkn과 같은 오픈소스 툴과 카오스 엔지니어링 프레임워크를 구축하고 유지 관리합니다. Krkn의 기능을 이해할 수 있도록 카오스 테스트(chaos testing)를 실행하고 얻은 인사이트와 결과에 대한 몇 가지 추가 리소스를 살펴보세요.

커뮤니티와 고객이 다수의 제품에 Krkn을 도입하는 사례가 늘어나면서 다음 사례에서 AI(Artificial Intelligence, 인공지능)가 과제를 해결하는 데 유용함이 입증되었습니다.

  • 제품에 새로운 기능과 수정 사항이 추가될 때 테스트 사례 추가 및 업데이트
  • 여러 제품에 대한 카오스 테스트 적용 범위 추가 및 유지 관리(밀접한 추적 포함)
  • 디스럽션 가능성이 높은 것으로 인식되는 테스트 사례만 실행하는 대신 수백 개의 테스트 사례 실행

Red Hat Chaos Engineering 팀은 IBM Research 팀과 협업하여 다양한 아키텍처, 노드 규모, 트래픽 패턴을 실행하는 여러 제품에 카오스 테스트 작업을 확장할 수 있도록 Krkn에 AI를 통합하여 테스트 적용 범위를 개선하고 자동화하고 있습니다.

Krkn의 AI 통합 활용 사례

다양한 제품과 구성의 카오스 테스트에 Krkn을 채택하는 사례가 늘어남에 따라 우수한 적용 범위를 가진 테스트 사례가 복잡해졌습니다. 예를 들어 다수의 배포가 포함된 애플리케이션 스택이 있고 사용자 요청을 처리하기 위해 포드를 조정해야 한다고 가정해 보겠습니다. 카오스 테스트를 수행하려면 아키텍처를 이해하고 서비스의 특성(하나 이상의 기타 서비스에서 특정 마이크로서비스의 종속성 패턴 또는 리소스 집약적/CPU, 메모리, 초당 입력/출력 작업 수, 네트워크 또는 트래픽 패턴 등)에 따라 테스트 사례를 설계해야 합니다.

이러한 과제를 수행하려면 수백 건의 테스트 사례를 반복 실행해야 하는데, 여기에는 많은 인력과 잠재적인 클라우드 비용이 소요될 수 있습니다. 게다가 이러한 노력에도 불구하고 누락된 엣지 사례를 찾고 애플리케이션 스택이 성장함에 따라(기능 추가, 아키텍처 변경 등) 테스트 사례를 조정하기 위해 지속적으로 모니터링해야 합니다. 실행할 포드가 여러 개인 경우에는 시나리오 조합을 예측하기 어렵습니다. 이로 인해 SLO(Service Level Objective, 서비스 수준 목표)를 충족하지 못하고 성능이 저하되어 서비스에 영향을 줄 수 있습니다.

이 작업을 다수의 제품과 애플리케이션에 수행한다면 정말 힘들 것입니다. Krkn에 카오스 AI를 통합하면 이 문제를 해결할 수 있습니다. 이는 기능을 향상하고 복잡한 문제를 해결하기 위해 AI가 어떻게 적응하고 지원하는지 보여주는 전형적인 예시입니다.

배포된 카오스 AI와 Krkn 프레임워크가 서비스에 영향을 미치는 시나리오를 자동으로 검색하여 실행하고, 강화 머신 러닝을 사용하여 제품 스택의 변경 사항에 맞게 조정하는 것이 목표입니다.

chaos-testing-with-ai-ko

Krkn

Krkn은 클라우드, 쿠버네티스, OpenShift API를 대상으로 하는 카오스 엔진으로, 장애 조건을 삽입하고 특정 구성 요소의 복구, 전반적인 클러스터 상태, 성능 SLO를 추적할 수 있습니다.

Chaos-recommender

Chaos-recommender는 서비스에 대한 포인터가 지정되면 Prometheus로 각 포드를 프로파일링하여 네트워크를 많이 사용하거나 CPU, 메모리 또는 I/O와 관련이 있는지 파악하고, 디스럽션을 유발할 가능성이 가장 높은 Krkn 시나리오를 제안합니다.

Krkn 텔레메트리

Krkn 텔레메트리를 활성화하면 척도(노드, 포드, 경로 등의 수), 아키텍처(AMD, ARM, X86_64), 네트워크 플러그인(SDN, OVN) 등과 같은 환경 세부 정보 외에도 메트릭, 경고, 카오스 매개 변수, 테스트 통과/실패, 로그 정보를 포착하여 저장합니다. 이 데이터는 AI/ML 모델이 자주 실패하는 구성 요소를 파악하여 더 많이 테스트하도록 훈련하는 데 사용됩니다.

카오스 AI 워크플로우

이 워크플로우는 Krkn 시나리오와 SLO를 입력으로 사용하고, Chaos-recommender와 Krkn-telemetry를 통해 테스트가 필요한 구성 요소에 가중치를 할당하고 애플리케이션 스택에 다양한 시나리오 조합을 실행하는 엔드 투 엔드 프레임워크입니다.

다음은 Etcd 및 ApiServer에 대한 워크플로우의 예시입니다.

1단계

사용자가 타겟 Etcd 네임스페이스 및 ApiServer 네임스페이스와 AI에서 확인하고 누락 시 보상할 SLO를 제공합니다. 예를 들면 다음과 같습니다.

  • openshift-etcdopenshift-apiserver는 네임스페이스 입력입니다.
  • API 서버 대기 시간의 99%가 1초 미만입니다.
  • SLO는 Etcd에 리더 선택이 0 미만임을 나타냅니다.

2단계

Chaos-AI는 Chaos-recommender를 트리거합니다. Etcd 네임스페이스와 ApiServer 네임스페이스를 프로파일링하여 Prometheus의 리소스 사용량 메트릭에 따라 디스럽션을 겪을 가능성이 높은 카오스 시나리오를 식별합니다.

3단계

Chaos-AI 모델이 강화 학습을 통해 훈련됩니다. Etcd 및 ApiServer 구성 요소의 Krkn-telemetry 데이터를 수집하여 자주 실패하는 포드와 컨테이너를 확인합니다.

4단계

Chaos-AI에서 2단계와 3단계에 따라 가중치를 할당하고 Krkn 시나리오를 실행합니다. 강화 학습은 누락된 SLO에 대해 프레임워크에서 자체적으로 보상하는 시스템을 기반으로 합니다. 이 예에서는 API 대기 시간이 1초를 초과하고 Etcd에서 리더 선택이 수행될 때 발생합니다.

또한 디스럽션이 가장 적게 더 적은 반복 횟수로 발생할 것으로 예상되는 기타 영역을 실행합니다. 자주 실패하는 새 구성 요소나 조합을 발견했다고 가정해 보겠습니다. 이는 Krkn-telemetry에 기록되고 다음 반복에서 고려하도록 모델에 다시 입력됩니다.

5단계

오류를 해결할 수 있도록 오류가 출력됩니다.

이는 제품이 발전함에 따라 조정되는 지속적인 프로세스이며, 잠재적으로 누락된 엣지 사례가 있는 경우 사람의 개입 없이 개선할 영역을 식별합니다.

활용 사례

제품 릴리스 CI에서 테스트 사례를 수동으로 식별하고 추가하는 대신, 이 프레임워크를 사용하여 테스트 사례를 자동으로 식별하여 실행하고, 타겟 구성 요소는 물론 새로 도입된 구성 요소도 자동으로 조정할 수 있습니다.

나아가 Red Hat OpenShift뿐만 아니라 Red Hat OpenShift Service on AWS, Red Hat OpenShift AI 등을 포함한 전체 포트폴리오의 테스트 적용 범위를 손쉽게 추가, 스케일링, 확장할 수 있습니다.

다음 단계:

Krkn과 Chaos AI를 통합하면 테스트 적용 범위를 개선할 수 있습니다. 제품과 환경에 대한 신뢰도를 높이고, 사용자가 테스트할 수 있는 제품과 애플리케이션 스택의 수를 늘려 더 빠르게 확장할 수 있습니다.

통합 결과와 테스트 결과는 향후 블로그 게시물에서 확인할 수 있습니다. Krkn, Chaos-recommender, Krkn-telemetry를 비롯한 일부 요소는 이미 오픈소스로 제공되며 환경을 테스트하고 강화하는 데 활용할 수 있습니다. Red Hat은 전체 카오스 AI + Krkn 프레임워크를 오픈소스로 제공하기 위해 적극적으로 노력하고 있습니다.

피드백과 참여는 언제든지 환영합니다. 코드는 Github에 있으며 Red Hat은 고객의 활용 사례에 대해 기꺼이 논의하고 협업합니다.


저자 소개

Naga Ravi Chaitanya Elluri leads the Chaos Engineering efforts at Red Hat with a focus on improving the resilience, performance and scalability of Kubernetes and making sure the platform and the applications running on it perform well under turbulent conditions. His interest lies in the cloud and distributed computing space and he has contributed to various open source projects.

Read full bio

Mudit Verma is a Senior Research Engineer at Cloud Operations Dept., IBM Research. He possesses over 8 years of research experience. His areas of expertise and interest encompass Distributed Systems and Cloud. In recent years, he has been active in the area of intelligence-driven Cloud Operations and enabling self-* properties including Closed-Loop Management and assurance, AI based Chaos and effective Observability. He has also been a co-inventor of more than 20 United States patents (at various stages of filing), and been a co-author of multiple research papers accepted at top-tier conferences. Additionally, he has actively mentored multiple students and collaborated with professors of various eminent academic institutions such as Boston University, IISc, IITs, IIITs, etc. He is also an ACM Eminent Speaker. He holds bachelors and masters degree from BITS-Pilani and KTH Sweden respectively.

Read full bio

Sandeep Hans is working as a Research Scientist at IBM Research Lab – India. He has extensive experience in Distributed Systems and Artificial Intelligence. He is a co-inventor of multiple patents and co-author of more than 15 research papers in top tier conferences. He received his Ph.D. in Computer Science from Technion - Israel Institute of Technology under the guidance of Prof. Hagit Attiya.  Prior to joining IBM Research, he was a post-doc at Virginia Tech in USA and has also worked with Mindtree Consulting Ltd. in Bangalore. He is currently working on building dependable systems using adversarial AI testing.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

채널별 검색

automation icon

오토메이션

기술, 팀, 인프라를 위한 IT 자동화 최신 동향

AI icon

인공지능

고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트

open hybrid cloud icon

오픈 하이브리드 클라우드

하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요

security icon

보안

환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보

edge icon

엣지 컴퓨팅

엣지에서의 운영을 단순화하는 플랫폼 업데이트

Infrastructure icon

인프라

세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보

application development icon

애플리케이션

복잡한 애플리케이션에 대한 솔루션 더 보기

Original series icon

오리지널 쇼

엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리