強化されたDASで W11(独身の日)をサポート

この記事では、Database Autonomy Service (DAS)について、W11(独身の日)におけるイノベーションに基づく変革をどのようにサポートし、促進するかについて説明します。

[ApsaraDB](https://community.alibabacloud.com/users/5190830865598772?spm=a2c65.11461447.0.0.b30a4220OkOobG)より

[2020年のW11グローバルショッピング・フェスティバル(独身の日)](https://www.alibabacloud.com/campaign/singles-day-double-11-2020?spm=a2c65.11461447.0.0.b30a4220OkOobG)は終わってしまいましたが、テクノロジーの探求は決して止まりません。W11グローバルショッピング・フェスティバル(独身の日)は、データ開発者にとってはAlibaba Cloud データベース技術チームの技術レベルとイノベーションの実践を検証する大きなテストでもあります。

#はじめに
W11グローバルショッピング・フェスティバル(独身の日)の期間中、[Database Autonomy Service (DAS)](https://www.alibabacloud.com/product/das?spm=a2c65.11461447.0.0.b30a4220OkOobG)は、このイベントをサポートし、変化し続ける変革を継続するために、絶え間ないイノベーションに取り組んでいます。データベース管理者（DBA）のための最初のツールによる診断から、2017年に提案されたSelf-Driving Platformのコンセプトまで、Alibabaクラウドはデータベースの自律的能力のインキュベーションと改善を開始しました。2018年には、DASの自律能力は、自動SQL最適化、自動ストレージ、自動例外修復など、Alibabaグループのネットワークデータベースインスタンス全体を徐々にカバーしました。2019年11月、Alibaba CloudはHDM、CloudDBA、自律的能力をDASに統合し、消費者により良いサービスを提供します。クラウドプラットフォームに基づいて、開発された技術を一元化し、アリババとお客様にサービスを提供しました。これも成功した変革のひとつです。

責任を持つことは、変革の成功につながります。2020 W11グローバルショッピング・フェスティバル(独身の日)の期間中、DASはより安定した包括的な自律機能でAlibabaグループとクラウドのお客様をサポートしました。ネットワーク全体をカバーするデータベース自律機能に基づき、Alibabaグループ内で合計4,900万スローの自動SQL最適化と4.6PBの自動ストレージ最適化を実現しました。電子商取引やその他のシナリオにおける数十万のインスタンスは、自動修復でカバーされており、カバー率は90%を超えています。1分で検出、5分で位置特定、10分で復旧という「1-5-10」の自己修復機能の実装に成功しました。この機能により、W11(独身の日)でのデータベースの安定性が保証され、多くの人件費が削減されました。同時に、DASはW11の前に数十万人のお客様に、健康状態の検査、リスクの特定、トラブルシューティング、SQLの最適化など、フルライフサイクルのサポートを提供し、SQLの自動トラフィック制限、ストレージの自動スケーリング、ダッシュボード管理などを提供しました。W11の後には、オンサイトのストレージとプロモーションのまとめも提供しました。その間、数百万件の検査レポートが作成され、数百億件の例外チェックが実施されました。これにより、約1万件の異常なインスタンスが発見され、自動的に修正・最適化され、「W11グローバルショッピング・フェスティバル(独身の日)」でのお客様の体験に貢献しました。

#DAS
DASのコアコンセプトは、AlibabaがW11グローバルショッピング・フェスティバル(独身の日)での経験に基づいてデータベースインテリジェンスの技術動向を検討したことにも由来しています。業界で最も経験豊富なDBAと豊富なパフォーマンス診断データを持つアリババは、豊富なデータベースの知識や経験、ビッグデータとマシンインテリジェンス技術をいかに組み合わせるかに注力しています。そうすることで、Alibabaはデータベースに自動操縦エンジンを装備し、可能な限り低いコストでデータベースの安定性と効率性を最大化するつもりです。クラウドネイティブ時代には、アプリケーション開発者は、データベースのO&Mから完全に解放された高度なデータベースの自動化を実現するために、ビジネスイノベーションに注力することが期待されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/181d79c7-9fc4-bb13-1419-7812169bda4f.png)
*図: DASのコア・コンセプト*

前述の図は、DASの設計、研究開発、導入の各段階で一貫して踏襲されているDASのコアコンセプトを示しています。

- Data-Driven: パフォーマンス指標、負荷のかかったSQLリクエストログ、O&Mの変更ログなどの膨大なリアルタイムデータを収集することで、状況認識と例外検知をリアルタイムに行う検知機能を開発します。
- 機械学習とデータベース分野の専門家の経験を深く融合させることで、さまざまなビジネスシナリオにおけるDASの自動判断能力を実現します。
- 自動実行:自律センターの判断に基づいて、タスクが自動的にオーケストレーションされ、実行されます。
最終的には、自律的な能力を開発するための閉ループを作ることで調整が実現しました。これらの機能には、例外の検出、根本原因の分析に基づく全体的な意思決定、修理や最適化の決定の実行、継続的な追跡と評価、パフォーマンスのフィードバック、ロールバックなどが含まれます。このループ全体が、手動による介入なしに自律的なシナリオをサポートします。さらにDASは、自動例外タグ付け、ケースシステム、例外シミュレーション、定量的なフィードバック評価など、継続的な自己学習をサポートします。さまざまなオンラインビジネスのシナリオやケースの蓄積をもとに、DASは自己進化を加速させ、自律性の効果を継続的に高めていきます。

前述のコンセプトに基づき、DASは6つのコア自律機能を持っています。「7x24リアルタイム例外検知」「障害自己回復」「自動最適化」「インテリジェント・パラメータ・チューニング」「自動弾力性」「インテリジェント・ストレステスト」です。これらの機能の具体的な性能について、「W11グローバルショッピング・フェスティバル(独身の日)」での実例を交えて紹介します。

#DASのコアとなる自律化技術
###7x24リアルタイム例外検知


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/da536f60-ce5e-0499-3b28-5a40f568e0ca.png)
*図．7x24 リアルタイム例外検知*

DASは、機械学習アルゴリズムに基づいて、データベースのワークロードに対するリアルタイムの例外検出を行います。従来の閾値ベースの警告方法とは異なり、よりタイムリーにデータベースの例外を検出することができます。何百ものデータベースパフォーマンスメトリクスやロードされたSQLリクエストログなどの大量のオンラインまたはオフラインデータが処理され、データメトリクス収集チャネルに保存されました。機械学習とデータベース予測アルゴリズムに基づいて、ビジネスデータベースインスタンスの連続的なモデルトレーニングが実現できます。ビッグデータ分析のためのストリーミングとコンピューティングのフレームワークと組み合わせて、リアルタイムのモデル予測とリアルタイムの例外検出と分析がスムーズに実行できます。従来のルールベースやプレバリューベースの手法と比較して、リアルタイム例外検知には以下のようなメリットがあります。

- 検出指標、SQL、ログ、ロックなど、検出範囲が広いこと
- 従来の例外検出方法よりもはるかに効率的な準リアルタイムの検出
- フォールト・ドリブンな検知ではなく、AIと例外ベースの検知技術
- 定期的な認識、自己適応型のサービス機能、予測能力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/adfd3d97-8278-b553-bc8a-396ef05fbf48.png)
*表: 一般的なワークロードシナリオにおける時系列の特徴*

以上のように、例外検出サービスは、スパイク、季節性、トレンド、および平均シフトなど、一般的なワークロードシナリオにおける特徴を正確かつ自動的に認識することができます。また、複数の時系列特性の識別にも対応しています。例外が認識されると、根本原因に基づいた全体的な診断と分析が行われ、その後、例外の回復と自律的なシナリオの最適化が行われます。

###障害の自己回復
7x24リアルタイム例外検知機能により、データベース内のインスタンス例外をリアルタイムに認識し、DASが自動的に根本原因を分析します。さらに、損失防止や復旧作業を行い、データベースの自動回復をサポートすることで、企業のビジネスへの影響を軽減します。SQLトラフィックの自動制限は、典型的な自律型シナリオであり、以下に2020年のW11グローバルショッピングフェスティバルでの実例から示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/946d3096-9256-b76b-865c-1ba043fc7041.png)
*図．自動SQLトラフィック制限のケース*

上図のように、2020年11月5日の12:31にアクティブセッション数とCPU使用率が急増し始めました。DASの例外検出センターは、12:33に変動するスパイクではなく、データベース例外と定義し、SQL自動トラフィック制限の根本原因分析を開始し、12:34に完了しました。分析の結果、2つの問題のあるSQLが見つかりました。問題のあるSQLが検出されると、直ちに自動トラフィック制限が開始され、アクティブなセッションが減少しました。問題のあるSQLを投入した後、アクティブなセッションは急速に回復し、CPU使用率も正常に戻りました。このプロセスは、「1-5-10」と呼ばれる例外的な自己修復機能を実装しており、1分で検出し、5分で位置を特定し、10分で回復するというものです。

###外部SQLの自動最適化
DASは、まるでデータベースを守るプロのDBAのように、全体の作業量や実際のビジネスシナリオに基づいて、データベース内のSQLを継続的に見直し、最適化します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/1dc65094-9784-7cc6-32b6-fec6fd0fb49c.png)
*図．自動SQL最適化におけるSQL最適化診断*

データベースの問題の約80%はSQL最適化で解決できることが経験的に知られていますが、そこには常に豊富なデータベースの知識と専門家の経験を必要とする複雑なプロセスが存在します。常に変化するSQLワークロードのため、SQL最適化は依然として時間のかかる重い作業となっています。これらの問題により、SQL最適化は専門家のサポートを必要とする、敷居の高い、コストの高いタスクとなっています。DASは、まるで疲れ知らずのプロのDBAがデータベースを守り、SQL最適化をアップグレードするように、全体的な作業量と実際のビジネスシナリオに基づいて、データベース内のSQLを継続的に見直し、最適化します。同時に、DASのSQL診断機能には、従来の方法とは異なる技術的特徴があります。

- DASのSQL診断機能には、従来の方法とは異なる技術的な特徴があります。それは、外部モデルとコストベースのモデルを使用して、インデックスの実装、単語の書き換えの推奨、パフォーマンスのボトルネックの特定と推奨を行います。これにより、従来のルール制限、硬直した機械化、保証されない推薦品質、定量化されない性能向上などの問題を回避することができます。
- テストケース用の正式な機能ライブラリ、オンラインケース用の自動フィードバック抽出、Alibabaでの多様なアプリケーションシナリオが十分なカバー率で開発されています。
- SQLの実行頻度や読み書きの比率などのワークロードの特徴を最適化することで、局所的な最適化の一方的な欠点を抑え、ワークロードベースの全体的な最適化を実現しています。

以下は、W11(独身の日)1におけるSQLの自動最適化の実例です。DASは、11月7日にSQLの遅さが原因の負荷例外を検出し、自動的にSQL最適化のクローズドループを発生させました。最適化後、24時間かけて常に最適化効果を追跡し、最適化効果の評価を完了しました。その結果、最適化の効果は大きいことがわかりました。最適化前と最適化後の平均RTとスキャンされた行数を以下の図に示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/6df22e36-e6b1-00d8-29bf-e4e94b6b4fb4.png)
*図: 自動SQL最適化前の平均RTとスキャンされた行数*


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/b25977b9-1831-c564-ca8d-4d509cc2e175.png)
*図: SQL自動最適化後の平均RTとスキャンされた行数*

統計によると、最適化前のSQLの1秒あたりの平均スキャン行数は14889.198行、平均RTは505.561ミリ秒でした。最適化後は、平均スキャン行数が12.132行となり、最適化前の約1万分の1の行数になりました。また、平均RTも0.471ミリ秒と約1万分の1に短縮されています。

###自動弾力性
クラウドデータベースでは、ユーザーに計算規模に応じたオプションとストレージ容量のオプションが用意されており、コンシューマーのワークロード規模が変化しても、ワークロードを弾性的にスケーリングすることができます。しかし、クラウド・ネイティブ・アプリケーションでは、データベースがビジネスのワークロードの変化に応じて最適な仕様を自動的に選択し、必要なデータベース容量を最小限のリソースで完結させることが期待されています。これは、データベースの「自律」能力の具現化でもあります。DASは、AIの時系列予測をもとに、データベースのビジネスモデルや容量レベルを自動的に計算・予測し、オンデマンドの自動伸縮性を実装することができます。

DASの自動伸縮機能は、パフォーマンス収集、意思決定センター、アルゴリズムモデル、仕様推奨モジュール、制御実行、タスクの追跡と評価など、完全なデータクローズドループを実装しています。パフォーマンス収集は、インスタンスからリアルタイムのパフォーマンスデータを収集する役割を担っており、複数のパフォーマンス指標、仕様や設定、インスタンスの操作セッションなどが含まれます。意思決定センターは、現在の性能データとインスタンス・セッション・リスト・データを参照して総合的な判断を行い、根本原因の分析に基づく総合的な自律性を実現します。例えば、計算機資源の不足による問題を解決するために、SQLトラフィックの制限を行います。また、サービスのトラフィック量が急激に増加した場合でも、エラスティックサービスは継続して実行されます。DAS自動弾力サービス全体の核心であるアルゴリズムモデルは、データベースインスタンスの業務負荷例外を検出し、容量仕様モデルの推奨値を計算します。スケーリングの時期や方法、コンピューティング仕様の選択などの問題を解決します。仕様推奨検証では、具体的な提案を生成し、データベース・インスタンスのデプロイメント・タイプを実際の実行環境に適応させます。現在利用可能な仕様をダブルチェックし、推奨事項が制御側でスムーズに実行できるかどうかを確認します。制御側の実行とは、出力仕様の推奨に基づいて配布・実行することです。タスクトラッキングとは、仕様変更前後のデータベースインスタンスのパフォーマンスの変化を測定し、追跡するためのものです。

以下は、W11(独身の日)での自動SQL最適化の実例です。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/9e268716-673c-25f0-d8dd-18404eb3899d.png)
*図: 自動弾力化のケース*

上図のように、ユーザーのサービスのトラフィック量が増え続け、PolarDBインスタンスのCPU使用率が高騰し続け、高負荷状態になっていました。DASのオートスケーリングアルゴリズムは、現在のインスタンスの例外を正確に認識し、自動的に2つの読み取り専用ノードを追加し、CPU使用率を低レベルに抑えました。2時間後、ユーザーのサービス・トラフィック量が継続的に増加したため、DASのオート・スケーリングが2回目のトリガーとなりました。DASのオートスケーリングにより、インスタンスのスペックは4コア8GBから8コア16GBにアップグレードされ、10時間以上も継続したため、ユーザーはピーク時のサービスを乗り切ることができました。

###インテリジェントストレステスト

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/4cc50e54-54ea-9bca-2123-a935a9923b21.png)
*図: 軽量でパーソナライズされたインテリジェントストレステスト*

DASでは、ビジネスをクラウドに移行する前に、必要なデータベースの仕様や容量を評価するためのインテリジェントストレステストサービスを提供しています。このサービスの詳細については、後述します。スペックオートスケーリングでは、指定されたデータベースのパフォーマンス閾値やDAS内蔵のインテリジェントポリシーに基づいて、ユーザーが自動的にスケーリング操作を行うことができます。これにより、仕様の評価と管理の負担がある程度軽減されます。

従来のストレステストソリューションのほとんどは、sysbenchやTPCCなどの既存のストレステストツールに基づいています。最大の問題は、これらのツールの対応するSQLが実際のパフォーマンスとはかけ離れていることです。ストレステストの結果は、パフォーマンスと安定性を正確に反映できません。しかし、DASが提供するインテリジェントストレステストは、ユーザーの実際のワークロードに基づいており、ストレステストの結果は、異なるワークロードの下でのパフォーマンスと安定性の変化を直接反映することができます。この目標を達成するために、インテリジェントストレステストは以下の課題を克服する必要があります。

- たくさんのSQLが収集できない場合に、7x24時間の安定性ストレステストのような長期的なストレステストを提供すること。SQL収集の時間とストレージコストを考慮すると、DASは与えられた部分のSQLでビジネス要件を満たすSQLを生成する必要があります。
- コンカレントプレイバック機能：DASは実業務と同じ同時性を確保し、2回、10回などの速度制御やピーク時のストレステスト機能を提供する必要があります。


DASは、ビジネスモデルを自動的に学習することで、ストレステストの時間に合わせた実作業負荷を自動的に生成し、ユーザーに豊かなストレステストシナリオを提供します。これにより、W11(独身の日)やデータベースの選択に起因する問題を解決することができます。

###パラメータの自動調整
データベースには何百ものパラメータがあり、ユーザーのビジネスシナリオも様々であるため、開発者がパラメータを最適な構成に効果的にチューニングすることは不可能です。機械学習技術とインテリジェントなストレステストに基づき、データベースインスタンスごとに最適なパラメータテンプレートを自動的に推奨します。MySQLやPolarDBなどのクラウド上の一般的なデータベースは、何百ものパラメータを保有しており、各パラメータ値は十数個から50万個にも及びます。パラメータの設定は、TPSの向上やレイテンシーの低減のために、巨大な多次元空間から適格なパラメータを探し出すことに似ています。DBAは通常、経験やデフォルトのパラメータ値を使用して設定を行います。しかし、ワークロードやハードウェアの違いにより、パラメータは変化します。経験豊富なDBAであっても、パラメータ設定の妥当性を保証することはできません。クラウドを利用している中小企業の多くは、最適なパラメータを設定・調整する専任のO&M担当者を採用していません。そのため、データベースのパラメータ設定には以下のような課題があります。

- パラメータの組み合わせの空間は膨大であり、その探索はNPハードである。
- パラメータ調整は経験に依存しており、パラメータの妥当性が保証できない。
- クラウド上の様々なワークロード。ワークロードによってパラメータが異なる。
- **ハードウェアの不均一性**：ハードウェアの仕様によってパラメータが異なる。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/5ae9ca94-8039-1963-dac8-29b752340980.png)
*図: インテリジェント・パラメータ・チューニング・システムの模式図*

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/ae15a733-9904-f7df-17c6-c74ce45b1cdc.png)
*図: インテリジェント・パラメータ・チューニング・アルゴリズム*

効率的な機械学習により、DASはパラメータチューニングをブラックボックスの最適化問題とみなし、反復学習を行います。これにより、さまざまなワークロードのTPSが15%～55%向上し、全プロセスが3～5時間で約100回の反復ステップで完了します。Alibabaグループの様々なワークロードとハードウェアインフラのおかげで、異なるワークロードの特徴やパラメータ、ハードウェアの仕様をオフラインで生成することができます。オンラインで与えられた対象ワークロードに適したモデルは、部分順序関係のマッチングとメタラーニングによって適合させることができます。数回の繰り返しにより、対象作業負荷のパラメータ値を迅速に学習することができ、1時間で10～30ステップ程度で理想的なパラメータを見つけ出すことができます。

#まとめ
[Database Autonomy Service (DAS)](https://www.alibabacloud.com/product/das?spm=a2c65.11461447.0.0.b30a4220OkOobG)は、企業のデータベース管理コストを90%削減し、O&Mリスクを80%低減します。また、ユーザーはビジネスの革新にもっと集中し、ビジネスの発展を維持することができます。アリババでは、11年の経験を経て、今年はW11(独身の日)を振り返る新しいサイクルの出発点となりました。DASは、そのイノベーションに基づく変革を支援・促進し続けます。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/das-was-polished-and-enhanced-to-provide-daily-support-for-double-11_597038?spm=a2c65.11461478.0.0.79425355JyYXV5)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*


*アリババクラウドは日本に２つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
[アリババクラウドジャパン公式ページ](https://www.alibabacloud.com/ja)*