kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Coursera で "Cloud Computing Concepts, Part 1" Week 1 を受講した

Coursera

Coursera でイリノイ大学の講義 "Cloud Computing Concepts, Part 1" を受講してる!

Week 1 に関して個人的な勉強メモをまとめた.

Week 1 : 期間

  • 2016/08/29 - 2016/09/04

Week 1 : アジェンダ

  • Week 1: Orientation, Introduction to Clouds, MapReduce
    • Orientation
    • Basic Computer Science Fundamentals
    • Know Your Classmates
    • Week 1 Overview: Introduction to Clouds, MapReduce
    • Lesson 1: Introduction to Clouds
    • Lesson 2: Clouds are Distributed Systems
    • Lesson 3: MapReduce
    • Interview
    • Homework

Basic Computer Science Fundamentals

講義の本題に入る前にコンピュータサイエンスの基礎を確認するレッスンになっていた.大きく以下の6項目に関してザッと学んだ.

  • Basic datastructures
    • Queue : FIFO (Insert / Remove)
    • Stack : FILO (Push / Pop)
  • Processes
    • プロセスの構造
      • ヒープ
      • レジスタ
      • プログラムカウンタ
      • スタック
  • Computer architecture
    • プログラムをコンパイルするとマシン語に変換できる
    • 命令を CPU が実行する
  • O() notation
    • アルゴリズムの計算量を計測する
    • 最悪のケースのパフォーマンスを知ることができる
    • 未ソートなリストに対して検索する場合の計算量は O(N)
    • 挿入ソート (Insertion Sort) の計算量は O(N2)
  • Basic probability
    • 一般的な確率論のこと
  • Miscellaneous
    • DNS
    • グラフ理論(ノード・エッジ・エッジコスト)

計算量(ランダウの記号)に関して,講義資料で出てきた例は一般的だったけど,宿題で出た問題が結構複雑なアルゴリズムの計算量を答える必要があって難しかった.普通に知識不足を痛感したので,改めて基礎的な部分を勉強し直した.

qiita.com

d.hatena.ne.jp

Lesson 1: Introduction to Clouds

クラウドプロバイダとして AWS や Azure がある話や,パブリッククラウドとプライベートクラウドの違いなど,基本的な話から始まった.データセンターのトポロジーとして,コアスイッチの下に複数のラックが存在して,ラックごとにサーバが紐付いているという話もあった.

現在のクラウドコンピューティングの特徴として以下の4項目が挙げられていた.まぁ一般的な話だとは思う.

  • Massive scale
  • On-demand access
  • Data-intensive Nature
  • New Cloud Programming Paradigms
    • MapReduce / NoSQL / Cassandra

個人的に面白かったのはデータセンターの効率性(グリーングリッド)の話だった.「水使用効率 : WUE (Water Usage Effectiveness)」と「電力使用効率 : PUE (Power Usage Effectiveness)」の話が出てきて,基本的には施設全体の消費量と IT 機器の消費量が近いほど効率が良いとされている.全く知らなくて勉強になった.他には関連して,冷却設備の紹介もされていて,クラウドコンピューティングの物理を支えているのはこういうテクノロジーなんだよなと改めて認識させられた.

以下に参考資料になっていた Microsoft のデータセンターの紹介動画を貼っておく!

www.youtube.com

Lesson 2: Clouds are Distributed Systems

クラウドは分散システムのニックネームのようなもので,P2P や Grid や Clusters などを含んでいるという話だった.

Lesson 3: MapReduce

最後のレッスンは MapReduce の解説だった.最初は Hadoop の基本的な知識があれば理解できる内容で,Map フェーズとは?Reduce フェーズとは?ワードカウントに適用するとどうなる?という話だった.

次に MapReduce のスケジューリングの話で,YARN (Resource Manager / Node Manager / Application Masters) の話が出てきた.正直 YARN のことはさっぱりわからなくて,調べながら講義を聞き直したりした.あとは MapReduce の対障害性に関しても解説があった.サーバが故障した場合,リソースマネージャが停止した場合など.

Interview

全部見れてなくて TODO にしてある.