abulaphiaa

Keep Yourself Social

클라우드에 대한 이해

with 3 comments

우리는 일상적인 환경에서 어떤 용어를 사용할 때 그것의 의미를 상대방도 동일하게 받아 들일 것이라고 가정하는 경향이 있습니다. 그러나 그 의미가 정확하지 않아 나중에 서로 확인하는 경우도 많은데, 최근에 많이 사용되는 “클라우드”라는 용어가 대표적인 것 같습니다. 예를 들어, 트위터에 “클라우드 전문가”  채용공고가 올라왔을 때나 우리 회사의 미래가 “클라우드”에 있다고 말할 때, 이것이  uClould나 SkyDrive와 같은 대용량 파일관리 시스템을 의미하는지, 아마존의 AWS와 같이 소프트웨어 개발자가 직접 프로그래밍을 통해 서버 인스턴스, 네트워크, 스토릿지 등의 자원을 즉각 할당받을 수 있는 IaaS를 의미하는지, 또는 Netflix와 같이 서버에 저장된 디지털 컨텐츠를 N-Screen으로 불러올 수 있다는 의미로 사용하는지 명확하지 않을 때가 많습니다.

더군다나 최근에는 “클라우드”라는 용어가 “인터넷”을 대체하는 용어로 많이 사용되면서 더욱 혼란스러워 진 것 같습니다. 얼마전까지 많은 사람들은 “사진이나 동영상을 인터넷(또는 웹 또는 서버)에 올렸다“고 표현했는데 지금은  “클라우드에 저장했다“는 표현도 많이 사용합니다. 이는 유저 입장에서 볼 때 인터넷과 동의어로 사용되고 있을 정도로 클라우드가 트렌디한 단어가 되었다는 것을 의미합니다. 넓은 의미에서 보면 인터넷을 통해 자신의 서비스를 제공하는 모든 사업자들을 cloud company라고 부를 수도 있을 것 같습니다.

이 글에서는 다양한 의미로 사용하는 “클라우드의 개념”을 여러가지 Article을 참고해서 번역하고 정리해 보았으니 더 정확한 이해를 원하시는 분들은 이 글을 쓰면서 참고로 한 아래 영문 Article들을 직접 읽어 보시기 바랍니다.

It Just Works (TechCrunch, 2011년 6월 8일)

Who’s Driving the Real Cloud Revolution ? It’s the Consumers, Stupid (Venture Beat, 2011년 11월 29일)  

Clound 101 : What the Heck Do IaaS, PaaS And SaaS Companies Do ?  (Venture Beat, 2011년 11월 4일)

Top 10 Consumer Web Products  of 2011 (ReadWriteWeb, 2011년 11월 29일) 

Jeff Bezos Owns the Web In More Ways Than You Think (Wired, 2011년 11월 13일)

Say Hello To Window Azure, The World’s Most Misunderstood Cloud (Wired, 2012년 4월 27일)

The Rise of Mobile Cloud Services : BaaS Start Ups Grow Up (ReadWriteWeb, 2012년 4월 17일)

BaaS : The Mobile Backend Is Now A Service (apigee, 2012년 7월 2일) 

1. 클라우드의 등장배경

National Institute of Standards and Technology에 따르면, “클라우드 컴퓨팅이란 공유된 컴퓨팅 자원(네트워크, 서버, 스토릿지 등)에 언제 어디서나 필요할 때마다 접근해서 최소한의 관리 노력으로 또는 시스템운영자와 굳이 인터액션을 하지 않더라도 신속하게 이것을 상용서비스에 투입할 수 있는 모델“이라고 정의하고 있다.

  • Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

이것은 실제로 정확한 정의이긴 하지만 여기에서 혁명적이거나 새로운 것은 무엇일까 ? 이러한 정의에 따르면 클라우드는 혁명이라기 보다는 진화에 가깝다. 이것은 상업적인 인터넷 시대가 개막된 90년대부터 개시된 일련의 변화의 연속이긴 하지만 그것의 뿌리는 훨씬 더 과거로 거슬러 올라간다.

네트워크를 통해 접속 가능한 최초의 클라우드 컴퓨팅 리소스가 온라인에 나타난 것은 American Airline이 60년대 초반 SABRE를 런칭했던 50년 전의 일이다. 

80년대에 BBS와 미니텔은 네트워크를 통해 사용할 수 있는 어플리케이션으로 가득차 있었다. 이 당시 주도적인 어플리케이션은 옐로우 페이지 (검색),  여행예약, order input systems, 그리고 online dating이었다.

1) Software As A Service의 등장 : 90년대말 모든 온라인 서비스는 낮은 비용으로 보다 많은 고객들에게 서비스가 가능한 인터넷으로 전환되었다. 인터넷에 대한 기업의 신뢰성과 의존성이 증대되자 소프트웨어를 기업에 임대해 준다는 개념으로 Software-As-Service가 등장했다. 몇몇 혁신적인 소프트웨어 벤더들은 인터넷이 기업에서 안심하고 사용할 수 있을 정도로 신뢰성이 좋아졌다는 것을 깨달았다. 우리는 BBS 시대부터 주문 처리 시스템(order input system)을 근본적으로 발전시켜 왔던 Salesforce.com의 성공에 대해 잘 알고 있다.

2) Infrastructure As A Service의 등장 : 10년 후 bandwidth의 희소성이 해소되고 유저들은 다양한 단말을 통해 언제 어디에서나 인터넷에 접속할 수 있게 되자 아마존과 같은 혁신적인 벤더들은 S/W뿐만 아니라 컴퓨팅 인프라 자체를 서비스로 제공할 수 있다는 것을 깨달았다. 이렇게 해서 클라우드가 탄생했지만, AWS에서 인스턴스를 제공한다는 것이나 30년전 BBS에서 원격지에 있는 컴퓨터를 사용했던 것 사이에는 큰 차이점이 없었다.

그럼에도 불구하고 혁명은 일어나고 있고 이제는 모든 곳으로 번지고 있다. 그것은 바로 IT의 소비재화 (the consumerization of IT)이다.

3) IT Consumerization에 의한 인프라스트럭쳐의 변경

2000년대 초반까지 약 10년간 IT의 혁신은 주로 기업, 정부, 군대의 주도하에 이루어졌다. 그러나 클라우드 웨이브와 함께 혁신이 일어나는 장소도 변화했다. 오늘날 IT에서 혁신의 바람을 일으키는 추진력은 바로 소비자이다. 

인터넷을 통해 대규모 가입자들에게 안정적으로 서비스를 제공할려면 골치가 아프다. 상황이나 단말, 타임존, 언어 등에 상관없이 서비스는 모든 사람에게 항상 제공되어야만 한다. 이렇게 거대한 인구를 대상으로 서비스를 제공할려면 안정적인 유지보수가 절대로 필요했다. 심야 시간이나 크리스마스 이브에도 누군가는 당신의 서비스를 사용할 것이기 때문에 당신은 일주일 내내 24시간 ubiquitous하고 매우 신뢰성이 높은 컴퓨팅 환경을 1 페니를 받고 팔거나 광고로 돈을 벌 수 있을 정도로 싸게 제공해야 했다.

결과적으로 대규모 가입자들에게 안정적으로 서비스를 제공하기 위해 수많은 서버들을 분산처리하는 아키텍쳐가 탄생했다  : 2000년대 중반 아마존과 구글, 페북같은 회사는 모든 사람에게 24시간 신뢰할 수 있는 컴퓨팅 서비스를 인터넷을 통해 제공해야 했다. 그들은 특정 컴포넌트에 장애가 발생하거나, 그것을 업그레이드 하거나 개별적으로 변경한다 하더라도 전체 시스템에 아무런 물리적인 충격을 주지 않도록 서버들을 분산된 아케텍쳐로 처리했다. 이것이 바로 클라우드 웨이브의 기초이다 (This approach is now the foundation for the cloud wave).

Jeff Bezos의 Wired인터뷰 (2011년 11월 13일, Wired)

  • 우리 어플리케이션 엔지니어들은 자신의 일을 하기 위해 네트워킹 인프라스트럭쳐 엔지니어들과 매일 세세한 부분에 대해 의견을 나누어야만 했다. 우리는 지난 9년간 이것때문에 내부적으로 많은 시간을 낭비했다. 모든 디테일에 대해 세부적으로 의견을 조율하는 대신에 우리는 데이타센터 엔지니어들이 믿을만한 툴들의 셋트, 즉  앱 엔지니어들이 신뢰를 바탕으로 그 위에 프로덕트들을 쉽게 개발할 수 있는 인프라스트럭쳐를 제공해 주기를 원했다. 문제는 명확했다. 우리는 그러한 인프라스트럭쳐를 가지고 있지 않았다. 그래서 우리는 우리 내부에서 사용할 목적으로 이러한 인프라스트럭쳐를 만들기 시작했다. 그러고 나서 우리는 “웹 스케일 어플리케이션을 개발하고 싶은 사람은 누구든지 이것을 필요로 할 것 (Whoa, everybody who wants to build web-scale applications is going to need this)”이라는 점을 깨달았다.

구글과 페이스북도 유사한 테크놀로지를 구축해야만 했다. 그들은 다른 경로를 통해 여기에 도달했다. 구글은 수많은 어플리케이션을 동력화하기 위해 모든 것을 인-하우스로 개발해 왔는데, 그렇게 만들어진 것의 결과물을 화이트페이퍼로 공개했다 (notably MapReduce, which is the foundation to Hadoop). 페이스북 또한 자신의 인프라스트럭쳐에 관한 많은 작업을 통해 카산드라나 OpenCompute.org 등 오픈소스 커뮤니티에 공개했다 (Facebook contributed much of its infrastructure work to the open-source community).

이러한 인프라스트럭쳐로 인해 소프트웨어 개발은 혁명적으로 변화되었다. 오늘날 개발자들은 인프라스트럭쳐가 너무 비싸고 느리기 때문에 방해요소로 생각하기 보다는 컴퓨팅 파워, 네트워크 자원, 스토릿지 용량을 정확히 필요한 만큼만 사용할 수 있도록 인프라스트럭쳐를 프로그램할 수 있게 되었다.

4) 새로운 종류의 개발자가 등장하다

오늘날의 개발자들은 20년 전과 전혀 다른 언어와 패러다임을 사용한다. 그들은 어플리케이션에서 원하는 것에만 초점을 맞추는 방식으로 개발에 접근한다. 그들은 더이상 하드웨어를 관리할 필요가 없다.

이러한 어플리케이션들은 전형적으로 “웹서비스” 타입의 소프트웨어 아키텍쳐를 활용하는데, 이렇게 하면 어플리케이션들을 서로 연결시키는 것이 극단적으로 쉬워진다. 트위터 피드를 페이스북이나 링크드인에 동시에 보여주는 것이 얼마나 쉬운지, 페이스북 크레덴셜을 사용하여 다른 사이트에 얼마나 쉽게 로그인할 수 있는지 보라. 이것은 바로 웹서비스 아키텍쳐로 인해 가능해 졌다.

게다가 인프라스트럭쳐를 직접 프로그래밍할 수 있게 됨에 따라 개발자들은 인프라스트럭쳐 자체도 또 하나의 서비스처럼 다룰 수 있게 되었다. 오늘날 어플리케이션은 아무런 수작업이 전혀 없어도 (all without any manual intervention) 필요한 경우 1천대의 서버에 동시에 리퀘스트를 날린 후, 바로  이 천대의 서버를 회수하여 다른 태스크 용도로 활용할 수 있다. 이것이 바로 클라우드이다 (Furthermore, since the infrastructure is programmable, these developers can treat the infrastructure itself as just another service. Now, an application can request 1,000 servers but only for the time it needs to get your result, and then free up these 1,000 servers for some other task, all without any manual intervention. That’s the cloud!)

사실 클라우드에 대한 NIST의 정의에서 “최소한의 관리 노력 또는 서비스 제공자의 개입이 없이도“라는 개념은 많이 과소평가되어 있다. 만약에 어플리케이션이 높은 인기를 끌어 더 많은 자원이 필요하게 되면, IaaS로부터 간단히 이것을 요청하기만 하면 된다. 바로 이러한 이유 때문에 아마존의 웹서비스가 스타트업들로부터 인기를 끌고 있는 것이다. 오늘날 개발자들은 인프라스트럭쳐와 Operation을 그들의 소프트웨어 개발의 일부로서 프로그램할 수 있게 되었다. 바로 이런 이유로 과거에는 완전히 다른 스킬 셋으로 구분되었던 소프트웨어 개발과 IT Operation이 명백하게 하나로 통합된다는 의미에서 “devops”라는 새로운 용어까지 생기게 되었다(Now developers can program the infrastructure and operations as part of their software development. That’s led to a new term, “devops,” that makes explicit the merger of what used to be completely different skill sets, software development and IT operations).

이런 스타일로 개발할 수 있게 됨에 따라 Functionality와 Capacity 측면에서 모두 보다 재미있고, 보다 사용하기 쉬우며, 보다 확장성이 좋은 (more fun, easier to use, more practical, and more reliably scalable) 어플리케이션이 탄생하게 되었다. 이 모든 것으로 인해 개발 과정의 생산성은 더 좋아졌다.

늙은이들은 젊은이들의 이런 방식의 개발을 별로 좋아하지 않는다. 그러나  Facebook, SmugMug 또는 Dropbox 등 이런 방식으로 개발된 어플리케이션의 성공과 안정성으로 판단해 본다면, 향후 10년내에 이러한 스타일의 개발이 기업내에서 표준이 될 것이라고 생각한다.

하드웨어 측면에서도 소비자 테크놀로지에 의해 혁신이 추동되고 있다. 실리콘 기반 (반도체) 부품의 생산 비용은 R&D와 Fab 구축 비용까지 포함해서 대부분 자본비용이다. 이리하여 실리콘 기반의 부품 생산비용은 판매량에 반비례하는 결과가 나오게 된다.  바로 이러한 이유 때문에 원래 디지털 카메라, 스마트폰, USB Key 등에 사용되었던 SSD(Solid State Drivers)가 특정 비즈니스 어플리케이션 용도로 사용되었던 하드디스크와 경합할 정도로 비용이 하락하게 되었다. 수십억개의 SSD가 매스 마켓에서 팔리지 않았다면 오늘날 스타트업이 스토릿지의 대안으로 SSD를 고려할 수는 없었을 것이다.

5) 직원들이 컨트롤하는 세상

마지막으로 컨수머 테크놀로지가 혁신을 일으키는 또 다른 방식에 대해 살펴보자. 비교적 최근까지도 직원들은 IT 부서가 공급한 것으로 일을 해야만 했다. 그들은 때때로 어플리케이션이 느리다거나 프로세스가 실용적이지 않다는 불만을 제기하지만 결국은 그들에게 주어진 툴을 사용하는 수밖에 없었다.

그러나 오늘날 많은 어플리케이션과 비즈니스 프로세스가 웹을 통해 쉽게 사용할 수 있게 됨에 따라 기업내 솔루션의 사용패턴에도 변화가 발생하고 있다. 대용량 첨부파일을 이메일로 전송할려다가 기업용 메일박스에서 수없이 거절당하자 IT 관리자가 차라리 Gmail을 사용하라고 추천하는 형편이다. 실제로도 직급이 올라갈 수록 비밀이 유지되어야만 하는 문서일수록 이런 일은 더 자주 발생하게 된다.

이제 테이블이 뒤집어 지고 있다. 직원들은 집에서도 IT를 잘 이용하는 뛰어난 유저들이다. iPad, Kindle, 안드로이드 스마트폰, 페이스북이나 넷플릭스와 같은 웹사이트, Xfinity나 Skype 또는 Evernote와 같은 애플리케이션들은 그들의 일상생활의 일부로 잡리 잡았다. 사람들은 같은 음악을 집에서, 차안에서 또는 휴가처에서도 들을 수 있다.  Xfinity로 그들은 iPad에서 영화를 선택하고 HDTV에서 그것을 실행시킬 수 있다. 그들은 버튼 한번만 누르면 모든 친구들, 또는 그중 일부와 지난 파티에 관한 사진과 비디오를 공유할 수 있게 되었다.

그리고 스마트폰으로 ERP 시스템에서 제품을 구매하는 것이 직장에서는 불가능하다는 것을 깨닫는다. 그들이 집에서 누리는 놀라운 테크놀로지와 직장에서 일하는 후진 테크놀로지간 갭이 커질 수록 직원들은 참아 내기가 어려워진다. 바로 이와 같은 참을 수 없는 상황으로 인해 혁명이 발생한다 (Intolerable situations cause revolutions).

