クラウド入門

 

平成24年度シラバス

 

 

 

 

 

 

 

 

 

 

 

2012113

 

 

 

国立情報学研究所

トップエスイープロジェクト

代表者 本位田 真一

 

1.    講座名

クラウド入門

 

2.    担当者

横山 重俊、山崎 泰宏、田辺 良則、粂野 文洋

 

3.    本講座の目的

本講座では、クラウドコンピューティング環境上での分散アプリケーション開発手法を扱う。クラウド環境自体の学習も行うことで、その特性について理解を深め、 分散アプリケーション開発技術を実問題へ適用する際に必要な実践的能力を習得する。

 

4.   本講座のオリジナリティ

NIIで構築した学習用クラウドを講義・演習用環境として活用することで実践的に分散アプリケーション開発を体験できる。さらには、分散アプリケーション開発で必要となるクラウドコンピューティング基盤の動きまでに触れる。

         

5.   本講座で扱う難しさ

近年、大規模化するソフトウェアの開発および実行環境としてクラウドコンピューティング環境が活用される場面が増えてきている。特に処理性能のスケーラビリティや可用

性向上を目的としてクラウドコンピューティング環境での分散アプリケーションを開発する機会が今後益々増えてくると考えられる。このような要求に対して他のトップエス

イー講座シリーズで学習する技術による分散アプリケーションの設計・実装についての知見を活用し、実際のクラウドコンピューティング環境で実用的なアプリケーションフレームワークをアプリケーションの特性に合わせて用意し、習得、それらの各特徴を理解することが求められる。さらにアプリケーションレイヤだけでは解決できない問題についてはクラウドコンピューティング基盤 の特性を理解した基盤の選択、そのチューニングやさらにはOSSクラウド基盤の場合にはそれを改変する能力も求められる。

 


 

6.   本講座で習得する知識・技術

クラウド環境上で分散アプリケーションを開発する上で現在広く利用可能な実用的アプリケーションフレームワークについて学ぶ。

本講座は、クラウドコンピューティング基盤上に構築された各種分散アプリケーション開発フレームワークを用い、分散アプリケーションを構築することを通じて、それぞれのアプリケーションフレームワークの特徴やクラウドコンピューティング基盤自体が持つ特性を習得できる。その上で各アプリケーションフレームワークがそれぞれ得意とする実践的な課題について、実際に分散アプリケーションを構築し、運用し、評価することを通じて、クラウドコンピューティング環境上での分散アプリケーション開発についての実装から運用までをトータルに実施できる能力を身に付ける。本講座で扱う具体的なアプリケーションフレームワークはWeb三層モデル、Hadoop/Map-ReduceMPIクラスタである。

 

7.    前提知識

本講座の受講生は、以下の項目を習得済みであることが望ましい。

(1)  システム基盤構築(シェルプログラミング経験があればさらに望ましい)

(2)  Javaプログラミング 

(3)  並行プログラムに関する基礎的な理論

このうち、項目(3)はトップエスイー「基礎理論」講座で習得可能である。

 


 

8.    講義計画

 

概要

第1回: クラウドコンピューティング基盤

第2回: Web三層モデル(1)

第3回: Web三層モデル(2)

第4回: Web三層モデル(3)

第5回:  Map-Reduce(1)

第6回:  Map-Reduce(2)

第7回:  MPI (分散モデル検証を例に)

 


 

詳細

第1回: クラウドコンピューティング概説

-          クラウドコンピューティングの特徴と分類

-          クラウドコンピューティング現状と事例

-          クラウド基盤について

-          クラウド基盤の活用方法

-          edubase Cloud の概要

-          edubase Cloud利用演習

第2回: Web三層モデル(1)

-          Webシステムの基礎

-          Webのスケーラビリティ

-          ネットワークの考え方

-          スケールアウトとシュリンクイン

第3回: Web三層モデル(2)

-          負荷の傾向分析

-          負荷とスケーラビリティ

第4回: Web三層モデル(3)

-          よく知られた負荷対策

-          Terracottaについて

-          Read/Write分散

第5回:  Map-Reduce(1)

Map-Reduce プログラミングパラダイム

Hadoop を用いたプログラミング演習-1

第6回:  Map-Reduce(2)

Hadoop を用いたプログラミング演習-2

第7回:  MPI(分散モデル検証を例に)
MPI概論
- クラウド上でのMPIアプリケーション実習
- 分散モデル検証とは
- DiVinE Cluster(クラウド)での実習
- クラウド上での検証に関する議論

 

 


 

9.    教育効果

本講座を受講することにより、実際のクラウドコンピューティング基盤上の分散アプリケーション開発、特に既存の分散アプリケーショフレームワークを適用可能なアプリケーション開発手法を 習得できる。その結果、開発現場において、クラウドコンピューティング基盤を活用することにより、スケーラビリティと可用性が高く信頼できるシステムを、効率的に開発することができるようになる。

 

10.   使用ツール

     eduase Cloudおよび関連ツール

     Terracotta/Grinder

     Hadoopおよび関連ツール

     DiVinE

 

11.   評価

演習課題レポート、プレゼン発表、出席日数を総合して評価する。

 

12.   実験及び演習

アプリケーションフレームワーク毎に適した演習を用意している。これらに順次取り組むことによって、実際の開発の際に適切なフレームワークを選択するのに必要な知識を体得する。

 

13.   教科書/参考書

 

(Web)

   - Terracotta Inc.: The Definitive Guide to Terracotta: Cluster the JVM for

Spring, Hibernate and POJO Scalability (Apress)

(Map-Reduce)

-      Tom White (玉川、兼田訳) Hadoop (オライリー・ジャパン)

-      Jimy Lin, Chris Dyer: Data-Intensive Text Processing with MapReduce (Morgan & Claypool)

-      太田, 下垣, 山下, 猿田, 藤井著 「Hadoop徹底入門」 (翔泳社)