카오스 엔지니어링: Difference between revisions

From IT Wiki
No edit summary
No edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
[[분류:소프트웨어 공학]][[분류:네트워크]][[분류:기술사 기출]]
[[분류:소프트웨어 공학]][[분류:네트워크]][[분류:기술사 기출]]
;Chaos Engineering
;Chaos Engineering
;복잡한 분산 시스템 환경에서 시스템의 신뢰성을 확인하기 위해, 인위적인 혼돈(Chaos)을 가하여 시스템의 취약한 부분을 찾고 보강하는 방식의 엔지니어링 기법
복잡한 분산 시스템 환경에서 시스템의 신뢰성을 확인하기 위해, 인위적인 혼돈(Chaos)을 가하여 시스템의 취약한 부분을 찾고 보강하는 방식의 엔지니어링 기법
* 일종의 [[성능 테스트]]로, 무차별적인 부하 속에서 어떤 구성 시스템이 먼저 장애를 일으키는지를 확인할 수 있다.
* 일종의 [[성능 테스트]]로, 무차별적인 부하 속에서 어떤 구성 시스템이 먼저 장애를 일으키는지를 확인할 수 있다.
* 분산 시스템의 불확실성을 해소하기 위한 방안으로 주목받고 있다.
* 분산 시스템의 불확실성을 해소하기 위한 방안으로 주목받고 있다.
Line 17: Line 17:
* 2. 통제 그룹과 시험 그룹 시스템이 정상적인 상태로 지속될 것이라 가정
* 2. 통제 그룹과 시험 그룹 시스템이 정상적인 상태로 지속될 것이라 가정
** ex) 서버 40대 중 10대가 동시에 고장나도 고객 서비스는 정상 동작
** ex) 서버 40대 중 10대가 동시에 고장나도 고객 서비스는 정상 동작
* 3. 현실에서 일어날 수 있는 문제를 반영하여 실헙 그룹에 도입
* 3. 현실에서 일어날 수 있는 문제를 반영하여 실험 그룹에 도입
** ex) 갑작스런 접속 폭주, [[서비스 거부 공격]]
** ex) 갑작스런 접속 폭주, [[서비스 거부 공격]]
* 4. 시험 그룹과 통제 그룹을 비교하여 가설 검증
* 4. 시험 그룹과 통제 그룹을 비교하여 가설 검증

Latest revision as of 15:56, 17 September 2020

Chaos Engineering

복잡한 분산 시스템 환경에서 시스템의 신뢰성을 확인하기 위해, 인위적인 혼돈(Chaos)을 가하여 시스템의 취약한 부분을 찾고 보강하는 방식의 엔지니어링 기법

  • 일종의 성능 테스트로, 무차별적인 부하 속에서 어떤 구성 시스템이 먼저 장애를 일으키는지를 확인할 수 있다.
  • 분산 시스템의 불확실성을 해소하기 위한 방안으로 주목받고 있다.

카오스 테스트 원칙[edit | edit source]

  • 정상적인 동작을 기반으로 가설을 만든다.
  • 다양한 실제적 사건들을 이용한다.
  • 프로덕션(운영) 환경에서 테스트한다.
  • 지속적 테스트를 위해 동작을 자동화한다.
  • 장애 반경을 최소화한다.

절차[edit | edit source]

  • 1. 시스템의 정상적인 상태를 정의
    • ex) CPU Load, Memory Utilization, Network I/O 등
  • 2. 통제 그룹과 시험 그룹 시스템이 정상적인 상태로 지속될 것이라 가정
    • ex) 서버 40대 중 10대가 동시에 고장나도 고객 서비스는 정상 동작
  • 3. 현실에서 일어날 수 있는 문제를 반영하여 실험 그룹에 도입
  • 4. 시험 그룹과 통제 그룹을 비교하여 가설 검증
    • ex) 가설이 기각되는 경우 시스템 보완

기술사 기출[edit | edit source]

같이 보기[edit | edit source]