2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
三宅和之氏(以下、三宅):ちょっとベクトル検索はそれぐらいにして、(スライドを示して)本当は今日はこっちを言いたいのですが(笑)。あまり時間がないので、重要なものだけを紹介しますね。
Cosmos DBは先ほど言ったように、ハイパースケールなデータベースなのですが、お金を払えばそれが実現するかというとそんなにうまい話はなくて、きちんと設計しないといけません。
何を考慮しないといけないかだけで、4時間ぐらい話せるのですがそこを10分ぐらいで話すと、私が個人的に思うのはこの3つです。スループットでいかに最適化するかという話と、パーティションを(スライドを示して)この図のとおりに水平スケールさせるからメリットが出るのであって、そのためにはきちんとパーティションで分割できる設計が必要です。
そのためには、入っていくデータに対しても適切なモデリングが必要で、そういうことが前提にあって先ほどのメリットが出せるという話なんですね。なので、今まではちょっととっつきにくかったんですよ。正直そういう部分がありました。今回のアップデートで、そこのハードルをグンッと下げるものが2つ、3つ出ました。
1つは、スループットの調整をさらにしやすくするための手段として、Burst capacityというものがあります。これはGAになったので、みなさん今すぐ使えます。これは何かというと、スループットを設定しておかないといけないんですね。青い線が入っていますが、これは1,000RUという単位で、これを超えるとDBは「受け付けませんよ」とリクエストを受け付けなくなってしまいます。
通常のDBとは違って、スピードは保証しているので遅くなることはありませんが、その代わり決められたスループットを超えてしまうと利用できなくなってしまいます。それに対する対策をいろいろと打つんですね。今回は一番簡単な方法です。Burst capacityをオンにしておけば、ふだん使っていない部分を溜めておいてくれます。貯金しておいてくれる。
いざトラフィックが増えて超えてしまった場合に、その貯金を充填してくれます。結局、料金計算の部分だけをやってくれているので、サーバーが実際に増えて大きくなったり小さくなったりしているわけではありません。良い感じに料金計算上きちんと収まるようにしてくれて、429エラーを出して「これ以上リクエストを受け付けられません」というのが出ないようにしてくれる機能です。
これは、設定をポチっと押すだけでできますし追加料金がかからないので、基本的に常にオンにしておいたほうがいいんじゃないの? という、メチャクチャ推しの機能です。Cosmos DBをこれからやる方は、この設定を必ずオンにしてやってください。
もう1つですね。partition keyをうまく分散させるためにはデータを分散させるkeyの設定が必要だったんですね。今までこれは1つしか選べなかったので、どういうkeyを設定したらいいかというのが本当に難しかったんです。うまくハマるケースもあれば、システムの目的によってはけっこうハマらないケースもありました。特にマルチテナントのデータベースですね。
マルチテナントのデータベースは、まずマルチテナントのテナントを絞り込んでからデータを絞り込んでいきたいのですが、1つしかパーティションが切れないとそれができなかったんですよ。ですが、今回は3段階までpartition keyを設定できるようになりました。
まずマルチテナントのテナントで、この紫色の部分ですね。テナントで絞ってから、その中のユーザーやチームでさらにデータを絞り込んで高速にアクセスできるという機能が出て、それがGAしているので、マルチテナントのデータベースをCosmos DBで構築している時に「partition keyに悩む」という方は、これで今までの悩みが全部解決します。
特にこの1パーティションは20GB制限があって、これがあるとテナント単位をpartition keyにしにくかったのですが、そこを超えられるようになったので、これは大きな革命です。Cosmos DBはデビューしてから6、7年になると思いますが、大前提が今のこれで覆ったのでこれは本当に熱いです。
この熱さがなんとなく伝わってくれるとうれしいんですけど(笑)。詳細はわからないと思うので、後ほどそれをフォローするイベントを紹介します。
あとはChange Feedですね。イチオシの機能と言いましたが、これも大きなアップデートがありました。変更点を基本的に配信してくれていたのですが、実は全部の変更ではなかったんですね。サマリーして配信されていた部分がありましたが、それでも十分に対応できるシナリオは多かったです。
ですが、やはり完全な変更を送ってほしいというニーズが多く、特にイベントソーシングパターンを使ってシステムを構築されるケースだと、そこは完全な変更が欲しかったというのがあって、完全なイベントソーシングがサポートできるようにすべての変更と削除が配信されるようになったので、Change Feedを活用したさらに応用的なアーキテクチャができるようになるかなと思います。(スライドを示して)これはプレビューですね。
このChange Feedをガッツリ活用している例を、今日はスタートアップのイベントなのでお話しします。AGRISTという、農業スタートアップの例です。Cosmos DBで受けたものを使って、いろいろな目的別にデータを配信して、スタートアップなのでどんどんサービスを追加していきます。
でも、Change Feedを活用して、スモールスタートでどんどんサービスを追加していて、今はもうスタートアップを卒業されているんでしたっけ? スタートアッププログラムを卒業されているのですが、ビジネスをスケールさせたCosmos DBの例で紹介させていただきたいなと思います。
最後に、参考情報の紹介をさせてください。Cosmos DBのアップデートは、公式ブログに全部バーッとまとまっています。後でURL付きのスライドをアップロードするので、そちらをご覧ください。あとは、日本人で私と同じMVPの、しばやん(芝村達郎氏)という方がいるのですが、これをさらに日本語化してもっとわかりやすいブログを書かれているので、そこのリンクも後で紹介しますね。後でまとめて紹介するページをアップロードしたいと思います。
私も最後に少しだけ紹介させてください。スタートアッププログラムを技術力でサポートする、「ZEN Advisor」というので日々の開発をお手伝いしています。
あとは、これはけっこう評判をいただいているのですが、先ほどのAGRISTも使ったサービスで「Azure Light-up」というサービスがあります。
私たちと一緒に2、3日でプロトタイプを一気に作って、Azureを使ったアーキテクチャをできるだけ早くビジネスで使えるようにするプログラムがあるのでぜひご活用ください。ということで私からは以上です。ありがとうございます。
司会者:ありがとうございます。非常に熱いアップデートで、たぶん熱量が伝わっているのかなと。Twitterを見ながら「伝わっているな」と、感じました。
三宅:本当ですか? 良かった。
司会者:質問がいくつかあって、1個は公開させていただければと思います。「細かな話で恐縮ですが、Change Feedは write once でしょうか?」というご質問です。いかがですか?
三宅:Change Feedを図を使って簡単に言うと、これはパーティションも関連するのですが、パーティションの中では順序保証がされています。そこがメリットですね。なので、パーティション設計はとても重要になりますよということがそういうところでわかってほしいですね。これで回答になっていますかね? 大丈夫ですかね?
司会者:大丈夫だと思います。ちょっとまだお時間があるので、もし今回Cosmos DBというハイパースケールなデータベースがメインではありましたが、他にもかなり大量のアップデートがあったと思います。口頭でCosmos DB以外に「他にもこれが良かったよ」というのがあれば。
三宅:Cosmos DB以外ですか?
司会者:Cosmos DBの今の中でももちろんいいですし、そこに関連するところであれば。
三宅:Cosmos DBの話でいうと、実は今日追加のアップデートがあったんですよ(笑)。これはまだ検証をしていないのですが、「いろいろやった後にまだ出してくるか」みたいなところで、priority-based executionというのが今朝出ました。これもパフォーマンス系で、要はリクエストの中で優先度の高いものは「絶対に先ほどのスループットの中に入るように」という優先順位を付けられるようになりました。
例えば非常に重要な、ユーザー操作による更新処理のような絶対に漏らしたくないものはプライオリティを高めにしておけば中に入りますし、逆に漏れたものがどうなるかというと、別にリクエストを受け付けないのではなく、きちんと裏側でリトライポリシーを使っています。Cosmos DBは秒間のスループットの設定なので、次の秒になって空いていれば使えるんですよね。
裏側で少し遅れて処理してくれるのを勝手にコントロールする機能が、今日急に出てきてビックリしました。
司会者:Buildが終わってもまだアップデートが追加されるのってすごいですよね。
三宅:本当にすごいですね。それぐらいですかね。開発が非常に活発で、おもしろいデータベースになっています。とっつきにくい部分については、来週のウェビナーを聞いてもらえばだいたいクリアになります。Cosmos DBというのは、パーティション設計をクリアすると全部見えてきます。しかも今回は階層パーティションでメチャクチャ使いやすくなったので、だいぶとっつきやすくなっているはずです。ChatGPTでも使われているので。
司会者:そうですね。
三宅:安心して使ってください。
司会者:三宅さん、ありがとうございました。
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05