아키텍트2009. 1. 7. 16:07
SaaS 서비스를 개발하고 싶은데 어떻게 하면 되는지에 대한 질문을 받는 경우가 많습니다.

SaaS 애플리케이션을 개발하고 싶은데, SOA로 개발하면 되죠?
웹서비스로 개발하면 되죠?
SaaS가 SOA하고 같은 거죠?
프로토콜은 SOAP을 쓰면 되는 건가요?

SaaS와 SOA의 관계를 이해하기 위해 두 가지 유형의 서비스를 살펴보겠습니다.

애플리케이션 서비스
 - 서비스 제공자가 제공하는 서비스를 인터넷을 통해 이용하고, 이 서비스는 비즈니스 로직을 제공합니다. 
   이런  유형의 서비스는 대부분의 차별화 되어 있지 않고, Commodity 인 경우가 많습니다.
   . 이메일, 회계, 세무, 인사 & 성과, 급여, CRM 등
 
   규모의 경제를 통해 저렴한 가격으로 Commodity 서비스를 제공 합니다. 해당 서비스를 사용하는 회사가 
   데이터의 생성 및 소유권을 갖게 됩니다. 각 회사의 서비스별로 큰 차별점이 많지 않기 때문에 동일한 서비스를
   제공하는 회사가 일반적으로 많고, 시장에서 경쟁이 치열합니다. 따라서, 메타데이터를 통한 각 회사별 설정 및
   멀티태넌트 특징 등이 요구됩니다. 일반적인 SaaS가 바로 이 영역 이라고 할 수 있죠.

정보 제공 서비스
 - 회사가 보유한 지적 재산권, 유용한 정보를 표준 인터페이스를 통해 고객에게 제공하는 서비스 입니다. 
    해당 정보는 서비스 제공자의 소유이고, 사용권한이 라이선스화 되어 있습니다. 
   . Netcraft, MediaMetrix, UPS(상품 배송 상태), FedEx(상품 배송 상태), Reuters, Gartner, Forrester 등

   고객의 필요에 따라 위의 회사의 정보를 구독하게 됩니다. 해당 정보를 직접 조사하는 것보다 서비스로 구독하는
   것이 훨씬 효율적일 것 입니다.

애플리케이션 서비스은 특정 업무를 서비스 제공자가 제공하는 소프트웨어를 인터넷을 통해 서비스로 제공받는 것이고, 정보 제공 서비스는 지적 재산권 정보를 제공 받는 것 입니다. 이 두가지 서비스 모두 SaaS 서비스라고 할 수 있겠죠.

자, 그럼 이제 SOA를 살펴보겠습니다. SOA는 아키텍처 스타일이고, SaaS는 하나의 비즈니스 모델 입니다.

SOA는 보유하고 있는 서비스들의 조합을 통해 새로운 소프트웨어 시스템을 신속하게 만들수 있도록 해주는 아키텍처 스타일입니다. SOA는 위의 애플리케이션 서비스, 정보 제공 서비스를 개발하는데 모두 적용될 수 있습니다.  SaaS를 개발하는데 있어 SOA가 반드시 적용되어야 할 필요는 없지만, SOA는 SaaS 서비스를 만들고 운영하는 것을 최적화 하는데 유용 합니다. 전자세금계산서를 웹을 통해 처리하도록 하는 것은 SaaS이고, 세금계산 애플리케이션을 국세청의 시스템과 연계하여 처리하는 것에는 SOA를 적용하여 개발될 수 있다는 것이죠.

즉, SaaS 서비스를 개발하는데 있어 SOA가 반드시 필요한 것은 아니지만, SOA 아키텍처를 이용하면 다른 시스템과의 연동이 쉬워지기 때문에 유용하게 적용될 수 있다는 것입니다.
그렇기 때문에 앞의 질문에 대한 답이 될 수 있을 것 같습니다.

추가 질문은 올려주시면 답변 드리도록 하겠습니다.

Hanu Kommalapati의 블로그 내용을 인용하였습니다.
Posted by 조이트리
아키텍트2009. 1. 6. 17:08

