5장. Google DiRT: 재해 복구 테스트
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
"희망은 전략이 아니다." 이 은 Google의 사이트 안정성 엔지니어링(SRE) 팀의 모토이며, 카오스 엔지니어링의 핵심 철학 을 완벽하게 구현하고 있습니다. 시스템은 장애를 견딜 수 있도록 설계될 수 있지만, 대규모로 장애 조건을 명시적으로 테스트하기 전까지는 항상 기대와 현실이 일치하지 않을 위험이 있습니다. Google의 DiRT(재해 복구 테스트) 프로그램은 2006년에 사이트 안정성 엔지니어(SRE)가 중요한 기술 시스템과 비즈니스 프로세스에 의도적으로 장애를 유발하여 설명되지 않은 위험을 노출하기 위해 설립한 프로그램입니다. DiRT 프로그램을 옹호한 엔지니어들은 실제로 긴급 상황이 아닐 때 프로덕션의 긴급 상황을 분석하는 것이 훨씬 더 쉬워진다는 점에 주목했습니다.
재해 테스트( )는 장애가 원활하게 처리될 때는 시스템의 복원력을 입증하고, 원활하지 않은 경우에는 신뢰성 위험을 통제된 방식으로 노출하는 데 도움이 됩니다. 통제된 인시던트 동안 안정성 위험을 노출하면 문제의 심각성과 시간 압박으로 인해 실수가 증폭되고 불완전한 정보에 기반한 위험한 결정을 강요할 때 상황만으로 문제가 드러나기를 기다리는 것과 달리 철저한 분석과 선제적 완화가 가능합니다.
DiRT는 구글 엔지니어들이 역할극 연습을 하는 것으로 시작되었습니다.1 을 실시하는 것으로 시작되었습니다. 특히 재난과 자연재해가 Google의 운영을 어떻게 방해할 수 있는지에 중점을 두었습니다. Google은 전 세계에 인력이 분산되어 있지만 특히 지진이 발생하기 쉬운 샌프란시스코 베이 지역에 불균형적으로 많은 인력을 보유하고 있습니다. 많은 내부 인프라가 한 지역에 집중되어 있기 때문에 "만약 마운틴뷰 캠퍼스와 직원들이 며칠 동안 완전히 사용할 수 없게 된다면 현실적으로 어떤 일이 일어날까요?"라는 흥미로운 질문이 제기되었습니다. 그러면 시스템과 프로세스가 어떻게 중단될까요 ?"
마운틴뷰에서 호스팅되는 서비스 중단의 영향에 대한 연구( )는 Google의 많은 초기 재해 테스트에 영감을 주었지만, 익숙함(또는 악명...)이 높아지면서 안정성을 높이는 데 관심이 있는 팀들은 회사 차원의 DiRT 이벤트를 자체 서비스를 심층적으로 조사하는 기회로 활용하기 시작했습니다. 순전히 이론적이고 탁상공론적인 연습에서 벗어나 서비스 소유자가 실제 장애(지연 시간 추가, '중요하지 않은' 종속성과의 통신 비활성화, 핵심 인력의 부재 시 비즈니스 연속성 계획 실행 등)를 주입하는 방식으로 바뀌었습니다. 시간이 지남에 따라 더 많은 팀이 참여하고 더 많은 실제 테스트가 실행되었으며, 테스트의 범위가 커지면서 Google의 전반적인 아키텍처에 대해 배우고 개선할 부분이 얼마나 많은지, 즉 인식되지 않은 하드 종속성, 잘못 작동하는 폴백 전략, 완전히 작동하지 않는 안전장치, 사후에는 명백하지만 사전에 ...