20장. 카오스 테스트, 부하 테스트및 실험
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
이 장에서는 카오스 테스트, 로드 테스트, 실험이라는 세 가지 방법으로 Kubernetes 클러스터에서 애플리케이션을 테스트하는 방법을 다룬다. 이 모든 도구는 더 유용하고, 더 탄력적이며, 더 성능이 뛰어난 애플리케이션을 구축하는 데 도움이 될 수 있습니다. 또한 애플리케이션에 대한 인사이트를 제공하고 사용자를 더 잘 이해하고 변경 사항을 광범위하게 배포하기 전에 그 영향을 예측하는 데 도움을 줄 수 있습니다. 이러한 인사이트를 통해 더 나은 의사 결정을 내리고 향후 개선이 필요한 부분을 파악할 수 있습니다. 다음 섹션에서는 각 테스트 유형의 세부 사항, 목표 및 각 테스트를 시작하기 전에 필요한 전제 조건에 대해 설명합니다.
카오스 테스트
카오스 테스트( )는 이름에서 알 수 있듯이 애플리케이션이 세상의 혼돈에 대응하는 능력을 테스트하는 것입니다. 하지만 혼돈이란 정확히 무엇을 의미할까요? 일반적으로 애플리케이션에서 혼돈이란 완전히 예상치 못한 비정상적인 엣지 조건을 애플리케이션에 도입하고 애플리케이션이 어떻게 반응하는지 확인하는 것을 의미합니다. 이를 통해 애플리케이션 개발 중에는 발생하지 않았지만 애플리케이션 운영 중 어느 시점에 발생할 수 있는 이러한 엣지 조건에 대해 애플리케이션이 복원력이 있는지 파악할 수 있습니다. 애플리케이션 개발은 이상적인 조건에서 이루어지는 경우가 많습니다. 안타깝게도 이러한 이상화된 조건은 실제 환경에 충분히 오래 노출되면 초기 개발 시에는 없었던 오류와 실패로 인해 어려움을 겪게 됩니다. 이러한 오류에는 통신 오류, 네트워크 연결 끊김, 스토리지 문제, 애플리케이션 충돌 및 실패 등이 포함될 수 있습니다. 카오스 테스트는 이러한 오류를 테스트 환경에 인위적으로 도입하여 애플리케이션이 얼마나 잘 대처하는지 관찰하는 기술입니다.
카오스 테스트의 목표
카오스 테스트의 목표 는 애플리케이션 환경에 극한의 조건을 도입하고 이러한 조건에서 애플리케이션이 어떻게 작동하는지, 특히 어떻게 실패하는지 관찰하는 것입니다. 실패가 예상되고 바람직한 방식으로 테스트하는 것이 이상하게 보일 수 있습니다. 일반적으로 애플리케이션 실패는 피하려고 노력하지만, 고객이나 사용자에게 영향을 주지 않는 테스트 환경에서 이러한 실패를 관찰하는 것이 훨씬 더 좋습니다. 카오스 테스트 시 실패를 관찰하는 이유는 사용자나 고객에게 영향을 미치기 전에 문제를 해결할 수 있는 기회를 제공하기 때문입니다.
물론 목표는 애플리케이션에 현실적인 수준의 오류를 도입하여 애플리케이션이 어떻게 작동하는지 확인하는 것입니다. 실제로는 발생하지 않을 것으로 예상되는 수준의 오류를 도입하는 것은 흥미롭기는 하지만 시간이나 리소스를 낭비하는 것은 아닙니다. 과도한 수준의 오류는 극한 환경에 대비해 애플리케이션을 강화하는 데 도움이 될 수 있지만 그러한 극한 상황이 발생하지 않는다면 ...