클라우드 컴퓨팅에 대한 글, 기사는 계속 쏟아져 나오고 있습니다. 사용하는 용어도 참 다양하지요. 클라우드컴퓨팅, 유틸리티컴퓨팅, PaaS(Platform as a Service) 등의 용어가 주로 나오지요.
"마이크로소프트의 Gianpaolo의 블로그에서 가져왔습니다."
그런데 "클라우드 컴퓨팅"이 사용될 때 아키텍처 측면에서는 어떤 변화가 있을까요?
1. "직접 해라" vs "서비스로 쓰자"
- "직접 해라"의 경우는 컨트롤을 할 수 있지만, 반면에 규모의 경제 효과는 볼 수 없겠지요. 모든 비용을 혼자 지 불해야 합니다.
- "서비스로 쓰자"의 경우는 규모의 경제는 확실히 얻을 수 있지만, 직접 제어할 수는 없는 거죠
즉, "제어"와 "규모의 경제" 사이의 Trade Off이 있다는 거죠
2. "누가 구축할거냐"와 "누구의 장비에서 운영할 거냐"
- "누가 구축할거냐" (직접 개발하는 방식 vs 구입); 기능의 컨트롤에 영향을 미치는 거죠. 직접 구축한다면
기능을 넣고 빼는 것을 맘대로 할 수 있지만, 서비스 제공자로 부터 소프트웨어를 획득하는 거라면 제공자가
부여하는 것밖에 사용 못하겠지요.
- "누구의 장비에서 운영할 거냐"; SLA의 컨트롤에 영향을 미칩니다. "On Premise" 방식으로 직접 설치하고
운영한다면 SLA에 대한 모든 제어가 가능하겠지요. 물론 SLA에 대한 제어가 가능하다고해서 높은 SLA를
제공한다거나, 클라우드 방식보다 더 잘한다는 보장은 없지만요. ^^ 결국 SLA에 대한 조절은 가능하다는
것이고, 클라우드 방식을 사용한다면 SLA를 서비스 제공자가 주는대로 사용해야 겠지요.
3. 가능성 맵 (map of possibilities)
위의 2가지 요소가 왜 중요할까요? 이 두가지의 요소를 통해 엔터프라이즈가 IT 자산을 사용할 수 있는 가능성 맵을 만들어볼 수 있기 때문이지요.
엔터프라이즈는 위의 2가지 요소에 비추어 "기능의 컨트롤", "SLA 컨트롤"을 규모의 경제를 활용하면서 얻기를 원하고 있다는 거죠. 맵 상의 하나의 선택이 다른 것보다 더 좋다는 것을 의미하는 것은 아니고 비즈니스 상황 및 규제 등에 따라 다르게 선택될 수 있는 것입니다.
아래의 그림을 통해 IT 자산의 몇 가지 유형을 볼 수 있습니다. 맨 왼쪽 위에 보면 '직접 설치된 패키지 소프트웨어'를 볼 수 있는데 직접 설치하고, SLA에 대한 모든 제어가 가능하지만 기능에 대해서는 제한적으로 선택이 가능하고, 규모의 경제를 통해 아쉬움을 달래는 것이죠. 소프트웨어 벤더의 경우 수백, 수천의 고객에게 패키지를 판매함을 통해 직접 고객이 개발하는 것보다 더 저렴한 금액으로 소프트웨어를 공급하게 됩니다. 맨 아래의 왼쪽 영역이 "직접 개발하고 직접 운영하는 소프트웨어" 영역 인데, 뱅킹 시스템을 예로 들어보지요. 제어권 및 기능을 모두 가지고 있지만 규모의 경제는 실현 못하죠. 개발 및 운영에 대한 모든 비용을 혼자 감당합니다 오른쪽 맨 위 영역이 바로 'SaaS' 입니다. 규모의 경제 효과가 높지만 기능 및 SLA에 대해서는 한계가 존재하는 거죠. 중간의 칼럼 (호스팅과 클라우드 컴퓨팅)은 직접 구축 및 운영에 비해 SLA 제어에 대해서는 제어권이 약화되지만 규모의 경제 효과는 증가되는 것을 볼 수 있죠.
4. 가상의 시나리오
이 시나리오 에서는 몇 개의 IT 자산은 원하는 독자적인 시스템을 직접 구축 하고 몇 개는 시장에서 통용되는 되는 방식을 그대로 사용하는 것입니다. 다시 말하면, 차별화가 필요한 자산은 집중적인 투자를 하고 (의료 진단 소프트웨어 등), 아주 일반적인, 즉 차별화 되지 않는 자산 (CRM, 이메일 등)은 시장에서 구입하여 사용하는 것이죠. 게다가 IT 자산은 직접 운영하고 보유하여, IT 환경에 대한 SLA를 직접 통제하는 방식을 의미합니다.
이런 형태의 그림이 아주 일반적이지요. 하지만 대부분의 CIO 분들은 이런 형태가 이상적이지만, 너무 많은 예산이 차별화 되지 않는 솔루션에 사용된다고 이야기 합니다.
결국 바라는 모습은 이런 겁니다.
이메일과 CRM은 차별화 되기 쉽지 않고, 규모의 경제를 보장 받으면서 SLA와 기능에 대해 Trade Off하는 거죠. 직접 개발된 리거시 HR 시스템의 경우 기능면에서 규모의 경제를 보장 받는 형태로 전환되면서 SLA에 대한 보장 및 데이터 보안이 필요하다면 내부에서 운영되도록 할 수 있습니다. 의료 진단 소프트웨어의 경우는 차별화되어 경쟁력을 보유할 필요가 있으므로 기존 보다 2배 정도의 예산을 투자하여 뛰어나게 개발하는 겁니다. (다른 쪽에서 비용을 절감했기에 여기에 더 많은 예산을 쓸 수 있다는 거죠)
목적은 분명합니다. 컨트롤을 유지하면서 규모의 경제를 보장 받는 형태로 자산을 배치시키는 방향을 취하면 됩니다.
케즘을 넘어서 ...
말이 쉽지 사실 직접 행동하는 건 쉽지 않죠.
Geoffrey A. Moore의 책에서 나온 말을 인용해보죠. 소프트웨어를 넘어서 클라우드로는 "케즘을 넘어서..."와 비슷합니다. 이 케즘은 아키텍트가 마스터해서 넘겨야 하는 거죠. 아키텍처가 당면한 도전과제는 다양합니다.
첫째, 아이덴티티
둘째, 관리
셋째, 데이터 입니다.
아이덴티티의 경우 크로스 바운더리상의 인증과 권한, 싱글 사인 온, 아이덴티티 라이프 사이클 등이며 관리는 방화벽을 넘어서 SLA 모니터링과 소프트웨어 액션 트리거링 (Halting, Pausing, Throttling) 할 것인지에 대한 것과 데이터의 소유권, 데이터의 이전 및 리포팅과 프라이버시 등입니다.
클라우드 컴퓨팅에 대해서 모든 답을 다 가지고 있는 사람은 없을 것입니다. 여러가지 방향으로 좋은 아키텍트 및 해결책을 찾으려고 노력하고 있다는 것이 적절한 표현일 것입니다. 앞으로는 위에 언급한 3가지 도전과제에 대해 좀 더 상세히 다루어 보려고 합니다. 그리고, 마이크로소프트가 공개한 S+S 어플리케이션 LitwareHR2에 대한 아키텍처 및 코드에 대한 부분을 다음 글에 다루어 보도록 하겠습니다.
"마이크로소프트 Gianpaolo의 블로그에서 가져왔습니다."
'분류 전체보기'에 해당되는 글 412건
- 2008.07.16 클라우드 컴퓨팅의 아키텍처가 가져올 임팩트 살펴보기
- 2008.07.16 MSDN에서 소프트웨어 플러스 서비스 아키텍처 사이트를 만나세요
- 2008.07.15 아직도 SaaS 하면 멀티태넌시를 이야기하시나요?
- 2008.07.11 Microsoft SQL Server 2008, 8월에 정식 출시 예정입니다.
- 2008.07.11 제4회 마이크로소프트 호스팅 세미나 - 자료 공유합니다.
- 2008.07.10 가상화는 무엇이고, 왜 나오게 되었을까요? 2
- 2008.07.04 마이크로소프트 빌게이츠 회장님의 인생 비디오
- 2008.07.03 세상에서 가장 소중한 선물
- 2008.07.02 PHP를 Windows Server 2008에서 구동하기
- 2008.07.02 제4회 마이크로소프트 호스팅 세미나를 개최합니다.
엔터프라이즈, 솔루션 및 서비스를 개발하는 ISV, 호스팅 업체, 소프트웨어와 서비스의 마켓플레이스를 만들어 시장에 진출하려고 하는 사업자 등은 소프트웨어와 서비스를 바라보는 시각이 조금씩 다르겠지요. 바로 이 다양한 관점의 사업자들이 참고할 수 있는 그런 사이트를 오픈했답니다. 4개의 섹션으로 나뉘어 있지요.
첫째, S+S를 구축하는 방법 (Build)
둘째, 구동하는 방법 (Run)
셋째, 소비하는 방법 (Consume)
넷째, 수익을 만드는 방법 입니다. (Monetize)
아직은 초기 단계 입니다. 피드백을 주시면 제가 본사와 커뮤니케이션하여 반영하도록 하겠습니다.
그런데, Multi-Tenancy는 SaaS 어플리케이션이 반드시 가져야 하는 특징일까요?
서비스 제공자 입장에서는 멀티태넌시가 중요한 요소이지만, 고객 입장에서는 전혀 중요하지 않죠. 우리가 전기를 사용할 때 이 전기를 어떤 회사의 장비로 만들었는가에 관심이 없는 것과 마찬가지죠. 220V 전기를 공급 받기만 하면 되는 것이죠. 그렇지 않나요?
제가 아주 나이스한 레스토랑에 갔어요. 아주 맛있는 음식을 주문해서 테이블에 서빙이 됐죠. 요리사 몇 명이 만들었고, 몇 년된 후라이팬을 썼든, 잘 갈아진 칼을 썼든 말든 전혀 상관 없죠. 나는 요리사가 아주 정성을 다해 만들었다고 생각하고 음식을 즐기면 그만인거죠.
즉, 서비스를 사용하는 사람의 관점에서는 서비스의 질 (맛이 좋은지 없는지), 서비스를 내가 원하는대로 조절할 수 있는지 (간을 좀 싱겁게 하든지, Well-done으로 익히든지), SLA (음식이 몇 분 정도 기다린 후 나왔는지), API (내가 직접 가지고간 와인으로 즐길 수 있는지 )등이 중요한 것이라는 거죠.
물론 서비스 제공자 입장에서는 멀티태넌시를 배우고, 마스터하고 적용하는 것이 아주 중요한 항목임에 틀림 없지만 마케팅 브로셔에 멀티태넌시를 보장한다는 등의 메시지는 고객 입장에서는 전혀 관심 없는 내용이라는 것입니다. 즉 SaaS 구매자 입장에서는 서비스의 질, SLA, 통합 옵션 (API)와 비용이 가장 중요한 항목이라는 것이죠.
멀티태넌시가 궁극적으로 달성하고자 하는 목적은 규모의 경제 입니다. 멀티태넌시와 고립(Isolation)은 고객의 요구에 따라 다르게 적용 가능한 내용입니다. 가상화 역시 어플리케이션의 아키텍처를 변경하지 않고 규모의 경제효과를 얻을 수 있는 새로운 방법 입니다. 상황에 맞는 최적의 방법을 선택해야 겠지요.
감사합니다.
마이크로소프트의 월드와이드 파트너 컨퍼런스에서 마이크로소프트 서버 & 툴 비즈니스를 총괄하는 Bob Kelly는 다음달에 MSSQL 2008 정식 버전이 출시될 것이라고 밝혔습니다. 아주 기쁘게도 가격은 기존 2005와 동일하다고 합니다. 좋은 소식이죠?
또한, 마이크로소프트의 End-to-End 가상화에 대한 Launch가 9월에 예정되어 있다고 밝혔습니다. 한국에서는 9월 중순 이후로 잡혀 있는 것으로 확인되고 있는데요,정확한 날짜와 장소가 확정되면 제가 다시 글을 올리도록 하겠습니다. 전 세계에 있는 서버 중의 10% 정도가 현재 가상화 되어 있다고 합니다. 국내의 경우는 그 비율이 더 적어져서 3% 정도가 가상화 되어 있다고 하네요. (정확한 수치는 아닙니다. ^^)
앞으로 가상화로 구성된 서버의 수가 늘어날 것이고, 그 서버들은 마이크로소프트 가상화를 이용한 서버일 것으로 예상됩니다. 경쟁사의 서버 가상화에 비해 1/3 가격으로 구성이 가능하기 때문이죠. 또한, 관리툴인 System Center 제품군은 물리적인 서버 뿐 아니라 가상 머신들까지 하나의 도구로 관리가 가능하고, System Center Operation Manager와 연계되면 Linux, 오라클, 아파치, MySQL 등의 이 기종 서버 및 DBMS 까지 관리가 가능하기 때문에, 가상화에서 가장 중요시되는 관리 측면에서 마이크로소프트가 가지는 이점이 많은 것이 분명하기 때문이죠
많은 분이 참석하셔서 열정적으로 질문하시는 모습에 큰 감명을 받았습니다.
어제 설명드린 발표자료 공유합니다. 참고하세요.
가상화에 대해 설명해 보시겠습니까? 가상화에는 서버 가상화만 있을까요?
아니 가상화가 왜 등장하게 되었을까요?
이렇게 프로그램과 운영체제, 하드웨어 간의 밀접한 연결고리를 떼내서 서로 독립적인 존재로 만들어주면 아주 유연하게 IT를 사용할 수 있게 되지 않을까요? 이런 Concept을 Dynamic IT라고 이야기 합니다.
Dynamic IT를 가능하게 하는 핵심 기술이 바로 가상화가 되는 것이죠. 그렇다면 가상화는 어떤 것들이 있을까요? 우리가 익숙한 환경이 바로 클라이언트, 즉 데스크탑이 있고 어플리케이션, 서버 등이 대표적이지요. 이런 각각의 단위마다 가상화가 가능합니다.
예를들면 "윈도우 서버를 10분 안에 바로 사용했으면 좋겠어. 기술 지원에 관해 엔지니어들이 접하는 다양한 질의 응답을 이 웹사이트에서 구동해야 하거든", "Visio 어플리케이션을 지금 바로 사용했으면 좋겠어. 조직도를 그려야 하는데 그리기가 영 쉽지 않네. ER 다이어그램 역시 ...", "1번 웹서버에 요청이 너무 많아. 새로운 서버를 바로 추가해야 하는데 어쩌지? 다운 될 것 같아", "우리 회사는 엑셀,파워포인트 2003을 사용하고 있는데 고객이 2007로 파일을 보내왔네. 도저히 읽을 수가 없어. 2003으로 다시 보내달라고 하기 좀 그런데. 근데 나는 2003도 필요하고 2007도 필요한데. 쩝" 이와 같은 다양한 요구를 바로 수용 가능하여 직원의 업무 생산성을 높일 수 있는 기술, 이것이 바로 가상화 입니다.
세상에서 가장 소중한 선물 (부제: 귀중한 시간을 사용하는 세 가지 방법)
현재 속에 살기
행복과 성공을 원한다면
바로 지금 일어나는 것에 집중하라
소명을 갖고 살면서
바로 지금 중요한 것에 관심을 쏟아라
과거에서 배우기
과거보다 더 나은 현재를 원한다면
과거에 일어났던 일을 돌아보라
그것에서 소중한 교훈을 배워라
지금부터는 다르게 행동하라
미래를 계획하기
현재보다 나은 미래를 원한다면
멋진 미래의 모습을 마음속으로 그려라
그것이 실현되도록 계획을 세워라
지금 계획을 행동으로 옮겨라
정말 공감하게 되는 글입니다. 현재 속에 살기라는 말의 의미는 과거에 일어났던 일, 내가 실수한 일을 걱정하거나 미래에 벌어질, 즉 나의 범위 밖에 있는 일을 걱정하면서 시간을 낭비하지 말라는 말입니다. 어릴 때 내가 어머니가 방청소 하는 것을 대신 하겠다고 자발적으로 나서서 할 때는 그것에 열중하는 것만으로 행복했잖아요. 일할때도 열중해서, 집중해서 하면 행복해진다는 것이죠.
그렇지만 그것만으로 충분하지 않습니다. 과거에 잘못한 실수를 그냥 넘어가지 말고, 그것에서 배워 비슷한 실수를 하지 않으면서 열심히 해야 한다는 것입니다.
여기까지 하는 것도 쉽지 않지만 정말로 행복을 느끼면서 살고 싶다면 미래에 내가 하고 싶고, 되고 싶은 것에 대한 것을 마음에 그리고, 그리는 것만으로 끝나는 것이 아니고 계획을 세운 후 바로 행동에 옮겨야 한다는 것입니다. 좋은 말이죠? 실천이 어렵다고요? 한 번 해보세요. 불가능할만큼 어려운 이야기가 아닙니다.
앞의 글에서 PHP 관련하여 적어보았습니다. FastCGI 설정하는 법과 PHP를 설정하는 법을 살펴보겠습니다.
서버관리자 - 롤 서비스에서 CGI를 선택하세요. CGI와 FastCGI 서비스를 모두 설치합니다.
이제 PHP 엔진이 필요하죠. http://www.php.net/downloads.php를 클릭하셔서 non-Thread safe 버전의 PHP를 다운 받으세요. non-Thread safe와 FastCGI를 함께 사용하셔야 최적의 성능을 보장받을 수 있습니다. Thread safety check를 할 필요가 없기에 시간이 단축되는 것이죠.
1. 파일을 압축해제하세요. C:\PHP 디렉토리를 만드시는 것이 좋습니다. 또한, php.ini-recommended를 php.ini로 파일명을 바꾸세요
2. php.ini 파일을 오픈 한 후 몇 가지 파라미터의 주석을 해제하세요.
- fastcgi.impersonate = 1
- cgi.fix_pathinfo = 1
- cgi.force_redirect = 0
- open_basedir 설정 (웹 사이트 컨텐츠가 있는 폴더나 네트웍 경로)
3. PHP가 제대로 설치되었는지 확인을 위해 명령문에 아래와 같이 입력
C:\PHP> php -info
IIS가 PHP 어플리케이션을 처리하기 위해 처리기 매핑(Handler Mapping)을 설정해야 합니다. 주요 목적은 PHP 파일의 요청을 FastCGI를 통해 PHP 엔진으로 보내는 것입니다.
요청 Path: *.php
모듈: FastCGIModule
실행파일: C:\php-cgi.exe
이름: PHP via FastCGi (원하는데로 설정)
대화상자에서 OK를 선택하시면 됩니다.
이후에 c:\inetpub\wwwroot 폴더에 phpinfo.php 파일을 하나 생성합니다.
내용: <?php phpinfo(); ?>
브라우저를 연다음 http://localhost/phpinfo.php를 입력하면 설정이 제대로 되었다면 php에 대한 정보를 보여주는 화면이 나옵니다.
이제 다 끝났습니다. 마지막으로 PHP와 FastCGI 리사이클링을 위한 설정을 해보죠
FastCGI는 native PHP 리사이클링이 이루어지기 전에 php-cgi.exe 프로세스들을 리사이클링 시킵니다. 바로 이 리사이클링은 설정 프로퍼티, instanceMaxRequests에 의해 조절됩니다. 이 값은 FastCGI가 리사이클링 되기 전에 몇개의 요청을 처리할 것인지를 정하는 것이죠. PHP 역시 비슷한 설정값을 가지고 있는데, PHP_FCGI_MAX_REQUESTS가 바로 그것입니다. 만약 instanceMaxRequests의 값을 PHP_FCGI_MAX_REQUESTS의 값보다 작거나 같게 설정하면 PHP의 리사이클은 절대 발생하지 않을 것입니다.
만약, 파라미터 값이 설정되지 않으면 디폴트 값을 사용하게 됩니다.
instanceMaxRequests: 200, PHP_FCGI_MAX_REQUESTS: 500 (대부분의 PHP 빌드에서)
파라미터 값을 설정하려면 아래와 같은 명령문을 사용하시면 됩니다.
c:\>%windir%\system32\inersrv\appcmd set config -section:system.webServer/fastCGI /[fullPath='c:\{php_folder}\php-cgi.exe'].instanceMaxRequests:10000
c:\>%windir%\system32\inersrv\appcmd set config -section:system.webServer/fastCGI /
[fullPath='c:\{php_folder}\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']
www.iis.net에서 참조
등록하기 (이 링크를 눌러주세요)
7월 10일 섬유센터 17층 세미나실에서 제4회 마이크로소프트 호스팅 세미나를 개최합니다.
이번 세미나는 KIDC와 함께 진행합니다. 이후에도 주요 IDC와 함께 세미나를 진행할 계획이며, 각 IDC의
입주사가 아닌 IDC, 호스팅 업체, 고객사도 참가 가능합니다.
Windows Server 2008, IIS7 웹서버, 실버라이트를 포함하여 호스팅 자동화 솔루션에 대한 발표 및 데모도 진행될 예정입니다. 많은 참여 부탁드립니다.
감사합니다.