クラウドネイティブの進化のトレンドにおける従来のデータベースアップグレードの実践

クラウドネイティブの進化のトレンドにおける従来のデータベースアップグレードの実践

1. クラウドネイティブデータベースの概要

1. クラウドコンピューティングはデジタル化のインフラである

周知のとおり、クラウドコンピューティングはデジタルインフラとなり、社会全体もデジタル化が進んでいます。デジタル化は、衣食住や交通はもちろん、教育や医療、ゲームなど、私たちの日常生活にまで浸透しています。

医療分野を例に挙げてみましょう。昔は、病院に行くと、血液検査でも胸部X線検査でも、紙のレポートをもらってから、プラスチックの胸部X線写真を印刷する必要がありました。しかし、ここ1、2年は、三次医療機関を除いて、他の病院では基本的にインターネットを通じて患者にレポートや胸部レントゲン写真などの資料を提供するようになりました。医療分野におけるデジタル化の現象は非常に明白です。

これらすべてのデータがデジタル化された後、私たちは非常に大きな問題に直面します。それは、どのプラットフォームでそれらを運ぶのか、そしてどのように運ぶのかということです。 Alibaba Cloud はこのプロセスにおいて非常に重要なリンクです。データベースは、デジタル化プロセスにおけるデータ生成、統合、リアルタイム処理、分析の全プロセスを実行します。データベース全体の周囲には、ハードウェア、セキュリティ、エラスティック コンピューティングなどの機能も存在する場合があります。こうした大小さまざまな要素が、最終的に Alibaba Cloud プラットフォームを構成します。

2. クラウドネイティブデータベーステクノロジーとは何ですか?

クラウド コンピューティングは、データベース テクノロジーとビジネスを変革しています。

デジタル化の文脈では、考えるべきことがたくさんあります。

データベースと以前との違いは何ですか?いわゆるクラウドネイティブデータベースとは何ですか?データベースを使用する開発者として、データベースに対する要件はどのように変化しましたか?今日、データベースを使用する際に一般的にどのような要求があるのでしょうか?

現在、上位レベルのビジネスは急速に変化しており、アリババ・タオバオも過去には実際に同じ問題を抱えていました。ビジネスの急速な変化は、開発者にとって、変化に迅速に適応するという大きな課題をもたらします。クラウド コンピューティングが普及する前は、このプロセスは実はかなり遅いものでした。サーバーの構築から、ネットワークの設定、オペレーティングシステムとデータベースのインストールなど、全体のプロセスは非常に長いものでした。

データベースに対する要求は次のようにまとめられます。

1 つ目は、ビジネス開発に重点を置き、基盤となるハードウェア、ソフトウェア、コンピューター ルーム、ネットワーク、その他の設備の構成にあまり時間をかけたくないということです。

2つ目は、すぐに使えることです。私たちは、設定や最適化といった非常に面倒で時間のかかる高度な専門的作業を行うことなく、データベースを作成後すぐに使用できることを願っています。

3つ目はセキュリティと信頼性です。サードパーティのプラットフォームにデータを置く場合、セキュリティと信頼性は非常に基本的な要件です。

4つ目はオープン性と互換性です。私たちは特定のクラウドベンダーに縛られることは望んでおらず、自由に移行できることを望んでいます。

5つ目は大規模な拡張です。ビジネスの爆発的な成長に伴い、システム圧力はすぐに元の数倍、あるいは数十倍にもなります。この場合、水平および垂直にスケーラブルな優れたデータベース システムがなければ、ビジネスの正常な運用をサポートすることが難しくなり、対応が非常に困難になります。

6番目はグローバル化です。多くの中国のゲームメーカーは、特に東南アジアでの海外展開とプロモーションで大きな成果を上げています。さらに、いくつかのゲームはヨーロッパ、アメリカ、日本でも大きな成功を収めています。そのため、現在、一部の開発者もグローバル化の要求に直面しています。データベースのインフラストラクチャとして、グローバルな機能をどのように提供するかを考える必要があります。

7番目は継続的な可用性です。当社はもともと独自のデータベースシステムを開発しており、継続的な可用性も重要な考慮事項の 1 つでした。

さらに、信頼性も必要であり、データの損失が発生しないことが求められます。

最後に、コストが低いことです。事業がより成熟した段階に発展すると、低コストに重点を置くようになります。

こうしたお客様のご要望を受けて、次世代データベースや新しいデータベースにどのような機能を持たせるべきか、つまりクラウドネイティブデータベースの製品機能を以下のように考えています。

1 つ目はフルホスティングです。ユーザーは、インストール、バックアップ、デプロイメント、監視、高可用性などについて心配する必要がなくなりました。ワンクリックでインスタンスを作成でき、作成されたインスタンスには上記の機能が備わっています。

2 つ目は従量課金制で、これによりビジネスを始めるコストを非常に低く抑えることができます。そうしないと、コンピューター室、ハードウェア、ネットワークなどの一連の設備を構成するコストが非常に高くなります。

3つ目はオンデマンド弾力性であり、これは2つの側面に分かれています。一方で、拡張する能力も必要です。ビジネスが急速に発展する場合、データベースも迅速に拡張できる必要があります。一方、ビジネスのピークが過ぎると、コストを削減するためにリソースの使用を迅速に削減する必要があります。

4つ目は生態学的適合性です。ユーザーが現在 MySQL、Oracle、またはその他のデータベースを使用しているかどうかに関係なく、移行できます。

上記は、クラウドネイティブ データベースが備えていると考えられる製品機能です。

これらの製品機能の下には、サポートを提供するテクノロジがまだ数多くあります。

6 つのコア テクノロジーは、インテリジェンス、マルチモード、ハードウェアとソフトウェアの統合、セキュリティと信頼性、HTAP: 大規模データベース統合、クラウド ネイティブ + 分散です。これら 6 つのコア テクノロジーは、上記の製品機能をサポートし、開発者の要求に対応します。

3. クラウドネイティブリレーショナルデータベース PolarDB

PolarDB は、Alibaba が開発した新世代のクラウドネイティブ データベースです。ストレージとコンピューティングを分離したアーキテクチャにより、ソフトウェアとハ​​ードウェアの組み合わせを活用し、極めて高い弾力性、高性能、大容量ストレージ、セキュリティ、信頼性を備えたデータベース サービスをユーザーに提供します。 MySQL 5.6/5.7/8.0、PostgreSQL 11 と 100% 互換性があり、Oracle との高い互換性があります。

PolarDB-X は、PolarDB の分散バージョンであり、分散 SQL エンジンと分散型自社開発ストレージ X-DB を統合し、大量のデータ ストレージ、超高同時スループット、複雑なコンピューティングと分析などの問題の解決に重点を置いています。

(IV) クラウドネイティブリレーショナルデータベースPolarDBの製品アーキテクチャ

PolarDB 製品アーキテクチャ図

PolarDB には次の機能があります。

ストレージとコンピューティングの分離
1) 数分で柔軟にアップグレードおよびダウングレード

2) 数分以内に読み取り専用ノードを追加/削除する

インテリジェントなプロキシ転送
1) 透過的なデータベース拡張を実現

2) 複数の一貫性レベル

3) カスタムエンドポイント

分散ストレージ
1) 100TBをサポート

2) 迅速なバックアップとリカバリ

3) シングルインスタンスIO能力の向上

libpfs+rdma+オプタン
1) RPO=0の3つのコピーの高性能透過実装

2) 高性能書き込み:高並列書き込みの実現

再実行ベースのレプリケーション
1) 読み取り専用インスタンスのミリ秒レベルのレイテンシ

2) binlog/redoデュアルログの一貫性とパフォーマンスの問題を解決する

並列実行
1) いくつかのシナリオでのクエリと分析

2) パフォーマンスと安定性を確保するために自由に制御可能な並列処理

ここでは主に、開発者の使用に密接に関連する機能であるインテリジェント プロキシ転送について説明します。

データベースには非常に難しい点があります。アプリケーションサーバーとは異なります。アプリケーション サーバー システムの負荷が特に高い場合、拡張は比較的簡単です。アプリケーション サーバーのグループを追加し、関連するトラフィックを新しいアプリケーション サーバーに拡張できます。

しかし、データベースでは通常、データがクエリと使用の点で相互に関連しており、データを単純に分割できないため、これを実行できません。 PolarDB には上位層に Proxy と呼ばれるインテリジェントなプロキシ層があり、開発者にとってこの問題を解決します。データベース システムの負荷が特に高い場合、一部のクエリはインテリジェント エージェントを通じて他の読み取り専用ノードに自動的に分散されます。例えば、元々マスターが 1 つ、バックアップが 1 つあった場合、マスターが 1 つ、バックアップが 3 つに変更され、トラフィックが 3 つのノードに自動的に分散されます。

これは、元のデータベースにいくつかのバックアップ データベースを追加するのと同じではないかと思われるかもしれません。

PolarDB はインテリジェント プロキシを通じて非常に重大な問題を解決します。つまり、これらの読み取り専用ノードを追加した後、アプリケーション サーバーの接続構成を変更する必要はありません。いつでも追加でき、インテリジェント プロキシはクエリを受信すると自動的に転送します。

実際のビジネスシナリオを例に挙げてみましょう。たとえば、ある日、フロントエンドのビジネス システムから、明日の午前 10 時にプロモーションが行われることが通知され、データベースを拡張するように求められます。

以前は、読み取り専用ノードを追加すると、フロントエンド アプリケーション サーバーが読み取り専用ノードにまったくアクセスできないという問題が発生する可能性がありました。また、読み取り専用ノードにはアクセスできるものの、アプリケーション サーバーの構成に何らかの変更を加えると、アプリケーションがアプリケーション サーバーを再起動する原因になる可能性がありました。現在、PolarDB のインテリジェント プロキシはこの問題を効果的に解決し、容量拡張を便利かつ迅速に行うことができます。

2. 従来のリレーショナルデータベースをクラウドネイティブ環境に移行する

1. 従来の商用データベースを置き換える際の課題

現在、Oracle データベースなどの他の商用データベースから PolarDB に移行する場合、一般的にいくつかの大きな課題があります。

最初の課題は、アプリケーションの結合度が高いことです。通常、データベースとアプリケーション間の結合度は非常に高くなります。データベースに対してアクションを実行する場合、フロントエンド アプリケーションがそれに連携する必要があり、フロントエンドの可用性に影響する可能性があります。データベースによって実行されるビジネスは通常より重要であるため、データベースを移動すると、フロントエンド アプリケーションも移動することになります。

2 番目の課題は、高い安定性の要件です。データベースに問題が発生するとフロントエンド業務に支障が出るため、データベースの変更やアクションは夜間に行われることが多いです。

3 番目の課題は、データの量が多いことです。企業の規模が大きくなるにつれて、コア データベース内のデータ量も通常は大きくなります。

4 番目の課題は、高い文法互換性要件です。誰もが SQL を使用していますが、データベースごとに SQL は異なります。 Oracle データベースから PolarDB に移行するときに、SQL に過度の変換が必要になった場合、フロントエンドのビジネス システムの変換が非常に大きくなり、状況が非常に複雑になることを意味します。

2. クラウドネイティブデータベースPolarDBを使用して従来の商用データベースを置き換える

それは標準化と製品化の科学的なプロセスです。

移行フローチャート

Alibaba Cloud では、ユーザーが元のデータベースから PolarDB データベースに移行できるように、標準化された一連のプロセスと製品を提供します。

まず、ユーザーにツールまたはスクリプトを提供し、それをユーザーのシステムで実行します。ユーザーのデータベースのいくつかの特性(どの SQL、関数、ストアド プロシージャがターゲット データベースの書き込みと一致していないかなど)と、元のデータベースの特性(特にシステム負荷が高いデータベースであるか、特にホット データが目立つデータベースであるかなど)を収集できます。これらのポイントを検出すると、ユーザーは後の変換でどのような問題に注意すべきかを知ることができます。

上記の表は、実際の業務プロセス内のスクリプトによって生成されたものです。

この表から、元のデータベースを PolarDB に移行する場合、全体的な互換性は依然として比較的高いことがわかります。合計 6029 個のオブジェクトが検出されました。これには、ストアド プロシージャ、データ テーブル、インデックス シーケンス、いくつかの同義語、およびその他の関連項目が含まれる可能性があります。その中で、互換性のないオブジェクトは 2 つだけであり、これは実際には比較的小さいものです。レポートには、関係する 2 つのテーブルが示され、具体的な変更の提案も含まれるため、それらを移行できます。

