금요일, 10월 10, 2008

관리 시스템의 딜레마

관리 시스템이라는 것들은 망관리(NMS: Network Management System)라던지 서버관리(SMS: Server Management System), APM(Application Performance Management)류의 관리 시스템을 말한다.

이 바닥에서 일을 하다 보면 같은 일이라도 어렵게 만드는 무언가가 있다. 일종의 편견 같은 것들인데, 자세히 생각해 보지 않아서 생기는 일들이다.

1. 관리 시스템의 중요도는 그 관리 시스템이 관리하는 대상만큼이나 중요하다.

이건 이렇게 써놓고 보면 그런 것도 같긴 하겠지만 실제로 돈을 쥐고 있는 '갑' 입장에서는 그렇지 않을 수 있다. 예를 들어 무슨무슨 서비스를 위해 서버를 도입하고 네트워크를 설치했다고 하면 비용 절감을 위해 불필요한 것들은 최소한으로 하기 위해 노력할 텐데, 문제는 이 관리 시스템은 이도 저도 아닌 어중간한 위치라는 것이다.

먼저, 근본적으로 관리 시스템은 서비스 시스템이 아니므로 관리시스템의 availability는 낮아도 될 것이란 생각이 있을 수 있다. 일견 맞는 듯 해 보이는 이 말은 큰 모순이 있다. 관리 시스템의 availability는 관리 대상보다 높아야 하기 때문이다. 모든 서비스 시스템이 죽는 순간에도 관리 시스템은 살아서 시스템이 죽어간다는 것을 관리자에게 보고해야 하기 때문이다. 이걸 우습게 보고 관리 시스템을 구축했다간 없느니만 못한 관리 시스템이 될 것이다. 이게 무슨 말인고 하니, 정작 서비스 시스템이 죽었을 때, 그게 왜 죽었는지, 어떻게 죽었는지 알 도리가 없다는 것이고, 이것은 그 관리 시스템의 존재 가치가 없다는 의미다. 고로, 관리 시스템의 availability는 많이 양보해도 최소한 관리 대상 시스템 보다는 더 높아야 한다.

결국 돈이 더 들어간다는 것인데, 그 돈을 들일 '갑'을 설득하는 것은 그리 쉽지 않다. 아무리 좋은 관리 시스템을 들인다고 하더라도 장애확률만을 줄여줄 뿐 근본적으로 막지는 못하는 데다가 기준은 선형적으로 올라가고 비용은 비선형적으로 올라가기 때문이다.

2. black-box vs. clear-box

소프트웨어 개발할 때 모듈을 블랙박스로 놓고 인터페이스를 명확히 하여 불필요한 coupling을 없앰으로 소프트웨어 개선 시에 impact를 최소화하는 것은 귀가 따갑게 들어서 알고 있을 것이다. Clear-box는 블랙박스의 반대 개념으로 생각해본 용어이긴 하지만 결국 관리 시스템이란건 그렇게 만들어놓은 시스템을 관리자에게 투명하게 보여줘야 한다는 개념이다. 그렇게 해야 할 뿐더러 원인 분석 같이 장애나 문제 원인을 엮어서 분석을 해 줘야 할 필요도 있다. 마치 사람이 겉으로 보기엔 멀쩡한데 혈압 재고 피검사 소변검사를 거쳐 병을 알아내고 평소에 습관 등 모든 관련 정보를 종합하여 병을 찾아내고, 그 병을 해결해야 하는 의사 처럼 관리 대상에 발생한 문제에 대한 해결책을 내 놔야 하는 것이다.

여기에서의 딜레마는 블랙박스 형태로 설계된 소프트웨어(혹은 시스템)을 완전히 반대 개념으로 접근해야 한다는 것이고, 결국 그건 돈문제로 귀결이 된다. 겉으로 들어나는 서비스는 전혀 변화가 없는데, 특정 모듈을 변경할 경우 그것을 clear-box 형태로 관리하던 관리 시스템은 폭풍을 맞게 된다. 게다가 이건 구축 시에 들어가는 비용이 아니라 운용중에 발생하는 비용이므로 예산을 맞추기가 쉽지가 않다. 구축시에야 비용이 많이 들어가면 사업을 포기할 수도 있지만, 운용중에는 사업포기가 쉽지 않는 오도 가도 못하는 상황이 벌어지기도 한다.

3. Stability, Robustness, Integrity, Efficiency...

이 모든 것들이 관리시스템에는 필수 사항이다. 하나 하나가 제대로 하려면 애시당초 설계부터 개념적으로 완성이 되어야 하는 것들이다. Stability: 관리 대상 보다는 더 stable해야 한다. 앞서 설명한대로... Robustness: 모든 상황을 예측하긴 불가능하므로 어떠한 상황이라고 하더라도 대략 패낵상태로 가면 안되고 항상 'under-control'이어야 한다. Integrity: 오탐은 상황을 악화시킬 뿐이며 차라리 탐지가 불가능하다고 알려지느니만 못하다. Efficiency: 어떠한 상황이 오더라도 대상 시스템은 서비스가 최우선이므로 대상 시스템에 부하를 주지 않도록 설계되어야 한다.

어느 하나도 쉽게 넘길 수 없는 요구사항들이다. 모두 가능할 수 있지만 역시 비용문제가 곁들여지면 타협점을 찾아야 한다. 모두 만족시키는 타협점은 찾기 힘들다.

4. 잘해야 본전

만약 시스템에 별 문제가 발생하지 않았다면 본전치기, 시스템에 문제가 발생하면 손해다. 모든 관리 시스템은 잘 해야 본전인 일을 할 뿐이다. 하지만 너무 잘해도 문제가 될 수 있다. 가장 시간 관리를 잘 하는 사람은 한 번도 비행기를 놓치지 않은 사람이 아니란 것이다. 이 사람은 비행기를 놓치지 않기 위해 많은 시간을 비행기 앞에서 기다렸을 뿐이다. 만약 관리 시스템이 너무도 관리가 완벽하여 시스템에 사소한 문제도 발생하지 않았다면 그 시스템은 과잉투자되었다고 판단될 수 있고, 다음 투자 시기에 제대로 된 투자비를 받지 못할 수도 있다.

정작 가장 밸런싱이 잘 된 관리 시스템은 크지 않은 범위 내에서 장애가 발생하고 쉽게 해결하여 관리 시스템의 존재를 인식시켜줌과 동시에 대형장애는 발생을 하지 않아 관리시스템을 갈아치울 마음이 들지 않도록 하는 것이다. 이 밸런싱은 예술 분야에 속한다.

결론

늘 돈이 부족할 수 밖에 없고, 돈이 충분하다고 해도 완전해지지 않는 시스템이 바로 관리 시스템이다. 그렇다고 해서 암울한 것만도 아닌건 이게 필요하다는 것은 대략적으로 인식이 돼 있다는 사실이다. 희망적인 것은 관리 시스템이라는 것이 구조적으로 복잡하지 않다는 것이다. 이 사실은 위 요구사항들을 어느 정도 만족시켜줄 가능성을 높여준다.


...
..
.

더 암울한 분야는 보안 분야다.

댓글 없음: