スキップしてメイン コンテンツに移動

クラウドの定義を調べてみた・・・結論なし・・・

少し前にクラウドの定義についてネットで調べてみた。
総評じゃないですが、なんとなく、
「いつでも簡単に使える課金制のネットーワークコンピュータ」、
がクラウドの定義に感じになってる気がする。
外見はそうかもしれないが、中身は全然違うものな気がするのだが・・・。

以下調べたところの抜粋とその感想。

クラウド・コンピューティングのインパクト
栗原 潔 テックバイザージェイピー 代表/金沢工業大学 客員教授

P.1
このクラウド・コンピューティングは、
米国GoogleのCEO、エリック・シュミット(Eric Schmidt)氏が
2006年8月に行った講演で使い始めた言葉だと言われている。

この説が有力かと思っていたが、最近読んだクラウドの衝撃で違うことを発見。
それは後日、記載します。


P.2
筆者としては、(もともとの定義における)グリッド・コンピューティングは、
クラウド・コンピューティングの理想を実現するための
重要な技術の1つであると位置づけるのが妥当ではないかと考えている。

個人的にはグリッドとクラウドは別物だと思っている。
これもクラウドの衝撃の本を紹介するときに、あわせて記載します。


P.3
米国Sun Microsystemsが1982年の創業以来、
「The Network Is The Computer」という言葉を
企業スローガンとして長きにわたり使ってきたことはご存じだろうか。
「(コンピュータの本質は企業内に置いてある大きな箱ではなく)
ネットワークこそがコンピュータなのだ」というこの考え方は、
まさにクラウド・コンピューティングのビジョンを先取りしていたものと言えるだろう。

(場所を忘れてしまった・・・)
Googleはクラウド・コンピューティングを牽引する主要プレーヤーの1社だが、
同社CEOのEric Schmidt氏がSun出身であることは興味深い事実だ

言っていたことを、現実にしてしまう。
やはりGoogleの力強さを感じずにはいられない。


クラウドコンピューティングを定義する4原則@マイコミジャーナル

SitePointのWhat Makes the Cloud the Cloudで紹介されている定義。
ニューヨークで開催されたWeb 2.0 Expoセッションで
Albert Wengerから発表された定義として紹介されている。


・ポストマシンコンピューティング -
 クラウドインフラストラクチャをデプロイした後は
 個人が使うマシーンについては気にかける必要なく活用できる必要がある
・設定が不要 -
 デプロイしたあとは設定などに気をかける必要がないこと。
 コーディングに集中できるプラットフォームである必要がある
・スケール -
 最初に作成したコードがそのままスケールすること。
 明確な理由がないかぎり作成したコードは
 開発者が気にすることなくスケールする必要がある
・マッシュアップ -
  Webサービスのマッシュアップが容易にできるプラットフォームであること



Web 2.0 and Cloud Computing by Tim O'Reilly
クラウドっていうのは、要するに「あちら側」のことではないのか

クラウドの定義だけでなく、Web2.0との関係を話している。


マッキンゼーのクラウドコンピューティングの定義
Clearing the air on cloud computing
クラウドコンピューティングの空を晴らす@InfoQ


1.Hardware management is highly abstracted from the buyer
2.Buyers incur infrastructure costs as variable OPEX
3.Infrastructure capacity is highly elastic (up or down)
1. 買い手にとって、ハードウェア管理が高度に抽象化されている
2. 買い手はインフラコストを変動的な事業運営費として負担する
3. インフラのキャパシティは高度に伸縮性がある(上がる方にも下がる方にも)

やっぱり中身より、外見からの判断か。
そう考えたら、たしかにあちら側だけの定義で十分な気もする。


米国政府とクラウドの定義NISTのクラウド定義 by 関 孝則@日本IBM
The U.S. Federal Government Defines Cloud Computing

・オンデマンドのセルフサービス -
 人の仲介なしに必要な分のコンピューティング能力を得られる。
・どこからでもネットワークアクセス -
 さまざまなクライアントからの利用が促進されるネットワークごしでの提供。
・場所が意識されないリソースのプール化 -
 さまざまなリソースを場所を意識せずにマルチテナントで提供される。
・迅速な弾力性 -
 迅速にスケールアップやスケールダウンされ、
 いつでも無限にもおもえるリソースが提供される。
・ペイ・パー・ユース -
 課金が、リソースの使用量、サービス単位、
 広告モデルなどで最適化されるようになされる。
 組織内のクラウドでは組織間でこれらの課金が行われる。

ビジネスとしての観点から見て、クラウドが定義されている気がする。
商用としてクラウドを使用したときに、性能や機能に問題出たときに、
法律で論じるときの米国的な観点のためかな。


一般的なレベルにまでなるには、まだまだこれからって気がします。
以上、ちょっと駄文でした。

コメント

このブログの人気の投稿

間違ったフォーマットのプログラムじゃないんだけど

以下エラーに対し、 ファイルまたはアセンブリ 'SSPI'、またはその依存関係の 1 つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。 以下環境で対応した話です。 VisualStudio2012(C# ASP.NET MVC4.0) IIS7.5 とあるところのdllを使用中 ASP.NETをIISに発行しようとしたら、上記エラーが発生。 他のプロジェクトでは問題なく発行できているのに、 何かと思ってみたら、google先生に尋ねてみると、 DLLファイルの対象プラットフォーム(32bit/64bit)が異なる とのことでした。 このサイトでは対処方法として、 運用環境のプラットフォームに合わせ、適切なランタイムファイルを配布してください。 と記載されていますが、今回の私のようにとあるところのdllを使用している場合などは、 そうもいかない場合もあるでしょう。 そこでdllを変更できない場合には、 IISのアプリケーションプールの設定で、 32bitアプリケーションを有効化してあげることで対応できます。 以下手順です。 コントロールパネル → 管理ツール → インターネット インフォメーション サービス (IIS) マネージャー を起動します。 変更したいアプリケーションを右クリックして、詳細設定を選択します。 32ビットアプリケーションの有効化をTrueに変更します。 もう一度発行します。 ここまでです。 簡単だけど知らないとなかなかはまるかなって気がしますね。 独特のくせなのかもしれません。 そして、次なるエラー発生中です・・・。

SQLServer2008でのトランザクションログの切り捨て方

SQL Server 2008でとあるDBのトランザクションログが一杯に。 BACKUP LOG DatabaseName WITH TRUNCATE_ONLY を使ってトランケートしようとしたら、 'TRUNCATE_ONLY' はBACKUP オプションとして認識されません。 との冷たい返事。2008で廃止されていたのを忘れていた。 SQL Server 2008 で廃止されたデータベース エンジンの機能@MSDN そこでヌルデバイスを使用してバックアップを取得する方法で、切り捨てを試みる。 BACKUP LOG DatabaseName TO DISK = ‘nul’ GO するとまた冷たい返事。 現在、データベースのバックアップが存在しないので、BACKUP LOG を実行できません。 2008では過去にフルバックアップを取得しておかないと、ランザクションのバックアップが取得できないことを忘れてた。てなわけで、まずはデータベースのフルバックアップを取得して、 BACKUP DATABASE DatabaseName TO DISK = ‘nul’ GO もう一度トランザクションのバックアップをして、やっと切り捨てれた。最初から単純にしておけばよかった・・・。

並列化できない非同期の話

あるバッチ処理で顧客にメール送信する場面ありますよね。そんなとき、メール送信はメールサーバに投げ込むだけなんだから、投げ込むの非同期すりゃ早くなるんじゃないって思いませんでした? 思いますよね? そんなことを考えて、C# で SmtpClinet を使ったお話です。ちなみに結論的に非同期で早くなりません。 SmtpClient.SendAsync C# でメール送信するなら、SmtpCilent クラスってのがありますと。こいつが同期でメール送信する Send だけではなく、非同期でメール送信する SendAsync ってのを持っているわけですよ。 MSDN を参照すると、 指定した電子メール メッセージを、配信用 SMTP サーバーに送信します。 このメソッドは、呼び出し元のスレッドをブロックしません。また、呼び出し元は、操作の完了時に呼び出されるメソッドにオブジェクトを渡すことができます。 とのこと。非常に Good ですね! 少しの背景と過大な期待 背景として、すでに動いているバッチが遅いって話になって、性能改善に取り組んでいました。現存しているバッチは Send で動作しています。 てことは、 SendAsync にするだけいいんじゃないの?それだけ非同期になるから早くなっちゃうんじゃないの?こんな期待感でいっぱいでした。 ところが 修正して実行すると想定以上の時間で完了しました。でもメールが飛んできません。。。よくよく見ると例外が。。。そしてよくよく MSDN を見ると、 SendAsync を呼び出した後、Send または SendAsync を使用して別の電子メール メッセージを送信する前に、電子メールの伝送が完了するまで待機する必要があります。 とのこと。 これって結局メール送信は非同期で並列になることことを許容していないってことだったんですね。 非同期と並列処理は別ですが、とは言え並列処理を許容していないとは。。。 結局 今回は Parallel.Foreach を使って、メール送信箇所は並列処理するように書き直しました。これもお手軽ですね。