IT의 소비화가 클라우드의 바람을 일으키면서 실질적인 혁명을 촉발시키고 있다. 실제 토론의 논점은 Public이냐 Private이냐가 아니다. 기업 IT가 직면한 진짜 도전은 이러한 혁명을 어떻게 끌어 안느냐 하는 것이다. 기업들은 수많은 웹 프로세스와 일반적인 서버로 사용하기 편리하게 만들어진 IT를 통해 더 좋은 어플리케이션, 더 좋은 functionality, 더 재빠르고 더 신뢰성이 높은 서비스를 대규모 철제 박스들에 투입되는 일부의 비용으로도 전달할 수 있다는 것을 받아 들어야만 한다.

별로 직관적인 이야기는 아니지만 이것이 바로 현실이다. 이것이 바로 클라우드가 무엇이냐에 관한 답이다.

이렇게 해서 IT 혁명의 한축을 형성하고 있는 클라우드 서비스에 어떤 종류가 있는지 이제부터 보다 자세하게 살펴 보자.

2. 클라우드의 종류

Sean Ludwig는 VentureBeat에서 이와 같은 “클라우드”의 개념을 레이어에 따라 아래 그림과 같이 IaaS, PaaS, SaaS 등 3가지 카테고리로 분류해서 정의하고 있는데 이 글에서는 최근 등장하고 있는 BaaS (Backend As A Service)까지 포함해서 알아보겠습니다.

레이어에 따른 클라우드의 분류

제공 레이어에 따른 클라우드의 분류

1)   Software As Service

우리가 일상생활에서 웹브라우저를 통해 거의 항상 접근할 수 있는 Application의 상당 부분이  SaaS에 해당한다.  원격 서버에 호스팅되어 있고 인터넷을 통해 접근할 수 있는 거의 모든 어플리케이션은 SaaS의 범주에 속한다고 할 수 있다. 

그러나 클라우드와 관련하여 PC, 스마트폰, 태블릿, Connected TV 등 다양한 단말에서 언제 어디서나 인터넷에 접속할 수 있는 환경이 만들어짐에 따라 다양한 형태의 파일과 User Data를 클라우드에 저장하고 여러가지 단말에서 이 데이타를 싱크해서 사용하는 “클라우드 어플리케이션”들에 관해 살펴 보면 대충 다음과 같은 카테고리가 존재하는 것 같다.

  • Sync과 Backup 전용의 파일관리자 (또는 Hard Disk In the Sky) : DropBox, SugarSync, MS SkyDrive, uCloud, Google Drive 처럼 기존 탐색기와 같은 User Interface를 활용하여 특정 유무선 단말에서 유저가 생성한 모든 형태 파일 및 폴더를 클라우드와 싱크시켜서 다른 단말에서 접근할 수 있도록 하는 서비스들이 존재한다.  이것은 기능적인 관점에서 보았을 때 2000년대 중후반까지 우리나라에서 불법 컨텐츠 공유의 온상이 되었던 웹하드 개념의 다양한 P2P 형 어플리케이션들에 싱크와 백업 개념이 추가되고,  PC뿐만 아니라 모바일과 Tablet 등 다양한 유무선 단말에 적용된 것이라고 할 수 있다.  전세계 최강의 초고속 인프라의 보급을 바탕으로 요즘 말하는 “클라우드” 맹아적인 형태로서 다른 나라에 비해 상대적으로 일찍부터 보급되었던 토착의 웹하드 서비스들이 지금은 거의 존재감이 없어졌다는 점은 안타깝다. 미래를 내다보고 좀더 적극적으로 우리나라의 웹하드 서비스들을 업그레이드했다면 지금 세계를 주름잡는 DropBox보다 훨씬 더 앞선 서비스를 만들 수도 있지 않았을까 ?
  • žContent-Shifting : Evernote나 Instapaper와 같이 상황에 따라 생각나는 아이디어나 경험, 또는 웹페이지 URL을 App.에 기록해 두었다 나중에 다른 단말에서 접속해서 다시 읽기 위한 목적으로 유저가 직접 생성한 컨텐트 (텍스트 파일, 포토, 음성 녹음 파일, URL 등)를 클라우드에 저장하고 싱크시키는 류의 서비스도 큰 인기를 끌고 있다. 웹과 모바일, 태블릿 버전 등 다양한 단말에서 서비스를 제공하는 많은  App.들이 User Data를 클라이언트에 캐슁해 놓고 있기 때문에 오프라인 상태에서도 데이터를 읽을 수 있으며 온라인시 서버에서 추가로 갱신된 데이타를 상호 싱크하는 방식으로 제공하고 있다.  Evernote와 Instapaer는 나중에 읽을 목적으로 웹컨텐츠를 클라우드에 저장하고 블로그와 유사한 User Interface를 통해 다양한 단말에서 싱크시켜 사용한다는 점에서 첫번째 범주의 “파일관리자” 형태의 어플리케이션과는 차이가 있다.
  • žPlatform Level의 자동 싱크 :  iCloud와 같이 특정 어플리케이션에 국한되지 않고 플랫폼 레벨에서 다양한 어플리케이션 데이타를 유저가 인지하지도 못한 상태에서 자동으로 싱크해 줌으로써 어떤 단말에서든지 동일한 데이타에 편리하게 접근할 수 있는 서비스도 있다. iCloud는 하나의 Application이라기 보다는 모든 iOS단말에 존재하는 주소록, 사진, 음악, 동영상 등 다양한 OEM Application Data들을 백그라운드에서 상호 연결시키는 일종의 클라우드 백본이라는 점에서 U/I가 별도로 존재하는 위의 단일 어플리케이션과는 차이가 있다. 스티브 잡스가 DropBox의 인수의사를 타진하면서 “이것은 서비스가 아니라 플랫폼이다”라고 말했던 의미를 이해할 수 있을 것 같다.  이러한 관점에서 John Gruber는 iCloud가 PC의 카운터 파트로서 구름위에 존재하는 하드디스크가 아니라 클라우드에 존재하는 iTUNES라고 주장한 바 있다.
  • Purchased Item Stored In the Cloud For N Screen : 위와는 달리 Netflix나 Hoffin, Spotify, Kindle 등과 같이 음악, 책, Video 등의 유료 컨텐트를 유저가 어떤 단말의 App.에서 구입하면 관련 정보와 해당 컨텐트를 클라우드에 저장하고 있다가 유저가 다른 단말의 동일한 App.으로 접속할 때 동일한 컨텐트를 다운로드 또는 스트리밍하는 방식으로 접근할 수 있도록 하는 “N-Screen형” 서비스가 존재한다. Netflix는 아마존의 인프라스트럭쳐 클라우드를 기반으로 동작하는 SaaS인 셈이다.

    아마존 책 구매경로

