프로젝트 관리자, 개발자 또는 팀 리더에게 물어보세요. 소프트웨어 개발 수명 주기 동안 결함, 사이버 공격, 시스템 중단 등 여러 가지 문제가 발생할 수 있습니다. 예기치 않은 장애가 발생하면 전체 프로세스가 중단되고 결과가 제한되며 중요한 리소스가 낭비될 수 있습니다.
카오스 엔지니어링은 이러한 실패가 어떻게 발생할 수 있는지 연구하고 이를 방지하는 방법론을 제공하는 학문입니다. 카오스 엔지니어는 장애의 근본 원인을 이해함으로써 장애를 예방하거나 완화하기 위한 계획을 개발할 수 있습니다.
카오스 엔지니어링은 혼돈을 만드는 것이 아니라 통제된 실험을 통해 시스템의 잠재적 장애 지점을 파악하여 문제를 일으키기 전에 미리 파악하는 것입니다. 이를 통해 카오스 엔지니어는 가동 중단 및 기타 장애를 사전에 예방할 수 있습니다.
카오스 엔지니어링은 시스템의 복원력을 테스트하기 위해 의도적으로 시스템에 결함을 주입하는 관행입니다. 목표는 잠재적인 장애 지점을 식별하고 실제 중단이나 기타 장애가 발생하기 전에 이를 수정하는 것입니다.
시스템에서 혼란을 일으키는 방법에는 여러 가지가 있지만 가장 중요한 것은 계획을 세우는 것입니다. 계획이 없으면 해결하는 것보다 더 많은 문제가 발생하기 쉽습니다. 계획을 세울 때는 무엇을 테스트할 것인지, 어떻게 테스트할 것인지 결정해야 합니다. 그런 다음 계획이 수립되면 실험을 시작할 수 있습니다.
소프트웨어 개발자는 카오스 엔지니어링을 워크플로에 쉽게 도입할 수 있습니다 .OpenText™ LoadRunner™ Professional. 이 솔루션은 성능 부하 테스트를 활용할 뿐만 아니라 소프트웨어 내에서 직접 다른 카오스 엔지니어링 실험을 쉽게 실행할 수 있습니다.
통제된 비프로덕션 환경에서 이러한 이벤트를 생성하면 시스템이 어떻게 반응하는지 테스트하고 잠재적인 문제를 파악할 수 있습니다.
잠재적인 실패 지점을 파악한 후에는 이를 완화하기 위한 작업을 시작할 수 있습니다. 여기에는 모니터링 또는 로깅을 추가하여 문제가 발생했을 때 이를 식별하거나 디자인을 변경하여 장애에 대한 복원력을 높이는 작업이 포함될 수 있습니다.
카오스 엔지니어링의 원칙은 다음과 같습니다:
계획: 무엇을 테스트할지, 어떻게 테스트할지 결정합니다. 여기서 목표는 가설을 세우는 것입니다. 시스템에서 무엇이 잘못될 수 있을까요? 악용될 수 있는 잠재적인 취약점은 무엇인가요?
실험해 보세요: 시스템에 결함을 주입하고 시스템이 어떻게 반응하는지 살펴보세요. 결함 인젝션은 단순히 기존 시스템에 문제를 도입하여 취약점을 노출시키는 프로세스입니다. 본질적으로 어떤 일이 일어나는지 보기 위해 일부러 시스템에 "렌치를 던지는" 습관입니다.
분석하기: 실험에서 얻은 데이터를 사용하여 잠재적인 실패 지점을 식별합니다.
완화하기: 완화: 문제를 발견하면 실험을 종료하여 문제를 완화하는 데 집중할 수 있습니다. 그렇지 않으면 문제의 핵심에 도달할 때까지 실험을 확장할 수 있습니다.
그렇다면 어떤 회사가 고의로 시스템을 망가뜨릴까요? 시스템 결함을 드러내는 것은 시스템을 더욱 견고하게 만들기 위해 필요합니다. 카오스 엔지니어링은 가동 중단 및 기타 중단을 방지하는 데 도움이 될 수 있습니다. 잠재적인 장애 지점을 파악하고 문제가 발생하기 전에 이를 수정함으로써 중단을 사전에 예방할 수 있습니다.
또한 카오스 엔지니어링은 여러 가지 고객, 비즈니스 및 기술적 이점을 제공합니다. 가장 큰 장점은 기업이 수익에 영향을 미치고 고객의 기대치를 충족하는 더 강력한 제품을 만들 수 있다는 것입니다.
카오스 엔지니어링은 몇 가지 주요한 점에서 테스트와 다릅니다. 카오스 엔지니어링은 문제를 일으키기 전에 잠재적인 실패 지점을 찾는 데 중점을 둡니다. 반면 테스트는 시스템이 예상대로 작동하는지 확인하는 데 중점을 둡니다. 간단히 말해, 카오스 엔지니어링은 사전 예방적이지만 테스트는 사후 대응적입니다.
카오스 엔지니어는 라이브 환경에서 문제를 일으키기 전에 제어 장애를 도입하고 수정하여 중단 및 기타 중단을 방지하기 위해 노력합니다. 이러한 제어된 장애는 시스템의 어느 부분이 더 복원력이 있고 어느 부분이 더 많은 작업이 필요한지 파악하는 데 도움이 됩니다. 테스트는 시스템이 완료된 후에만 작동하는지 확인할 수 있습니다.
LoadRunner Professional은 주로 특정 유형의 성능 엔지니어링에 중점을 둔 도구입니다. LoadRunner Professional을 사용하면 실제 사용 조건을 시뮬레이션하는 고급 부하 테스트를 배포하여 문제가 발생하기 전에 잠재적인 부하 성능 문제를 식별하는 데 도움이 될 수 있습니다.
하지만 LoadRunner Professional은 단순히 안정적인 환경에서 부하 테스트를 실행하는 성능 엔지니어링 도구가 아니라 성능 엔지니어링과 카오스 엔지니어링을 하나의 플랫폼에 결합한 도구입니다.
LoadRunner Professional은 CPU 스파이크, 네트워크 지연 시간, 디스크 장애 등 다양한 유형의 카오스 이벤트를 생성할 수 있는 유명한 서비스형 장애(FaaS) 플랫폼인 Gremlin과 직접 연동됩니다. LoadRunner Professional 플랫폼 내에서 직접 쉽게 Gremlin 카오스 실험을 구성 및 시작하고 비정상적인 조건에 따라 부하 테스트를 실행할 수 있습니다.
전반적으로 LoadRunner Professional을 사용하면 다양한 유형의 혼돈 이벤트 중에 로드 중단을 사전에 방지할 수 있습니다. 이 도구는 문제를 일으키기 전에 잠재적인 장애 지점을 식별하여 시간, 비용 및 귀중한 리소스를 절약할 수 있습니다.
궁극적으로 카오스 엔지니어링은 모든 성공적인 소프트웨어 프로젝트의 원동력입니다. 소프트웨어 개발자는 카오스 엔지니어링을 구현하여 시간이 지나도 변함없는 프로젝트를 수행할 수 있습니다.
OpenText 과의 파트너십을 통해 LoadRunner Professional은 부하가 걸린 시스템과 다양한 혼돈 이벤트의 성능을 동시에 테스트하여 잠재적인 장애 지점을 찾아내고 문제를 사전에 해결할 수 있습니다.
실제 성능 테스트를 통한 애플리케이션 품질 보장
부하 및 성능 테스트 간소화
협업 성능 및 부하 테스트
클라우드 기반 성능 및 부하 테스트로 민첩성 유지