아키텍트2008. 5. 20. 11:02

SaaS에 대한 관심은 나날이 증대되고 있는 것 같습니다.SaaS를 설명하면서 언급하고 싶은 내용이 있습니다. 바로 장애입니다. 인프라 운영 시 장애는 일어납니다. 스위치 장비, 웹서버, 어플리케이션 서버, DB서버, 스토리지를 모두 이중화 하여 장애에 대비한다고 해도, Zero Down 타임을 보장 받을 수 없습니다. 최소화 할 수는 있겠지만, 어떠한 이중화도 100% 운영 시간을 보장할 수는 없습니다. 그렇다면, 발생 가능한 분쟁을 시스템을 운영하는 회사와 고객은 어떻게 해결할 수 있을까요? SLA(Service Level Agreement)가 바로 그것입니다.
모든 IDC에서는 SLA를 통해 고객과 벌어질 수 있는 불편한 상황을 피할 수 있습니다. 대표적인 지표는 서비스 가동율이 있지만, 상세한 항목으로 정의할 수 있습니다. 고객이 지불하는 금액에 따라 인프라 이중화 구성 및 데이터 복구 수준이 정해질 것이므로 정확한 값을 언급하는 것은 의미가 없을 것입니다.

제가 SaaS를 이야기하면서 SLA를 이야기하는 것도 바로 이런 이유 입니다. SaaS를 통해 서비스를 제공받는 고객 역시 SaaS 서비스를 제공하는 업체와 SLA에 대한 부분을 반드시 협의하여 지속적으로 관리 해야 합니다. 예를들어, CRM 서비스의 경우라면 5분, 10분, 30분, 60분 등 고객에 따라 참을 수 있는 다운타임이 있을 것이고, 이 부분에 대한 협의를 진행하며 서비스 비용을 결정해야 한다는 것입니다. (SLA는 업체마다 다르므로, 제가 제시한 값은 샘플값임을 고려하십시요)

블로그를 읽다 보면 Salesforce.com에 대한 이야기가 많이 스크랩되고, 쓰여지는 것을 볼 수 있습니다. Salesforce.com은 SaaS CRM으로 인기를 끌고 있고, 많은 관심을 받고 있는 업체입니다.

지난 주(2007년 3월 둘째 주)에 Salesforce.com 인프라에 장애가 발생하여 5-6시간 동안 서비스가 중단 되었습니다. 2005년 12월 큰 장애 이후, 대규모 장애는 이번이 2번 째 입니다. Salesforce.com의 CRM 서비스를 사용하던 고객들도 영향을 받았지만, 그 보다 더 심각한 영향은 AppExchange Platform을 통해 고객을 획득하던 ISV(Independent Service Vendor)들이 받았습니다. 장애에 대해 ISV 업체들이 할 수 있는 것이 아무것도 없었고 Salesforce.com이 장애를 처리하길 기다리는 수밖에 없었죠. 업체의 말을 빌리면, "우리는 바보처럼 기다릴 수박에 없었어요." 였습니다. 장애는 5-6시간 이었으나 실제로 ISV는 이틀 동안 이나 상품을 팔지 못했다고 합니다. ISV 들은 Salesforce.com이 이런 일이 벌어지는 동안 제대로 설명해 주지 않았다고 불평했습니다.

서비스 운영 관점에서 장애는 발생할 수 있지만, 어떻게 처리하느냐가 중요한 능력 중의 하나입니다. 이런 관점에서 이번 Salesforce.com의 대응 자세는 문제가 있었고, SLA에 대한 중요성이 부각되는 측면이라고 하겠습니다. SLA에 언급되어 있지 않다면 어떤 불평도, 보상도 받기 어려울것이기 때문입니다.

Service Level Agreement (SLA)
A formal written agreement made between two parties: the service provider and the service recipient. The SLA itself defines the basis of understanding between the two parties for delivery of the service itself. The document can be quite complex, and sometimes underpins a formal contract. Generally, an SLA should contain clauses that define a specified level of service, support options, incentive awards for service levels exceeded and/or penalty provisions for services not provided.

Posted by 조이트리
아키텍트2008. 5. 20. 10:57
앞의 글에서 SaaS 어플리케이션이 가져야 하는 특징을 몇가지 언급했었습니다. Configuration, Multi-Tenant, Scalablity 3가지가 바로 그것이죠. 하지만, 어플리케이션 아키텍쳐를 위의 특징을 갖도록 바꾸면 바로 SaaS 서비스가 가능할까요?

일반적인 웹 사이트를 개발할 때의 라이프사이클을 생각해보겠습니다. 개발자가 웹사이트를 만들고 나면, 이 웹사이트를 운영해줄 누군가와 서버(H/W, 웹서버, DBMS)가 필요하게 됩니다. 대부분의 경우는 호스팅 업체를 통해 웹사이트를 운영하도록 합니다.

그럼 SaaS 어플리케이션의 경우는 어떨까요? 서비스 어플리케이션을 만들었다고 가정하겠습니다. 기존 같이 호스팅 업체에 맡기면 될까요? 위의 웹사이트의 경우는 나의 사이트를 맡긴 것이기 때문에 장애가 나면 내가 감당하면 됩니다. 그렇지만, 내가 서비스를 만들었고 고객의 데이타를 다루는 서비스를 운영하고자 하는데 장애가 나면 어떻게 해야할까요? 고객의 중요한 업무가 장애로 인해 중단된 상태인데, 서비스 제공자인 내가 할 수 있는 일은 아무것도 없습니다. 호스팅 업체가 장애를 해결해주기를 기다리는 것 이외에는. 하드웨어 장애의 경우는 호스팅 업체가 해결해줄 수 있지만 어플리케이션 장애의 경우는 내가 해결해야 합니다. 원격으로 접속해서 문제를 해결하기가 대단히 어려울 것입니다.

그렇다면, 호스팅 업체 대신에 내가 직접 어플리케이션 및 H/W를 운영하는 경우를 생각해보겠습니다. 아시다시피 서비스는 365일, 24시간, 7일 동안 즉 중단없이 운영이 되기 때문에 운영자를 최소한 4명은 두고 4조 3교대 형태를 유지해야 합니다. 1명씩이 근무를 하고 있는데 네트웍, H/W, S/W, 어플리케이션에 대한 모든 장애를 다 감지하고 해결할 수 있을까요? 2명씩 근무를 하는 체제로 바꾸어 8명을 두어야 한다고 가정해보겠습니다. 그래도 다양한 오류를 해결할 수는 없고 무엇보다 비용이 가장 큰 문제입니다. 8명을 유지하기 위해 1개월에 소요되는 기본 비용이 엄청나죠? 이 비용 이상을 서비스로 매출을 올린다는 것은 쉽지 않은 이야기입니다.

그래서 등장한 해법이 SaaS 호스팅 업체 입니다. 해외에서는 SaaS Hoster라는 용어를 사용합니다. SLA(Service Level Agreement)를 어플리케이션 서비스 업체와 체결하여 그 수준을 맞추며 호스팅 서비스를 제공하는 업체를 말하는 것이죠. 하지만, 국내의 경우는 SLA에 대한 개념이 아직 정착되어 있지 않아 SaaS Hoster는 없다고 보는 것이 맞을 것 같습니다. SaaS를 확산시키기 위해서는 SaaS Hoster를 양성하는 것도 꼭 필요하다는 것을 강조하고 싶습니다.

기억하세요. 어플리케이션 운영을 어떻게 진행하고, 비용 부담을 줄일 것인지가 꼭 고려되어야 합니다.
Posted by 조이트리
아키텍트2008. 5. 20. 10:56
에스크로 제도를 아시죠? 백과사전의 정의에 따르면 에스크로란 미국 법률용어로 특정물을 제3자에게 기탁하고 일정한 조건이 충족된 경우에 상대방에게 교부할 것을 약속하는 조건부 양도증서()를 말합니다.

SaaS 서비스를 도입하기를 꺼리는 사용자 입장에서 제일 걱정되는 부분이 바로 데이터를 서비스 제공자에게 맡겨야 한다는 것입니다. 예를들면, 아래와 같은 경우가 있을 수 있습니다.

1. 서비스 제공자가 파산하여, 서버 및 스토리지를 채권자에게 압류당한 경우
2. 서비스 제공자와의 분쟁으로 인해 데이터에 대한 접근을 차단 당하는 경우
3. Consumer가 다른 서비스 제공자로 데이터를 이관을 하기를 원할 경우
4. 서비스 제공자의 장애가 장기간 길어지는 경우
5. 해커가 침입하여 데이터를 악용하여 Consumer에게 책임이 전가되는 경우

이런 경우에 대한 두려움이 해결되지 않으면 믿고 맡기기 정말 어려울 것입니다.
이를 해결하기위해 에스크로 제도가 필요할 것입니다.

SaaS 에스크로 서비스는 아래와 같은 서비스를 제공하면 됩니다.
1. SaaS 데이터의 핫백업을 제공
2. 소스코드를 포함하여 SaaS 어플리케이션의 복사본 제공
3. 유사시 에스크로 제공자에게 서비스가 이관시 정상적으로 작동하는 것을 보장하는 검증 테스트

이런 서비스를 제공할 수 있다면 믿고 맡길 수 있을 것입니다.
현재 미국의 www.ironmountain.com 라는 회사가 SaaS 에스크로 서비스를 제공하고 있습니다.
Posted by 조이트리
아키텍트2008. 5. 20. 10:50

가장 많이 받는 질문이 바로 "SaaS와 ASP의 차이점이 뭐죠"라는 것입니다. 이와 비슷하게 가장 많이 받았던 질문이 "혁신(Innovation)이 뭐죠" 였던 것 같습니다.
"왜 이런 질문이 나오는 것일까?" 곰곰히 생각을 해봤는데요 정의에 대해, 즉 개념을 명확히 하고 넘어가지 않았기 때문인 것 같습니다.

SaaS의 정의는 "소프트웨어가 호스팅 환경으로 배포되어, 인터넷을 통해 서비스 되는 것" 입니다.
IDC가 이렇게 정의하고 있고, 마이크로소프트도 역시 동일한 정의를 사용하고 있습니다.
이 정의를 기준으로 하면 "ASP도 SaaS가 맞군" 이라고 말하실 것입니다. 맞습니다. ASP도 SaaS가 맞습니다. 다만, 성숙도(Maturity)가 다르다고 표현하는게 맞을 것 같습니다.
지난 2007년 7월 4일, IT렌털산업협회가 주관한 조찬 세미나에서 "2008년 SaaS 산업 전망과 이슈"라는 내용으로 주제발표를 했습니다.

1단계, Application Hosting, 즉 ASP 모델입니다. 하나의 고객을 위해 1개의 Instance를 띄우게 되고, 고객에게 맞춰서 커스토마이징을 하게 됩니다. 커스토마이징에 많은 비용이 소요되기고, Instance를 개별로 띄우기에 규모의 경제를 실현할 수 없게 되는 단점이 있습니다.

2단계, 본격적인 SaaS Architecture입니다.고객 당 Instance를 하나씩 띄우기는 하지만, 커스토마이징이 아닌 메타데이터를 활용한 Configuration을 통해 고객 설정을 하기 시작합니다. 초기 셋업을 서비스제공자가 아닌 고객이 직접하고, 커스토마이징이 없기에 비용을 절감할 수 있지만 아직 규모의 경제는 실현하지 못합니다.

