PDC2008에 주목할 점: 클라우드 플랫폼 (1/3)
클라우드 컴퓨팅이라는 단어의 등장과 함께 마이크로소프트는 플랫폼 회사답게 클라우드 플랫폼이 무엇일 가에 대한 고민을 하고 있습니다. 여러 가지 생각을 구체화해서 이번 PDC2008에는 상세하게 전달해 줄 것을 기대합니다. 그 전에 최근 David Chappell이 기업 관점에서 클라우드 플랫폼에 대해 개념적으로 정리된 자료 (https://www.davidchappell.com/CloudPlatforms--Chappell.pdf)를 만든 것이 있어 공유 합니다.
클라우드 플랫폼을 글자 그대로 해석하면 개발자가 클라우드 내에서 실행되거나 클라우드에서 제공하는 서비스를 이용해 애플리케이션을 만들 때 필요한 기술 및 도구 집합이라 볼 수 있습니다. 비슷한 단어로는 요구에 따라 제공하는 플랫폼 (On-demand platform), 서비스로서 플랫폼 (platform as a service, PaaS) 등이 있습니다.
클라우드 서비스가 필요한 지에 대해 어느 범위 내에서 동의가 있다는 것을 전제로, 어떤 것을 클라우드 플랫폼에서 포괄할 수 있는 지는 어떤 클라우드 서비스가 있는 지를 생각해 본 다음 보도록 하겠습니다.
위의 그림에서 중간에 있는 구름을 중심으로 Cloud와 On-premise 두 가지로 나뉘어져 있습니다. On-premise는 응용 프로그램을 개발하기 위한 전통적인 방법으로 사용되는 운영체제, 데이터베이스, 파일 시스템, 서버, 개발 도구 등이 외부 네트워크와 단절되어 존재하는 기업 내부 환경을 지칭합니다. Cloud는 기업 네트워크 망을 넘어서 공개된 네트워크를 통해 오고 가는 공간을 지칭하며, Naver/Daum을 통해 검색 결과를 보거나, Virtual Earth를 통해 지도 정보를 얻는 것이 예입니다.
첫 번째 경우는 기업 내부 사용자가 SaaS 서비스 제공 회사에서 제공한 클라이언트 프로그램 혹은 브라우저를 통해 응용 프로그램을 이용하지만, 그 핵심 데이터 혹은 서비스는 Cloud 공간을 경유해 SaaS 서비스 제공자로부터 받아오는 방식입니다. 다른 말로 완성된 서비스 (Finished Service)라고도 하며, 대표적인 예가 salesforce.com 입니다.
두 번째 경우는 기업 내부 사용자가 응용 프로그램을 사용하지만, 그 응용 프로그램의 일부 기능 혹은 동작은 클라우드에 있는 서비스를 이용하는 것입니다. 보통 내부 사용자는 이런 서비스가 기업 내에 있는 기능인 지, 외부 클라우드에 있는 기능인 지 모르는 경우가 많습니다. 추가적인 서비스 (Attached Service)라고도 하며, 예로는 메일을 사용할 때 메일 클라이언트 프로그램과 메일 서버는 기업에 있지만 메일을 필터링 하거나 보관하는 것은 외부 서비스를 사용하는 것이 있습니다. Apple의 iTunes와 같이 클라이언트 프로그램이 동작하면서 필요한 콘텐트는 클라우드를 통해 얻는 것도 비슷한 유형입니다.
세 번째 경우는 기업 내부 사용자가 아니라 개발자가 중심입니다. 개발자가 응용 프로그램 작성 시에 필요한 자원을 기업 내부에서 얻을 수도 있지만, 클라우드에서 제공하는 서비스를 이용하는 경우입니다. 이 경우에 클라우드에서 제공하는 플랫폼을 클라우드 플랫폼이라고 합니다. 따라서, 클라우드 플랫폼은 개발자를 위해 필요한 서비스 및 제반 환경이라고 볼 수 있습니다.
그러면, 클라우드 플랫폼에는 어떤 서비스가 있고, On-premise보다 어떤 혜택을 기대할 수 있을까요?