SPECIAL REPORT
위기 극복을 위한 IT 혁신
클라우드 컴퓨팅(Cloud Computing)

3부|MS 클라우드 전략의 ‘코어’, 윈도우 애저│신현석 160

마이크로소프트의 소프트웨어 플러스 서비스 전략은 전통 소프트웨어 산업의 비즈니스 모델과 서비스 모델의 장점을 결합해 각 개인과 조직의 사업 특성에 딱 들어맞는 최적의 플랫폼을 조립식으로 구성하고 변형할 수 있도록 돕는 기술 전략과 제품 개발 방식을 의미합니다... 로 글을 시작했습니다.

클라우드 컴퓨팅 이란?
소프트웨어와 서비스, 소프트웨어 플러스 서비스
현실계는 소프트웨어 플러스로 이동 중, 클라우드 컴퓨팅의 위력
MS의 클라우드 컴퓨팅 플랫폼, 애저 서비스 플랫폼이란?
시나리오 및 리소스
의 목차를 가지고 있습니다.

글을 여기 다 올리는 것은 어려울 것 같네요. 잡지를 봐주시거나, 아니면 이후에 가능할 때 제가 올리도록 하겠습니다.

Posted by 조이트리
마이크로소프트2009. 1. 6. 16:35

Natural User Interface (NUI), 또는 Natural User Experience (NUE) 라고도 표현할 수 있을 것 같습니다.
NUE의 정의: "사용자의 직관적인 행동 방식에 가깝게 디지털 장치를 사용할 수 있도록 돕는 UX 패러다임"

             구분               CLI               GUI                NUE
      시스템 인지 방식  텍스트기반   그래픽   물리적 
      시스템과의 관계  추상적, 함축적  마우스 포인터, 간접적  직접 접촉
      시스템 제어 방식  직접 (명령어 입력)   탐색 (마우스 이동)  상황적 

Windows 7에서는 사용자의 행동방식에 따라 CLI(커맨드), GUI(마우스, 펜컴퓨팅), NUE (터치컴퓨팅) 등을 통해 자연스럽게 원하는 작업을 할 수 있게 됩니다.
Posted by 조이트리
아키텍트2008. 12. 30. 10:57

MS 신현석 부장, "WOA + 클라우드 컴퓨팅 → IT 환경 최적화"

한국MS 개발자 및 플랫폼사업총괄 신현석 부장

삼성SDS 정보통신본부 유니텔사업부 빌링시스템개발팀(시스템 개발자), 삼성네트웍스 솔루션사업부 프로젝트 리더 및 프로젝트 매니저, 삼성네트웍스 그룹1사업부 전자그룹사업1팀 기술영업, 2006년 MS 아시아태평양 웹 플랫폼 아키텍트 리드, 2007년 6월~현재 한국마이크로소프트 개발자 및 플랫폼 사업총괄

클라우드 컴퓨팅의 등장으로 웹 지향 아키텍처(WOA)가 더욱 중요해지고 있다. 예를 들면 세계인이 많이 사용하는 사진 공유 사이트인 플리커(Flickr)와 같은 사이트를 국내 개발자가 개발하고 싶다면 어떤 장애 요인이 있을까. 전 세계인을 상대로 한 사진 공유 사이트를 개발하고자 하면 수억 명의 사용자를 대상으로 서비스하기 위해 엄청난 양의 네트워크 장비와 웹서버, 데이터베이스 서버, 스토리지를 구매 및 설치, 운영해야 한다. 즉 매출 및 수익이 발생하기도 전에 초기 투자 비용이 엄청나게 투입돼야 한다는 것이다. 아이디어가 빛을 볼 가능성이 굉장히 적다.

http://www.ittoday.co.kr/home/post/post_view.jsp?dseq_no=4711&menuId=AAAI&cateCode=AAAI 
(기사 전문)