3단계, Multi Tenant를 실현하고, Congiguration까지 가능한 진화 모델입니다. 하나의 Instance로 다수의 고객을 서비스하기에 규모의 경제가 실현되며 Configuration으로 고객 설정을 하기에 비용절감, 규모의 경제가 실현됩니다.

4단계, Multi Tenant, Configuration, Scalability가 구현된 것입니다. 즉, 성숙된 SaaS 어플리케이션은 이 3가지의 특성을 보여주게 되는 것입니다.

ASP와 SaaS를 구분짓는 것은 어떤 개념상의 차이가 아니고, 비즈니스 상에 어떤 효과를 주는지로 구분하는 것이 맞다는 것입니다.

자동차를 예를들어 설명하겠습니다. 현재 자동차는 휘발유 또는 디젤을 연료로 사용합니다.
여기에 연비가 뛰어나고, 화석 연료의 사용을 줄일 수 있는 전기와 휘발유, 디젤을 병행 사용하는 하이브리드카를 만들었다고 가정해보죠.

하이브리드카는 광의의 개념으로 보면 똑같이 자동차이고, 협의의 개념으로 보면 연료 비용을 절감하고, 화석 연료가 고갈되는 시기를 연장시켜주는 새로운 개념의 차라고 이야기할 수 있을 것입니다.

ASP와 SaaS의 차이도 이와 비슷합니다. 광의의 개념으로 보면 ASP와 SaaS는 조직 내부에서 직접 설치하여 운영하는 방식(on-premise)와 달리 서비스제공자에 의해 설치되고 서비스로 제공되는방식(hosted)임에는 차이가 없지만, 협의의 개념으로 보면 서비스를 이루는 어플리케이션의 아키텍쳐가 개선되어, 규모의 경제 및 ROI를 향상시켜주는 진화된 모델이라고 볼 수 있는 것입니다.

즉 ASP는 어플리케이션의 구조가 고객마다 커스토마이징을 해야하는 구조였기 때문에 1 to many를 구현하지 못하고, 1 to few 구조였기 때문에 규모의 경제를 실현하지 못하는 단점을 가지고 있었다는 것이죠. 어플리케이션의 아키텍쳐가 Configuration, Multi-tenant, Scalability 요소를 갖는다면 진정한 의미의 SaaS라고 부를 수 있이고, 단계적인 개선이 이루어질 때마다 1단계, 2단계, 3단계 SaaS 아키텍쳐라고 부를 수 있을 것입니다.

Posted by 조이트리
마이크로소프트2008. 5. 7. 12:59
2008년 4월 3일, 마이크로소프트의 S2 이노베이션 Day에서 "소프트웨어 플러스 서비스 전략의 이해"라는 주제로 발표를 진행했습니다.

SaaS(Software as a Service), 즉 서비스로서의 소프트웨어가 친숙한 용어지요? 하지만, SaaS는 소프트웨어의 배포 모델로 협의의 의미입니다. CRM 솔루션을 사용자의 장비에 설치하지 않고 서비스 제공자의 장비에 설치하여 인터넷을 통해 서비스 형태로 제공받는, 즉 위치를 어디에 둘 것인가가 주요 관심대상이 됩니다.
서비스를 사용하는 이유는 여러가지가 있겠지요? 비용을 지불하기 전에 미리 사용해 볼 수 있다는 것, 또 IT 장비의 관리 부담을 서비스 제공자에게 전이한다는 것 등이 대표적일 것입니다.
하지만, 소프트웨어의 장점, 예를들면 라이센스를 한 번 획득하면 원하는 동안은 그대로 사용할 수 있다는 장점, 커스토마이징이 자유롭다는 점등은 놓치기 싫은 이점이지요.

즉 소프트웨어의 장점, 서비스의 장점이 있는데 서비스로만 모든 IT 업무를 전환한다면, 즉 Trade Off 관점으로 해석한다면 하나의 장점을 포기해야 하는 문제가 있다는 것입니다. 사실은 두 가지의 장점을 종합한 형태로 IT 구성이 충분히 가능한데 말입니다.