次の図はより具体的なプロセスを示していますが、ここでは詳細には説明しません。

現在、Alibaba Cloud は中国情報通信研究院と協力して、標準化され製品化された一連のプロセスをデータベース移行の標準ガイドとして開発しています。開発者はオンラインで確認し、ガイドに従ってデータベースの移行を実行できます。

3. PolarDB O エンジンの管理 (Oracle 構文と互換性あり)

1. PolarDBはOracleとのフルスタック互換性を提供する

PolarDB が提供する Oracle 互換性には、構文層だけでなく、物理ストレージ層、ロジック層、インターフェイス層での互換性など、さまざまな側面が含まれます。

2. PolarDB Oエンジンの管理(Oracle構文互換): 共通ツール

ユーザーが Oracle から移行する場合、PolarDB の使用または管理にはどのような違いがありますか?

管理ツールに関しては、ユーザーは Alibaba Cloud のクラウドベースのデータ管理プラットフォーム DMS を使用できます。コンソールで「データベースにログイン」というエントリを見つけて、以下に示すように DMS にログインします。

2 つ目は、pgAdmin と呼ばれるオープンソースのデータ管理プラットフォームを使用することです。これを使用すると、以下に示すように、基本情報の表示、データのクエリ、実行プラン、テーブル、オブジェクトの確認などの基本的なデータ管理操作を実行できます。

4. PolarDB Oエンジン(Oracle構文互換)の開発実践:データベースの基本仕様

PolarDB Oエンジン(Oracle互換)の管理:開発仕様(1)

さらに、Alibaba Cloud にはよく使用される開発仕様がいくつかあります。開発仕様は Alibaba Cloud 内部で検討され、規制とも呼ばれます。これらは Alibaba 内で厳密に遵守され、実装されており、将来的には開発者コミュニティと Alibaba Cloud のドキュメント システムに公開される予定です。開発仕様はいくつかの側面に分かれており、そのうちのいくつかは PolarDB を使用する開発者にとってより関連性の高いものです。以下、簡単に説明します。

仕様の一部は社内の必須要件であり、その他は推奨されるものです。ユーザーは実際の状況に応じて選択を行うことができます。

テーブル作成ルールは上記に示されています。たとえば、フィールド名には小文字と数字を使用する必要があり、キーワードは使用できませんという仕様があります。なぜこのような仕様になっているのでしょうか?フィールド名の変更は比較的コストのかかるプロセスであるため、通常は「事前リリース」することはできません。

実際の生産工程でフィールド名を変更するのは非常に面倒であることがわかりました。すでに以前の業務が稼働しているため、フィールド名を変更すると、業務システムが正常に稼働しなくなります。したがって、これまでの慣行のほとんどは、新しいフィールドを追加することでした。そのため、フィールド名には小文字のみ使用可能、キーワードは使用不可などの仕様を定めています。

2番目はテーブル名とフィールド名です。 create_time と update_time を追加する必要があります。これにはいくつかの利点があります。 1つ目は、データにエラーが発生した場合に、フィールドの変更状況と時間をすぐに知ることができることです。 2 つ目は、上流システムと下流システムで変更されたデータを取得する場合、どのデータが変更になったかを非常に迅速に検出し、対応する処理を実行できることです。

さらに、テーブルには主キーが必要です。これにはいくつかの理由があります。 1 つ目は、クエリのパフォーマンスが非常に優れていることです。 2 つ目は、下流のシステムが変更されたデータを取得するときに、主キーを通じて比較的迅速にデータを取得できることです。

上の図に示すように、一連のインデックス規則もあります。

仕様では、インデックスは順番に作成する必要があると記載されています。この順序では、where 条件のフィールドと order by 条件のフィールドの順序に注意を払う必要があります。この順序は、インデックス作成時のフィールドの順序に影響する可能性があります。両者が相対的に一致した場合にのみ、全体的なパフォーマンスが向上します。

また、カバーリング インデックス クエリを使用できる場合は、できるだけそれを使用するようにしてください。これにより、効率が大幅に向上します。

仕様には、複数のページングを伴うシナリオを最適化するために、遅延結合またはサブクエリを使用するという推奨事項もあります。これは、データベース インデックスの最適化における当社の経験でもあります。ページ分割されたクエリを実行する場合、たとえば、1000 ページ目、または 500 ページ目以降に進むときに推奨されるアプローチは、たとえば、10 ページのコンテンツを検索する場合、まずこれらの 10 ページのコンテンツの主キー ID を検索し、次にテーブルに一度戻ってすべてのデータを検索するのが最適です。これは一般的に推奨されるアプローチです。

インデックス仕様で言及されているもう 1 つのポイントは、暗黙的な変換によってインデックス全体が失敗するため、さまざまなフィールド タイプに注意し、暗黙的な変換をできるだけ少なくするか、まったく使用しないことです。

PolarDB O エンジンの管理 (Oracle 互換): 開発仕様 (2)

SQLや運用・保守に関しても規制が多数あります。ここでは主に運用と保守に関するいくつかのポイントについて説明します。

1つ目はデータの修正です。開発者がデータを変更する場合、まずデータを照会し、確認してから削除する必要があります。そうしないと、誤ってデータを削除してしまう可能性が高くなります。

データ管理製品 DMS の使用もお勧めします。 DMS 上でデータ修正を行う場合、バックアップ オプションを確認できるという利点があります。データを修正すると、修正するすべてのデータのバックアップが自動的に作成されます。データ修正に問題が見つかった場合は、DMS によって自動的にバックアップされたデータを検索し、再度復元することができます。

残りについてはここでは詳しく説明しません。今後、開発者コミュニティと Alibaba Cloud ドキュメント システムでリリースされる予定です。

5. PolarDB Oエンジン(Oracle構文互換)の開発実践:共通SQLの最適化

1. PolarDB Oエンジンの管理(Oracle構文と互換性あり):SQL最適化ケース1:並列クエリ

複雑な計算を含むクエリを実行する場合、並列クエリを使用するとクエリの効率が大幅に向上します。

上記は簡単な例です。 GROUP BY 中に非常に単純な計算が行われます。クエリにスキャンするデータが大量にある場合、並列クエリを開始すると、時間が 100 秒以上から 10 秒に短縮され、10 倍高速になります。これは、PolarDB を使用するユーザー向けのちょっとしたトリックです。

(II) PolarDB Oエンジンの管理(Oracle構文と互換性あり):SQL最適化ケース2:適切なJOINメソッドの選択

ハッシュ結合、マージ結合、ネストループ結合をサポートしています。ユーザーはさまざまなシナリオに応じて適切な参加方法を選択できます。

ご覧のとおり、上記のケースでは、ネストループ結合が最も高速な選択肢です。

VI.事例と認識

1. 完全なデータベースエコシステム

PolarDB は独立した製品ですが、データ管理 DMS、データ自律サービス DAS、データ転送 DTS、データベース バックアップ DBS、データおよびアプリケーション移行 ADAM などを含む非常に完全な製品エコシステムを備えており、さまざまなユーザー シナリオに対応し、包括的なサービスを提供できます。

(II) 事例: PolarDB が PrestoMall の Oracle からクラウドへのスムーズな移行を支援

PrestoMall は 2014 年に設立された東南アジアの電子商取引会社です。ビジネスの急速な成長に対応するため、Alibaba Cloud の PolarDB データベースは PrestoMall が Oracle からクラウドにスムーズに移行するのに役立ちました。

クラウドへの移行では、主に次のようなビジネス上の課題に直面します。

ビジネスが急速に成長するにつれて、IT コストも増加し、Oracle コストも高くなります。
ビジネスは急速に成長しており、ダブル11プロモーションに対応できていません。アプリケーションは水平方向に拡張できますが、データベースには弾力性がありません。
O 除去の複雑さが高すぎるため、経験が不足しています。専門家による評価指導を期待しています。
最適な移行コストとリスク管理は難しい問題になります。
お客様のビジネスニーズに基づき、次の理由から PolarDB O (Oracle 構文と互換性あり) への移行計画を策定しました。

PolarDB O エンジン (Oracle 構文と互換性あり) クラウド データベースなので高額なライセンス料はかかりません。
PolarDB O エンジン (Oracle 構文と互換性あり) はクラウドネイティブの弾力性を備えており、顧客データベースの弾力性不足の問題を解決します。
ADAM は、顧客に専門的なデータベース/アプリケーション互換性評価レポートを提供し、包括的な移行計画を策定します。 PolarDB O エンジン (Oracle 構文と互換性あり) と Oracle の高い互換性を組み合わせることで、変換効率が大幅に向上します。
DTS リアルタイム移行/リフロー機能と専門家のサービスを組み合わせることで、カットオーバー時間を大幅に短縮し、リスクを軽減できます。
PolarDB O エンジン (Oracle 構文と互換性あり) に移行した後、最終的に次の顧客価値が達成されました。

PolarDB O エンジン (Oracle 構文と互換性あり) は、会社の全体的な IT コストを 40% 削減しながら、顧客のビジネスを効果的にサポートします。
PolarDB O エンジン (Oracle 構文と互換性あり) は、ダブル 12 プロモーションに対応するために柔軟にアップグレードされました。
ADAM + PolarDB O エンジン (Oracle 構文と互換性あり) により、顧客はコード変換コストを 93% 削減できます。
計画通りスムーズかつ着実に切替が完了し、事業も安定的に運営されています。

3. 広く認知されているクラウドネイティブリレーショナルデータベース、PolarDB

現在、PolarDB は業界で広く認知されており、トップクラスの学術団体で 10 件以上の論文が発表されています。同社は今年、中国電子学会から科学技術進歩第一賞を受賞したほか、いくつかの権威ある栄誉も獲得した。

<<:  SpringbootはKafka Streamのリアルタイム統計を統合します

>>:  1兆パラメータM6モデルの事前トレーニングの背後にある分散フレームワークWhaleの解読

推薦する

ローカルウェブサイトの将来はどうなるのでしょうか?

私はかつて、地元のインターネットでトップ 3 に入る県レベルのフォーラム (ポータル サイトと呼ぶ勇...

ウェブサイトのトラフィックを増やすためにインターネットアプリケーションの位置を占める

「アプリケーション」は以前から流行語となっています。特に、WeiboやSNSソーシャルプラットフォー...

個々のユーザーはどのようにソフトウェアを選択するのでしょうか?

中国のパソコンユーザーにとって、パソコンにインストールされているソフトウェアのほとんどはおそらくフリ...

Pinduoduo は Taobao を転覆させることで勝利するかもしれない

2019年7月中旬から11月中旬にかけて、 Pinduoduoの株価は7月中旬の1株あたり約20米ド...

インタビューで必ず聞くこと | Kafka の消費モデルについてお話ししましょうか?

[[442172]]みなさんこんにちは、Bingheです〜〜最近、何人かの読者が Toutiao に...

ウェブサイトのオリジナリティとウェブサイトのランキングに関する調査

私はしばらくSEOに取り組んでおり、A5フォーラムによく参加しています。今日、フォーラムのメンバーが...

Kubernetes Ingress Controller Contour が Cloud Native Computing Foundation のインキュベーション プロジェクトに

Contour はもともと Heptio によって作成され、後に VMware によって買収されまし...

クラウドコンピューティングの災害復旧を実装する方法

組織がクラウド ストレージの使用を増やすにつれて、コストを削減し、運用効率を向上させるために追加のク...

PPC広告のROIが低い理由を分析する

企業にとって、最小限の費用で最大限の成果を得る方法は重要な課題です。すべてのビジネスは投資収益率を考...

Dell、エッジコンピューティングからコアデータセンター、クラウドコンピューティングまでVMwareソリューションポートフォリオを拡大

Dell は本日、エッジ コンピューティングからコア データ センター、クラウド コンピューティング...

SEO は急速に変化しています。オンラインプロモーションに適応するにはどうすればよいでしょうか?

検索エンジン最適化 (SEO) 業界で働く友人たちは、とても苦労しています。退屈で面倒な作業に対処す...

動画著作権は過去3年間で浮き沈みを経験している。大手動画サイトは共同で価格を引き下げている。

2009年から2011年にかけて、映画やテレビドラマなどのニューメディア(動画サイト)の著作権価格は...

大型モバイルゲーム市場は100億を超える

白黒携帯の時代からフィーチャーフォンの時代まで、カジュアルゲームは常に人気モバイルゲームランキングの...

サーバーレスがクラウドコンピューティングをどう変えるか

最近の調査では、調査会社 Sumo Logic が Amazon Web Services (AWS...