Runner in the High

技術のことをかくこころみ

JMOOCの「クラウドサービス・分散システム」の講座がいい感じ

内容的には自分が過去記事で紹介した「データ指向アプリケーションデザイン」の内容を、もう少しとっつきやすくかみ砕いたような雰囲気。大学での講義を収録したっぽいものなので、ある程度初めての人でも分かりやすいかもしれない。

lms.gacco.org

この講座の中で触れられているトピックは

  • 分散コミット(2層コミット, 3層コミット)
  • 定足数(クオラム, ビザンチン合意)
  • 論理クロック
  • データ複製の一貫性(強整合性, 因果整合性, 弱整合性, 結果整合性, ...)
  • IaC(Infrastructure as Code)

などが中心になっている。

定足数や論理クロックのあたりは、実際にアプリケーション開発をやっていて必ず登場する概念ではないが、クラウドプラットフォームから提供されるデータベース製品の仕様だったり、オーケストレータの挙動を理解するためにはある程度知っている方がいいのかなと思う。

一貫性回りの話は、DynamoDBだったりSpannerだったりいわゆるNoSQL周りを使うならばもはや必須の知識と言える。自分の場合は、社会人になってからプロダクト開発の都合上GoogleのDatastoreを触るようになった関係で先輩から整合性に関して細かく手ほどきを受けたけれど、こういう話を学生の頃から学べるのはちょっとうらやましい。