クラウドネイティブで MySQL の高可用性を実現するにはどうすればよいでしょうか?

クラウドネイティブで MySQL の高可用性を実現するにはどうすればよいでしょうか?

現在人気のリレーショナル データベース (RDS) である MySQL は、クラウド ネイティブの波の中で依然として多くの課題に直面しています。クラウド ネイティブ設計原則を使用して、サンドボックス分離とコンピューティングとデータの完全な分離を通じて、低コストでスケーラブルかつ高可用性のクラウド RDS ソリューションを実装するにはどうすればよいでしょうか。 Alibaba Cloud データベース チームの Jiang Shanbiao (Meng Yu) が、クラウド ネイティブの分散型 MySQL 高可用性データベース ソリューションを紹介し、主要なテクノロジを共有し、クラウド ネイティブ シナリオにおける従来のデータベースの開発動向を簡単に分析します。

クラウド時代の到来により、従来の業界とインターネット業界の両方でビジネスが多様化し、反復が高速化しているため、全体的なデータ量が大幅に増加しています。

過去 2 年間で、Docker + Kubernetes などのテクノロジーの台頭により、誰もがビジネスをコンテナ化に移行し、チームのテクノロジーもクラウド ネイティブに向けて進化しています。初期の Kubernetes は、ステートレスで共有のないアプリケーションのデプロイメント シナリオの解決に重点を置いていました。しかし、今日のますます複雑化するアプリケーション シナリオでは、状態保存の必要性が頻繁に発生します。

Kubernetes 1.9 からは、ステートフル サービス用のリソース タイプ Statefulset が GA に入り、Kubernetes 1.14 の Local Volume や CSI などのストレージ機能も GA 段階に入りました。 Kubernetes のステートフル サービスのサポートが全面的に強化され、多くのデータ ストレージ ベースの基本ミドルウェアを Kubernetes に移行できるようになりました。

現在人気の高いオープンソースのリレーショナル データベース (RDS) である MySQL は、信頼性、使いやすさ、豊富な機能、幅広いアプリケーションという特徴を兼ね備えており、リレーショナル データベースの主な選択肢となっています。多くの注目を集めているものの、MySQL もクラウド ネイティブの波の中で多くの課題に直面しています。クラウド ネイティブ設計原則を使用して、サンドボックス分離とコンピューティングとデータの完全な分離を通じて、低コストでスケーラブルかつ高可用性のクラウド RDS ソリューションを実現するにはどうすればよいでしょうか。

この記事では、クラウドネイティブの分散型 MySQL 高可用性データベース ソリューション (以下、「SlightShift MySQL 高可用性ソリューション」と呼びます) を紹介し、クラウドネイティブ シナリオにおける従来のデータベースの開発動向を簡単に分析します。

​​

​​

1. 要求と課題

クラウドネイティブ シナリオで MySQL の高可用性アーキテクチャを検討する場合、主に次の課題があります。

  • フェイルオーバー: プライマリ データベースがダウンした場合、クラスターはプライマリを自動的に選択して障害を迅速に転送し、転送前後のデータの一貫性を保つことができます。
  • アジャイルで柔軟なスケーリング: 拡張および縮小プロセス中にビジネス アクセスを中断することなく、レプリカに基づいて柔軟な水平拡張を実現します。
  • データ セキュリティ: 障害回復とデータ移行を容易にするために、データのスケジュールされたコールド バックアップ/リアルタイムのホット バックアップを実行します。
  • 強力なデータ一貫性: バックアップ/読み取り専用レプリカとして使用されるスレーブ ノードのデータは、マスター ノードのデータとリアルタイムまたは半リアルタイムで一致している必要があります。

第二の目的と重要な考慮事項

LightShift MySQL 高可用性ソリューションの目標は次のとおりです。

  • SLA 保証: 許容される最大のサービス利用不可時間は、1 年間で 52.56 分 (99.99%) です。
  • フェイルオーバー: マスター データベースで例外が発生した場合、マスターとスレーブの切り替えには 2 分もかかりません。
  • 弾力的な拡張: 理論的には、スレーブ データベースは無限に拡張でき、スレーブ データベースの拡張に必要な時間は 2 分未満です。
  • コールド スタンバイ リカバリ: MySQL クラスターで回復不可能な問題が発生した場合、コールド スタンバイからのリカバリには 10 分もかかりません。

