Agile Cat — in the cloud

2008年夏 Azure 前夜:David Chappell _3

Posted in David Chappell by Agile Cat on November 12, 2009

A SHORT INTRODUCTION TO CLOUD PALTFORMS – Aug 2008

David Chappell-2 160-45b

EXAMINING CLOUD PLATFORMS

Understanding cloud platforms means looking at each of their parts: the cloud foundation, cloud infrastructure services, and cloud application services. This section walks through these three areas, using some of today’s most visible cloud platform technologies as examples.

クラウド・プラットフォームを理解するために、クラウド・ファンデーション/クラウド・インフラストラクチャ・サービス/クラウド・アプリケーション・サービスといった、それぞれのパートに注目していく。このセクションでは、現時点で注目されている、いくつかのクラウド・プラットフォーム・テクノロジーを例として用いて、これらの 3 つのエリアをウォーク・スルーしていく。

Before we begin, one important note: While it’s useful to look at on-premises platforms and cloud platforms through the same lens, the two aren’t identical. When platform functions move into the cloud, they sometimes change in significant ways. For example, on-premises platforms are designed to support (at most) enterprise-scale applications. Applications that run in the cloud, by contrast, can potentially operate at Internet scale, which requires handling many more simultaneous users than any enterprise application. While the same kinds of platform functions might be needed in both cases, achieving this high scalability can force a cloud platform to provide them in a quite different way. In what follows, expect to see some differences from the on-premises world.

そのための考察を開始する前に、注意すべき重要なポイントがある。 つまり、オンプレミスとクラウドのプラットフォームを、同一の視点から見ることは有用であるが、その 2 つが同一ではないことを再認識する必要がある。プラットフォーム機能がクラウドへと移行するとき、特筆すべき方向へ向けて、変化していく場合がある。たとえば、オンプレミス・プラットフォームは、(せいぜい)エンタープライズ・スケールのアプリケーションを、サポートするようにデザインされる。それとは対照的に、クラウド上で動作するアプリケーションは、インターネット・スケールで運用される可能性を持ち、あらゆるエンタープライズ・アプリケーションよりでも、ずっと多くのユーザーを、同時にサポートする必要がある。同種類のプラットフォーム機能が、双方のケースで要求されるかもしれない。 しかし、クラウド・プラットフォームの場合は、ハイ・スケーラビリティを達成するために、きわめて異なる方式を要求される可能性をもつ。それ以外にも、オンプレミスの世界から見ると、いくつかの相違点が見出されると予測すべきである。

CLOUD FOUNDATION

Like their on-premises cousins, cloud foundations provide the basic local functions an application needs. These can include an underlying operating system and local support. Yet how cloud platforms provide these functions differs from what we’re used to, as this section shows.

オンプレミスの従兄弟ともいえるクラウド・ファンデーションは、アプリケーションにとって 必要な、基本的なローカル機能を提供する。そこには、基本的なオペレーティング・システム と、ローカル・サポートを含むことができる。 それにしても、このセクションで示されるよう に、クラウド・プラットフォームがを提供する機能は、これまでに慣れ親しんだものとは異なる。

Operating System

From a platform point of view, an operating system provides a set of basic interfaces for applications to use. By far the most well-known example of an operating system in the cloud today is Amazon’s Elastic Compute Cloud (EC2). EC2 provides customer-specific Linux instances running in virtual machines (VMs). From a technical perspective, it might be more accurate to think of EC2 as a platform for VMs rather than operating systems. Still, a developer sees an operating system interface, and so viewing it in this light makes more sense here.

プラットフォームの観点からすると、オペレーティング・システムは、アプリケーションが用いる基本的なインターフェイス・セットを提供している。クラウドにおけるオペレーティング・システムとして、現時点で認識されている有名な事例は、Amazon の Elastic Compute Cloud(EC2)である。 EC2 が提供する、顧客に固有の Linux インスタンスは、バーチャルマシン上で動作する。 テクニカルな視点に基づくと、EC2 はオペレーティング・システムというよりは、VM 用のプラットフォームと見なすほうが正しいかもしれない。しかし、開発者は依然としてオペレーティング・システムのインターフェイスを参照する。つまり、その視点で EC2 見る方が、いまの時点では、意味を持つことになる。

Each development team is free to use whatever local support it likes in this VM.Amazon doesn’t care. The creators of one application might choose a Java EE app server and MySQL, for example, while another group might go with Ruby on Rails. EC2 customers are even free to create many Linux instances, then distribute large workloads across them in parallel, such as for scientific applications. While the service EC2 provides is quite basic, it’s also very general, and so it can be used in many different ways.

この VM 上で、それぞれの開発チームは、あらゆるローカル・サポートを自由に使用するが、そのことを Amazon は気にかけていない。 たとえば、アプリケーション開発者は Java EE アプリケーション・サーバーと MySQL を選択するかもしれないが、別のグループは Ruby on Rails を使うかもしれない。 さらに EC2 のカスタマは、Linux インスタンスを自由に作成した後に、極端なたとえで言うと、科学計算アプリケーションのための膨大な作業負荷を、並列的に振りまく可能性すらもつ。 EC2 が提供するサービスが、きわめて基本的なものである一方で、上記の運用も一般的である。その結果として EC2 は、数多くの方式で運用されるという可能性を生じる。