S+S의 장점은 크게 5가지 정도를 들 수 있을 것입니다.
1. Seamless Experience, 즉 디바이스 간의 이동, PC를 사용하다가 이동할 때 모바일 장치를 통해서도
    동기화된 정보를 그대로 이용할 수 있는 것

2. 고객의 선택에 따라 소프트웨어 형태로 직접 설치 (On-premise), 파트너가 소프트웨어를 설치하여 해당 고객군에게 맞도록 커스토마이징 한 후, 아니면 그대로 호스팅 하는 형태, 마이크로소프트가 호스팅하는 형태로
크게 3가지 형태로 IT 구성이 가능하다는 것

SOA
3. Federation이 가능하여, 방화벽 내부와 외부간의 시스템간 연동이 가능하다는 것
   예를들면, 금융회사가 고객간의 커뮤니케이션을 Windows Live 메신저로 한다면, 대화 내용을 로깅한다거나
   원하는 작업을 취할 수 없기에 자체적으로 Office Communication Server를 통해 메신저를 설치했을 때
   로깅하거나 하는등의 작업이 가능하겠지만, 고객의 Identity를 확보해야 하는 어려움에 봉착하게 됩니다.
   이러한 어려움을 Windows Live Messenger의 Identity를 OCS가 사용하는 등의 Federation이 가능하다는 것

SOA
4. Composition (조합)
    Mesh-up 같은 작업이 가능하다는 것, 즉 Virtual Earth를 활용하여 교통정보 시스템과 연동한 솔루션을
    만들어 내는 것

5. 다양한 비즈니스 모델
   소프트웨어 판매, 유지보수 등의 기존의 매출원과 온라인 광고와 연계한 새로운 매출 창출

뭐 이정도가 되지 않을까 싶습니다. 감사합니다.
   
Posted by 조이트리
아키텍트2008. 5. 7. 12:57
Platform as a Service(PaaS)란 무엇일까요? 구글의 Google App Engine, Salesforce.com의 Force.com?
정의를 내리는 사람에 따라 조금 다를 수 있지만 비슷한 예가 될 것 같습니다.

마이크로소프트의 호스팅 환경 기반의 어플리케이션은 BizTalk Service, Exchange Services, Sharepoint Services가 발표되었고, 추가로 SQL Server Data Service가 또한 최근에 발표되었습니다. SQL DBMS를 로컬 서버에 설치하지 않고 구름 위에 놓여있는 서비스로 사용 가능한 것입니다. 마이크로소프트에서는 "마이크로소프트 온라인" 이라는 이름으로 부르고 있습니다.

사실은 진짜 PaaS 서비스, 즉 Force.com과 유사한 서비스를 마이크로소프트가 준비하고 있습니다. "Titan as a Service"가 바로 그것인데, Titan은 마이크로소프트의 CRM Live 서비스의 코드명이고 xRM이라고 부를 수 있을 것 같습니다.(가칭) 개발자들이 CRM 이외의 멀티태넌트, 워크플로 기반의 어플리케이션을 추가할 수 있는 플랫폼의 역할을 하기 때문입니다.
어느 정도의 커스토마이징, 설정에 대한 범위의 룰, 정책이 결정되면 마이크로소프트가 호스팅 하는 형태의 xRM 어플리케이션이 배포 모델로 추가될 것으로 보여집니다. On-Premise, Partner Hosted, Microsoft Hosted의 세가지 배포 유형에서 Microsoft Hosted의 상세한 옵션의 하나로 PaaS 모델이 추가될 수 있는 것이고 고객에게는 더욱 많은 선택의 기회가 주어질 것으로 보여집니다. 아직 공식적으로 발표된 내용은 아니고, 제 임의적인 생각을 표현한 것임을 밝혀둡니다.

감사합니다.
Posted by 조이트리