아키텍트2009. 9. 27. 11:01
2009년 9월 25일, 코엑스 컨퍼런스룸에서 "클라우드 서비스의 사례와 현황 및 발전방향"에 대해 발표를 진행했습니다.

클라우드 컴퓨팅에 대해 세미나, 컨퍼런스가 많이 진행됐지만 실제 사례를 가지고 데모 형태로 진행한 적은 없는 것 같습니다.
이번 발표에서는 마이크로소프트의 Windows Azure Platform에 대한 개발 사례를 가지고 진행했습니다.
물론, 저는 지금 개발자가 아닙니다. 따라서, 아주 간단한 Hello Cloud라는 간단한 애플리케이션을 가지고 진행했죠.

클라우드에서 꼭 기억해야 할 내용은, 클라우드 애플리케이션의 개발은 지금 현재 개발하는 것과 크게 달라져서는 곤란하다는 것입니다.
클라우드 제공자가 플랫폼을 제공하여, 현재 가지고 있는 기술 기반으로 클라우드 서비스가 만들어져야 그 사용이 확대되는 것이지, 클라우드를 위한
새로운 개발 언어, API를 사용해야 한다면 그 사용이 확장되기는 어려울 것임이 자명하기 때문입니다.

또 한가지 강조하고 싶은 것은 애플리케이션은 나누어 보면 코드와 데이터로 이루어져 있습니다. 이 애플리케이션이 현재는 On-Premise, Hosting 형태로 위치하고 있지만, 여기에 새로운 Cloud라는 방식이 추가된 것이라고 이해하면 쉬울 것 같습니다.
그런데, 이 애플리케이션, 즉 코드와 데이터는 코드는 On-Premise, 데이터는 클라우드에 위치할 수 있는 것이고, 또는 코드는 클라우드, 데이터는 On-Premise에 위치할 수 있는 유연하게 구성이 가능하다는 것이죠. 물론 비즈니스의 속성에 따라 이렇게 구성될 수 있는, 또는 구성될 수 없는 상황이 있을 것입니다. 즉, 혼재된 하이브리드 형태의 아키텍처로 구성될 것이고, 클라우드에서 이런 하이브리드 아키텍처가 가능한 기능을 제공합니다.
바로, 인증의 통합, SLA, 인터넷 서비스 버스 등을 가능하게 하는 것이죠.

마이크로소프트의 Windows Azure Platform은 현재 가지고 있는 언어를 그대로, 사용하는 Framework 기술을 그대로 이용할 수 있도록 설계되어 있습니다. Visual Basic, C#, C++, PHP는 현재 가진 기술 그대로 활용이 가능하고, Java, Python, Ruby는 향후 지원될 예정입니다.

자, 그럼 어떤 원리로 가능해지는 것일까요? Windows Azure Platform은 클라우드 상의 운영체제 이기 때문입니다.
운영체제의 역할은
1. 하드웨어로 부터 추상화되어 있는 애플리케이션 실행환경을 제공
2. 접근 통제 기능을 가진 공유 파일시스템을 제공
3. 공유 풀을 이용한 자원 할당
4. 강력한 프로그래밍 모델 지원
5. 타 시스템과의 상호운용성을 제공하는데, Windows Azure Platform은 이런 속성을 모두 지원 합니다.

따라서, 마이크로소프트의 데이터센터에서 구동되는 하드웨어 등을 가용한 풀로 묶어서 관리해 주는데, 그 핵심에는 Fabric Controller라는 컴포넌트가 존재하게 되는 것이죠.

개발자는 Windows Azure tools for Visual Studio를 다운 받고, SDK를 설치하면 기존과 동일한 형태로 개발이 가능합니다. PHP 역시 유사하게 진행되죠. 이 방법에 대해서는 다음 글에 포스팅 해보도록 하겠습니다.

Posted by 조이트리