第2回 クラウドデザインパターン勉強会 #jazug (2014/08/20)

http://jazug.doorkeeper.jp/events/13964 ・2014-08-20(水)19:30 - 21:50 ・イベント概要 7/30 の 第1回 クラウドデザインパターン勉強会 の好評を受け、第2回を開催します 今回2回目は、Compute Partitioning ガイダンスと、補正トランザクションを中心にいくつかのパターンを紹介します。 続きを読む
4
レベル100のクワッスを連れ歩くスズカナ @bell_kana

で、実際オートスケールって使うの?って話。業務系では正直そんなに使わないんじゃないか?夜中に減らしてコスト削減ってパターンとか?とはいえ、ジャパニーズトラディショナルカムパニーの社畜という、毎月金額が変わるってのがイヤ!という種類のイキモノもいる。 #jazug

2014-08-20 20:37:28
レベル100のクワッスを連れ歩くスズカナ @bell_kana

オートスケール、使いどころはフロントだよねー、という意見。うむ。 #jazug

2014-08-20 20:38:08
ISHII Hidenori @h141gm

「オートスケールはコストが変わるのが会社的に困る」という身もふたも無い意見がw #jazug

2014-08-20 20:39:02
masak1yu🐧 @masak1yu

イベント直後の分かりやすすぎるアクセス変動を見てる身としては、あの時分にオートスケールがあればな、と痛切している。。 #jazug

2014-08-20 20:40:46
レベル100のクワッスを連れ歩くスズカナ @bell_kana

おーみせんせいセッション、はじまりますー。 #jazug

2014-08-20 20:49:37
レベル100のクワッスを連れ歩くスズカナ @bell_kana

補正トランザクションとインデックステーブルのパターンです。 #jazug

2014-08-20 20:51:01
レベル100のクワッスを連れ歩くスズカナ @bell_kana

パターンに入る前に。AzureのCDPは回答集ではない。課題が整理され、考慮点について記述されている。アプリなどの価値観に合わせて『自分で考えましょう』。 #jazug

2014-08-20 20:54:18
レベル100のクワッスを連れ歩くスズカナ @bell_kana

『スケーラビリティや性能』のためには『分割』が必要、分割すると『一貫性や整合性』が失われ、スケーラビリティや性能に悪影響を与える、という因果関係がある。 #jazug

2014-08-20 20:55:44
レベル100のクワッスを連れ歩くスズカナ @bell_kana

パフォーマンスを維持してスケールする。ぶち当たるところは物理的なハードウェアの限界。クラウドはいわば一般的なサーバーを大量に並べる手法なので、CPUだったりメモリだったり、ネットワークだったりの限界に行き着く。で、限界に行き着いたら、分割して対応しましょう、と。 #jazug

2014-08-20 20:57:44
レベル100のクワッスを連れ歩くスズカナ @bell_kana

パーティション間のトランザクションは高コスト。結果整合性の導入。DBのトランザクションのような「強い整合性」ではなく、「結果整合性」が取れていればいいので、一時的な不整合を許容する。 #jazug

2014-08-20 21:01:39
s.hiruta @web_se

分散環境では結果整合性を選択。トランザクション実行中は整合性がないViewになるケースも。パフォーマンス上欠点も。 #jazug

2014-08-20 21:03:16
レベル100のクワッスを連れ歩くスズカナ @bell_kana

エラーなどによって、一時的に生じた不整合を解消し、結果整合性を実現するための方法が補正トランザクション。 #jazug

2014-08-20 21:03:30
レベル100のクワッスを連れ歩くスズカナ @bell_kana

補正トランザクションのロールバックにおいて、他のサービスで変更されていたりもするから、単にトランザクション開始前のデータに書き戻せばいいってのは例外的。一般的にはワークフローを使用してロールバックする。 #jazug

2014-08-20 21:05:46
レベル100のクワッスを連れ歩くスズカナ @bell_kana

また、補正トランザクション自身が失敗する可能性もある。これを考慮しておく必要がある。ふえええぇぇぇ・・・ #jazug

2014-08-20 21:06:33
ISHII Hidenori @h141gm

「補正トランザクション自体が失敗する可能性も考えて冪等にしとく必要がある」…うわ、これは面倒くさい #jazug

2014-08-20 21:06:56
レベル100のクワッスを連れ歩くスズカナ @bell_kana

トランザクションの識別子を時系列で生成し、処理ごとにトランザクションのログデータを生成する。この時、補正トランザクションの対象となる処理(識別子)を知るのがちょっと難しい→だから識別子を時系列に作っておく。 #jazug

2014-08-20 21:09:26
ホップ @hoppu_3

冪等性が保証されていればエラーは考慮しなくてもいいはずなんだけど…。トランザクションの実装は面倒くさい。#jazug

2014-08-20 21:10:30
レベル100のクワッスを連れ歩くスズカナ @bell_kana

補正トランザクションは『元に戻す』ためではない。『整合性が取れている状態に戻す』もの。補正トランザクションの手順は元の逆順でなくても良い。 #jazug

2014-08-20 21:14:24
レベル100のクワッスを連れ歩くスズカナ @bell_kana

補正トランザクションはめんどうなので、なるべく使わないようにするべき。例えば、リトライ処理を入れるなどして、そもそもトランザクションが失敗しないようにしておく。 #jazug

2014-08-20 21:16:57
hy0shi0ka @hy0shi0ka

補正トランザクションは実行コストが高く、最小になるように設計しましょう。 #jazug

2014-08-20 21:18:50
レベル100のクワッスを連れ歩くスズカナ @bell_kana

補正トランザクションの例として、旅行プラン予約の例。複数のフライトとホテルを予約して、1つの旅行プランを予約する。1か所の予約を失敗した場合、補正トランザクションを走らせるのではなく、ユーザー操作で別の予約を行うように促す、なんて方法も。 #jazug

2014-08-20 21:21:32
ISHII Hidenori @h141gm

スターバックスは2フェーズコミットを使わない code.google.com/p/gregors-ramb… #jazug

2014-08-20 21:22:59
NaruTo@うなぎ食べない教 @KAZAMAI_NaruTo

早退届出すのを忘れていたんだよぉ。 クラウドデザインパターン勉強会行きたかったよぉ

2014-08-20 21:24:29