클라우드 컴퓨팅에 적합한 애플리케이션 패턴 중의 하나가 “예측하지 못하는 주문 폭주” 입니다. 예를들면, 미국의 슈퍼볼 게임 기간에 피자 주문량이 폭주하는 것이나, 우리나라에서 월드컵 기간에 치킨 주문이 폭주하는 등이 하나의 예가 되겠죠.
Windows Azure를 사용하는 고객 중에 도미노피자가 있습니다. 올해 1월에 치러진 슈퍼볼 (일요일)에 도미노피자가 시스템 장애 없이, 특별한 장비 투자 없이 성공적으로 추가적인 주문 트래픽을 소화할 수 있었던 것도 바로 클라우드 컴퓨팅, 그 중에서도 마이크로소프트의 Windows Azure를 활용했기 때문이라는 사실, 잘 모르셨죠?
또 하나, 고객 분들이 자주 묻는 질문중의 하나가 마이크로소프트의 Windows Azure, SQL Azure가 뭐가 대단한 거냐? 라는 질문입니다. 마이크로소프트의 Windows Azure, SQL Azure는 하나의 운영체제 입니다. 예를들면, SQL Azure를 이용해서 하나의 데이터베이스를 만들었다고 가정하면 이 데이터베이스가 전 세계의 마이크로소프트 Azure 데이터센터에 분산 배치되겠지만 고객에게는 하나의 인스턴스로 보인다는 것이죠. 즉 하나의 데이터베이스를 쓰는 것과 동일하다는 겁니다. 전세계 어디서 접속하든지 동일한 데이터베이스를 사용할 수 있게 되는 거고, 한 곳의 데이터센터에 문제가 생겨도 전혀 문제없이 데이터 접근이 가능해진다는 것이죠. 이런 모든 일들이 자동화되어서 서비스 라이프 사이클 관리가 된다는 것이 차이점입니다. 진정한 의미의 분산 컴퓨팅 플랫폼이라는 말이죠.
하지만 아직 더 개선되어야 하는 부분은 역시 남아 있습니다. 기존 Windows Server에서 구동되던 애플리케이션을 Windows Azure로 올리기 위해서는 설정 부분과 Web Role (프리젠테이션), Worker Role (비즈니스 로직)으로 코드를 분리하는 작업이 필요합니다. 물론 크게 복잡하지 않아서 어렵지 않지만 손이 가야 한다는 것이죠. 이를 개선하기 위해서 기존 애플리케이션을 Azure로 바로 올릴 수 있도록 하는 기능이 올해 말 정도에 추가될 예정입니다. 하지만, 이렇게 될 때 Windows Azure의 Scalability나 특정 네이티브 기능의 혜택을 보지 못하게 되긴 하지만요. 당연히 그렇겠죠? 분산 컴퓨팅 환경에 맞도록 개발되지 않았기 때문이죠.