응용 프로그램 가상화 - 가상화의 또다른 측면
현재 IT 업계에서 나오는 가상화라는 단어는 꽤 많은 측면에서 사용되고 있습니다. 서버, 데스크톱, 저장소, 프로파일, 프리젠테이션, 응용 프로그램등이 바로 그것이죠. 지금까지 제 블로그에서 많이 언급했었던 가상화는 대부분이 서버 가상화에 속합니다. 서버 가상화에는 Windows Server 2008 with Hyper-V, VMWare, XEN과 같은 다양한 가상화 솔루션들이 제시되고 있고, 경쟁하고 있습니다.
오늘은 또다른 측면의 가상화에 대해서 논해볼까 합니다. 바로 응용 프로그램 가상화(Application Virtualization)입니다. 응용 프로그램 가상화에 대한 이야기를 드리기 전에 질문드리고 싶은 사항이 있습니다.
"응용 프로그램 가상화가 무엇일까요?"
감이 안오시나요? 얼마전 제가 잘아는 스터디 모임에서 비슷한 질문을 드렸었는데.. 답변이 매우 달랐었습니다. 그때 처럼 또하나의 힌트를 던져볼까요? 한대의 머신에서 여러 버전의 프로그램을 동작시킬 수 있나요? 예를 들어, Word 97, Word 2000, Word XP, Word 2007과 같이 다양한 버전의 프로그램을 한대의 머신에서 사용할 수 있느냐는 질문입니다. 대부분 불가능한 경우가 많습니다. 이유는 바로 DLL 파일들의 중복 또는 디렉터리의 겹침 문제, 레지스트리 중복등이 되겠죠. 회사의 다양한 업무를 하시다보면, 원치 않게 다양한 버전의 프로그램을 동시에 사용해야 하는 경우가 많습니다. 기존 솔루션과의 연계성, 이에 대한 업그레이드 이슈등 최신의 프로그램에서 다양한 업무를 보시고 싶으시겠지만, 쉽지 않죠. 그럼 해당 업무를 보시기 위해서 각각의 버전에 따라 PC를 가진다? 이것도 무리성이 있습니다. 비용이랑 직결되기 때문입니다. 물론! 해당 업무가 회사에 엄청난 이득을 주는 경우라면 틀리겠지만요 :) SBC(Server Based Computing) 환경을 사용하시는 경우에도 비슷합니다. 여러 버전의 프로그램을 하나의 터미널 서버에 설치하는 것도 앞서 말씀드린 여러 중복 이슈가 발생합니다.
"Eliminate DLL Hell"
응용 프로그램 가상화를 왜 쓰냐고 물었을 때, 가장 일반적으로 보여지는 답변입니다. 응용 프로그램 가상화는 각각의 응용 프로그램의 입장에서 봤을 때, 현재 한대의 PC를 전용하고 있는 것처럼 보여지게 해주는 기술입니다. 한대의 머신에서 응용 프로그램 가상화가 되어진 프로그램을 사용할 때, 해당 여러 프로그램은 자신이 한대의 PC를 전용하고 있다고 여기게 해주는 것이죠.
그럼 결국, 플랫폼 위에, 어떤 추상의 계층(Abstract Layer)가 있고, 이 위에 응용 프로그램이 올라가는 형태로 동작한다는 의미고, 이 추상의 계층에서 개개별 프로그램에 대한 고유의 환경을 꾸며주게 됩니다. 프로그램은 정상적으로 DLL, 레지스트리, 서비스, 각종 구성 파일, 데이터등을 읽어들이고, 쓰고, 수정하겠죠? 그렇지만 실제 운영 체제엔 영향을 주기 않는 형태입니다.
응용 프로그램 가상화는 이러한 형태로 동작하기 때문에, 깔끔하게 설치된 플랫폼 위에서 모니터링된 설치 작업을 진행해줘야 합니다. 이 시점에서 응용 프로그램 가상화 프로그램은 해당 응용 프로그램이 시스템을 어떻게 변경하는지 감지하고, 이를 저장하게 됩니다. 폴더의 변경, 새로운 파일의 설치, 변경, 레지스트리 변경, 서비스 설치등을 하나의 패키지 형태로 저장을 해주게 된다는 의미입니다. Microsoft의 응용 프로그램 가상화 솔루션인 SoftGrid의 경우, 이러한 작업을 시퀀싱(Sequencing)이라고 부르고 있습니다. 시퀀싱된 프로그램은 하나의 패키지 형태로 저장되게 됩니다. 클라이언트는 이러한 패키지를 스트리밍(Streaming)받아 사용할 수 있게 되죠. 시퀀싱된 프로그램은 해당 프로그램이 변경시킨 여러 부분에 대해서 저장하고 있고, 클라이언트가 사용시 이를 플랫폼 위 추상화된 계층으로 제공해줍니다. 이러한 추상화된 계층을 SystemGuard라고 부릅니다.
SystemGuard를 통해, 응용 프로그램은 실제 플랫폼 위에서 동작하는 것처럼 보여지게 된다는 사실은 이제 이해가 되셨죠? 간단하게 클라이언트측면을 살펴보셔야 하는데, 클라이언트에는 사용할 응용 프로그램이 설치되는 것은 아닙니다. 해당 클라이언트에는 응용 프로그램 가상화 서버에 연결하고, 가상화된 응용 프로그램을 사용하기 위한 클라이언트만 설치됩니다. 사용자의 데스크톱, 시작 메뉴, 퀵 런치등에 아이콘을 배치시키고, 이를 클릭하여 실행할 시, 사용자에게 가상화된 프로그램 패키지가 스트리밍(SoftGrid의 경우에는 RTSP 프로토콜을 사용합니다. 포트 번호 554)되고, 이를 통해 프로그램은 실행되게 됩니다. 실제 플랫폼에는 어떠한 변화도 주지 않은채 사용자는 프로그램을 일반적인 형태로 사용할 수 있습니다. 응용 프로그램이 개별적으로 고립되어진 형태이지만, 시퀀싱에 따라, 응용 프로그램 여러개를 하나의 슈트(Suite)형태로 배포하여, 상호 연동되게 만드실 수 있으며, 응용 프로그램간에 복사/붙여넣기등도 당연히 가능합니다. 또한 응용 프로그램뿐만 아니라, 브라우저에 내장되는 각종 솔루션에 대해서도 가상화할 수 있습니다.
이제 다시 첫번째 질문으로 돌아가보죠. 하나의 머신에서 이제 다양한 버전의 프로그램을 사용할 수 있겠죠? 개별 버전별로 패키징을 하게 되고, 이를 응용 프로그램 가상화 환경에서 사용한다면, 사용자들은 다양한 버전의 프로그램을 사용할 수 있게 됩니다. 터미널 서비스도 마찬가지입니다. 터미널 서비스 서버 자체가 응용 프로그램 가상화 환경에선 클라이언트가 되는 것이죠. 현재 Microsoft의 SoftGrid는 4.5 Beta가 가장 최신의 버전이며, 이는 베타 다운로드를 통해 사용해보실 수 있습니다.
응용 프로그램 가상화에 대해서 이제 조금은 이해가 되셨나요? 프로그램간의 충돌을 막고, 아주 깨끗한 환경에서 다양한 응용 프로그램을 문제없이 사용할 수 있게 해주는 응용 프로그램 가상화도 가상화 분야에서 떠오를 또하나의 토픽일 것입니다.
Comments
Anonymous
February 22, 2008
현업에서 얼마나 사용하게 될지 예측하는 것은 어렵지만, 꼬알라님이 보여주신 데모는 아직까지 제 머리 속에 생생하네요.. ^^ 가상화 기술들은 정말 매력있는 기술인 것 같습니다. 그리고 현재의 IT 환경이 가지고 있는 물리적인 문제들에 대한 최적의 대안이 되어 주는 것도 같고요.^^Anonymous
February 22, 2008
RTSP를 통해서 스트리밍 서비스로 제공이 된다면, 실제 클라이언트 쪽에 설치 되는 부분은 없이 서버 사이드에서 운영된다는 말인가요?? 그럼 SBC 환경에 이 SBC 서비스를 제공하는 서버쪽에서 제공하는 Application 환경이 기존의 SBC와는 다르게 독립적으로 구성되어 있다 라고 이해하면 되는건가요??? 만약에 제 생각이 맞다면 Application 구현 환경을 독립적으로 주는 이유는 무엇인가요?? (다양한 s/w 버젼 관리 이외에...)Anonymous
February 22, 2008
RTSP로 패키지가 내려가고, 이 패키지에 대한 압축 해제 및 System Guard를 통한 환경 구축, 프로그램의 실행은 클라이언트의 몫입니다. 서버는 패키지만 내려보내고 끝이죠. 단지 해당 패키지는 해당 클라이언트에 설치되는 것이 아닙니다. 이미 설치가 완료된 패키지를 서버가 줬기 때문이죠. SBC환경에서는 사용자한명 한명이 결국 터미널 서버에서 데스크톱을 가진셈이 되고, 동일하게 응용 프로그램 가상화를 사용한다고 생각하시면 됩니다.Anonymous
February 24, 2008
대충 웹 어플리케이션과 비슷한 형태가 되는 거군요...^^ 음... 이미 구성된 패키지를 스트리밍 형태로 클라이언트에 제공이된다고 이해하면 되겠네요...^^;; 그런데 웹 어플리케이션과 다르게 위의 말대로라면 해당 프로그램 모듈을 몽땅 사용자PC의 메모리에 올려서 실행해야하는데... 아니다면 사용자가 특정 기능을 사용하면 해당 모듈에 대한 것이 스트리밍 형태로 사용자 PC에 제공되고 이를 사용하는 건가요? 프로그램을 사용한다는게 일반 적인 미디어 파일처럼 시퀀스가 정해져서 제공 될 수 는 없을꺼 같은데...;;;Anonymous
February 24, 2008
글 내용 중 오타로 보이는 글자가 있어서 적습니다. 'SysteGuard를 통해...' 아마도.. 'SystemGuard를 통해...' 이겠죠?Anonymous
February 24, 2008
안혁님 지적 감사합니다. 수정했습니다. ^^Anonymous
February 25, 2008
일반적인 스트리밍과는 달리.. SoftGrid는 File Block이라는 부분을 나눌 수 있습니다. 시퀀싱시에 프로그램 전체에 대한 패키징 + Top 10 기능에 대해서 사용하는 시점이 있습니다. Top 10에 대한 모듈이 FB(File Block) 1으로 내려가게 되고, 나머지 부분은 사용중에 백그라운드로 내려가게 됩니다. 이는 시퀀싱 프로그램이 패키징시에 지정해주게 되죠.Anonymous
February 25, 2008
매번 다운로드 받는건 아니겠죠? 클라이언트쪽에서 해당 다운받은 모듈을 케싱할꺼 같은데... 그리고 접속 가능한 클라이언트 갯수도 조정할 수 있나요? 제가 볼때 system center랑 연동되는걸 봐서 할 수 있을듯한데...ㅎㅎㅎ 아... 예나 지금이나 많이 물어봐서 정말 죄송합니다...ㅋ 저두 일단 자료 한번 찾아보도록하겠습니다...^^Anonymous
February 25, 2008
아... 그냥 배포 환경이군요...;;; 대신에 라이센스 등을 서버쪽에서 관리 할 수 있는... 최초 스트리밍으로 받은 이후에는 클라이언트에서 실행되게 되는군요...ㅋ ㅎㅎㅎ 이제 이해 됐습니다... 소프트웨어 배포 이외의 뭔가 있을꺼 같은 솔루션인데... 뭘해야 할까낭... 생각 중입니다..^^Anonymous
February 25, 2008
네 매번 다운로드 받는것은 아닙니다. 스트리밍 받은 이후, 서버쪽 패키지가 변경되거나, 관리자가 만료를 설정하기전에는 클라이언트가 캐시합니다. 당연히 이런 데이터들은 System Center 제품군에서 관리가 되고요... 소프트웨어 배포라는 단순간 형태보단 클라이언트에게 응용 프로그램을 실행할 수 있는 환경을 통채로 제공한다는게 응용 프로그램 가상화의 목적입니다.Anonymous
June 23, 2008
제 블로그를 통해 가상화에 대한 많은 소식 및 의견을 전달해드리고 있는데요.. 오늘은 Virtualization 360이라는 제목을 가지고, 전반적인 마이크로소프트의 가상화 전략에Anonymous
July 20, 2008
2월 21일에 포스팅했던 Softgrid 관련 글 을 기억하시는지요? 하나의 플랫폼에서 여러 버전의 동일 응용 프로그램을 사용할 수 있는 응용 프로그램 가상화 기술을 제공하는 제품의Anonymous
October 05, 2008
Microsoft Desktop Optimization Pack(MDOP) 에 대한 몇가지 질문이 들어와서, 일단 먼저 간단하게 포스팅을 하려고 합니다. MDOP은 지난 9월 24일Anonymous
February 09, 2009
방금전 본사로부터 받은 소식을 바로 포스팅합니다. Microsoft는 Desktop에서부터 Data Center까지 전방위에 걸친 가상화 기술의 가치를 전달해드리고 있습니다. 지금까지Anonymous
February 23, 2009
오늘은 조금 다른 이야기를 살짝 해볼까 합니다. 한동안 Windows 7, Windows Server 2008 R2 베타 출시 이후, 이에 대한 다양한 기술, 가치, 기능 위주의 이야기를Anonymous
April 06, 2009
엔터프라이즈 데스크톱에 대한 관리 비용 감소 및, 생산성 향상, 그로 인한 TCO 절감을 꾀할 수 있는 Microsoft Desktop Optimization Pack(MDOP) 의Anonymous
February 22, 2013
Application 가상화에 대해서 몇 일전에 이야기를 듣고 자료를 찾다가 방문하게 되었습니다. 2008년에 이미 논의되었던 것을 모르고 있었네요! 좋은 정보 얻어 갑니다. 감사합니다. ^^