원문 캡처 · news.ycombinator.com
원문 캡처 · news.ycombinator.com

Opslane은 풀 리퀘스트(PR)마다 앱 전체를 띄우고 외부 서비스 장애를 주입해 운영 환경에서 문제가 될 수 있는 결함을 찾는 도구다. 제작자 아비셰크(Abhishek)는 초기 고객사 시스템에서 다른 코드 리뷰 도구가 놓친 버그를 발견했다고 밝혔다.

Opslane은 PR마다 Postgres, Redis, Kafka, SQS, S3를 포함한 앱 복사본을 만든다. Stripe, Slack, Gmail 같은 외부 서비스도 동작하는 복사본을 사용하며, 트래픽은 장애를 주입할 수 있는 프록시를 통과한다. 에이전트는 PR을 읽고 고객에게 이중 청구가 발생하지 않아야 한다는 식의 불변 조건을 작성한 뒤, 이를 깨뜨릴 가능성이 있는 장애를 시험한다.

아비셰크가 공개한 사례에서는 Lago가 Stripe에서 결제를 처리한 뒤 500 오류를 반환하자 결제를 실패로 표시했고, 대시보드에서 재시도한 고객에게 요금이 두 번 청구됐다. 관련 이슈

다른 오픈소스 앱에서는 Stripe 장애 중 워크스페이스를 삭제하면 모든 사용자가 잠기고 청구는 계속되는 Twenty의 버그를 찾았다. Twenty는 수정 사항을 병합했다. 관련 이슈 Dub에서는 지급 도중 앱이 재시작되면서 지급 대상 파트너에게 받아야 할 120달러 대신 240달러가 지급되는 문제를 발견했다. 관련 이슈

아비셰크는 Robinhood에서 신뢰성 업무를 맡았을 때 스테이징 환경에서 장애 주입 테스트를 했지만, 유지 관리가 잘 된 환경과 테스트할 항목을 아는 엔지니어가 필요해 많은 팀이 실행하기 어려웠다고 설명했다. 그는 코드 리뷰 도구가 주로 변경 사항을 읽는 반면, 신뢰성 문제는 Stripe나 Redis, 네트워크가 오작동할 때 코드가 어떻게 동작하는지에 있을 수 있다고 봤다. 종단 간 테스트도 대개 이런 서비스를 모의 처리해 정상 경로를 확인한다고 덧붙였다.

Opslane은 아직 초기 단계이며 초기 고객사가 몇 곳 있다고 아비셰크는 밝혔다. 데모 영상과 발견한 버그 전체 목록을 확인할 수 있다.