7장. 회원을 배려하는 LinkedIn
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
프로덕션 환경에서 카오스 실험을 실행하면 제품 사용자에게 영향을 미칠 수 있습니다. 충성도가 높은 사용자가 없다면 유지 관리할 시스템이 없으므로 실험을 신중하게 계획하면서 사용자를 최우선으로 고려해야 합니다. 약간의 영향은 불가피할 수 있지만, 카오스 실험의 영향 반경을 최소화하고 모든 것을 정상으로 되돌릴 수 있는 간단한 복구 계획을 세우는 것이 매우 중요합니다. 실제로 폭발 반경을 최소화하는 것은 카오스 엔지니어링의 고급 원칙 중 하나입니다( 3장 참조). 이 장에서는 이 원칙을 준수하기 위한 모범 사례와 함께 소프트웨어 업계에서 이 원칙이 어떻게 구현되었는지에 대한 이야기를 소개합니다.
이 주제의 맥락을 이해하기 위해 자동차 산업으로 잠시 시선을 돌려보겠습니다. 모든 최신 차량은 제조업체, 제3자 및 정부에서 엄격한 충돌 테스트를 거쳐 사고 발생 시 탑승자의 안전성을 검증합니다. 이러한 테스트를 수행하기 위해 엔지니어는 인체를 시뮬레이션하는 충돌 테스트 더미를 활용하고 여러 센서를 통해 충돌이 실제 사람에게 어떤 영향을 미치는지 파악합니다.
자동차 충돌 테스트 더미는 지난 수십 년 동안 크게 발전해 왔습니다. 2018년, 미국 도로교통안전국은 지금까지 개발된 충돌 테스트 더미 중 가장 실물 같은 더미로 불리는 Thor를 출시했습니다. 토르는 약 140개의 데이터 채널을 통해 엔지니어에게 사고가 실제 사람에게 미치는 영향에 대한 풍부한 데이터를 제공하며, 이러한 더미를 통해 제조업체와 정부는 시장에 출시되는 차량에 대한 확신을 가질 수 있습니다.1
차량의 구조적 무결성과 안전 메커니즘을 테스트하기 위해 실제 사람에게 의도적인 충돌을 가하는 대신 충격을 시뮬레이션할 수 있는데 왜 굳이 사람을 실험에 참여시킬까요? 이 아이디어는 카오스 엔지니어링의 소프트웨어에도 동일하게 적용됩니다.
충돌 충격을 판단하는 토르의 여러 센서와 마찬가지로, 엔지니어들은 정상 상태에서의 편차를 측정하는 여러 가지 방법을 수년 동안 개발해 왔습니다. 제한된 규모의 장애 실험을 통해서도 지표에 교란을 일으키고 사용자 경험에 영향을 미치는지 확인할 수 있습니다. 실험은 가능한 한 적은 수의 사용자에게 영향을 미치도록 설계해야 하며, 적어도 이러한 장애를 대규모로 비슷한 방식으로 처리할 수 있을 만큼 시스템에 자신이 있을 때까지는 실험을 진행해야 합니다.
카오스 실험 중에 사용자의 피해를 최소화하기 위해 필요한 모든 예방 조치를 취하더라도 예기치 않은 영향이 발생할 가능성은 여전히 존재합니다. 머피의 법칙에 따르면 "잘못될 수 있는 것은 무엇이든 잘못된다"고 합니다. 애플리케이션이 사용자에게 허용되는 범위를 벗어나는 방식으로 오작동을 일으키는 경우 실험을 종료할 수 있는 큰 빨간 버튼이 필요합니다. 마우스 클릭 한 번으로 쉽게 정상 상태로 돌아갈 수 있어야 합니다.