STPA - Google SRE의 새로운 장애 예방 방법 교육

3 days ago 8

  • STPA(System Theoretic Process Analysis, 시스템 이론적 프로세스 분석) 는 시스템 및 제어 이론을 기반으로 복잡한 시스템의 제어-피드백 루프를 모델링하는 방법
    • 구글은 STPA을 사용하여 소프트웨어 시스템을 분석하고 잠재적인 위험을 발견
  • STPA는 시스템 안전성을 제어 문제로 다루며, 시스템이 위험 상태에 빠질 수 있는 모든 제어 동작을 분석
  • 개별 동작의 결과보다는 위험 상태에 집중해 근본 원인을 찾는 방식
    • 위험 상태로 이어지는 제어 동작을 이해하면, 이를 예방하거나 자동 복구 가능
    • 자동 복구가 어려운 경우에는 인간 오퍼레이터에게 경고 가능

Google이 STPA 교육을 커스텀하는 이유

  • STPA를 통해 미확인된 문제를 사전에 발견하고 장애를 예방한 성공 사례가 늘어남
  • 기존 STPA 교육 자료는 물리 시스템 중심으로 구성돼 있어 소프트웨어 환경에 적용하기 어려움
  • Google의 순수 소프트웨어 시스템에 맞춘 맞춤형 교육이 필요해짐

초기 STPA 교육 시도

  • 2021년부터 초기 교육 시작 (40명의 Google 엔지니어 대상)
  • 물리 시스템 사례 (예: Mars Polar Lander 추락) 사용 → 소프트웨어 엔지니어의 공감 부족
  • Google 시스템에 적용한 실제 사례가 필요하다는 점 인식

제어 구조 개념 교육

  • 제어 구조(control structure) 는 기본 제어-피드백 루프로 구성됨
    • 컨트롤러가 상태 변경 제어 → 피드백으로 상태 확인 후 다음 동작 결정
  • 소프트웨어 환경에서 적용 예시
    • 예: 사용자 생성 콘텐츠 데이터베이스에서 잘못된 콘텐츠 삭제 또는 수정
    • 피드백 루프가 제대로 설계되지 않으면 잘못된 제어 동작 발생 가능
  • 교육 도전 과제
    • 제한된 시간 내에 유용한 제어 구조 설계 교육이 어려움
    • 소프트웨어 시스템마다 제어 구조가 달라 피드백 제공 어려움

STPA 교육 개선 전략

  • 모든 STPA 단계 교육 → 엔지니어가 독립적으로 STPA 수행 가능하도록 지원
  • Google의 실제 사례 활용 → 이론 설명 후 실제 사례 적용
  • 제어 구조의 피드백 경로 강화에 초점
    • 잘못된 피드백 → 잘못된 제어 동작 발생 → 장애 발생 사례 분석
    • 인간 오퍼레이터에 대한 피드백 부족 → 위험 상태 발생

피드백의 중요성

  • 한 Google 시스템에서 잘못된 피드백으로 인해 30일 후 잘못된 제어 동작 발생 → 장애 발생
  • 잘못된 피드백 및 인간 오퍼레이터에게 피드백 부족이 원인
  • 피드백 설계가 제대로 이루어지면 장애 예방 가능
  • Ariane 5 로켓 폭발도 피드백 오류 사례
    • 부동소수점 데이터를 정수로 변환하면서 오류 발생
    • 피드백 오류 → 잘못된 상태 인식 → 로켓 방향 오류 및 폭발

데이터 흐름 다이어그램 vs. 제어 구조

  • 데이터 흐름 다이어그램(Dataflow Diagram)
    • 데이터가 소프트웨어 컴포넌트 간에 어떻게 이동하는지 표시
    • 피드백 및 제어 구조 명확하지 않음
  • 제어 구조(Control Structure)
    • 제어 동작 및 피드백 표시 → 제어 계층 구조 명확
    • 피드백 문제 파악 용이 → 복잡한 시스템 상호작용에서 문제 원인 추적 가능

STPA 적용 효과

  • 복잡한 소프트웨어에서 수백만 줄의 코드 중 문제 발생 가능성이 높은 부분을 수백 줄로 좁힘
  • 위험한 제어 동작을 시나리오화 → 문제 코드 식별 가능
  • 실제 사례에서 제어 구조 구축 후 피드백 부족 식별 및 수정

교육 전략의 변화

  • 긴 교육 시간 → 짧은 교육 세션으로 전환
    • 30분~60분 튜토리얼 → 관심 있는 엔지니어가 워크숍 참여 유도
  • 자기 주도형 학습 모델 도입
    • 짧은 동영상 + 과제 → 실제 시스템에 STPA 적용 유도
    • 전문가의 개입 없이 초기 STPA 수행 가능하도록 교육 강화

Google에서 STPA 확산 전략

  • STPA 전문가 양성 → 팀 내부에서 STPA 전파 가능
  • 초기 성공 → 다른 팀으로 확산 → 조직 전반에 STPA 적용
  • STPA 훈련 후 설계 단계에서 위험 요소 미리 제거 가능

다른 기업에서도 적용 가능

  • STPA는 복잡한 소프트웨어 시스템에서 "미확인된 위험 요소"를 찾는 강력한 도구
  • 소규모 팀에서 시작해 STPA 전문가 주도로 확산 가능
  • 기업에 맞는 맞춤형 STPA 교육 개발이 핵심
  • 초기 시행착오 후 방향 수정 가능 → 궁극적으로 시스템 안정성과 신뢰성 향상

Read Entire Article