Offcanvas

AI / CIO / 개발자 / 데브옵스 / 애플리케이션

SLO와 오류 예산으로 알아보는 ‘사이트 신뢰성 엔지니어링’

2023.01.03 Isaac Sacolick  |  InfoWorld
사이트 신뢰성 엔지니어는 기능 플래그, 신뢰할 수 있는 경고 및 대시보드를 활용해 데브옵스 수명주기 내에서 성능과 안정성을 유지할 수 있다. 
 
ⓒGetty Images Bank

사이트 신뢰성 엔지니어(Site Reliability Engineer)란 소프트웨어 엔지니어링 방식을 인프라 운영 문제에 적용해 확장 가능하고 안정적인 소프트웨어 시스템을 만드는 역할이다. 특히 성능을 개선하고 사고의 영향을 줄이고자 사전 예방적 조처를 한다. 운영 성능을 향상하려면 대개 비용이 늘어나므로 둘 사이에 균형을 맞추는 일은 매우 까다로운 작업이다. 

사이트 신뢰성 엔지니어가 주로 활동하는 데브옵스 팀은 크게 두 가지 측정 도구를 이용해 서비스 성능과 신뢰성을 관리한다. 서비스 레벨 목표(service level objective, SLO)와 오류 예산(error budget)이다. 앱이나 서비스가 이런 목표에 미치지 못할 때 오류 예산을 초과하게 되며, 이는 곧 데브옵스 팀이 기능 개발보다 운영 문제를 다뤄야 한다는 신호로 작용한다.

SLO 종류는 여러 개지만, 기본적으로 오류 발생건을 기록하고 사전 지정된 임계 값에 따라 서비스 레벨을 벤치마킹한다. 예를 들어 한 모바일이 애플리케이션 오류와 느린 반응 시간을 기록했다고 가정해보자. 이럴 때 개발팀은 24시간을 기준으로 99.9%의 SLO를 설정할 수 있다. 사용자 상호작용 99.9%가 오류 없이 진행되는 것이 목표다. 만약 이 목표를 달성하지 못한다면 오류 예산을 소모하게 되고, 데브옵스 팀은 목표에 다가가기 위해 권장 해결책의 우선순위를 지정한다.

SLO와 오류 예산은 나름 간단한 개념이지만 이를 측정하고 관리하기 위해서는 적절한 기술 플랫폼을 찾아야 하며 사용 수칙을 익혀야 한다. 또한 사이트 신뢰성 엔지니어는 이에 더해 데브옵스 수명주기와의 호환성을 따져야 한다.

사이트 신뢰성 엔지니어에게 유용한 측정 도구 및 방식 몇 가지를 소개한다. 
 

기능 플래그(feature flag)로 문제 격리하고 오류 줄이기  

동료가 “시스템에 문제가 생긴 것 같다”라고 하면 사이트 신뢰성 엔지니어의 역할이 시작된다. 근본 원인을 파악하는 것이 목표다. 문제에 파고들어 코드 자체를 수정해야 할 때면 일단 문제가 발생하지 않도록 일시 중지할 필요가 있다. 

미국의 클라우드 호스팅 웹 및 모바일 애플리케이션 자동화 테스트 플랫폼 소스랩스(SauceLabs)의 기술 전략 부사장 마커스 머렐은 “런치다클리(LaunchDarkly)나 옵티마이즐리(Optimizely) 같이 사용자 일부에게 소프트웨어 기능을 부분적으로 배포하게 도와주는 기능 플래깅 도구를 애용한다”라고 말했다. 그는 “개발팀이 문제를 해결하기 위해 코드를 들여다보는 동안 기능 플래깅으로 문제가 있는 기능이 특정 사용자에게만 접근 가능하도록 제한할 수 있다. 문제를 수정한 뒤 이 사용자층이 상당 기간 문제없이 사용할 수 있다면 그제야 모든 사용자에게 배포할 확신을 얻을 수 있다”라고 말했다. 

메럴은 “예전 같으면 문제가 생겼을 때 소프트웨어 개발 주기 자체를 뒤엎어야 했겠지만 기능 플래깅 덕분에 마음 놓고 문제를 수정할 수 있다”라고 말했다. 
 

관찰 가능성, 모니터링 및 AIOps를 위한 전략 개발 

“아무도 없는 숲에서 나무가 쓰러졌을 때, 그 누구도 그 소리를 듣지 못했다면 그 나무는 쓰러진 것이 맞는가?”라는 철학적 질문이 있다. 물리학자는 당연히 ‘그렇다’라고 답변할 것이다. 또한 현상학자도 ‘그렇다’라고 답변할 것이다. 세상을 바라보는 사람의 태도나 인식과는 무관하게 독립적인 현상은 무조건 존재한다고 생각하기 때문이다. 

