이 세 파트로 된 "Realities of open source cloud computing" 시리즈에서는 클라우드 컴퓨팅이 도움을 줄 수 있는지 판별하는 방법과 클라우드 컴퓨팅 전략을 계획하는 방법을 학습한다. 이 첫 파트에서는 클라우드 컴퓨팅의 혜택, 클라우드의 유형 및 클라우드 컴퓨팅 플랫폼에서 상위 레벨 선택을 배운다. 다음 기사에서는 클라우드를 위해 설계하고 개발하는 것과 클라우드에서 애플리케이션을 관리하는 방법을 살펴볼 것이다.
기술 분야에 한 동안 종사해왔다면 "이전에 이 모두를 들어본 적이 없었나? 클라우드 컴퓨팅이 또 다른 과열된 기술에 불과하지 않은가?"라고 생각할 수 있다 — 모든 문제를 해결할 것으로 가정된 최신의 묘책인가? 아니면 더 많은 내용이 있는가? 응답하려면 거듭 "그렇다"를 외쳐야 한다. 클라우드 컴퓨팅을 중심으로 하는 선전을 부정하지 않는다. 이 기사는 몇 가지 사용 가능한 클라우드 컴퓨팅 옵션을 논의하지만, 이 목록은 전혀 고갈되지 않는다. 많은 공급업체들은 이러한 선전에서 돈을 벌려고 노력하고 있다. 그래도 여전히 클라우드 컴퓨팅에 매우 현실적이고 실재하는 혜택이 있다 — 선전에 관계 없이 말이다.
클라우드로 들어가기 전에 클라우드 컴퓨팅에서 주의해야 할 몇 가지 측면이 있다. 이 기사에서는 클라우드 컴퓨팅의 혜택과 도전과제에 대해 학습한다.
위키피디아는 클라우드 컴퓨팅을 "컴퓨터 기술의 인터넷 기반 개발과 사용"이라고 정의한다. 이는 광의의 설명이며, 많은 오퍼링 유형들이 클라우드 컴퓨팅으로 분류될 수 있다. 많은 클라우드 오퍼링은 SaaS(Software as a Service)의 변형이다. SaaS의 예제는 Zoho(워드 프로세싱, 스프레드시트), Salesforce(CRM), SlideRocket(프리젠테이션)과 같은 웹 애플리케이션 또는 Google Search, Yahoo! Weather 또는 PayPal과 같은 웹 서비스 등이다. 이는 모두 훌륭한 클라우드 컴퓨팅 예제이지만 클라우드 컴퓨팅을 사용하고자 하는 엔터프라이즈에 아마 유용하지 않을 것이다. 하지만, 이들은 클라우드 컴퓨팅의 다른 유형과 상호보완적이 될 수 있다.
독자가 찾고 있는 클라우드 컴퓨팅의 유형은 아마 PaaS(Platform as a Service)로 알려진 인프라의 유형이다. PaaS의 가장 일반적인 예제의 일부는 Amazon의 Simple Storage Service(S3) 또는 IBM의 Scale out File Service(SOFS)로 비구조화된 데이터와 같은 다양한 클라우드 데이터 스토리지의 유형이다. 이는 둘 다 분산 파일 시스템이다. S3은 웹 서비스 인터페이스를 통해 액세스 가능한 반면, SOFS는 NFS 및 FTP와 같은 파일 프로토콜을 통해 액세스 가능하다. Amazon도 SimpleDB 서비스로 구조화된 데이터 스토리지를 제공한다. SimpleDB는 구조화된 데이터가 웹 서비스 인터페이스를 통해 저장되고 쿼리되도록 허용한다.
컴퓨팅은 물론 스토리지 그 이상이며, 바로 여기에서 클라우드 컴퓨팅 플랫폼이 등장한다. 플랫폼은 클라우드 플랫폼에서 코드를 취하여 실행하는 방법을 제공한다. 이는 당연히 클라우드 스토리지 및 클라우드 웹 서비스와 결합될 수 있다. 광범위한 상대적인 장점과 단점이 있는 사용 가능한 플랫폼이 많다.
독자가 자체적인 컴퓨터가 아니라 클라우드 플랫폼에서 코드를 실행하려고 하는 이유가 무엇인가? 몇 가지 간단하고 실질적인 이유가 있다. 독자는 이러한 모든 컴퓨터를 구입하여 설정할 필요가 없다. 만약 이 점이 클라우드 컴퓨팅의 유일한 측면이라면 이는 호스팅 서비스와 다를 바 없을 것이다. 클라우드 컴퓨팅의 주요 장점은 애플리케이션을 신속하게 켜거나("스핀 업") 끄고 필요한 대로 컴퓨팅 성능을 탄력적으로 늘릴 수 있다는 점이다. 적어도 어느 클라우드 컴퓨팅 플랫폼이나 요청 시 원활하게 컴퓨팅 자원을 더욱 더 제공할 수 있다. 일부 플랫폼은 요청 시 컴퓨팅뿐만 아니라 공통적인 범용 개발 플랫폼도 제공한다.
간단히 말해서, 클라우드 컴퓨팅을 통해 조직은 애플리케이션을 신속하게 배치하고 비즈니스의 필요성에 부합하도록 이를 성장시킬 수 있다. 그러면 좋지만 클라우드 컴퓨팅과 연관된 주의할 일부 도전 과제가 있다.
클라우드 컴퓨팅의 혜택에 전적으로 초점을 맞추는 것이 간편하지만 불리한 면도 있다. 클라우드 컴퓨팅의 가장 분명한 문제 중 하나는 애플리케이션을 구동하는 데이터가 애플리케이션과 함께 클라우드에 존재한다는 점이다. 데이터는 고객 또는 그들의 금융 상품 및 거래 레코드에 대한 개인 식별 정보와 같이 민감할 수 있다. 또한 사용자와 그들이 독자의 애플리케이션을 사용하는 방법에 대한 정보를 수집하는 것과 같이 여전히 매우 가치있는 민감하지 않은 데이터를 보유할 수도 있다. 독자가 클라우드에 중요한 정보를 저장하면 플랫폼이 안전한지 여부를 이해해야 한다.
클라우드에서 데이터에 액세스하는 사람만 걱정할 것이 아니다. 데이터의 무결성도 그만큼 중요하다. 시스템 장애가 예상되어야 하므로 장애가 발생하는 경우에 데이터가 백업되고 복원될 수 있는 것이 중요하다. 플랫폼이 데이터 백업과 복구를 제공하는가? 아니면 적어도 이를 필요로 하는 고객이 수행할 수 있는가? 애플리케이션의 신뢰성은 분명히 매우 중요하다. 특정 플랫폼이 제공하는 서비스 레벨 계약의 종류는 무엇인가? 이러한 질문들과 다른 중요한 질문들은 이 기사에서 사용 가능한 일부 플랫폼을 조사하면서 살펴보게 될 것이다.
선택할 클라우드 컴퓨팅 플랫폼이 많다. 여기에 나온 목록이 절대로 전체 목록은 아니지만, 더 대중적인 선택과 이들 사이에 기본적인 차이점에 대한 개념을 제시할 것이다. 필자는 각 플랫폼에서 지원되는 프로그래밍 언어와 오픈 소스 기술 및 각 플랫폼이 클라우드 컴퓨팅의 일부 복잡한 문제들을 해결하는 방법에 특히 주목할 것이다. 이러한 대규모 목록을 탐색하는 데 유용하도록 이들은 기본 및 전문화된 플랫폼으로 대략적으로 분류된다.
기본 플랫폼은 최소 오퍼링이다 — (가상) 하드웨어에 불과하고 운영 체제일 수 있다. 이는 제한사항이 적기 때문에 더 유연한 경향이 있다.
전문화된 플랫폼은 기본 플랫폼뿐만 아니라 프로그래밍 환경과 서비스의 일부 유형을 제공한다. 전문 플랫폼은 대개 더 간단하고 종종 일부 고유한 서비스를 제공한다.
클라우드에서 시스템을 구성하기 위해 가장 큰 자유를 원한다면 아마 기본 플랫폼을 원할 것이다. 특정 용량의 메모리를 갖춘 프로세스의 유형, 아마 특정 속도와 같이 일부 하드웨어형 스펙을 지정할 수 있다. 거기에서부터 필요한 것을 어느 것이나 작성할 자유가 있다. 이는 호스팅 서비스와 매우 비슷하지만 필요에 부합하기 위해 늘어나고 줄어드는 것이다. 이 섹션은 네 가지 제공업체인 Amazon, IBM, Joyent 및 Mosso를 논의한다.
Amazon의 Elastic Compute Cloud(EC2)는 최초의 클라우드 컴퓨팅 플랫폼 중 하나이고 여전히 가장 대중적인 플랫폼 중 하나이다. "Amazon과 동행하기 위해 절대 실행되지 않을 것이다"라는 일반적인 말이 있다. EC2는 기본 플랫폼의 훌륭한 예제이다.
EC2로 작업하기 시작하려면 Amazon Machine Instance(AMI)가 필요하다. AMI는 운영 체제, 애플리케이션 등을 갖춘 전체 머신 이미지이다. Microsoft Windows® 또는 Linux®에 덧붙여 Apache 웹 서버, MySQL 및 Python 인터프리터와 같이 다양한 오픈 소스 소프트웨어 제품군으로 Amazon 및 EC2 커뮤니티로부터 사용 가능한 일반적인 AMI가 많이 있다. 독자의 필요에 맞는 AMI를 찾지 못하는 경우, Amazon은 개인용으로 유지하거나 커뮤니티와 공유할 수 있는 자체적인 AMI를 작성하기 위한 도구를 제공한다.
AMI는 다양한 크기의 "인스턴스"로 배치될 수 있다. 이 글을 쓰는 시점에 소규모 인스턴스는 1.7GB 메모리 및 160GB 디스크 공간을 갖춘 단일 1GHz 코어를 보유했다. 스펙트럼의 다른 끝에서는 15GB 메모리 및 1.6TB 디스크 공간의 각 2GHz에서 실행 중인 네 개 코어를 갖춘 초대형 인스턴스가 있다. 계산적으로 복잡한 태스크를 위해 설계된 더 전문화된 크기도 있다. 필요한 크기만 선택하여 AMI를 배치한다. 인스턴스의 모든 관리 및 제어는 웹 서비스를 통해 수행된다. 대규모 에코시스템은 EC2 인스턴스를 더 쉽게 관리하기 위해 이러한 웹 서비스를 중심으로 성장했다. 예를 들어, Firefox에서부터 바로 AMI를 관리하고 실행하는 데 사용될 수 있는 Elasticfox라는 Firefox 확장이 있다.
EC2는 오픈 소스 Xen 가상화 소프트웨어로 구동된다. EC2를 통해 원하는 어느 소프트웨어 유형이나 가상으로 실행할 수 있다. Linux의 다양한 성향은 AMI를 위한 운영 체제로 일반적으로 사용된다. Java™ 프로그래밍 언어, PHP, Python 및 기타 등등 원하는 프로그래밍 언어가 무엇이든지 간에 사용 가능하다. EC2에서 독점 소프트웨어를 사용할 수 있지만, EC2의 탄력적인 성향으로 인해 오픈 소스 소프트웨어에 매우 끌리게 된다. 더 크고 더 많은 인스턴스를 사용할 때 라이센싱에 대해서는 걱정하지 않아도 된다.
Amazon은 EC2와 함께 진행하기 위해 광범위한 인프라 서비스를 제공하며, 이는 데이터 신뢰성 및 백업과 같은 문제점을 해결하는 데 사용할 수 있다. Amazon의 S3 서비스는 데이터를 백업하기 위해 훌륭한 옵션이다. 이는 자작(do-it-yourself) 모델의 성향이 매우 많다. Amazon 클라우드로 관리 및 액세스는 이중 인증이 필요한 웹 서비스를 통해 독점적으로 수행된다.
Amazon이 먼저 클라우드 컴퓨팅 영역에 상륙했을 때, 많은 사람들이 놀랐었다. IBM이 이러한 영역에 상륙했을 때에는 아무도 놀라지 않았다. Blue Cloud는 2008년 말에 발표되었고 클라우드 컴퓨팅의 모든 기초를 제공하겠다고 약속한다. 고객들은 더 일반적인 x86 하드웨어 또는 POWER®를 기반으로 하는 고성능 하드웨어로부터 선택할 수 있다. Blue Cloud는 다양한 기능(CPU/RAM/디스크)의 시스템을 자동으로 공급하기 위해 IBM의 Tivoli® 소프트웨어를 활용하며, 이는 잠재적으로 조직을 거대한 컴퓨팅 성능에 다가갈 수 있게 한다 — 하지만 필요한 대로만 지불한다. 또한 IBM은 "개인용" 클라우드를 개척하여 클라우드 컴퓨팅의 혜택을 내부의 방화벽 내 애플리케이션으로 도입하고 있다.
IBM의 Blue Cloud는 신흥 기술이므로 이를 지원하는 기술의 유형에 대한 최신 정보를 확인하려 할 것이다. IBM은 오픈 소스 기술의 가장 훌륭한 후원자 중 하나이므로, IBM은 오픈 소스 기술을 고도로 활용하는 애플리케이션을 선택하는 면에서 매력적이다.
Joyent는 Amazon 또는 IBM과 같은 제품군 이름이 될 수 없지만, 웹 기반 시작을 위한 클라우드 컴퓨팅 플랫폼 제공업체로서 탁월한 명성을 빠르게 획득했다. Joyent Accelerator는 기존 호스팅 제공업체의 유연성을 많이 제공하지만, 클라우드 컴퓨팅으로 요청 시 컴퓨팅 키를 사용한다. 이를 통해 PHP, Java 언어 또는 Ruby on Rails로 사전 구성되어 즉시 사용 가능하여 완성된 인스턴스를 신속하게 가동할 수 있다. 어느 정도의 컴퓨팅 성능이 필요한지 선택한다. 모두 OpenSolaris에서 실행 중이므로, SSH 및 FTP와 같이 배치된 자산에 액세스하고 관리하기 위해 유용한 모든 도구를 사용할 수 있다.
Joyent의 클라우드 컴퓨팅은 규모 가변성을 염두에 두고 설계된다. 가장 감당할 수 있는 오퍼링조차도 사용의 폭주를 처리하도록 설계된다. 이로 인해 대개 성능이 많이 필요하지 않지만 사용 면에서 극적인 증가를 경험할 수 있는 Facebook 애플리케이션을 작성하는 조직들에게 매우 대중적이 되었다.
Joyent를 통해 OpenSolaris와 호환 가능한 어느 기술이나 지원된다. 이는 어느 오픈 소스 LAMP 기술 및 프로그래밍 언어나 그리고 Java 언어 및 Ruby와 같은 다른 프로그래밍 언어를 포함한다. Joyent를 통해 사이트와 데이터를 안전하게 하고 유지보수하기 위해 사용 가능한 기존의 어느 Linux 또는 UNIX® 도구나 활용할 수 있다.
잘 알려진 호스팅 제공업체 Rackspace Cloud의 자회사인 Mosso는 클라우드 컴퓨팅에서 몇 가지 다른 오퍼링이 있다. Mosso의 Cloud Sites는 기본과 전문화된 플랫폼 사이에 선을 넘나든다. 두 가지의 기본 Cloud Site 구성이 사용 가능하다. 하나는 오픈 소스 소프트웨어로 구동된다. 이는 기존 LAMP 설정이다. 다른 구성은 IIS Web 서버 및 SQL Server 데이터베이스를 갖춘 Windows Server이다. 구성을 선택하여 대역폭, 스토리지 및 CPU 사이클에 대해 필요한 대로 지불한다.
Mosso는 Cloud Servers라는 새 제품도 제공하며, 이는 Linux 시스템이지만, 구성에서 완성된 유연성을 허용할 것이라고 발표했다. Mosso의 Cloud Sites는 많은 애플리케이션이 필요한 기본적인 빌딩 블록을 제공하므로 대중적이다. 이를 기본 전문화된 플랫폼이라고 설명할 수 있다. 이를 염두에 두고 다음 섹션에서는 사용 가능한 더 전문화된 플랫폼에 대해 살펴본다.
"전문"이라는 용어는 명백히 어느 정도 주관적이다. 클라우드 컴퓨팅 플랫폼을 전문적으로 만드는 것이 정확히 무엇인가? 이 섹션에서 플랫폼은 모두 위에 설명한 기본 플랫폼 위에 추가 기능을 제공한다. 때때로 기능은 고유한 개발 환경이다. 즉, 때로는 이는 플랫폼으로 통합되는 추가 서비스이고, 때로는 편리 기능이다. 이 섹션은 다음 전문화된 플랫폼을 탐색한다. 즉, 이는 Microsoft Azure, Google App Engine, Aptana Cloud, Heroku, Ning, 및 Salesforce이다.
Azure 플랫폼은 Microsoft가 2008년 4분기에 발표했다. 해당 플랫폼은 운영 체제와 연결되며, 이는 Windows의 전문화된 특징을 갖추었다. 이는 머신 인스턴스를 동적으로 공급하기 위해 "하이퍼바이저"를 포함한다. 이는 어느 .NET 애플리케이션이나 실행하도록 설계된다. 물론, 서버 기반 .NET 애플리케이션은 이 클라우드로 이동하기 위해 자연스러운 선택이 될 것이다. Microsoft는 Azure에서 클라우드에 실행하는 Exchange와 같은 서버 기반 제품을 많이 제공하기 시작했다.
하지만 Azure는 단지 Windows 및 .NET 플랫폼이 아니다. Azure 플랫폼은 또한 다른 수많은 서비스를 제공하며, 이는 고도로 규모 가변적인 SQL 서버 데이터베이스인 SQL Services, 검색, 사진 공유, 인스턴트 메시징 및 기타 등등을 위해 많은 대중적인 Microsoft 애플리케이션으로 통하는 웹 서비스인 Live Services를 포함한다. Azure는 또한 Microsoft의 IDE, Visual Studio®와의 긴밀한 통합을 제공하여, 애플리케이션을 Azure 플랫폼으로 실행하고 테스트하며 배치하기에 간편하게 만든다.
Azure는 사용 가능한 가장 독점적인 클라우드 플랫폼 중 하나이지만, 독자가 독점적인 Microsoft 기술을 이미 사용하고 있는 중이라면 몇 가지 분명한 매력도 가지고 있다. .NET 언어 및 SQL 서버 기반 데이터베이스와 같은 Microsoft의 독점적인 기술에 제한된다. Azure에서 실행 중인 어느 애플리케이션이나 액세스를 안전하게 하고 관리하기 위해 많은 Windows 기술을 활용할 수 있다.
Google이 2008년 2분기에 시작한 App Engine은 다른 많은 클라우드 플랫폼과 매우 다르다. 이는 하드웨어의 공급이 없다. 즉, 여기에 애플리케이션을 배치하기만 하면 된다 — 이를 무료로 수행할 수 있다. 하지만 App Engine 사용을 마무리짓고 다른 클라우드 플랫폼과 마찬가지로 필요한 대로 CPU 사용, 스토리지 및 대역폭을 추가로 구입할 수 있다. Google App Engine에 일부 편리한 기능이 있지만, 이는 전문화된 기능 세트의 시작에 불과하다.
Google App Engine은 Python만 지원하는 강력한 개발 환경을 제공한다. 이는 Python뿐만 아니라 수많은 서비스를 제공한다. 사용자 관리는 Google로 통합된다. 예를 들어, 사람들은 Google Mail에 로그인하기 위해 사용하는 것과 동일한 신임 정보로 앱에 로그인한다. 구조화된 데이터를 저장하기 위한 데이터 저장소 API가 있다. 저장 및 데이터 저장소로부터 검색은 관계형 데이터베이스를 사용하는 것과 유사하지만 완전히 Google에 독점적이다. 이는 Google의 독점적인 분산 파일 시스템인 GFS를 기반으로 한다.
간단히 말해서 Google은 오픈 소스인 Python만 지원하지만, 그 외에 수반된 모든 것은 사실상 독점적이다(Google이 배후에서 많은 오픈 소스 기술을 사용하는 것처럼 보이지만). Google App Engine은 내재된 데이터 저장소가 고도로 결함 허용이 되도록 설계되었음에도 불구하고 어느 데이터 백업 솔루션 유형도 제공하지 않는다.
Aptana는 JavaScript, PHP, Python 및 Ruby와 같은 동적 프로그래밍 언어로 작업하기 위한 Eclipse 기반 IDE인 Aptana Studio 제품으로 가장 잘 알려져 있을 수 있다. Aptana는 2008년 2분기에 클라우드 플랫폼을 발표했다. Aptana Cloud는 실제로 Joyent에서 나온 클라우드 컴퓨팅 플랫폼에 더한 기능 세트이다.
Aptana Cloud를 사용하면 PHP 또는 Jaxer, Aptana의 서버측 JavaScript 구현 방식 또는 Ruby on Rails로 Linux 또는 MySQL 환경으로 간편하게 배치할 수 있다. Aptana Cloud 배치는 어느 Joyent Accelerator 배치의 특성이나 모두 갖추고 있지만, Aptana에서 나온 추가 기능도 사용한다. 클라우드 애플리케이션의 배치 및 관리는 Aptana Studio를 통해 직접 관리된다. 애플리케이션에 하드웨어를 공급하는 것에서부터 로그 파일을 모니터하는 것까지 전부 Aptana Studio에서부터 수행될 수 있다. Aptana를 사용하면 탁월한 편의 수준을 확보한다. 개발, 테스팅, 배치 및 관리가 모두 한 곳에서 처리된다.
Aptana는 Joyent로부터 오픈 소스 기술과 프로그래밍을 위한 지원을 많이 상속한다. 이는 또한 관리와 백업을 위한 오픈 소스 도구도 상속한다. 많은 관리 측면은 Aptana Studio로 통합되지만, 더 정교한 시스템도 가능하다.
"Google App Engine이 Python에 하는 것처럼 Y-Combinator 시작 Heroku가 Ruby on Rails에 한다"라고 말할 수 있다. 하지만 이는 Heroku를 공정하게 다루는 것은 아니다. 이는 단지 Ruby on Rails가 사용 가능한 클라우드 플랫폼이 아니다. Heroku는 Rails만 지원하며, 그와 같이 Rails에 많이 맞추어져 있다. Heroku를 통해 Ruby gem을 로컬 설정에 추가하기만 하면, Heroku 클라우드에서 애플리케이션을 배치하고 실행하는 명령을 즉시 실행할 수 있다. 또는 Git 저장소에서부터 배치할 수 있다. 심지어 웹 브라우저에서 직접 코드에 액세스하고 편집할 수 있다. 애플리케이션으로 원하는 어느 Ruby gem 또는 Rails 플러그인이나 사용할 수 있다.
Heroku는 편리성이 최고이다. 이는 Amazon EC2 위에 실행하므로, 컴퓨팅 성능은 탄력적으로 확장할 수 있다. Heroku는 Heroku Garden으로 무료 서비스를 제공한다. 이로부터 클라우드에서 무료로 애플리케이션을 배치하고 테스트할 수 있다. 더 많은 트래픽을 수용할 준비가 되거나 결함 허용이 필요하면 애플리케이션을 기본 Heroku 플랫폼으로 진급시킬 수 있다.
이 기사에서 지금까지 논의한 클라우드 플랫폼은 매우 다용도이다. 애플리케이션이 무엇이 되든지 간에 이를 처리할 수 있다. 이 중 일부는 웹 애플리케이션에 초점을 맞추지만, 이는 여전히 매우 일반적인 분류이다. 대중적인 사이트 Ning을 통해 사용자는 자체적인 소셜 네트워크를 작성할 수 있다. 이는 일반적으로 순수(pure) 구성, 페이지 추가, 위젯을 페이지에 추가, 위젯 구성 등을 거친다. Ning을 통해 네트워크의 소스 코드를 다운로드하고 맞춤을 확인하는 대로 수정하고 Ning 클라우드에서 이를 실행할 수도 있다. 네트워크 코드는 간단한 PHP로 되어 있으므로, 자체적인 소셜 네트워킹 애플리케이션을 작성하기 시작하려면 이 내용만 알면 된다.
Ning은 관계형 데이터베이스가 아니라 데이터 저장소 API를 제공한다는 점에서 Google App Engine과 유사하다. 이는 또한 소셜 네트워킹 인프라로 액세스를 제공하는 Ning API를 많이 제공한다. 코드를 간단하게 업로드하여 배치할 수 있고, 하드웨어의 공급이 있다. Ning은 광고와 스토리지 및 대역폭의 한도를 정하여 네트워크를 상품화한다. 광고를 제거할 수 있고 비용을 지불하여 스토리지와 대역폭 용량을 더 추가할 수 있다.
Ning은 분명히 매우 전문화된 클라우드 플랫폼이다. 하지만 소셜 네트워킹 기능을 애플리케이션에 빌드하려고 계획하고(비록 이는 기본 기능의 보조일지라도) PHP로 프로그래밍하는 것이 편하다면 Ning은 매우 매력적인 옵션이 될 수 있다. Ning은 Google App Engine과 유사하다. 하나의 프로그래밍 언어(PHP) 선택만 확보하고 필요한 대로 추가 소프트웨어를 간단히 설치할 수 없다. 하지만 고도로 규모 가변적이지만 독점적인 시스템을 활용하게 된다.
또 다른 매우 전문화된 클라우드 컴퓨팅 플랫폼은 SaaS 모델을 사용하여 고객 관계 관리(CRM) 소프트웨어를 혁신하는 면에서 가장 잘 알려진 Salesforce에서 사용 가능하다, Force.com 플랫폼을 통해 CRM 애플리케이션을 위해 Salesforce에서 사용되는 동일한 클라우드 인프라 유형에서 실행하는 자체적인 애플리케이션을 작성할 수 있다. 엔터프라이즈는 AppExchange를 사용하여 사용자에게 사용 가능하도록 이러한 애플리케이션을 찾고 "설치"한다. 이는 애플리케이션이 기본 Salesforce 애플리케이션의 부분으로 원활하게 실행하는 면에서 Facebook 애플리케이션과 유사하다.
또한, 사용자 정의 Force.com 사이트는 하나 이상의 애플리케이션으로부터 작성될 수 있다. 이는 클라우드 컴퓨팅 패러다임과 더 유사하다. Force.com 사이트를 통해 하드웨어에 대해 지불하지 않지만 대신에 사용자 숫자에 대해 지불한다. 사용자당 어느 정도의 스토리지가 필요한지에 따라 다른 가격 계층도 있다. Salesforce에서 실행하기 위한 애플리케이션을 작성하려면, Apex에서 프로그래밍하며, 이는 Java 프로그래밍 언어와 마찬가지로 독점적인 언어이다. 이는 CRM 애플리케이션을 작성하기 위해 Salesforce 엔지니어들이 사용하는 것과 동일한 언어이다.
Salesforce도 사용자, 계정, 역할 및 데이터 액세스를 관리하기 위해 많은 플랫폼별 서비스를 제공한다. 비즈니스 애플리케이션, 특히 특정 엔터프라이즈에 고유한 애플리케이션의 경우, Force.com 사이트는 매력적인 옵션이 될 수 있다. Salesforce는 오픈 소스 기술과 프로그래밍 옵션 면에서 매우 제한적이다. 하지만 Google App Engine 및 Ning과 마찬가지로, Salesforce는 고도로 규모 가변적인 독점 기술을 제공한다.
이 기사에서는 클라우드 컴퓨팅의 일부 중요한 혜택을 살펴보았다. 독자는 폭넓은 클라우드 컴퓨팅 플랫폼과 이들이 어떻게 비슷하고 어떻게 다른지에 대해 학습했다. 해당 정보는 조직에 타당한 플랫폼의 종류가 무엇인지 선택하는 데 도움을 줄 것이다.
클라우드 컴퓨팅 플랫폼에서 애플리케이션을 개발하고 배치하며 관리하기 위한 것이 어떠한 것인지에 대해 "Realities of open source cloud computing" 시리즈의 다음 기사를 계속 알아보자.
교육
-
이 시리즈의 Part 2를 읽고 Aptana 클라우드 컴퓨팅 플랫폼에서 실행하기 위해
PHP를 사용하여 애플리케이션을 쓰는 방법을 배워보자. 그 다음에 Part 3을 읽고
관리자가 클라우드에서 애플리케이션을 돕기 위한 몇 가지 오픈 소스 도구와 기술에 대해 배워보자.
-
"Amazon
Web Services를 사용한 클라우드 컴퓨팅, Part 1: 소개"는 Amazon 클라우드 컴퓨팅 오퍼링의 더 폭넓은 개요를 제공한다.
-
"Creating mashups on the Google App Engine using Eclipse, Part 1"에서는 Google App Engine용
빌드 애플리케이션에 대한 세부사항이 모두 나와있다.
-
"Connecting Apple's iPhone to Google's cloud computing offerings"는 모바일 디바이스에서 클라우드를
액세스 가능하도록 만드는 것을 논의한다.
-
플러그인의 일부 기능에 대한 정보는 "이클립스를 이용한 쉬운 루비 개발"을
읽어보자. Ruby on Rails 애플리케이션에 대해 Aptana Cloud 또는 Heroku를 사용하든지 관계 없이 Aptana의 RadRails에 대해 알아보고 싶을 것이다.
-
"Data integration with Salesforce CRM using IBM InfoSphere Information Server"에서는
Salesforce가 애플리케이션에 데이터를 액세스 가능하게 만드는 방법을 탐색한다.
-
많은 클라우드 컴퓨팅 플랫폼은 Linux 환경을 가상화하기 위해 Xen에 의존한다. "Xen의
시대: 리눅스를 가상화 하여 애플리케이션 테스트하기"는 이러한 핵심적인 기술을 탐색한다.
-
developerWorks
Cloud computing space에서 클라우드 컴퓨팅이 중요한 이유, 시작하는 방법 및 이에 대해 더 학습할 수 있는
곳을 알아보자.
-
developerWorks 팟캐스트에서 소프트웨어 개발자를 위한 흥미로운 인터뷰와 토론을 들을 수 있다.
-
developerWorks의 기술 행사 및 웹 캐스트를 통해 최신 정보를 얻을 수 있다.
-
Twitter의 developerWorks 페이지를 살펴보자.
-
IBM 오픈 소스 개발자에게 유익한 컨퍼런스, 기술 박람회, 웹 캐스트 및 기타 행사를 확인하고 참여하자.
-
developerWorks 오픈 소스 영역에서 오픈 소스 기술을 활용하여 개발 작업을 수행하고 이러한 기술을 IBM 제품과 함께 사용하는 데 도움이 되는
사용법 정보, 도구 및 프로젝트 업데이트를 확인할 수 있다.
-
무료로 제공되는 developerWorks On demand demos를 통해
IBM 및 오픈 소스 기술에 대해 배우고 제품 기능을 익히자.
제품 및 기술
-
DVD로 제공되거나 다운로드할 수 있는 IBM 시험판 소프트웨어를 사용하여
후속 오픈 소스 개발 프로젝트를 구현해 보자.
- IBM 제품 평가판을
다운로드하거나 IBM SOA Sandbox의
온라인 시험판을 살펴보고 DB2®,
Lotus®, Rational®, Tivoli® 및
WebSphere®의 애플리케이션 개발 도구 및 미들웨어 제품을 사용해 볼 수 있다.
토론
-
developerWorks 블로그를 통해 developerWorks 커뮤니티에 참여할 수 있다.