Local Support

In an on-premises platform (and in EC2), a developer can mix and match parts of the foundation as she sees fit. Choosing to use the .NET Framework on Windows doesn’t mandate using a particular database, for example. Similarly, an on-premises application using the .NET Framework is free to access the underlying Windows operating system, as is an application built on a Java EE server.

オンプレミス・プラットフォームにおいて(そして EC2 において)、開発者が適切と判断するときに、ファンデーションの一部が使い回される。たとえば、Windows 上の .NET Framework を用いることで、特定データベースの利用が決定されたりはしない。同様に、.NET Framework を用いるオンプレミス・アプリケーションは、Java EE サーバー上に構築されたアプリケーションのように、基本となる Windows オペレーティング・システムに自由にアクセスできる。

The local support functions in today’s leading cloud foundations don’t work this way. Instead, a cloud local support technology typically includes its own storage, and it hides whatever the underlying operating system might be. A developer choosing to build on a particular local support option must accept the limitations it imposes.

今日のクラウド・ファンデーションをリードする、ローカル・サポート機能は、この方式では上手くいかない。 その代わりに、クラウドのローカル・サポート・テクノロジーに、独自のストレージを含む方式が、一般的には用いられる。そして、基本となるオペレーティング・システムが何であっても、そのテクノロジーが隠蔽してしまう。特定のローカル・サポート・オプションを用いる構築においては、それにより強要される制約を受け入れなくてはならない。

There are good reasons for these limitations, of course. One of the things that makes cloud computing so attractive is its potential for scalability, but to make an application built on a cloud foundation handle Internet-size loads requires limiting it in some ways. By making the local support functions more specialized, a cloud platform provider has more freedom to optimize the application environment. Accordingly, each set of local support functions in cloud foundations today focuses on supporting a particular kind of application.

もちろん、これらの制約については、充分な理由がある。 スケーラビリティに関する潜在能力は、クラウド・コンピューティングを魅力的なものにする、ひとつの事柄である。しかし、インターネット・レベルの負荷を取り扱う、クラウド・ファンデーション上に構築されたアプリケーションは、いろいろな意味で、その能力に対する制約を要求される。さらに、目的を絞り込んだローカル・サポート機能を提供することで、クラウド・プラットフォームのプロバイダは、アプリケーション環境を最適化するための自由を得る。したがって、今日のクラウド・ファンデーションにおける、それぞれのローカル・サポート機能のセットは、特定された種類のアプリケーションを、サポートすることに焦点を当てている。

For example, Google’s AppEngine provides local support for running Python Web applications. Along with a standard Python runtime, AppEngine also includes a hierarchical data store with its own query language. Another example of a cloud platform providing local support is Force.com, offered by Salesforce.com. Rather than targeting general Web applications, however, Force.com is aimed at creating data- oriented business applications. Toward this end, it provides its own focused support for data storage. And rather than adopt an existing programming language, this platform’s creators invented their own, a language called Apex.

たとえば、Google の AppEngine は、Python Web アプリケーションを実行するためのローカル・サポートを提供する。 AppEngine には、標準的な Python ランタイムが含まれ、さらに、自身のクエリー言語を用いる、階層的なデータストアも含まれる。クラウド・プラットフォームにおいて、ローカル・サポートを提供する別の例は、Salesforce.com の Force.com となる。 Force.com は、一般的な Web アプリケーションに目標を定めるというより、データ指向のビジネス・アプリケーション開発を目的とし、データ・ストレージに焦点を合わせた独自のサポートが提供される。そして、このプラットフォームの開発者は、既存のプログラム言語を採用するよりも、Apex と呼ばれる独自の言語を考案する道を選んだ。

Microsoft also provides local support for applications in the cloud as part of its CRM Live offering. Based on the Dynamics CRM platform mentioned earlier, this technology targets data-oriented business applications, much like Force.com. And like both Force.com and AppEngine, it includes both run-time application support and a data store. Microsoft has also talked about its plans to go further in this area, with a platform that will support standard .NET development languages and tools. The intent, Microsoft says, is to allow portability of both applications and developer skills between the company’s on-premises foundation and its cloud foundation.

Microsoft も、自身が供給する CRM Live のパートとして、クラウド・アプリケーションのためのローカル・サポートを提供する。 以前から述べられている Dynamics CRM プラットフォームに基づき、このテクノロジーは、データ指向のビジネス・アプリケーションに向けられたものとなり、また、Force.com ときわめて似たものとなる。 そして、Force.com や AppEngine のように、ランタイム・アプリケーション・サポートとデータ・ストアの両方が、そこには含まれる。さらに Microsoft は、スタンダードな .NET 開発言語とツールをサポートするプラットフォームを用いて、このエリアに参入するという計画について述べている。こうした Microsoft の発言における意図は、企業内でオンプレミスとクラウドのファンデーションをつなぐポータビリティを、アプリケーションとデベロッパー・スキルの双方において実現することにある。

—————

2008年夏 Azure 前夜:David Chappell _1
2008年夏 Azure 前夜:David Chappell _2
2008年夏 Azure 前夜:David Chappell _3
2008年夏 Azure 前夜:David Chappell _4
2008年夏 Azure 前夜:David Chappell _5

 

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: