개발머해니

[IT] 장애 대처 방안 (온라인 서비스, 배치 잡) 본문

백엔드

[IT] 장애 대처 방안 (온라인 서비스, 배치 잡)

왕행님 2023. 9. 10. 15:59
728x90
반응형

이번에 하루 넘게 복구 안된 운영 장애 상황에 대치하였습니다. 

금방 해결할 수 있는 문제였지만, 크게 아래 두 가지 요인으로 인해 장애 상황을 하루 넘게 지속하게 되었습니다.

1) 너무 안일하게 생각했던 점 : 다음주에 천천히 해결해도 되겠지라는 생각을 함
2) 빠른 상황판단 능력 미스 : 더 빠른 해결방안을 생각해내고 택하지 못함

 

그래서 이번 장애 경험에 대해 회고하고 적절한 장애 대처 방안에 대해서 정리해보려고 합니다.

 

크게 제가 운영에 반영하는 서비스는 2가지 유형으로 나뉩니다. 

1) 온라인(Online) 서비스 : 반영하자마자 실시간 적용되는 서비스
2) 배치(Batch) 서비스 : 배치 잡을 등록한 시간에만 작동하는 서비스

 

두 서비스의 성격에 따라 장애 대응 절차도 달라져야 하기에 분기해서 작성해보도록 하겠습니다. 

 


 

서비스 유형별 장애 처리 절차


온라인 서비스

1) 변경 전 프로그램 버전으로 원복
2) 소스 코드 수정 후 재적용

 

만약 바로 수정 가능한 장애라면 바로 2번 '소스 코드 수정 후 재적용'을 진행할 수도 있습니다. 

하지만 가능한 '개발-품질' 2가지 환경에서 모두 테스트가 완료된 후 '운영' 환경으로 이관하는 것이 적합하기에... 돌다리도 두드려봐야 안전한 것처럼 기존 소스로 원복해두고 수정 사항을 재 적용하는 방안이 적합해 보입니다.

 

 

배치 서비스

1) Batch 작업 Kill
2) 오류 원인 제거
3) Batch 작업 성격에 따라 즉시 재실행 또는 온라인 마감 후 재실행 

 

우선 정기적으로 돌고 있는 Batch Job이었다면 계속해서 에러 상황이 발생하지 않도록 기존 Job을 kill 해야 합니다. 그 이후로는 상황에 따라 2가지 방안이 있을 수 있을 수 있습니다. 

 

1) 임시방편으로 데이터 원복 하는 소스 코딩 후, 수시배치 작업 실행

2)  오류 원인 해결하여 소스 코딩 후, 정기배치 작업 재실행

 

이때, 추후 상황을 잘 예견하여 데이터 원복하는 소스를 직접 짜서 수시배치를 실행하는 방법이 빠를지 아니면 정보계 쪽에 연락해서 운영 데이터 원복을 요청하는 것이 빠를지 판단하는 능력이 중요하겠습니다.

 

 

신규 프로그램인 경우

 

원복할 기존 소스가 없는 경우입니다. 소스 원복이라는 쉬운 방법으로 장애를 막을 수 있는 방법이 없기 때문에 최대한 데이터를 초기화하고 장애 상황을 막을 수 있는 소스를 운영에 반영해야 합니다. 

 

 

 


 

 

장애 복구 골든타임 놓치지 않는 방법


장애 복구는 해결 능력 있는 사람에게!

 

초급 개발자인 제가 해결할 수 있는 범위인지 객관적으로 빠르게 파악하고 다른 분들께 도움을 받을 수 있어야 합니다. 해결하지 못하는 시간이 길어질수록 장애는 더욱 심각해짐을 잊지 말아야 합니다.

 

그래서 저는 장애가 발생하면 상황을 숨기거나 붙잡고 있지 않고, 최대한 고급 개발자 분들께 상황을 장애 상황을 공유하고 빠른 해결책을 조언받는 방향으로 진행해야겠다고 다짐했습니다😥 

 

 

 

장애 원인 파악보다 중요한 것은 서비스 정상화!

 

서비스 정상화가 가장 중요한 것임을 간과하면 안됩니다. 지금 발생한 장애 상황으로 인해서 피해범위와 규모가 더 커지지 않도록 '어떻게 하면 서비스를 가장 빨리 정상화할 수 있을까?' 라는 생각이 앞서야 합니다.

 

이번 장애 건은 영업점 직원들의 그룹 포탈 내에 본인이 결재해야 하는 콜백 메모 건수가 잘못 나가고 있던 건입니다. 따라서 대고객 채널에서 발생한 장애가 아니기에 천천히 해결해도 된다는 안일한 생각을 가지고 있었습니다. 하지만 영업점 직원들이 수시로 사용하는 그룹포털 내에 본인의 결재해야 하는 건수가 줄어들지 않는 상황이 지속되며 콜센터에 문의 전화는 급증하고 그로 인한 피해는 콜센터 직원들이 겪고 있었습니다.

 

그래서 아무리 대고객 채널이 아니라고 운영 장애는 최대한 빨리 해결해야 함을 깨달았습니다! 

 


 

IT기업에서 일하며 장애를 겪지 않을 수 없을 것입니다. 이번 경험을 통해 깨달은 가장 당연한 장애 대응 규칙을 되새기며 다시금 업무에 임해야겠습니다.

 

① 가장 먼저 장애 상황을 공유하고
② 빠른 해결책을 선택해
③ 서비스를 정상화 시켜야 한다

 

 물론 장애가 발생하지 않도록 테스트 코드를 꼼꼼히 짜고, 개발환경 뿐만 아니라 품질환경에서 테스트 또한 꼼꼼히 해야 함도 간과하면 안되겠습니다.

 

이상 초보 개발자의 운영 장애 발생을 통해 깨달은 점들 이었습니다.

 

728x90
반응형