2)    IT Infra로서의 클라우드 컴퓨팅 (IaaS)

우리가 클라우드라는 말을 쓸 때 아마존의 AWS, VMWare, RackSpace 등과 같이 Infrstructure-As-A-Service를 의미할 때가 많다.

Amazon Web Service처럼 하드웨어 인프라, 미들웨어, 어플리케이션 등 개발자들이 App. 개발 및 운영에 필요한 자원과 툴을 제공하는 B2B형 클라우드 서비스가 있다. AWS는 App. 개발자들이 굳이 networks, servers, storage, applications, services 등의 하드웨어 인프라를 자체적으로 구축하지 않고 (과거에는 데이터센터와 하드웨어, 네트워크 인프라를 전담하는 IT Administrator가 별도로 존재했다) Application에서 필요한 기능만 집중하고, 나중에 가입자가 늘어나거나 트래픽이 증가할 때 필요한 만큼의 자원을 앱개발자가 간단한 툴로 직접 할당해서 사용할 수 있다. 물론 클라우드의 컴퓨팅 자원을 쓴 만큼 돈을 내기 때문에 합리적이다.

아래 그림을 보면 AWS를 사용하는 Application 중에는 FourSquare, Netflix, Yelp 등 우리도 알고 있는 Application들이 많이 있다는 것을 알 수 있다.

AWS 기반의 어플리케이션들

AWS 기반의 어플리케이션들

IDC와의 차이 : 우리나라에서도 Server와 Network를 임대해 주는 IDC 사업자들이 존재하나, 결정적으로 다른 점은 1) 공간과 하드웨어 및 네트워크 인프라만을 임대해 주는 것이 아니라 EC2와 같은 컴퓨팅 자원, , 아마존 dynamoDB나 RDB와 같은 데이터베이스, S3나 EBS와 같은 스토릿지, CDN 등 아마존이 자체적으로 개발한 다양한 솔루션도 함께 제공할 뿐만 아니라 2) App. 개발자가 Infrastructure 자체를 어플리케이션처럼  프로그래밍해서 필요로 하는 컴퓨팅 자원을 클라우드로부터 동적으로 할당받아 사용할 수 있다는 점이다.

3)    Platform As A Service

MS Azure와 Google App Engine 등은 최근 IaaS, 그 이상을 제공하기 때문에 PaaS로 알려지고 있다.

PaaS가 IaaS와 다른 점은 미들웨어까지 제공한다는 점이다. 모든 개발작업이 미들웨어 레이어 위에서 이루어지기 때문에 시간과 리소스를 절약할 수 있다.

PaaS 회사들은 Virtualized Server, OS, 협업환경, Web Application Management, Application Design, App Hosting 등 인터넷을 통해 어플리케이션을 개발하고 배치하는데 필요한 다양한 솔루션을 제공한다.

žGoogle App Engine, Microsoft Azure, Saleforce’s Force.com, the Salesforce-owned Heroku, and Engine Yard 등이 가장 규모가 큰 PaaS 제공자이다.

žPaaS로서 MS Azure 활용사례 : 호주 출신의 Jeremy Howard는 최근 실리콘 밸리로 이주하여 고급인력에 대한 온라인 마켓플레이스인 Kaggle을 1년 전에 AWS에서  .Net 기반으로 운영되는 MS의 Azure로 이전했다.  그는 Kaggle이 MS의 .Net 플랫폼과 C# 프로그래밍 언어와 딱 맞아 떨어졌기 때문에 이러한 결정을 내린 것이었지만 실리콘밸리의 스타트업들은 Amazon EC2에서 MS Azure로 플랫폼을 이전한 결정에 대해 멀 잘 모르고 내린 결정이라는 비아냥을 들었다. 실리콘밸리에서 스타트업들은 AWS위에  Ruby on Rails, Python 같은 언어를 사용하거나 좀 지루하긴 하지만 Java를 전형적으로 사용한다. 사실 MS Azure는 AWS, Texas의 Rackspace, Salesforce의 Heroku에 비하면 개발자들의 대화에 끼지도 못하는 처지이다. 왜냐하면 그들은 MS를 클라우드 컴퍼니로 간주하지 않기 때문이다. 그러나 알고 보면 MS Azure 또한  Node.js와 Hadoop과 같은 오픈소스 소프트웨어를 수용하고 있을뿐만 아니라, .NET과 C#이외에도 Java, Ruby, PHP, Python과 같은 개발툴도 지원한지 오래이다.  Movideo는 최근 GoGrid라는 IaaS에서 사용하던 Java를 그대로 사용하여 Azure로 플랫폼을 변경했다.  Infrastructure Cloud인 AWS에서 개발자들은 어플리케이션을 운영하는 virtual server와 virtual infrastructure를 관리해야 한다. 그러나 Google App Engine과 같이 Azure는 Paltform Cloud로서 SQL Azure DB는 자동 스케일링과 오토백업을 지원하는 등 AWS보다 손이 덜가기 때문에 프로덕트에 더 집중할 수 있다. SQL Azure뿐만 아니라 MongoDB도 활용가능하며, Customization도 지원한다.

4)    Backend As A Service (RWW, 4월 17일)

ž최근에는 PaaS를 넘어서 어플리케이션의 구동에 필요한 모든 백엔드의 Server Function을 모듈화해서 제공하는 Backend As A Service까지 등장하고 있다 ( Backend as a Service” (BaaS) companies provide easily integrated cloud-based backends for mobile app developers).

žServer Function : Iaas든 PaaS든 네트워크, 하드웨어, Storage, DB 솔루션, OS 등 클라우드의 컴퓨팅 자원만을 필요한 만큼 임대해서 사용할 수 있긴 하지만, Application의 모든 Business Logic 자체는  App. 개발자가 직접 개발해야 한다.

그러나 최근에는 BrightCove나 Appcelerator처럼 개발자가 플랫폼에서 제공하는 JavaScript API를 호출해서 서비스 로직과 U/I를 클라이언트 Level에서 구현하기만 하면, User, Push Notification, Chat, Social Integration, Location 등 모듈화된 Server의 Function을 통으로 제공해 주는 BaaS Provider들이 탄생하고 있다.