Posted by 조이트리
아키텍트2008. 12. 29. 16:51
마이크로소프트와 KT 공동으로 진행한 Hosting Networking Day에서 ISV(Independent Solution Vendor), 즉 소프트웨어를 개발하는 회사들이 SaaS 비즈니스로의 진입을 돕기 위한 ADS(Architecture Design Session)를 진행했습니다.

ISV 들이 서비스 비즈니스에 쉽게 진입하지 못하는 이유는
첫째, 서비스 운영, 365일 * 7일 * 24시간
둘째, 데이터센터 관리
셋째, 인프라 구축에 대한 비용 부담 등이 대표적 입니다.

서비스 운영 및 데이터센터, 인프라에 대한 부담을 서비스 제공자가 담당하고, ISV들은 그 플랫폼 위에 핵심역량인 서비스를 개발하여 배포한다면 매월 고정적인 매출이 발생하는 새로운 비즈니스 모델의 발굴이 가능해 집니다.
아래 그림과 같이 Identity, Billing, Provisioning, Management에 대한 부분은 서비스 제공자가 담당하고, ISV는 애플리케이션 개발만 하면 되는 것이죠.

좀 더 구체화되면 블로그를 통해 공개하도록 하겠습니다.

Posted by 조이트리
아키텍트2008. 12. 22. 20:06
오늘 2008년 12월22일, 정보사회진흥원 및 한국커머스넷 주관 세미나에서 "클라우드 컴퓨팅과 SaaS"라는 주제로 발표를 진행하였습니다. 약 100여분 이상이 오셨는데, 분위기가 사뭇 진지하고 내년 클라우드 컴퓨팅이 어느 정도 관심을 가질지 예상할 수 있는 좋은 자리였습니다.

실제 서비스를 개발하시는 ISV 분들이 많이 계셔서, 인프라 클라우드, 플랫폼 클라우드가 제공된다면 얼마든지 뛰어난 애플리케이션 클라우드 (SaaS) 애플리케이션들이 만들어질 수 있을 거라는 확신을 갖게 되었습니다.
더 많은 정보, 새로운 소식을 전해서 국내 ISV 및 개발자 분들이 글로벌, 전 지구를 상대로 비즈니스 하실 수 있도록 조금이나마 도움이 되었으면 좋겠습니다.

해당 내용은 이전 글에서 설명한 내용이라 별도로 올리지는 않겠습니다. ZDNET에 올린 글을 참고하시면 이해하는데 도움이 되실 것 같습니다. 또한, "마이크로소프트웨어" 2009년 1월호 특집에 "마이크로소프트와 클라우드 컴퓨팅"이라는 주제로 글을 기고 하였습니다. 관심 있는 분들은 읽어주시고, 피드백 부탁 드리겠습니다.
Posted by 조이트리
아키텍트2008. 12. 17. 09:56
2008년 12월 10일, 한국마이크로소프트 Technet 이벤트에서 IT Trend 특강, "클라우드 컴퓨팅의 이해"에 대해 발표했습니다. 약 150여명이 참석 가능한 자리에 180여명이 참석해주셔서 성황을 이룬 자리였습니다. 내년에도 계속 됩니다. 많은 참여 부탁 드립니다.

주요 내용은 아래와 같습니다.
 - 클라우드 컴퓨팅이란
 - 마이크로소프트 Azure Services Platform의 의미
 - 시나리오 (엔터프라이즈, ISV, Startup, 일반 개발자)
 - 현황 및 이슈

관심 있으신 분은 연락주시면 자료를 보내드리도록 하겠습니다.

Posted by 조이트리
아키텍트2008. 12. 15. 23:52
MS 클라우드 컴퓨팅과 애저 서비스 플랫폼 이해

바로 위의 링크를 클릭하시면 원문을 보실 수 있습니다.
마이크로소프트의 클라우드 컴퓨팅, 애저 서비스 플랫폼에 대해 쉽게 이해하실 수 있도록 설명해봤습니다.

ZDNET 인기기사로 올라갔네요. ^^ (클릭하시면 보실 수 있습니다)

감사합니다.
Posted by 조이트리
IT Pro2008. 12. 3. 16:09