같은 맥락에서 네트워크 운영 센터(network operation center)가 인지하든 안 하든 앱 충돌이나 느린 성능 같은 문제는 늘 발생한다. 따라서 문제가 발생했을 때 이를 바로 알아채고 해결할 수 있는 시스템을 갖추는 것이 매우 중요하다. 

서비스 문제는 마치 산불처럼 순식간에 번진다. 수많은 마이크로 서비스와 타사 서비스형 소프트웨어가 얽히고설켜 서로 의존하는 구조로 이루어져 있는 경우가 허다하기 때문이다. 오류 경보가 물밀 듯이 한 번에 몰려올 수도 있다. 이와 정반대로 어떤 모니터링 시스템은 너무 예민해서 조금이라도 오류의 조짐이 보이면 시시때때로 알림을 울려 혼선을 빚을 수 있다. 

먼데이닷컴(Monday.com)의 R&D 책임자인 로니 아비도프는 “급성장하는 회사가 주로 겪는 것처럼 우리도 경보 피로에 시달렸다. 오탐(false negative)이 너무 많아 모니터링 도구에 신뢰를 잃었다”라고 말했다. 

데브옵스 팀은 오류 알림과 관찰 데이터를 실행 가능한 작업으로 이을 수 있는 기술 전략을 세워야 한다. 하지만 수많은 마이크로서비스를 멀티클라우드 아키텍처에서 운영하며 미션 크리티컬 애플리케이션의 배포 빈도를 높여야 하는 기업에게 이는 매우 복잡한 작업이다. 이 정도의 규모로 서비스를 운영해야 하는 기업은 AIOps로 사고 해결 시간을 크게 단축시킬 수 있다. 

아비도프는 먼데이닷컴이 “애플리케이션 오류 모니터링 서비스 센트리(Sentry)로 회사 기술 스택의 모든 플랫폼을 관리한다. AI가 경고를 생성하는 데 취한 논리적 단계를 표시하는 상관관계 보고서로 정말 대응이 필요한 오류 알림을 구분하는 데 큰 도움이 됐으며, 실제로 사고 해결 시간을 70%, 사용자 오류건수를 60%나 줄였다”라고 말했다. 

또 다른 예로 소니 인터랙티브 엔터테인먼트가 소유한 미국의 비디오 게임 회사 번지(Bungie)는 AIOps 사건 상관관계 및 자동화 플랫폼 빅팬다(BigPanda)를 사용해 3,000개가 넘는 오류 알림 중에 상관관계가 있는 사건 35개를 식별했다.

엔드투엔드 SRE 플랫폼 블레임리스(Blameless)의 커뮤니티 매니저 에밀리 아노트는 실시간 데이터 기록이 매우 중요하다고 강조했다. 그는 “SLO 및 오류 예산 데이터는 사건 데이터의 절댓값을 즉각적으로 반영해야 한다”라며 “그렇지 않으면 엔지니어가 알아채지 전 사용자가 문제를 겪을 것이다. 자동화로 SLO 데이터를 항상 최신으로 유지해야 한다”라고 말했다. 
 

SLO 템플릿 및 대시보드로 비즈니스 및 개발 인력 조정 

아웃시스템즈(OutSystems)의 글로벌 신뢰성 및 관찰 가능성 엔지니어링 매니저이자 자칭 “SLOgician”인 잭 니켄스는  ‘SLO 개발 주기(The SLO Development Lifecycle)’라는 오픈소스 방법론을 추천했다. 여기에는 서비스 수준 목표를 달성하는 데 필요한 지침서, 워크시트, 템플릿 및 예제가 있다. 니켄스는 “SLODLC 웹사이트에 올라와 있는 템플릿을 사용해 팀 내부의 SLO 설계 세션에 이용한다”라고 말했다. 

이에 더해 그는 “SLO를 내부 위키에 게시하고 Nobl9의 SLO 대시보드와 연결한다. SLODLC의 SLO 설계 문서는 각 수치가 의미하는 사업적 연관성에 대해 알려줘 유용하다”라고 말했다. 
 

SLO를 코드로 구현 

스모 로직(Sumo Logic)의 전략 책임자 브루노 크루틱은 SLO를 코드로 정의하는 오픈소스 프로젝트 오픈SLO(OpenSLO)를 검토할 것을 권고했다. 크루틱은 “오픈SLO는 SLO 정의를 검증하고 변환하기 위한 API 정의와 명령줄 도구(oslo)로 구성된다”라고 말했다. 

오픈SLO는 올해 초 표준의 1.0 버전을 발표했으며, 깃랩(GitLab), 노블9(Nol9), 레드햇(Red Hat), 수모 로직(Sumo Logic), 타피코(Tapico.io) 등이 이 표준에 참여한다. 

사이트 신뢰성 엔지니어가 비즈니스 서비스의 성능과 신뢰성을 더 효과적으로 개선할 수 있도록 개방적이고 상호 운용 가능한 도구를 구축하는 기업이 늘고 있다는 좋은 신호다. 
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.