上記の目標に加えて、技術アーキテクチャを設計する際には、次の重要なポイントも考慮する必要があります。

  • 高可用性
  • アプリケーションアクセスコスト
  • リソースの使用
  • スケーラビリティ
  • 保守性

3フレームデザイン

この MySQL 高可用性ソリューションは、1 つのマスターと複数のスレーブのレプリケーション構造を使用します。マスター/スレーブ データ レプリケーションでは、半同期レプリケーションを使用して、データの一貫性と読み取り/書き込み効率を確保します。理論上、スレーブ データベースは無限に拡張できます。

​​

​​

データ エンジンの上位層に仲裁者が追加され、Raft 分散コンセンサス アルゴリズムを使用して自動リーダー選出とフェイルオーバーが実現されます。

ルーティング層は、SQL 要求プロキシとして ProxySQL を使用し、読み取りと書き込みの分離、負荷分散、および動的構成の検出を実現します。

監視とアラームに関しては、Prometheus-Operator ソリューションを使用して、MySQL 高可用性システム全体のリソース監視とアラームを実装します。

運用保守制御面では、Kubernetes Operator制御モデルを導入し、宣言型構成、クラスターステータス管理、On Demand(オンデマンド作成)を実現できるDB-Operatorを実装しています。さらに、データベース管理、テーブル管理、SQL クエリ、インデックスの変更、構成の変更、データのバックアップとリカバリなど、MySQL コンソールで基本的な MySQL 操作とメンテナンスを実行できます。

4つの主要技術

状態の永続性

コンテナ技術の誕生後、人々はすぐに、コンテナ技術を使用して「ステートレス アプリケーション」をカプセル化することが非常に便利であることに気付きました。しかし、コンテナを使用して「ステートフルアプリケーション」を実行したい場合、難易度は急激に増加します。

MySQL などのストレージベースの分散アプリケーションでは、マスターとスレーブの関係やマスターとスレーブの関係など、複数のインスタンス間に依存関係が存在することがよくあります。通常、各インスタンスはデータのコピーをローカル ディスクに保存します。インスタンスが強制終了されると、再構築されてもインスタンスとデータ間の対応が失われ、アプリケーション障害が発生します。

インスタンス間に不平等な関係があり、インスタンスが外部データに依存しているこのようなアプリケーションは、「ステートフル アプリケーション」と呼ばれます。

Kubernetes クラスターでノードのローカル ストレージ リソースを使用するには、emptyDir、hostPath、Local PV など、いくつかの方法があります。このうち、emptyDir ではデータを永続化できず、hostPath 方式ではボリュームのライフサイクルを手動で管理する必要があるため、運用と保守に大きな負担がかかります。

したがって、MySQL シナリオでは、パフォーマンスと運用および保守コストを考慮して、ローカル ストレージを使用する必要があります。今のところ、ローカル PV が唯一の選択肢です。


​​

​​

ローカル PV は、ビジネスで永続的に保存する必要があるデータをマシン上のディスクに保存します。リモート ストレージと同様に、Pod のデータとライフ サイクルは互いに独立しています。ビジネスポッドが削除されても、データは失われません。

同時に、リモート ストレージと比較して、ローカル ストレージはネットワーク IO オーバーヘッドを回避でき、読み取りおよび書き込みパフォーマンスも高いため、分散ファイル システムや分散データベースなどの IO 要件が高いアプリケーションはローカル ストレージに非常に適しています。

他の種類のストレージとは異なり、ローカル PV ローカル ストレージはノードに大きく依存します。つまり、ポッドをスケジュールするときは、これらのローカル PV の容量とトポロジの要件も考慮する必要があります。

ローカル PV を使用する場合、MySQL は主に、遅延バインディング メカニズムとボリューム トポロジ対応スケジューリングの 2 つの機能を使用します。遅延バインディング メカニズムでは、MySQL Pod が PVC を使用してスケジューリングを完了するまで PVC のバインディングを延期できますが、ボリューム トポロジ対応スケジューリングでは、Kubernetes スケジューラがボリュームのトポロジ制約 (このストレージ ボリュームは特定の領域またはノードでのみ使用 (アクセス) できる) を認識できるため、スケジューラは Pod をスケジュールするときにこの制限を考慮する必要があります。

さらに、MySQL が使用するローカル PV は、nodeAffinity を通じて Pod を正しいノードにスケジュールする必要があります。

以下は、Local PV を使用した MySQL の簡単な構成例を示しています。

 ---
APIバージョン: storage.k8s.io/v1
種類: ストレージクラス
メタデータ:
作成タイムスタンプ: null
名前: ローカルストレージ
プロビジョナー: kubernetes.io/no-provisioner
回収ポリシー: 削除
---
APIバージョン: v1
種類: PersistentVolumeClaim
メタデータ:
注釈:
pv.kubernetes.io/コントローラーによってバインド: 「はい」
作成タイムスタンプ: null
ラベル:
アプリ: わずかなシフト-mysql
mysql-node: "true"
名前: data-slightshift-mysql-0
仕様:
アクセスモード:
-一度だけ読み書き可能
リソース:
リクエスト:
ストレージ: 10Gi
ストレージクラス名: ローカルボリュームストレージ
ボリューム名: mysqlha-local-pv-0
---
APIバージョン: v1
種類: 永続ボリューム
メタデータ:
注釈:
helm.sh/hook: 事前インストール、事前アップグレード
helm.sh/リソースポリシー: 保持
volume.alpha.kubernetes.io/node-affinity: '{ "requiredDuringSchedulingIgnoredDuringExecution":
{ "nodeSelectorTerms": [ { "matchExpressions": [ { "key": "kubernetes.io/hostname",
"演算子": "In", "値": ["yz2-worker004"] } ]} ]} }'
ラベル:
pv-ラベル: わずかなシフト-mysql-データ-pv
タイプ: ローカル
名前: わずかなシフト-mysql-data-pv-0
仕様:
アクセスモード:
-一度だけ読み書き可能
容量:
ストレージ: 500Gi
地元:
パス: /var/lib/ali/mysql
persistentVolumeReclaimPolicy: 保持
ストレージクラス名: pxc-mysql-data

以上がLocal PVの基本的な使い方です。 MySQL では、ノードの柔軟なスケーリングも考慮する必要があり、そのためには、MySQL インスタンスのスケーリングに合わせて、基盤となるストレージも動的に構成できる必要があります。解決策は 2 つあります。

LVM マネージャーは Kubernetes クラスターに導入され、DaemonSet の形式で実行されます。各ノード上のディスクの管理、ノードのディスク容量と残り容量の報告、PV の動的な作成などを担当します。ローカル ストレージ スケジューラ スケジューリング モジュールは、ローカル ストレージを使用する Pod に適したノード (十分な容量を持つ) を選択するために導入されています。

オープンソース ソリューション OpenEBS を使用します。iSCSI は基盤となるストレージ機能を提供し、OpenEBS は iSCSI を管理します (現在は PV の ReadWriteOnce アクセス モードのみをサポートしています)。

自動マスター選択

SlightShift MySQL 高可用性アーキテクチャは、Raft の強力な一貫性プロトコルに基づいて、分散 MySQL 自動リーダー選出を実装します。

​​

​​

Raft はハートビートを使用してリーダー選出をトリガーします。 MySQL サーバーが起動すると、フォロワー状態になります。サーバーがリーダーまたは候補から有効な RPC を受信すると、フォロワー状態のままになり、リーダーは定期的にハートビートを送信して、自分がリーダーであることを示します。

フォロワーが選出タイムアウト内に通信を受信しない場合、リーダーの選出を開始します。

マスターを選択する手順は次のとおりです。

  • 現在の用語を追加します。
  • 候補者ステータスに変更します。
  • 自身をマスターとして選出し、マスター選出 RPC を他のサーバーに並行して送信します。
  • 候補ステータスは、以下の 3 つの状況が発生するまで継続されます。

候補者は次の 3 つの状況で退出します。

  • サーバー自体がリーダーになります。
  • 他のサーバーはリーダーとして選出されます。
  • しばらくすると、どのサーバーもリーダーにはなりません。

フェイルオーバー

正常に実行されているマスター スレーブ レプリケーション環境では、フェイルオーバー モジュールがクラスターの状態を監視し、マスターに障害が発生すると自動的にフェイルオーバーをトリガーします。

フェイルオーバーの最初のステップは、自動マスター選出です。自動マスター選出のロジックについては上記で紹介しました。 2 番目のステップは、データの一貫性の保証です。デッドマスターのデータが新しいマスターに同期されることの保証を最大限にする必要があります。

​​

​​

マスターを新しいマスターに切り替える前に、一部のスレーブが最新のリレー ログ イベントを受信して​​いない可能性があります。フェイルオーバー モジュールは、最新のスレーブからのさまざまなリレー ログ イベントを自動的に識別し、さまざまなイベントを他のスレーブに適用して、すべてのスレーブのデータの一貫性を確保します。

プロキシ層に関しては、ProxySQL は MySQL インスタンスの読み取り/書き込み構成をリアルタイムで検出します。 MySQL インスタンスの読み取り/書き込み構成が変更されると、ProxySQL は MySQL インスタンスの読み取り/書き込みグループ化構成を自動的に調整し、最終的にはフェイルオーバー後に読み取り/書き込み分離が正しく実行されるようにします。

​​

​​

LightShift MySQL 自動フェイルオーバーの手順は次のとおりです。

  • HA-Manager はマスター サーバーとの異常な接続を検出し、フェイルオーバーを開始します。
  • スプリットブレインを回避するために、Dead Master をシャットダウンしてみてください (この手順はオプションです)。
  • 最新のデータ スレーブの end_log_pos を取得し、デッド マスターから bin-log を同期して、最終的にすべてのスレーブの end_log_pos が一貫していることを確認します。
  • ラフト分散アルゴリズムを使用して新しいマスターを選出します。
  • マスターを新しいマスターに切り替えます。
  • ProxySQL コード サービスをコールバックし、Dead Master 構成を削除します。
  • ProxySQL ゲートウェイは、各 MySQL インスタンスの読み取り/書き込み構成の変更を検出し、読み取り/書き込み分離構成を調整します。
  • 切り替え結果を通知します(電子メール、DingTalk グループロボット)。

SlightShift MySQL は数秒でフェイルオーバーを実現できます。ホスト障害の検出には 5 ~ 10 秒、差分リレー ログの適用には 5 ~ 10 秒かかり、その後新しいマスターに登録されます。通常、ダウンタイムの合計は 10 ~ 30 秒です。さらに、新しいマスターとして選出される各スレーブの優先順位は構成ファイルで構成できるため、複数のコンピュータ ルームに MySQL を展開するシナリオでは非常に実用的です。

自動障害回復

ダウンしたマスターノードが復元されると、次のようになります。

  • 復元されたノードが Mysql Pod を再作成してクラスターに参加すると、Sentinel は新しい Pod をスレーブとして構成し、現在のマスター Mysql のログ ファイルと位置を取得して、新しく追加されたスレーブのデータを同期します。
  • Mysql Pod がまだ存在し、復元されたノードで使用可能な場合、Sentinel はラベル master を持つ 2 つの Pod を見つけます。 Sentinel は、停止中に選択された新しいマスターを引き続き使用し、復元されたマスターを強制的にスレーブに設定し、読み取り専用モードを有効にします。

ダウンしたスレーブノードが復元されると、次のようになります。

  • リカバリノードが MySQL Pod を再作成してクラスターに参加すると、Sentinel は新しい Pod をスレーブとして構成し、現在のマスター MySQL のログ ファイルと位置を取得して、新しく追加されたスレーブのデータを同期します。
  • Mysql Pod がまだ存在し、復元されたノードで使用可能な場合、スケジューラは何も操作を実行せず、proxysql-service は新しく追加されたスレーブを検出し、それをエンドポイント リストに追加します。

状態管理

状態管理は新しいトピックではありません。一貫した状態を集中システムに配布し、分散システムが常に期待される状態に収束することを保証します。これは集中型システムの基礎の 1 つです。

MySQL サービスは、マスター ノードと、マスターからデータを非同期的に複製する複数のスレーブ ノードで構成されます。これは、1 つのマスターと複数のスレーブのレプリケーション モデルです。このうち、マスターノードはユーザーの読み取りおよび書き込み要求を処理するために使用でき、スレーブノードはユーザーの読み取り要求を処理するためにのみ使用できます。

このようなステートフル サービスを展開するには、StatefulSet に加えて、ConfigMap、Headless Service、ClusterIP Service など、他の多くの種類の k8s リソース オブジェクトも必要です。これらの間の連携により、MySQL などのステートフル サービスを k8s 上で実行できるようになります。

MySQL クラスターでは、マスターに障害が発生し、クラスターがフェイルオーバーを実行したときに、状態転送が最も頻繁に発生します。マスターに障害が発生すると、マスター選択ロジックが自動的にトリガーされます。マスターの選出が完了すると、新しいマスターが読み取りおよび書き込みサービスを正常に提供できるようになるまでフェイルオーバーが実行されます。フェイルオーバー プロセスには時間がかかり、フェイルオーバー プロセス中は MySQL サービスは書き込み不可の状態になります。

フェイルオーバー中、Dead Master インスタンスは k8s クラスターによって自動的にプルアップされます。引き上げられた後、デッドマスターは自分が正当なマスターであると考えるようになります。これにより、クラスター内に 2 つのマスターが同時に存在することになります。書き込み要求は 2 つのマスター ノードにランダムに割り当てられる可能性があり、スプリット ブレインの問題が発生します。

このシナリオのスプリット ブレイン問題を解決するために、InitContainer メカニズムを導入しました。このメカニズムは、Sentinel と組み合わせることで、問題をうまく解決できます。

InitContainer は、その名前が示すように、コンテナが起動されると、準備作業を完了するために 1 つ以上のコンテナが起動されます。 InitContainer が複数ある場合は、指定された順序で実行されます。すべての InitContainers が実行されるまで、メイン コンテナーは起動されません。

各 MySQL インスタンスに InitContainer を追加しました。 Dead Master が k8s によって自動的にプルアップされた後、InitContainer はクラスターがフェイルオーバー段階にあるかどうかを自動的に検出します。フェイルオーバー段階にある場合は、フェイルオーバーが終了するまでスリープ ポーリング状態になります。

​​

​​

フェイルオーバーが終了すると、Sentinel は Dead Master がプルアップされたことを検出し、Dead Master を New Master のスレーブ ノードとして自動的に設定します。これにより、完全なフェイルオーバー プロセスが完了し、クラスター内のブレイン スプリットの問題が回避されます。

宣言型操作

k8s を使用する場合、通常はアプリケーション管理のニーズを満たすために k8s のリソースを使用します。

  • Deployment や StatefulSet などのワークロードを通じてサービスをデプロイします。
  • Service と Ingress を通じてサービスへのアクセスを管理します。
  • ConfigMap と Secrets を通じてサービス構成を管理します。

上記のリソースはユーザーの期待を表しています。 kube-controller-mananger のコントローラーは、リソース イベントをリッスンし、対応するアクションを実行してユーザーの期待を実現します。

この操作モードは、アプリケーション管理に非常に便利です。ユーザーは、従来の HTTP API や RPC 呼び出しなどの使用方法を気にすることなく、宣言的な方法でアプリケーションを管理できます。

コントローラーは、ユーザーの期待が満たされるようにさまざまなメカニズムを使用します。たとえば、オブジェクトの現在の状態がユーザーの期待を満たしていることを確認するためにオブジェクトの状態を継続的に検出するこの操作および保守モードは、宣言型の操作および保守と呼ばれます。

しかし、k8s が提供する基本的な型のみを使用すると、MySQL などの複雑なアプリケーションの運用および保守コストは依然として非常に高くなります。宣言型の運用保守モデルを MySQL アプリケーションに拡張できれば、MySQL アプリケーションの導入と運用保守のコストが大幅に削減されます。

​​

​​

この問題を解決するために、slightshift-mysql-operator が誕生しました。

slightshift-mysql-operator は基本的にリソース + コントローラーです。

  • リソース
  • カスタム リソース定義 (CRD) は、ユーザーがサービスに対する期待を記述するための宣言的な方法を提供します。
  • コントローラ

リソースにおけるユーザーの期待を満たします。

  • slightshift-mysql-operator は、k8s の既存の概念を組み合わせることで、MySQL の導入と保守のコストを大幅に削減します。

ユーザーは、デプロイメントと同様の方法でMySQLの要件を説明します。

MySQL アプリケーションを k8s にデプロイする手順は、k8s 公式リソースの場合と同じです。

slightshift-mysql-operatorのコントローラーはイベントリクエストをリッスンして処理します

  • リソース イベントをリッスンします。
  • さまざまなタイプのイベント (ADD/UPDATE/DELETE) に対応するアクションを実行します。
  • オブジェクトの状態を継続的に検出してアクションを実行し、ユーザーの期待に応えるようにサービス状態を制御します。

​​

​​

slightshift-mysql-operator の設計コンセプトは次のとおりです。

  • 宣言型構成: 可読性と運用・保守効率を向上させ、運用・保守コストを削減します。
  • 最終的な一貫性: 最終的な一貫性を実現するためにクラスターの状態を動的に調整します。

​​

​​

slightshift-mysql-operator は、Kubernetes クラスターでの MySQL アプリケーションの使用と管理にかかるコストを大幅に削減します。ユーザーは宣言型 CR を通じてアプリケーションを作成でき、ベンダーはアプリケーション管理の専門知識をカプセル化して、ユーザーに対して透過的にすることができます。

slightshift-mysql-operator は、アーキテクチャ レベルで階層化設計を使用してアーキテクチャの複雑さを簡素化し、複数の MySQL クラスタ インスタンス間の相互干渉を最小限に抑え、各インスタンスの自律性を実現します。

展開構造を次の図に示します。

​​

​​

バックアップと復元

データのセキュリティを確保するには、極端なケース (クラスターのクラッシュ) でもユーザー データを復元できるように、データを定期的にバックアップする必要があります。

Cronjob 経由で MySQL データをバックアップします。

  • Kubernetes クラスターに Cronjob を作成し、定期的にデータをバックアップします。
  • バックアップ データにはタイムスタンプが付けられ、オブジェクト ストレージ サーバー (Ceph、Minio) にアップロードされます。

ジョブを作成して MySQL からデータを回復します。

  • クラスター内にリカバリジョブを作成します。ジョブは、SNAP_SHOT に基づいてストレージ サーバー (OSS、Minio) からバックアップ データを取得します。
  • ジョブはデータを MySQL マスター インスタンスに復元し、スレーブ インスタンスはデータ同期を完了します。

5つの技術進化

進化することによってのみ、私たちは食物連鎖の頂点に立つことができるのです。

Gartner のレポートによると、データベース クラウド プラットフォームの市場シェアは今後 5 年間で 2 倍になり、ユーザーの 70% が dbPaaS データベース クラウド プラットフォームを使い始めることになります。したがって、データベース クラウド プラットフォームのさまざまなアプリケーションのニーズを満たし、プライベート クラウド展開における多数の異なるタイプのデータ ストレージ製品の運用上の複雑さを軽減するために、データベース アーキテクチャの進化は、今後 10 年間のデータベース変革の主な方向性の 1 つになります。

クラウドネイティブ データベースは、データベースの将来の開発にとって重要な方向性です。クラウドネイティブ データベース アーキテクチャも、クラウド化の要件に応じて反復する必要があります。今後も、需要の変化に応じてクラウドネイティブ データベース アーキテクチャの進化は続いていきます。

​​

​​

6. 今後の見通し

ミドルウェアは、上位のビジネスシステムを構築するための基礎および中核技術として、高い信頼性、高い拡張性、強力な専門性という特徴を備えています。

今後は、ミドルウェアのこうした特性により、クラウドネイティブミドルウェアは標準化、構築、疎結合、プラットフォーム化の方向へ発展していくでしょう。プラットフォーム化により、ビジネスの変化に迅速に対応し、ビジネスの水平展開のための集中型の技術ソリューションを提供できるようになります。

​​

​​

最終的には、基本的なミドルウェアの展開、構成、アップグレード、スケーリング、トラブルシューティングなどの自動化機能をカバーする、エンタープライズ レベルのクラウド ネイティブ ミドルウェア PaaS プラットフォームを構築したいと考えています。

まず、ミドルウェア プラットフォームについての私の理解についてお話しします。ミドルウェア プラットフォームは、一連のミドルウェア ソリューションを備えたオープン テクノロジー プラットフォームである必要があります。これは、複雑で絶えず変化する上位レベルのビジネス領域に安定した信頼性の高いコンピューティングおよびストレージ サービスを提供することを目的とした、完全で実績のあるオープンなコンポーネント化されたソリューションです。

プラットフォームベースの製品の開発の歴史は、プラットフォームとして始まったわけではありません。むしろ、まずビジネスニーズがあり、実際のビジネスニーズを解決するために、特定の分野の知識が蓄積され、その分野の専門家が生まれ、最終的にプラットフォームが変革されます。言い換えれば、プラットフォームは継続的な蓄積のプロセスであり、自然なプロセスでもあります。

​​

​​

企業情報プラットフォームを構築する過程で、ミドルウェア プラットフォームを効果的、合理的、標準化して使用し、上位の業務システムを迅速に構築することで、企業が需要の変化にタイムリーに対応し、企業の集中管理を形成し、企業の中核的な強みを強化して持続可能な競争優位性を獲得するための強力な保証を提供できます。

【この記事は51CTOコラムニスト「アリババオフィシャルテクノロジー」によるオリジナル記事です。転載については原著者にお問い合わせください。

この著者の他の記事を読むにはここをクリックしてください

<<:  フォグコンピューティングが IoT の課題を解決する方法

>>:  誰かがテンセントミーティングの計算をしたところ、5か月で714億元の社会コストが節約されたことが判明した。

推薦する

tmhhost: 日本のcn2 vps、無制限のトラフィック、月額35元から、Windowsシステムをサポート

10月に、tmhhostは日本のcn2ネットワークシリーズVPSを追加しました。サーバーはzenla...

Code Year が 48 時間で 10 万人のユーザーを獲得した裏話: 1 時間で Web ページをデザインする

たった 1 時間で Code Year の Web サイトをデザインした方法: Code Year ...

ウェブサイトのユーザーの粘着性に関する簡単な説明

今日はウェブサイトの粘着性の問題についてお話ししましょう。インターネット業界で働く多くの人々は、We...

Baiduのアルゴリズム改善により、かつてSEOの世界で人気があった6つのツールが廃止された

アルゴリズムが改良されるたびに、一部の SEO ツールは無効になります。過去 3 年間の SEO で...

インターネットプロモーションのためのフォーラムプロモーションスキル(I)

今日もまた水曜日です。今日は皆さんが外部リンクをもう少し増やし、Baidu スパイダーに自分のウェブ...

Hosthatch ロサンゼルス 大容量ハードドライブ ストレージ VPS レビュー

Hosthatchは最近、米国データセンターの大容量ハードディスクストレージVPSにいくつかの変更を...

WOT サミットの全記録: DevOps の道には何千人もの人々がさまざまな顔を持っている

2018年5月18日、51CTO主催のグローバルソフトウェアおよび運用技術サミットが北京で開催されま...

VPS 初心者はどのようにして VPS の基礎知識を学ぶのでしょうか? VPS 初心者はどのように始めればよいですか?

VPS の基礎を学ぶには、初心者は次の手順に従います。目次1VPSとは何かを理解する: 2適切なVP...

コンテンツの除外がランキングに影響を与えないようにしてください

ウェブサイト上の排他的コンテンツという概念は、誰もが聞いたことがあるわけではないかもしれませんが、ウ...

企業がSEOを選択する将来展望は?

この記事は、この地域の企業に基づいて書かれています。多くの企業は、SEO を選択することで会社にどの...

記事の掲載が難しい状況に直面し、細部にもっと注意を払う必要がある

今年、百度のアルゴリズムが継続的に改善・調整されたため、自分のウェブサイトや友人のウェブサイトのコン...

低学歴のギャングが百度のプロモーションアカウントに簡単に侵入し、100件以上の詐欺行為を行った

原題:百度のプロモーションアカウントへのハッキングによる詐欺事件が100件以上発生北京ニュース(記者...

週刊ニュースレビュー:マイクロソフトがグーグルの有料ランキングを攻撃、クバとゴメが合併

1. Gome Online: 妥協は無力感から生まれるかもしれませんが、リスクもあります!国美オン...

Argo ロールアウトによるプログレッシブ リリース

Argo Rollouts は、Kubernetes Operator 実装であり、ブルーグリーン、...

インプラントは手放すのがとても難しい。「兄はもういない」けれど、ブランドの記憶は残っている

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています映画『囲碁...