クラウドネイティブKubernetes分散ストレージプラットフォームLonghornの初体験

クラウドネイティブKubernetes分散ストレージプラットフォームLonghornの初体験

先ほど、ローカル ストレージと NFS 共有ストレージについて学習しました。これらのストレージ タイプに加えて、ブロック ストレージもあります。 Ceph RBD など、Kubernetes にブロック ストレージを提供するソリューションは数多くあります。本日は、Rancher のオープンソース Kubernetes クラウドネイティブ分散ブロック ストレージ ソリューションである Longhorn をご紹介します。 Longhorn は、あらゆるインフラストラクチャで実行できる軽量で強力なクラウドネイティブ Kubernetes 分散ストレージ プラットフォームです。 Longhorn は Rancher と組み合わせて使用​​することも可能で、Kubernetes 環境で高可用性の永続ブロック ストレージを簡単、迅速、かつ確実に導入できるようになります。

Longhorn を使用すると、次のことが可能になります。

  • Kubernetes クラスター内の分散ステートフル アプリケーションの永続ストレージとして Longhorn ボリュームを使用する
  • ブロックストレージをLonghornボリュームとしてパーティション分割し、クラウドプロバイダーの有無にかかわらずKubernetesボリュームを使用できるようにします。
  • 複数のノードとデータセンターにまたがるブロックストレージを複製して可用性を向上
  • バックアップデータをNFSやAWS S3などの外部ストレージに保存する
  • プライマリKubernetesクラスターのデータを2番目のKubernetesクラスターのバックアップから素早く復元できるように、クラスター間災害復旧ボリュームを作成します。
  • ボリュームのスナップショットをスケジュールし、NFS または S3 互換のセカンダリ ストレージへのバックアップをスケジュールします。
  • バックアップからボリュームを復元する
  • 永続ボリュームを中断せずに Longhorn をアップグレードする

Longhorn にはスタンドアロン UI も付属しており、Helm、kubectl、または Rancher アプリケーション カタログを使用してインストールできます。

建築

Longhorn はボリュームごとに専用のストレージ コントローラを作成し、複数のノードに保存されている複数のコピー間でボリュームを同期的に複製します。 Longhorn は一般に、データ プレーンとコントロール プレーンの 2 つのレイヤーに分かれています。 Longhorn Engine はデータ プレーンに対応するストレージ コントローラーであり、Longhorn Manager はコントロール プレーンに対応します。

Longhorn Manager は、Longhorn クラスターの各ノード上で DaemonSet として実行されます。 Kubernetes クラスター内のボリュームの作成と管理、および UI または Kubernetes ボリューム プラグインからの API 呼び出しの処理を担当します。 Kubernetes コントローラー パターンに従います。

Longhorn Manager は、Kubernetes APIServer と通信して新しい Longhorn ボリューム CRD を作成します。その後、Longhorn Manager は APIServer の応答を監視し続けます。新しい Longhorn ボリューム CRD が作成されたことを確認すると、Longhorn Manager は対応する新しいボリュームを作成します。 Longhorn Manager はボリュームの作成を要求されると、ボリュームが接続されているノード上に Longhorn Engine インスタンスを作成し、レプリカが配置される各ノード上にレプリカを作成します。最大限の可用性を確保するには、レプリカを異なるホストに配置する必要があります。レプリカの複数のデータ パスにより、Longhorn ボリュームの高可用性が確保されます。レプリカまたはエンジンに障害が発生しても、すべてのレプリカまたはポッドによるボリュームへのアクセスには影響しません。

Longhorn エンジンは、常に Longhorn ボリュームを使用するポッドと同じノード上で実行され、複数のノードに保存されている複数のレプリカ間でボリュームを同期的に複製します。

次の図は、Longhorn ボリューム、Longhorn エンジン、レプリカ インスタンス、およびディスク間の読み取り/書き込みデータ フローを示しています。

ボリューム、Longhorn エンジン、レプリカ インスタンス、ディスク間の読み取り/書き込みデータ フロー

  • 上の図には3つのLonghornボリュームインスタンスがあります
  • 各ボリュームには、Longhorn Engine と呼ばれる専用のコントローラーがあり、Linux プロセスとして実行されます。
  • 各Longhornボリュームには2つのコピーがあり、それぞれがLinuxプロセスでもある。
  • 図の矢印は、ボリューム、コントローラ インスタンス、レプリカ インスタンス、およびディスク間の読み取り/書き込みデータ フローを表します。
  • 各ボリュームに個別の Longhorn エンジンを作成することにより、1 つのコントローラに障害が発生しても、他のボリュームの機能には影響しません。

注: 図のエンジンは独立したポッドではありませんが、各ボリュームはgolangによって実行されるLinuxプロセスに対応しています。

Longhorn では、各エンジンは 1 つのボリュームのみを提供する必要があるため、ストレージ コントローラーの設計が簡素化されます。コントローラ ソフトウェアの障害ドメインは単一のボリュームから分離されているため、コントローラのクラッシュは 1 つのボリュームにのみ影響します。 Longhorn Engine はシンプルで軽量なので、最大 100,000 個の独立したエンジンを作成できます。 Kubernetes はこれらの独立したエンジンをスケジュールし、共有ディスクのセットからリソースを抽出し、Longhorn と連携して回復力のある分散ブロック ストレージ システムを形成します。

各ボリュームには独自のコントローラがあるため、各ボリュームのコントローラとレプリカ インスタンスも、IO 操作に大きな中断を引き起こすことなくアップグレードできます。 Longhorn は、システム操作を中断することなくすべてのボリュームのアップグレードを調整するための長時間実行ジョブを作成できます。

Longhorn は、CSI ドライバーを通じて Kubernetes で管理されます。 CSI ドライバーは、Longhorn を呼び出してボリュームを作成し、Kubernetes ワークロードの永続データを作成します。 CSI プラグインを使用すると、ボリュームおよびスナップショット ボリュームの作成、削除、接続、切断、マウントが可能になります。 Kubernetes クラスターは CSI インターフェースを使用して Longhorn CSI ドライバーと通信し、Longhorn CSI ドライバーは Longhorn API を使用して Longhorn Manager と通信します。

さらに、Longhorn は、Longhorn API を介して Longhorn Manager と対話する UI インターフェイス プログラムも提供します。 Longhorn UI を通じて、スナップショット、バックアップ、ノード、ディスクを管理できます。さらに、クラスターの作業ノードのスペース使用量も Longhorn UI を通じて表示できます。

インストール

Kubernetes クラスターに Longhorn をインストールするには、クラスター内の各ノードが次の要件を満たしている必要があります。

  • Kubernetes と互換性のあるコンテナ ランタイム (Docker v1.13+、containerd v1.3.7+ など)
  • Kubernetes v1.18+
  • open-iscsi がインストールされており、iscsid デーモンがすべてのノードで実行されています。これは、Longhorn が Kubernetes に永続ボリュームを提供するためにホスト上の iscsiadm に依存しているために必要です。
  • RWXサポートには、各ノードにNFSv4クライアントをインストールする必要があります。
  • ホスト ファイル システムは、データを保存するためのファイル エクステントをサポートします。現在サポートしているのは、ext4とXFSです。
  • bash、curl、findmnt、grep、awk、blkid、lsblkなどのツールをインストールする必要があります。
  • マウント伝播を有効にする必要があり、これにより、コンテナによってマウントされたボリュームを同じポッド内の他のコンテナ、または同じノード上の他のポッドと共有できるようになります。

Longhorn を適切に導入および操作するには、Longhorn ワークロードを root として実行できる必要があります。

頼る

これらの環境要件を確認するために、Longhorn では確認に役立つスクリプトが公式に提供されています。スクリプトを実行するには、jq ツールをローカルにインストールする必要があります。スクリプトを実行するには、次のコマンドを実行します。

  curl - sSfL https://raw.githubusercontent.com/longhorn/longhorn/v1.2.3/scripts/environment_check.sh |バッシュ
daemonset .apps / longhorn - 環境- チェックが作成されました
ポッド準備整うのを待っています( 0 / 2 )
ポッド準備整うのを待っています( 0 / 2 )
すべてのポッド準備完了( 2 / 2 )
MountPropagation有効になりまし!
掃除
daemonset .apps "longhorn-environment-check" が削除されました
クリーンアップ完了

チェックが失敗した場合は、関連するプロンプト メッセージが表示されます。

open-iscsi をインストールするには、次のコマンドを直接使用できます。

 # apt - get install open - iscsi # Debian およびUbuntu のコマンド
yum インストール-y iscsi - イニシエーター-utils

Longhorn には、open-iscsi を自動的にインストールしやすくする iscsi インストーラーも用意されています。

  kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.2.3/deploy/prerequisite/longhorn-iscsi-installation.yaml

デプロイが完了したら、次のコマンドを実行してインストーラーのポッドのステータスを確認します。

  kubectl ポッドを取得| grep longhorn - iscsi - インストール
longhorn - iscsi - インストール- 49 hd7 1 / 1 実行中0 21 m
longhorn - iscsi - インストール- pzb7r 1 / 1 実行中0 39

次のコマンドを使用して、ログとインストール結果を表示することもできます。

  kubectl ログlonghorn - iscsi - インストール- pzb7r - c iscsi - インストール
...
インストール済み:
iscsi - イニシエーター- ユーティリティx86_64 0 : 6.2 .0 .874 - 7.amzn2
依存関係がインストールされました:
iscsi - イニシエーター- ユーティリティ- iscsiuiox86_64 0 : 6.2 .0 .874 - 7.amzn2
完了
/ etc / systemd / system / multi - user からシンボリックリンクを作成しましたターゲット希望/ iscsid/ usr / lib / systemd / system / iscsid へのサービスサービス
iscsi正常にインストールされました

NFSv4 クライアントをインストールするには、次のコマンドを使用します。

 # apt - get install nfs - common # Debian およびUbuntu のコマンド
yum インストールnfs - ユーティリティ

同様に、Longhorn は nfs クライアント インストール プログラムも提供しており、これにより nfs-client をより簡単に自動的にインストールできます。

  kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.2.3/deploy/prerequisite/longhorn-nfs-installation.yaml

デプロイが完了したら、次のコマンドを実行してインストーラーのポッドのステータスを確認します。

  kubectl ポッドを取得| grep longhorn - nfs - インストール
名前準備完了ステータス再起動年齢
longhorn - nfs - インストール- t2v9v 1 / 1 実行中0 143 m
longhorn - nfs - インストール- 7 nphm 1 / 1 実行中0 143 m

次のコマンドを使用して、ログとインストール結果を表示することもできます。

  kubectl ログlonghorn - nfs - インストール- t2v9v - c nfs - インストール
...
NFS のインストールに成功しました

関連する依存環境が準備されたら、Longhorn のインストールを開始できます。

展開する

Rancher Catalog アプリケーション、kubectl、helm を使用したインストールを公式にサポートします。ここでは、インストールに helm を使用することを選択します。

まず、longhorn チャート リポジトリを追加します。

  helm リポジトリlonghorn を追加しますhttps://charts.longhorn.io
helm リポジトリの更新

その後、実際のシナリオに応じて値ファイルをカスタマイズできます。次のコマンドを実行すると、デフォルト値ファイルを取得できます。

  curl - Lo .yaml https://raw.githubusercontent.com/longhorn/charts/master/charts/longhorn/values.yaml

その後、値ファイル内の設定を変更できます。 Longhorn では、ストレージとして別のディスクを使用することを推奨しています。ここでは、デフォルトの /var/lib/longhorn ディレクトリがテスト用に直接使用されます。

デフォルト構成の例のスニペットを以下に示します。

 デフォルト設定:
バックアップターゲット: s3 : //backupbucket@us-east-1/backupstore
backupTargetCredentialSecret : minio - シークレット
デフォルトディスクラベルノードを作成: true
defaultDataPath : / var / lib / longhorn - /
レプリカソフトアンチアフィニティ: false
ストレージオーバープロビジョニング率: 600
ストレージ最小利用可能割合: 15
アップグレードチェッカー: false
デフォルトのレプリカ数: 2
defaultDataLocality : 無効
保証エンジンCPU :
defaultLonghornStaticStorageClass : longhorn - 静的-
バックアップストアポーリング間隔: 500
taintToleration : key1 = value1 : NoSchedule ; キー2 : 実行不可
systemManagedComponentsNodeSelector : "ラベルキー1:ラベル値1"
優先度- クラス: 優先
自動サルベージ: false
無効化SchedulingOnCordonedNode : false
レプリカゾーンソフトアンチアフィニティ: false
ボリュームアタッチメントリカバリポリシー: なし
nodeDownPodDeletionPolicy : 何ない
mkfsExt4パラメータ: - O ^64bit^metadata_csum
保証- エンジン- マネージャー- CPU : 15
保証- レプリカ- マネージャー- CPU : 15

イングレス: # イングレスを開く
有効: true
ingressClassName : nginx #ingressclass を設定する
ホスト: longhornk8s地元
注釈: # 注釈を追加する
nginxイングレスKubernetesio / プロキシ- 本体- サイズ: 10000 m
PSPを有効にする: false

次に、次のコマンドを実行して、ワンクリックで Longhorn をインストールします。

  helm アップグレード-- longhornインストールlonghorn / longhorn -- namespace longhorn - system -- create - namespace - f values ​​.yaml
名前: ロングホーン
最終デプロイ: 2022年2月20() 16:14:05
名前空間: longhorn - system
ステータス: 展開済み
改訂: 1
テストスイート: なし
注記:
Longhorn クラスターインストールされまし
CSI デプロイメントエンジンイメージ インスタンスマネージャーなど他のLonghorn コンポーネント初期化されるまで、 分間お待ちください
ドキュメントhttps://longhorn.io/docs/ ​ をご覧ください

デプロイ後、Pod の実行ステータスをチェックして、インストールが正しいことを確認できます。

  kubectl get pods - n longhorn - システム
名前準備完了ステータス再起動年齢
csi - アタッカー- 5f 46994f 7 - fqntq 1 / 1 実行中0 33
CSI - アタッチャー- 5f 46994f 7 - ltxg8 1 / 1 実行中0 36 m
csi - アタッチャー- 5f 46994f 7 - vw75d 1 / 1 実行中0 36 m
csi - プロビジョナー- 6ccbfbf86f - bvc99 1 / 1 実行中0 33
csi - プロビジョナー- 6ccbfbf86f - k46hn 1/1 実行中0 36 m
csi - プロビジョナー- 6ccbfbf86f - lxm8h 1 / 1 実行中0 36 m
csi - resizer - 6 dd8bd4c97 - 52 gmm 1 / 1 実行中0 35 m
csi - resizer - 6 dd8bd4c97 - 9 btj6 1 / 1 実行中0 3
csi - resizer - 6dd8bd4c97 - fdjmp 1 / 1 実行中0 35 m
csi - スナップショット- 86f 65 d8bc - 5 mjk2 1 / 1 実行中0 33
csi - スナップショット- 86f 65 d8bc - 5 rrfs 1 / 1 実行中0 35 m
csi - スナップショット- 86f 65 d8bc - bg6nv 1 / 1 実行中0 35 m
エンジン- イメージ- ei - fa2dfbf0 - jrb2d 1 / 1 実行中0 36 m
エンジン- イメージ- ei - fa2dfbf0 - m5799 1 / 1 実行中0 36 m
インスタンス- マネージャー- e - 051171e6 1 / 1 実行中0 36
インスタンス- マネージャー- e - db94b4b7 1 / 1 実行中0 24
インスタンス- マネージャー- r - dd84ad5c 1 / 1 実行中0 36
インスタンス- マネージャー- r - f5eefb8a 1 / 1 実行中0 24
longhorn - csi - プラグイン- mljt2 2 / 2 実行中0 35 m
longhorn - csi - plugin - rfzcj 2 / 2 実行中0 24
longhorn - ドライバー- デプロイヤー- 6 db849975f - dh4p4 1 / 1 実行中0 58
ロングホーン- マネージャー- bxks6 1 / 1 ランニング0 24 m
longhorn - マネージャー- tj58k 1 / 1 実行中0 2 m50s
ロングホーン- ui - 6f 547 c964 - k56xr 1 / 1 ランニング0 58 m

上記のインストール中に Ingress サポートを追加したので、構成されたドメイン名を通じて Longhorn UI にアクセスできます。

  kubectl get ingress - n longhorn - システム
名前クラスホストアドレスポート年齢
longhorn - ingress nginx longhornk8sローカル192.168 .31 .31 80 4 分11秒

ここでは、ingress-nginx コントローラーを使用します。インストール後、ブラウザで http://longhorn.k8s.local にアクセスするだけです。

Longhorn UI には現在のストレージ システムのステータスが表示され、その他の関連する構成もこのページで行うことができます。

デフォルトの StorageClass オブジェクトも作成されます。

  kubectl を取得sc longhorn
名前プロビジョナーRECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
longhorn ( デフォルト) ドライバーロングホーンio 即時削除true 91 m
kubectl get sc longhorn - o yaml
ボリューム拡張を許可する: true
apiバージョン: ストレージk8sio / v1
種類: ストレージクラス
メタデータ:
注釈:
......
ストレージクラスKubernetesio / is - デフォルト- クラス: "true"
作成タイムスタンプ: "2022-02-20T09:32:51Z"
......
名前: ロングホーン
リソースバージョン: "4524911"
uid : 6066e858 - e7ab - 4dab - 95db - 7ff829e6e01b
パラメータ:
バックアップから: ""
ファイルタイプ: ext4
レプリカ数: "3"
古いレプリカタイムアウト: "30"
プロビジョナー: ドライバーロングホーンio
reclaimPolicy : 削除
ボリュームバインディングモード: 即時

テスト

次に、longhorn を使用してストレージ ボリュームを提供するテストを行います。デフォルトの StorageClass が提供されているため、PVC を直接作成できます。以下に示すように PVC を作成します。

 APIバージョン: v1
種類: PersistentVolumeClaim
メタデータ:
名前: mysql - pvc
仕様:
ストレージクラス名: longhorn
アクセスモード:
-ReadWriteOnce
リソース
リクエスト:
ストレージ: 1 Gi

次に、データの永続性のために上記の PVC を使用するために、mysql アプリケーションをデプロイします。

 apiバージョン: アプリ/ v1
種類: デプロイメント
メタデータ:
名前: mysql
仕様:
セレクター:
マッチラベル:
アプリ: MySQL
戦略
タイプ: 再作成
テンプレート
メタデータ:
ラベル:
アプリ: MySQL
仕様:
コンテナ:
- イメージ: mysql : 5.6
名前: mysql
環境:
- 名前: MYSQL_ROOT_PASSWORD
: パスワード
ポート:
- コンテナポート: 3306
名前: mysql
ボリュームマウント:
- 名前: データ
マウントパス: / var / lib / mysql
巻数:
- 名前: データ
永続ボリュームクレーム:
クレーム名: mysql - pvc

上記のリソース オブジェクトを直接作成します。

  kubectl pvc を取得- pvc
名前ステータスボリューム容量アクセスモードストレージクラス 年齢
mysql - pvc バウンドpvc - ec17a7e4 - 7bb4 - 4456 - 9380 - 353 db3ed4307 1 Gi RWO longhorn 8 s
kubectl ポッドを取得する
名前準備完了ステータス再起動年齢
mysql - 6879698 bd4 - r8cxz 1 / 1 実行中0 3 分10秒
kubectl exec - it mysql - 6879698 bd4 - r8cxz -- mysql - uroot - ppassword
警告: コマンドライン インターフェイスパスワード使用する安全でない可能性があります
MySQL モニターようこそ コマンドは; 終わりますまたは\g
MySQL 接続ID 1 です
サーバーバージョン: 5.6.51 MySQL コミュニティサーバー( GPL )

Copyright ( c ) 2000、2021Oracle および/ またはその関連会社無断転載を禁じます

OracleOracle Corporation および/ またはその関連会社登録商標です
関連会社その他の名称はそれぞれ商標である可能性があります
所有者
「help;」 と入力しますまたはヘルプが必要な場合'\h' を押してください。 現在の入力ステートメントをクリアするには 「\c」 と入力します。
mysql > データベースlonghorn を作成します
クエリは正常です。1 影響を受けました( 0.01 )
マイスク>

アプリケーションが正常に起動したら、ノード上のデータをチェックして成功したかどうかを確認できます。

  ls / var / lib / longhorn /
エンジン- バイナリlonghorn - ディスクcfg レプリカ
ls / var / lib / longhorn / レプリカ/
PVC - ec17a7e4-7bb4-4456-9380-353db3ed4307 - c40376c5
ls / var / lib / longhorn / レプリカ/ pvc - ec17a7e4-7bb4-4456-9380-353 db3ed4307 - c40376c5
改訂カウンターボリューム- ヘッド- 000。 画像ボリューム- ヘッド- 000。 画像メタボリューム自分

Longhorn は分散ブロック ストレージであり、分散ファイル システムとは異なり、pv で設定されたストレージ サイズ (上記の例では 1G) を超えることはできないことに注意してください。データベースに longhorn という名前のデータベースを作成し、ポッドを再構築してデータがまだ存在するかどうかを確認しました。

  kubectl ポッドを取得する
名前準備完了ステータス再起動年齢
mysql - 6879698 bd4 - s8tfv 1 / 1 実行中0 6
kubectl exec - it mysql - 6879698 bd4 - s8tfv -- mysql - uroot - ppassword
警告: コマンドライン インターフェイスパスワード使用する安全でない可能性があります
MySQL モニターようこそ コマンドは; 終わりますまたは\g
MySQL 接続ID 1 です
サーバーバージョン: 5.6.51 MySQL コミュニティサーバー( GPL )

Copyright ( c ) 2000、2021Oracle および/ またはその関連会社無断転載を禁じます

OracleOracle Corporation および/ またはその関連会社登録商標です
関連会社その他の名称はそれぞれ商標である可能性があります
所有者

「help;」 と入力しますまたはヘルプが必要な場合'\h' を押してください。 現在の入力ステートメントをクリアするには 「\c」 と入力します。

mysql > データベースを表示;
+---------------------+
| データベース|
+---------------------+
| 情報スキーマ|
| ロングホーン
| #mysql50 #失われたもの+ 見つかったもの|
| phpMySQL
| パフォーマンススキーマ|
+---------------------+
セット内の行数5 です( 0.00 )

マイスク>

先ほど作成したデータベースがまだ存在しており、データの永続性が成功したことが証明されています。 Longhorn UI インターフェイスでデータ ボリューム情報を確認することもできます。

Longhorn の高度な機能については、今後の記事にも注目してください。

<<:  クラウドネイティブアプリケーション開発を始める方法

>>:  2022 年の Kubernetes の 5 つのトレンド

推薦する

大規模アプリケーションのパフォーマンスの課題を克服するにはどうすればよいでしょうか?

[51CTO.com クイック翻訳] Web スケールのアプリケーションでは、優れたユーザー エクス...

クラウド予算を資産に変えるにはどうすればよいでしょうか?

2022 年までに、企業データの 60% がクラウドに保存されるようになります。これは、2015 年...

通信会社はVMwareと提携してテクノロジーの巨人へと変貌する

VMware は、Mobile World Congress 2022 で一連の製品リリースを開始し...

yunserver-ロサンゼルス peer1 データセンター VPS の簡単な評価

私は、yunserver.com の Frozen から、XEN 仮想化に基づく peer1 ロサン...

今年、インターネット上で安価で優れたアメリカの VPS を推奨し、新規参入者が地雷原をクリアできるように支援します。

この記事は、安価な VPS、安価なアメリカの VPS について知りたい、そして優れたアメリカの VP...

【Nightingale Monitoring】Kubernetesコンポーネントのインジケーターを管理する

始める前にKubernetes はシンプルでありながら複雑なシステムです。シンプルさは、全体的なアー...

「分散キャッシュの徹底解説」 - 「実践的なケースから学ぶRedisの使い方」

【51CTO.comオリジナル記事】 [51CTO オリジナル記事、パートナーサイトに転載する場合は...

budgetvm-Alipay決済が正式に開始

海外で人気の VPS 販売業者 budgetvm がついに Alipay 決済機能の提供を開始し、中...

A5 がウェブサイトの直帰率を減らす方法を教えてくれる例分析

中国で最も人気のあるウェブマスターフォーラムの1つであるA5は、情報、取引、フォーラムを統合し、大多...

これらのウェブサイト上の高品質なコンテンツの3つのソース(作成、修正、収集)について説明します。

おそらく、多くの場合、私たちは百度の度重なるコンテンツ要求に負けています。記事を書ける友達はそれほど...

インターネットの歴史に残る短命な職業:フラッシュハッカー、リンクパブリッシャー、テキストライター、ウィットハッカー

文/呉俊(Fayiba創設者、Dianmo Media中核メンバー)不完全な統計によると、インターネ...

企業はどのようにクラウドに移行するのでしょうか?

ご存知のとおり、クラウド コンピューティング ソリューションは徐々に普及してきました。企業におけるク...

タオバオのお客様、目を覚ましてください!梅里朔はあなたの悲しみです! ! !

Taobao の顧客が自社製品を宣伝したい場合、Meilishuo のような Web サイトは適して...

Weibo マーケティングのヒントトップ 10

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスまず、Weibo につい...

モバイルウェブサイトの開発と設計で効果的に利用率を向上させるための重要なポイント

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