장애 조치(Fail Over)를 위한 클러스터링, 네트웍 로드 밸런싱(NLB)를 이용한 클러스터링 등 고가용성을 위해서 다양한 방식을 취할 수 있습니다. 가상화, 즉 Hyper-V를 사용하지 않고 물리적 서버들을 이용해서 클러스터링을 구성하거나, 로드밸런싱 하는 방식은 직관적으로 정해진 가이드를 따르면 됩니다. 그런데, 가상화 된 환경, 즉 호스트 서버(물리적 서버)와 가상 머신이 혼재된 상황에서의 클러스터링과 네트웍 로드 밸런싱은 이해하기가 쉽지 않습니다. 오늘은 이 부분을 좀 쉽게 정리해 보려고 합니다.

클라우드 컴퓨팅이 중요한 트렌드로 각광을 받고 있고, 그 기반 기술이 가상화 라는 것 아시죠? 이 가상화가 엔터프라이즈 및 중견 기업들의 인프라 구성에 큰 변화를 가져오고 있는 중입니다.

가상화의 가장 큰 장점은 물리적인 서버의 수를 줄일 수 있다는 것이고 결국 서버 구입 비용 절감, 전력 사용량 절감 등의 효과로 나타납니다. 고객들은 이러한 금전적인 이점 이외에도 LOB(Line of Business, 즉 ERP, SCM 등) 및 메시징 및 협업 소프트웨어 등의 가용성에 대해서도 향상되기를 원하고 있습니다. 가상화는 예를들면, 8대의 물리적인 서버를 1대의 호스트(물리적인 서버)에 8개의 가상머신으로 변경할 수 있기 때문에 장애가 발생하면 이전보다 그 피해규모가 훨씬 더 커지게 됩니다. Windows Server 2008과 Hyper-V를 통해 가상머신 자체와 가상머신에서 구동되는 워크로드(예, IIS 웹서버)의 고가용성을 보장해 줍니다.

고가용성
가용성의 의미는 사용자가 원하는 작업을 하기 위해 시스템에 접근할 수 있는 것입니다. 고가용성은 시스템에 문제가 있을 때에도 운영의 연속성을 보장할 수 있도록 디자인되고 구현되었기 때문에 항상 시스템에 접근할 수 있다는 것을 의미합니다.

Hyper-V의 고가용성은 Windows Server 2008 Failover Cluster (장애조치 클러스터)를 통해 이루어 집니다. 계획된, 계획되지 않은 장애 시 가상머신의 가용성을 획기적으로 향상시킬 수 있는 기능을 의미합니다. 가상머신들은

가상머신들은 Failover Cluster에 의해 관리될 수 있고, Failover Cluster는 가상머신을 모니터링하고, 가상머신에서 구동중인 워크로드를 이전하는데 사용될 수 있습니다.

호스트 및 게스트 머신들
"게스트"라는 말은 Hyper-V의 가상머신 환경의 운영체제를 의미합니다. "호스트"라는 말은 Hyper-V의 부모 파티션의 OS에 의해 관리되는 물리적 머신을 의미합니다.

호스트의 가용성은 "모든 계란을 한 바구니에 넣기", 즉 서버 통합이 가져올 수 있는 모든 이슈와 연계되어 있습니다. Windows Server 2008 Failover Cluster는 Hyper-V의 부모 파티션 (즉, 호스트)에 설정될 수 있고, 게스트들의 정상 작동 여부를 모니터링 할 수 있고, 클러스터의 각 노드 사이를 자유롭게 이동할 수 있습니다. 이렇게 되면 아래와 같은 장점들을 얻을 수 있게 됩니다.

. Hyper-V와 가상머신이 구동되는 물리적 서버가 업데이트, 변경, 리부트 되어야 할 때 가상머신들은 클러스터 상
  의 다른 노드로 옮겨질 수 있습니다. 물리적 서버가 정상 서비스 상태로 되돌아오면 원래의 위치로 복귀할 수 있
  습니다.
. Hyper-V와 가상머신이 구됭되는 물리적 서버에 장애 (머더보드 오류), 또는 급격한 성능 저하가 벌어지면 클러스
  터 상의 다른 멤버가 가상머신의 소유권을 가져와 자동으로 서비스를 대신할 수 있습니다.
. 만약 가상머신에 오류가 생기면, 같은 Hyper-V에서 다시 재시작 하거나 다른 Hyper-V 서버로 옮겨질 수 있습니
  다. Windows Server Failover Cluster에서 탐지가 되고 가상머신의 자원 속성정보에 설정된 값을 기준으로 복구
  작업이 자동으로 이루어 집니다.

그림 1은 장애 상황에 대한 이해를 돕습니다. 우선 VM2가 호스트 A에 위치하다가, VM2가 호스트 B로 옮겨 갑니다. SAN 스토리지 LUN2를 호스트 A가 소유하고 있다가 호스트 B가 소유하는 것으로 바뀌었습니다. 고가용성을 보장받기 위해서는 가상머신이 어디에 위치할 것인지를 주의 깊게 살펴봐야 하고, 또한 Capacity와 성능을 함께 고민해봐야 합니다.

그림1. 가상머신이 새로운 호스트로 옮겨질 때 스토리지의 상태

노드들의 Capacity는 가상머신들의 장애가 발생 시 다 수용할 수 있을 만한 여유가 확보되어야 합니다. 즉, Capacity 및 성능을 고려하여 몇 개의 노드(즉, 개별 서버)는 아무 가상머신도 호스팅하지 않고 예비 상태로 설계되는 것이 필요합니다. 또한, 기본적으로 모든 워크로드들은 각 노드 상에 고르게 분포되는 것이 성능 유지를 위해 필요합니다. 이러한 작업에는 Capacity 및 배치 계획을 위해 System Center Virtual Machine Manager 2008 등의 관리도구가 유용 합니다.

게스트 가용성
게스트 가용성은 가상머신 내에서 구동되는 워크로드의 고가용성을 의미합니다. 일반적으로 파일, 프린터 서버, IIS 웹서버, LOB(Line of Business) 애플리케이션들을 의미합니다. 가상머신의 워크로드에 고가용성을 적용하는 것은 개별 물리적 서버의 고가용성과 거의 유사합니다. 솔루션은 특정한 워크로드에 따라 달라지는 거죠.

IIS 웹서버 등의 워크로드는 Windows Load Balance (NLB)를 통해 고가용성을 얻을 수 있는데, 여러대의 서버가 하나의 네트웍 이름의 일부로 사용될 수 있습니다. 가상 네트웍 네임으로 클라이언트가 요청을 하게 되고 NLB 클러스터 상의 하나의 노드에 연결이 맺어집니다. 각 IIS가 같은 웹 페이지, 데이터에 접근하는 웹 팜의 경우가 대표적이죠. NLB는 로드밸런싱과 유지보수 및 서버 장애시 잠시 빼내서 고가용성을 제공할 수 있도록 합니다. 만약 Hyper-V의 가상머신이 Windows Server 2008 (또는 NLB가 포함된 이전 Windows Server 버전)이면 게스트는 같은 Hyper-V 또는 다른 Hyper-V 호스팅의 게스트들과 NLB 클러스터의 멤버가 될 수 있습니다.

Windows Server 2008에서 구동되는 게스트는 워크로드의 고가용성을 위해 Windows Failover Cluster 기능을 사용할 수 있습니다. 바로 이것이 게스트 클러스터링이 장점입니다.

Workload Health 모니터링: Windows Failover Cluster는 클러스터와 연계된 자원 DLL을 호출할 수 있는 리소스 모니터를 가지고 있습니다. 각 리소스는 애플리케이션이나 서비스가 잘 동작하는지를 확인할 수 있는 모니터링 기능이 있습니다. isAlive/looksAlive 체크가 바로 그것이죠. 만약 호출중에 오류가 발생하면, 자원 자체가 오류가 되고, 설정된 정보에 따라 해당 서비스나 애플리케이션을 재시작하도록 하거나, Windows Failover Cluster 내의 다른 노드로 옮기도록 할 수 있습니다.