테크놀로지 관점에서 볼 때 모바일 에코시스템의 성장으로 낡은 스택은 소멸했고 Object-C, Java, HTML5, Ruby, Node.js 등 최신 개발 스택이 등장하게 되었다. 사업적인 관점에서 볼 때 개발자들은 새롭게 등장하는 다양한 모바일 스택 위에서 app. 개발 방법을 배워야만 했는데 이것에 필요한 스킬을 따라잡기도 벅찬 상태에서 새롭게 등장하는 백엔드 시스템까지 새로 배워서 개발하기에는 더욱 어렵기 때문에 Appcellerator, Stackmob, YorAPI, BrightCove 등과 같은 Backend As A Service 플랫픔이 인기를 끌고 있다.

BaaS Provider에는  BaaS로서 보다 폭넓은 범위를 커버하는 사업자도 있지만 API만을 서비스로 제공하는 사업자,  Node.js나 SQLLite 플랫폼 등 보다 좁은 범위만을 제공하는 Niche 플레이어들도 존재한다.

예를 들어 StackMob은 아래와 같은 서버의 기능들을 제공하고 있다.

žYorAPI의 CEO는 BaaS가 제공해야할 Top Function에 대해 아래와 같이 열거하고 있다.

  • User profiles with social login support for Facebook and Twitter
  • Custom data objects and storage
  • Analytics and metrics
  • Push notification support
  • Rich location data (Ling did not mention this specifically)

자칭 API Best Practice Blog인 “apigee” 의 최근 글 “BaaS : The Mobile Backend Is Now A Service” 에서는 최근 모바일 개발자들이 요구하는 BaaS의 기능을 아래와 같이 정의하고 있다.

The Backend Features of BaaS Provider

The Backend Features of BaaS Provider

BaaS에는 Visual 요소만 디자인하면 코딩을 전혀 할 줄 모르는 사람들도 쉽게 게임을 개발할 수 있는 Game Creation Platform도 존재한다. 게임샐러드는 코딩이 필요없는 게임 Creation 플랫폼으로서 디쥬얼 디자인만 하면 iOS, 안드로이드, HTML5 등 게임 앺을 자동으로 만들어 준다. 전세계 30만명의 개발자들이 활용하고 있으며, 6만개의 게임 App.이 출시되었으며 그중 1만개는 iOS App.이다. 미국 App. Store에서 이중 60개가 Top 100에 랭크되었다.

BaaS의 Business Model은 API를 호출하는 횟수에 따라서 개발사들로부터 돈을 받는 것이다.  Appcellerator의 경우 특정 Function별로 한달에 25만번까지는 무료로 호출할 수 있으나, 호출건수 100만번 단위로 $8 ~$10를 과금한다.

žFacebook이나 Twitter 또한 OAuth 인증체계를 통한 회원가입, User Profile 정보, Social Graph, Like나 Comment API를 통한 Social Plugin, Open Graph API 등을 통해 웹 기반으로 App을 쉽게 개발할 수 있는 서버 Function들을 제공함으로써 자신의 코어 서비스에 다양한 3rd App.을 전략적으로 통합시키고 있다는 점에서 BaaS와 유사하다. 그러나 Facebook과 트위터는 대규모 가입자 기반 및 이것을 통해 획득한 소셜 리소스를 외부 개발자들에게 API형태로 제공함으로써 자신의 서비스를 더욱 전략적으로 확대시키는데 초점을 맞추고 있는 반면,  BaaS는 자체 서비스를 운영하지 않으면서 서버 자원에 Access할 수 있는 API만을 제공한다는 점이 다르다고 할 수 있다.

이와같이 클라우드 기반의 개발환경이 고도화됨에 따라 앞으로 10년 아니면 5년쯤 지나면 초등학생들도 컴퓨터로 문서 작업하듯이 모바일 어플리케이션을 개발하는 시대가 오지 않을까라는 기대를 하면서 긴 글을 마치고자 합니다.

Written by abulaphia

August 2, 2012 at 11:25 pm

Posted in Cloud

Tagged with , , , ,

3 Responses

Subscribe to comments with RSS.

  1. Chulhyun's Blog에서 이 항목을 퍼감.

    chulhyun

    August 6, 2012 at 10:56 pm

  2. 클라우드의 모든 것을 설명한 좋은 포스트에요. ㅋㅋ 잘 계시죠?

    하호진

    August 7, 2012 at 5:27 pm

    • 호진씨 블로그에 비함 별거 아니죠..ㅎㅎ

      abulaphia

      August 10, 2012 at 11:45 am


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: