Azureマイクロソフトのクラウドアカウント購入は、グローバル分散データベースについて話しています。Cosmos DBを使って、輸送次元を「火穴」から拾ったのはどうやってですか
クラウドの原始的な枠組みとグローバルなビジネスをしたことがある友人は、おそらく頭皮がしびれているような暗い瞬間を経験したことがある
北京時間の午前3時、携帯電話が狂った監視システムは最高レベルの警報を鳴らした。「ヨーロッパのユーザーのアクセス遅延が急増した」、「地域間のデータ同期に重大な衝突が発生した」、「プライマリデータベースのCPUが100% に達しても応答がなかった」。この時、くまをかぶって起き上がって、VPNに接続して、目がかすんでいる分庫分表戦略、主従同期遅延、Binlog紛失、永遠に不正確なインデックスに直面し始めた。
Azure Microsoft Cloudアカウント購入代行・チャージ
正直に言うと、伝統的なデータベースアーキテクチャは、真のグローバル化、高同時業務に直面したとき、輸送コストは全く底がない。
この間、私は何人かの古い友人と酒を飲んでいたが、「いつデータベースがあるか、勝手にデータを世界の隅々まで同期させることができる毎日、スライス、拡張、ロックの衝突を心配する必要はありませんか?」と言いました実は、ここ数年、皆さんは本番環境で、MySQL/PostgreSQLクラスタからオープンソース分散NoSQLまで、さまざまな案を試してみました「グローバル分散」と「スピード輸送」という言葉を本当に着地させるには
Azure Cosmos DB
避けて通れないほどの基準となる存在と言える。
今日は、あいまいな公式ホワイトペーパーや退屈な枠組み図を使わずに、第一線の技術者の視点でcosmos DBがどのようにしてグローバル分散NoSQLの輸送体験を実現したのかをお話しします。
一、従来のグローバル分散型体制が抱える課題:なぜ深夜まで残業しがちなのか?
Cosmos DBについてお話しする前に、まずは従来のソリューションが抱える課題点を見ていきましょう。
Azure Microsoft Cloudアカウント購入代行・チャージ
もしあなたの業務が海に出たとしたら、ユーザーは北米、ヨーロッパ、東南アジアにいる。現地のユーザーがスムーズなアクセス体験を提供するためには、現地にデータベースノードを導入する必要があります。この時、トラブルが来ました
データ同期の遅延と競合(スプリットブレイン):国際海底光ケーブルによる物理的な遅延は、客観的に存在するものです。アメリカのユーザーとヨーロッパのユーザーが同じデータを同時に修正した場合、どうやって衝突を解決しますか?タイムスタンプでカバーしますか?それとも複雑な業務補償ロジックを書きますか?
スケールアップは“大手術”に匹敵する:業務が急増し、単一サーバーでは対応しきれなくなった。分庫分表を作りましょうかコードを変えたり、データを移行したり、データの整合性チェックをしたりして、どのステップが穴を踏んだかは生産事故です。
運用監視のブラックホール:ノードが増えれば、運用担当者の負担は膨れ上がる。どのノードのディスクがいっぱいですか?どのノードのネットワークが揺れましたか?運送業者は毎日各種の監視総合株価を見るだけで疲れきっています。
もっと多くの構成パラメータが必要です
すぐに利用可能なグローバル規模と、真の「運用不要(サーバーレス/マネージド)」体験
。
二、Azure Cosmos DBを分解する: それは何で「スピード輸送」を実現できるのか
」?
Azure Cosmos DBを初めて触る人は、そのいくつかのコア機能に驚かされることが多いです。当社のここ数年の実際の導入経験を踏まえると、運用保守面でいくつかの強力な特長があります。
1. まさに「マウスでクリックするだけでデータが移動」:グローバルマルチアクティブとワンクリックレプリケーション
従来のアーキテクチャでは、海外のデータセンターを追加するには、DBAチームは数週間前にネットワークを計画し、インスタンスを導入し、レプリケーション・リンクを構成しなければならない。
一方、Cosmos DBのAzureポータルでは、事態は極めてダイナミックかつ洗練された形で進行します。
どの国/地域の機械室が気に入っているかは、地図上で直接マウスでクリックして保存し、数分以内に、世界のデータが自動的に多活同期を完了する。
マルチマスター書き込み:グローバルな複数の読み取りをサポートするだけでなく、グローバルな複数の書き込みもサポートします。これは、北米のユーザーが米国のノードを書いて、ヨーロッパのユーザーがヨーロッパのノードを書いて、基礎が自動的に複数バージョンの同時制御 (MVCC) と衝突解決戦略で解決できることを意味します。
運送次元解放: 主従遅延を監視するためにスクリプトを書く必要はなく、ある地域のノードがハングアップして業務が中断する心配もありません。高可用性SLA (例えば99.999% の可用性保証) を持っていて、基礎がどのように災害を許容し、どのようにデータを冗長にするか、クラウドメーカーはすべてをカバーしています。
2. DBAの悪夢に別れを告げる:自動インデックス(Automatic Indexing)
NoSQLを書いた人は、構造が柔軟だが、業務クエリが変わってインデックスが作成されていない場合、全表スキャン分でデータベースをハングアップさせることを知っている。
Azure Microsoft Cloudアカウント購入代行・チャージ
従来のNoSQLは、DBAがクエリ文を手動で分析し、二次インデックス、複合インデックスを入念に設計する必要がある。
Cosmos DBは、非常に“過激”でありながら、開発者や運用担当者にとって極めて使いやすい仕組みを実現しました。
デフォルトでは、すべてのデータのすべての属性に対して自動インデックスが作成されます(スキーマ非依存型インデックス)。
開発爽快: JSON文書を保存して、新しいフィールドを自由に追加して、データベース定義を変更することなく、直接WHERE条件照会を行うことができます。
運用が楽:B木インデックスのチューニングは一切不要です。バックグラウンドでは、インデックスを維持するために一定のストレージスペースが消費されていますが、運送業者にとっては、「インデックスを作成しない」ことによるアラームが1つ減っています。
3. ミリ秒レベルの予測可能なパフォーマンス:RU/s(リクエスト単位)によるきめ細かな制御
クラウド時代において、コストと性能のバランスは常に運用保守の最重要KPIである。Cosmos DBが導入されました
RU/秒(リクエスト単位)
の概念。
あなたのクエリが簡単なKey-Valueを読んでいても、複雑なSQL結合クエリを行っていても、正確に何個のRUを消費することができます。
あなたは各コンテナに対して
Ontainer) はデータベース全体でもスループットを設定します。手動調整だけでなく、オートスケールもサポートしています。
サーバレス (Serverless) モードに合わせて、そのアクセス量が不規則な小規模な業務やテスト環境に対して、「実際の要求量で料金を支払うので、お金を使わない」ことができた。
三、生産環境におけるトラブル回避ガイド:迅速な運用の背後にあるトレードオフ
Cosmos DBは運送体験を最大限にしたが、穴の中で何度も登ったベテランとして、私は皆さんに注意したい
完璧な枠組みがなく、最適なシーンしかない。
スピード輸送は、あなたが完全に無視できることを意味するものではありません。
1.整合性レベル (特徴レベル) の選択は芸術です。
分散データベースの最大の物理法則は
CAP定理
。Cosmos DBは、強い一貫性から最終的な一貫性まで、5つの異なるレベルを提供しています。
もしあなたの業務が金融支払いで、少し幻覚を許さないなら、強い一貫性を選ばなければならないが、それはより高い遅延とやや劣る性能をもたらす。
もしあなたの業務が社交的な動き、賛辞、閲覧量の統計であれば、会話の一貫性(Session) または最終的な一貫性を選ぶことを躊躇しない。
Azure Microsoft Cloudアカウント購入代行・チャージ
運送次元の提案: 盲目的に「強い一致」を追求してはいけない。具体的な業務プレートに基づいて容器を分割し、整合性に対する要求が高くない業務を緩和的な整合性レベルに置くことで、システムのスループットを幾何学的に上昇させることができる。
2.パーティションキーの設計は生死を決める
NoSQLの世界では、パーティションキーがあなたの命の扉です。パーティションキーがうまく選択されていないと (たとえば「国」では、ユーザーの90% が中国にいる) 、
ホットスポットパーティション
: ある基礎となる物理パーティションのCPUとRUがいっぱいになって、他のパーティションが空いている。
運送次元の提案: アーキテクチャ設計の初期には、必ず開発チームとパーティションキーの選択をしなければならない。高周波、高同時のフィールド (userIdや高ベースの数字セグメントなど) は、通常、データがグローバルの各物理ノードに均等にハッシュされるようにする理想的な選択です。
四、最後に書く
振り返ってみると、私たちの世代がクラウドコンピューティングとシステム運営をしている人は、とても幸運です。
以前、私たちの精力は基礎機械の運送、ディスクの拡張、主従がどのように手作業でこれらの「汚い仕事」を修復したかにかかっていた。Azure Cosmos DBのようなクラウド・ネイティブのグローバル分散NoSQLデータベースは、実際には「次元を下げる打撃」が従来のデータベースの輸送の複雑さにある。
世界の多活、柔軟な拡張、自動インデックス、高可用性の災害を、もともとは膨大なDBAが必要だ
チームができる複雑な技術は、いくつかの簡単なボタンと直感的なAPIにカプセル化されている。
データベースをデータそのものに戻し、運送次元を面倒な基礎障害から解放してビジネスアーキテクチャに注目させることが、クラウドの原始時代のあり方である。今度深夜の通報に遭遇したとき、古い枠組みを、本当にグローバルな弾力性を備えたクラウドの原始的な生態に移すべきかどうか考えてみてください
Azure Microsoft Cloudアカウント購入代行・チャージ