가상머신 유지보수: 가상머신, 운영체제, 소프트웨어의 설정을 변경해야 할 때 클러스터 상의 다른 노드로 워크로드가 옮겨질 수 있고, 최종 사용자의 작업에 최소한의 영향으로 가상머신이 셧다운 되거나 갱신될 수 있습니다.

호스트 머신 유지보수: 호스트 머신, 소프트웨어의 유지보수가 필요할 때 해당 머신에 존재하는 가상머신들은 클러스터 상의 다른 노드로 옮겨질 수 있고, 그 때 해당 호스트는 갱신되거나 리부트 될 수 있습니다.

가상 또는 호스트 머신의 장애: 물리적 Hyper-V 호스트, 가상머신의 게스트에 장애가 있을 때 Windows Failover Cluster 상의 다른 노드들이 장애를 탐지하고, 오류가 생긴 가상머신을 클러스터 상의 정상 작동하는 노드로 옮겨서 애플리케이션이나 서비스를 온라인 상태로 만들어 서비스를 진행합니다.

가상머신에 고가용성을 부여하는 방법
Failover Cluster 관리 도구의 고가용성 롤 마법사를 이용하면 간단하게 작업할 수 있습니다. Hyper-V 가상머신은 고가용성을 보장받기 위해 몇 가지 고려해야할 내용이 있습니다. 한 번 살펴보시죠

1. Failover Cluster 노드
   . Failover Cluster의 일부인 각 물리적 서버를 노드라고 합니다. 호스트 클러스터링을 위해, Failover Cluster 서
     비스는 Windows Server 2008 Hyper-V의 부모 파티션에서 구동됩니다. 이렇게 설정되면 동일한 물리적 서버에
     구동되는 자식 파티션들을 고가용성을 갖도록 설정할 수 있습니다. 고가용성이 설정된 가상머신들은 Failover 
     Cluster 관리 컨솔에 자원으로 보여집니다.

2. 고가용성(HA) 스토리지
   . 고가용성 가상머신은 VHD(Virtual Hard Disks), Passthrough Disks, Differencing Disks로 설정될 수 있습니
     다. Failover 클러스터 노드간에 가상머신을 이동할 수 있으려면, 가상머신을 호스트 할 수 있는 노드, Failover
     Cluster 서비스로 관리되는 노드들이 접근할 수 있는 스토리지 (디스크 관리에 디스크로 나타나는)가 있어야 
     합니다. Passthrough Disks는 failover cluster에 디스크 자원으로 추가되어야 하고, VHD 파일은 반드시
     failover 클러스터에 디스크 자원으로 추가되어야만 합니다.

이 정도로 마무리 하겠습니다. 감사합니다. 

본 글은 Technet, Steven Ekren의 "Virtualization: Achieving High Availability for Hyper-V"를 번역하였습니다.
Posted by 조이트리
아키텍트2008. 12. 3. 13:03
해당 행사에는 제가 준비 위원으로 참여 중 입니다.

오전에 기자간담회가 있는데, 기자 간담회 Q&A 세션에 저도 참가합니다. 후기는 공지하도록 하겠습니다.

이날 2건의 행사가 있습니다.
첫째, The Clouds 2008 행사 때 한국마이크로소프트에서는 NTO(National Technology Officer) 김명호 상무님이 "마이크로소프트와 클라우드컴퓨팅" 이라는 주제로 발표를 하십니다.

둘째, 마이크로소프트의 마케팅 매니저가 주관하는 Technet Secret Series가 또 있습니다.
일시: 2008년 12월 10일 1:30분 ~ 5:30분, 장소: 한국마이크로소프트 5층 세미나실
1:30분 부터 제가 "IT 트렌드 특강, 클라우드 컴퓨팅"으로 강의를 1시간 동안 진행합니다.

두 곳 중 한군데 와주세요. 감사합니다.
Posted by 조이트리