문제 해결 및 소프트웨어 안정성을 위해 생성 AI 사용
2023년 7월 25일 Dotan Horovits 작성
오늘날 빠르게 변화하는 디지털 환경에서 특히 클라우드 기반 및 온라인 서비스의 경우 서비스를 최신 상태로 유지하는 것이 경쟁력을 유지하는 데 중요합니다. 가동 중지 시간이나 대기 시간 문제로 인해 고객이 멀어질 수 있습니다. 특히 클릭 한 번만으로 경쟁 SaaS 솔루션으로 전환할 수 있는 경우에는 더욱 그렇습니다. DevOps 및 사이트 안정성 엔지니어링(SRE) 팀은 오류 및 문제를 처리할 때 MTTR(평균 수정 시간)을 최소화해야 하는 끊임없는 과제에 직면해 있습니다. Google과 같은 검색 엔진이 가치 있는 만큼, 사용 가능한 정보의 양이 너무 많아서 올바른 솔루션을 찾는 데 시간이 많이 걸릴 수 있습니다. 이 프로세스를 자동화하고 간소화하여 오류 조사를 더욱 지능적이고 집중적이며 효율적으로 만드는 방법이 있다면 어떨까요?
이 문서에서는 첫 번째 모호한 로그 줄부터 그 안에 숨겨진 문제를 식별하는 것까지 오류 해결 과정을 안내합니다. 우리는 여러 전술을 사용하여 문제를 해결하고 궁극적으로 생성 AI를 사용하여 MTTR을 줄이고 정확한 IT 권장 사항을 제공하도록 할 것입니다. 이 여정에는 DevOps 팀이 적용할 수 있는 유용한 조치와 원칙이 포함되어 있으며 생성 AI 적용 가능성을 탐색합니다.
그림을 그려보세요. 로그 줄에 모호한 오류 메시지가 나타나면 가장 먼저 본능적으로 Google에서 이 메시지를 검색하여 잠재적인 해결책을 찾습니다. 결국, 다른 누군가도 비슷한 문제를 겪었을 것입니다. 그렇죠? 그러나 풍부한 리소스와 검색 결과는 압도적일 수 있습니다. 검색 결과는 종종 오류 자체의 관련성이 아닌 웹사이트 관련성을 기준으로 표시됩니다. 결과적으로, 수많은 검색 결과를 선별하는 데 소중한 시간이 낭비되고, 오류를 이해하고 해결하는 데 더 오랜 시간이 소요됩니다. 시스템 안정성 유지를 담당하는 DevOps 및 SRE 팀의 경우 MTTR을 줄이는 것은 중요한 핵심 성과 지표(KPI)입니다. 이는 다음과 같은 질문을 던집니다. 자동화와 인공 지능을 활용하여 검색 프로세스를 개선하고 오류 해결을 가속화할 수 있는 방법은 무엇입니까?
이 문제를 해결하려는 조직의 초기 시도에서 우리는 크라우드소싱 기술을 활용하여 무차별적인 Google 검색보다 더 관련성 높은 결과를 얻는 데 중점을 두었습니다. 또한 프로세스를 자동화하고 오프라인으로 실행하여 사고가 발생했을 때 시스템이 다운되거나 오작동할 때 검색을 시작하는 대신 유용한 통찰력을 제공할 수 있기를 원했습니다.
접근 방식에는 오프라인 단계와 온라인 단계가 포함됩니다. 오프라인 단계에는 수집된 모든 로그를 분석하고 일반적인 로그 패턴을 식별하는 작업이 포함되었습니다. 이를 통해 우리 시스템에서 이 패턴이 얼마나 자주 발생했는지, 얼마나 널리 퍼져 있는지 계산할 수 있었습니다. 그런 다음 관련 솔루션을 제공할 수 있는 이러한 로그 패턴에 대한 관련 담론을 위해 StackOverflow, Google Groups 및 Bing Groups와 같은 관련 기술 포럼을 크롤링했습니다. 다음 단계는 관련성에 따라 검색 결과의 순위를 매기고 가장 관련성이 높은 상위 5개 링크를 선택하는 것이었습니다.
오프라인 단계에서는 알려진 로그 패턴의 라이브러리와 각 패턴에 대해 이러한 링크를 포함하는 인지적 통찰력뿐만 아니라 심각도 수준, 로그에서 이 패턴이 발생한 횟수, 처음 발생 날짜와 같은 추가 정보가 생성되었습니다. 관련 기술, 도구 및 도메인의 추가 태그.
온라인 단계는 새 로그가 들어오면 실시간으로 발생합니다. 로그를 수집하면 알려진 모든 패턴과 자동으로 일치됩니다. 하나와 일치하면 해당 패턴에 대한 인지적 통찰력을 얻습니다. 이는 문제가 있는 로그가 들어오자마자 DevOps 엔지니어가 이미 시작할 검색 결과와 컨텍스트에 초점을 맞추고 순위를 매겼음을 의미하므로 조사 프로세스가 가속화됩니다.
우리의 초기 접근 방식을 곰곰이 생각해 본 후, 우리는 깨달음을 얻었습니다. ChatGPT와 같은 대규모 언어 모델(LLM)은 이미 웹을 크롤링하여 방대한 양의 정보를 흡수했습니다. 그렇다면 이들의 역량을 활용하고 직접 통찰력을 요청해 보는 것은 어떨까요? 아이디어는 간단했습니다. AI가 우리를 위해 "게시물을 읽고" 추천을 제공하도록 하는 것입니다. 우리는 "가능한 오류는 무엇입니까?"와 같은 구체적인 질문을 공식화하는 것부터 시작했습니다. 추가 조사 단계를 요청함으로써 한 단계 더 나아갔습니다. 그러나 이렇게 간단해 보이는 접근 방식을 구현하는 데는 나름의 과제도 있었습니다. 우리는 예상한 결과를 얻기 위해 생성 AI에 질문하기 전에 전처리를 실행하고 반환된 답변에 대해 후처리를 실행해야 했습니다. 그 과정이 무엇을 수반하는지 봅시다.