본문 바로가기

Dev.../소프트웨어 아키텍처

[SA강좌] Part 2-11 가용성에 대한 프로파일

가용성(Availability)

표 Ⅲ-8. 가용성 프로파일의 예

Category 

시나리오에 대한 설명

시스템 오류 발생

FTP 사이트로 사용자가 파일을 요청하자 FTP 서버가 down되었다. 시스템은 또 다른 파일 요청에 대한 처리를 10분 동안 중단시켜야 한다.

주문 처리

주문 처리 요청이 들어왔을 때 실패하면 시스템은 10분 동안 처리를 중단시킨다. 그 사이에 시스템 운영자가 주문 처리를 다시 시작시킬 수 있다.

주문 처리

사용자가 매 10분 단위로 주문 처리를 요청할 수 있으며 이 요청은 큐에 저장하여 처리한다.

주문 처리

하드웨어 문제가 발생하면 시스템은 정지되며 5분 안에 주문을 다시 처리한다.

가용성은 시스템에 오류가 발생하면 어떤 결과가 발생하는가에 대한 것이다. 시스템의 오류는 시스템이 더 이상 정해진 규정대로 서비스를 제공하지 못할 때 발생한다.

가용성에서 주된 관심사는 시스템의 오류를 어떻게 감지하는가, 얼마가 시스템 오류가 자주 발생하는가, 오류가 발생했을 때 무슨 일이 일어나는가, 시스템은 제 기능을 하지 못한 채 얼마나 오래 지속되어야 하는가, 오류를 어떻게 막을 수 있는가? 오류가 발생했을 때 어떤 통보를 받을 수 있는가이다.

오류(failure)와 결함(fault)는 구별되어야 한다. 결함은 수정되지 않으면 오류가 뵐 수 있다. 즉 오류는 시스템의 사용자가 관찰 가능한 것이지만 결함은 사용자가 관찰할 수 없다. 결함이 관찰 가능하면 오류가 된다. 예를 들어 결함은 계산시 잘못된 알고리즘을 선택하는 것이다. 결과적으로 잘못된 계산이 발생하고 시스템은 오류가 발생하게 된다.

시스템에 오류가 발생하면 이 오류를 수정하는데 시간이 얼마나 걸리는가가 중요하다. 시스템에 오류가 발생한 것을 사용자가 관찰하고 오류가 수정되는 시간은 사용자가 오류를 더 이상 관찰 할 수 없는 시간이다. 이것은 응답시간이 약간 지연되는 것일 수도 있고 어떤 사람이 산에 올라가서 장비를 고칠 때까지 걸리는 시간일 수도 있다.

표 Ⅲ-9. 가용성 시나리오 작성 지침

 

설명

이벤트가 발생하는 장소

결함이나 오류가 외부에서 발생했는지 내부에서 발생했는지를 구별해야 한다.

예상하지 못했던 메시지가 외부에서 들어온다.

이벤트가 어떻게 시스템에 도착하는가

다음 중에 하나의 결함의 발생할 수 있다.

Omission: 모듈이 받은 입력에 응답하는데 실패했다.

Crach: 모듈이 되풀이해서 입력에 응답하지 못한다.

Timing: 모듈이 응답하지만 너무 빠르거나 너무 늦다.

Response: 모듈이 부정확한 값으로 응답한다.

이 메시지를 처리하는 모듈이 응답시간이 너무 늦다.

시스템

가용성이 높아야 하는 시스템 자원으로 프로세서, 커뮤니케이션 채널, 스토리지 등이다.

커뮤니케이션 채널

환경

오류나 결함이 발생했을 때 이 오류에 대처하는 시스템의 상태를 가리킨다. 예를 들어 시스템이 이미 어떤 결함을 가지고 있었고 비정상적인 모드에서 동작했다면 시스템을 꺼야 한다. 그러나 오류가 발생한 것이 처음이라면 응답시간이 약간 느린 것이 더 나을 수도 있다.

시스템은 정상 모드로 동작해야 한다.

응답

오류가 발생했을 대 시스템의 반응. 예를 들어 오류를 기록하고 사용자가 오류가 발생했음을 알리고 비정상적인 모드로 시스템을 변경하고 외부 시스템과 연결을 차단하는 것 등이다.

시스템은 기대하지 않았던 메시지가 도착했음을 운영자에게 알리고 정상적으로 동작해야 한다.

응답에 대한 측정치

응답에 대한 측정치는 사용성의 비율로 표시하거나 수리하는데 걸리는 시간, 시스템이 가용한 시간 등으로 표시한다.

비정상적인 메시지가 도착해도 시스템이 다운되지 말아야 한다.