Hasura Graphqlエンジンと分散SQLを使用したリアルタイムロケーションアプリケーションの配備
8313 ワード
Hasura GraphSQL生態系の主要なベンダーの1つです.彼らはあなたのデータベースとマイクロサービスに接続するオープンソースエンジンを提供し、自動生成されたGraphSQLバックエンドを生成します.GraphSQLは、あなたのAPIのためのクエリ言語(より具体的には仕様)であり、あなたのデータのために定義するタイプシステムを使用してクエリを実行するためのサーバー側のランタイムです.Graphqlは、しばしばマイクロサービス、モバイルアプリケーション、および残りの代替として使用されます.GraphSQLは任意の特定のデータベースまたはストレージエンジンに縛られていないが、代わりに既存のコードとデータによってバックアップされているが、YugabyteDBは、水平スケーラビリティ、フォールトトレランス、および単一のシステム内のグローバルデータ配布を与えるGraphSQLに最適です.
このブログの記事では、どうすればよいかを示します. Google Kubernetes Engine(GKE)上で3ノードのyugabytedbクラスタをインストールします GSK上でhasuraグラフ式エンジンを配備する スタンドアップハサラの“リアルタイムの場所を追跡”アプリローカルとGKS上のリソースに接続する The “realtime location application” は反応を使用して構築され、3ノードのyugabytedbクラスタによってバックアップされたHasura Graphicalエンジンによって供給されます.これは、ユーザーのためのユーザーのためのインターフェイスを使用して車の位置を追跡してハラライブクエリを使用して、リアルタイムです.アプリケーションは、Hasura Lexqlエンジンのリアルタイム機能を使用してサブスクリプションを使用します.
分散SQLまたはyugabytedbに新しい?を読む.
分散SQLデータベースは、クラウドやクラウド固有の環境にデータインフラストラクチャを移動することに興味を持っている組織に人気を集めています.これは、TCOを減らすか、Oracle、PostgreSQL、MySQL、SQL ServerのようなモノリシックRDBMSの水平スケーリングの制限から離れることによって、しばしば動機づけられます.分散SQLの基本的な特徴は以下の通りです. 外部キー、部分インデックス、ストアドプロシージャ、トリガーのような伝統的なRDBMS機能をサポートして、データの問い合わせとモデリングのためのSQL APIを持たなければなりません.
単一のノードがボトルネックになるように、自動分散クエリ実行. 自動で透明な分散データストレージをサポートする必要があります.これはインデックスを含みます.そして、それは1つのノードがボトルネックになるように、クラスタの複数のノードの向こう側に鋭くされなければなりません.データ配布は、高性能と高可用性を確実にします. 分散SQLシステムはまた、強く一貫したレプリケーションおよび分散酸取引を提供するべきである. 分散SQLの詳細については、チェックアウトしてください.“What is Distributed SQL?”
何がyugabytedbですか?
このブログの記事では、どうすればよいかを示します.
分散SQLまたはyugabytedbに新しい?を読む.
分散SQLとは
単一のノードがボトルネックになるように、自動分散クエリ実行.
何がyugabytedbですか?
YugabyteDB オープンソースの高性能分散SQLデータベースは、Googleのスパナに触発されたスケーラブルでフォールトトレラントデザイン上に構築されます.YugabyteDBはPostgreSQLのワイヤ互換、クラウドネイティブ、GraphSQLプロジェクトとの深い統合を提供し、ストアドプロシージャ、トリガとUDFSのような高度なRDBMS機能をサポートしています.
Step 1 : Hum 3を使用したGKEクラスタ上でのyugabytedbのインストール
このセクションでは、クラスタ上のyugabytedbをインストールします.完全な手順を文書化here . GKEクラスタを起動し、出発点として実行していると仮定します.
最初にすべきことは、チャートリポジトリを追加することです.
$ helm repo add yugabytedb https://charts.yugabyte.com
さて、更新を取得します.
$ helm repo update
名前空間を作成します.この場合、我々はそれを呼びますyb-demo
.
$ kubectl create namespace yb-demo
予想される出力:
namespace/yb-demo created
私たちは現在、YugabyteDBをインストールする準備ができました.以下のコマンドでリソース制約付き環境に値を指定します.
$ helm install yb-demo yugabytedb/yugabyte \
--set resource.master.requests.cpu=1,resource.master.requests.memory=1Gi,\
resource.tserver.requests.cpu=1,resource.tserver.requests.memory=1Gi,\
enableLoadBalancer=True --namespace yb-demo --wait
クラスタの状態を確認するには、以下のコマンドを実行します.
$ kubectl get services --namespace yb-demo
注意:外部IPyb-tserver-service
yugabytedbとhasuraの接続を確立するために使用します.このデモでは35.224.XX.XX
とysqlポートは5433
.
ステップ2 : hasgabytedbを使用するためにhasuraを設定する
以下のコマンドを実行することによって、Hasura Kubernetes配備とサービスファイルを得てください.
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/deployment.yaml
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/svc.yaml
データベースURLを変更するdeployment.yaml
YugabyteDBのIPを含むファイル.このファイルはviのようなテキストエディタで編集できます.デフォルトではyugabyte
YugabyTeDBのユーザーはパスワードとデフォルトのデータベースを持っていませんyugabyte
.
このチュートリアルでは、次のように変更します.
value: postgres://yugabyte:@35.224.XX.XX:5433/yugabyte
注:あなたがすべてを実行したい場合はyb-demo
名前空間、両方の名前空間の値を変更することを確認しますdeployment.yaml
and svc.yaml
ファイル.これは私がこのデモのために選んだセットアップです.
ファイル使用の保存後kubectl
以下のコマンドを使用してHasura配備を作成するには、次の手順に従います.
$ kubectl create -f deployment.yaml
deployment.apps/hasura created
$ kubectl create -f svc.yaml
service/hasura created
外部IPを見つけて、Hasuraコンソールを開くには、以下のコマンドを実行します.
$ kubectl get services --namespace yb-demo
今すぐ使用http://<EXTERNAL-IP>/console
hasuraコンソールにアクセスする.この場合は34.68.XX.XX
. さあ、hasuraコンソールを見てください.
ステップ3:リアルタイム追跡場所アプリをインストールする
ステップ3では、ローカルに動作します.このデモの目的のために、私はMacにいます.
サンプルアプリケーションのダウンロード
$ git clone https://github.com/hasura/graphql-engine
$ cd graphql-engine/community/sample-apps/realtime-location-tracking
hasura cliをインストール
$ curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash
設定を変更します。YAMLファイル
移動するhasura/
ディレクトリと編集config.yaml
hasuraサービスの外部IPを持つファイル.例えば、
endpoint: http://34.68.XX.XX
構成を変更します。YAMLファイル
同じ範囲内でhasura/
ディレクトリ変更docker-compose.yaml
ファイルを以下のように変更します.
パスワードの必要性を排除します.
environment:
- “POSTGRES_PASSWORD:“
ポートの割り当てを変更します.
ports:
- “5433:5433“
接続文字列をyugabytedbパラメータで指定します.
environment:
- HASURA_GRAPHQL_DATABASE_URL: postgres://yugabyte:@35.224.xx.xx:5433/yugabyte
定数を変更します。jsファイル
移動するsrc/
ディレクトリと編集constants.js
ファイルを以下のように変更します.
//Constants file
export const HASURA_GRAPHQL_URL = '34.68.XX.XX/v1/graphql';
const HASURA_GRAPHQL_ENGINE_HOSTNAME = '34.68.XX.XX';
移行を適用する
戻るhasura/
ディレクトリを作成し、移行スクリプトを実行します.
$ hasura migrate apply
これで、Hasuraコンソールのサンプルアプリのテーブルを見ることができます.
アプリケーションを起動する
我々はすぐにアプリケーションのルートでアプリケーションを実行する準備ができて~/graphql-engine/community/sample-apps/realtime-location-tracking/
注意:ノードをインストールする必要があります.あなたのシステムにすでに存在しないならば、js.
$ npm start
あなたは、ブラウザのウィンドウをサンプルアプリケーションのランディングページを開くを参照してくださいする必要があります.
をクリックして“トラックの場所”ボタンをリアルタイムの場所の追跡の例を表示します.
結論
それだ!これで、Gake上で3ノードのyugabytedbクラスタの上に実行されているhasura - graphqlエンジンがあります.GraphSQLのリアルタイムの場所を追跡するアプリケーションは、ローカルで実行しているHasuraとYugabyteDB雲の中で活用しています.
Reference
この問題について(Hasura Graphqlエンジンと分散SQLを使用したリアルタイムロケーションアプリケーションの配備), 我々は、より多くの情報をここで見つけました
https://dev.to/yugabyte/deploying-a-real-time-location-app-with-hasura-graphql-engine-and-distributed-sql-1855
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
このセクションでは、クラスタ上のyugabytedbをインストールします.完全な手順を文書化here . GKEクラスタを起動し、出発点として実行していると仮定します.
最初にすべきことは、チャートリポジトリを追加することです.
$ helm repo add yugabytedb https://charts.yugabyte.com
さて、更新を取得します.$ helm repo update
名前空間を作成します.この場合、我々はそれを呼びますyb-demo
.$ kubectl create namespace yb-demo
予想される出力:namespace/yb-demo created
私たちは現在、YugabyteDBをインストールする準備ができました.以下のコマンドでリソース制約付き環境に値を指定します.$ helm install yb-demo yugabytedb/yugabyte \
--set resource.master.requests.cpu=1,resource.master.requests.memory=1Gi,\
resource.tserver.requests.cpu=1,resource.tserver.requests.memory=1Gi,\
enableLoadBalancer=True --namespace yb-demo --wait
クラスタの状態を確認するには、以下のコマンドを実行します.$ kubectl get services --namespace yb-demo

注意:外部IP
yb-tserver-service
yugabytedbとhasuraの接続を確立するために使用します.このデモでは35.224.XX.XX
とysqlポートは5433
.ステップ2 : hasgabytedbを使用するためにhasuraを設定する
以下のコマンドを実行することによって、Hasura Kubernetes配備とサービスファイルを得てください.
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/deployment.yaml
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/svc.yaml
データベースURLを変更するdeployment.yaml
YugabyteDBのIPを含むファイル.このファイルはviのようなテキストエディタで編集できます.デフォルトではyugabyte
YugabyTeDBのユーザーはパスワードとデフォルトのデータベースを持っていませんyugabyte
.
このチュートリアルでは、次のように変更します.
value: postgres://yugabyte:@35.224.XX.XX:5433/yugabyte
注:あなたがすべてを実行したい場合はyb-demo
名前空間、両方の名前空間の値を変更することを確認しますdeployment.yaml
and svc.yaml
ファイル.これは私がこのデモのために選んだセットアップです.
ファイル使用の保存後kubectl
以下のコマンドを使用してHasura配備を作成するには、次の手順に従います.
$ kubectl create -f deployment.yaml
deployment.apps/hasura created
$ kubectl create -f svc.yaml
service/hasura created
外部IPを見つけて、Hasuraコンソールを開くには、以下のコマンドを実行します.
$ kubectl get services --namespace yb-demo
今すぐ使用http://<EXTERNAL-IP>/console
hasuraコンソールにアクセスする.この場合は34.68.XX.XX
. さあ、hasuraコンソールを見てください.
ステップ3:リアルタイム追跡場所アプリをインストールする
ステップ3では、ローカルに動作します.このデモの目的のために、私はMacにいます.
サンプルアプリケーションのダウンロード
$ git clone https://github.com/hasura/graphql-engine
$ cd graphql-engine/community/sample-apps/realtime-location-tracking
hasura cliをインストール
$ curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash
設定を変更します。YAMLファイル
移動するhasura/
ディレクトリと編集config.yaml
hasuraサービスの外部IPを持つファイル.例えば、
endpoint: http://34.68.XX.XX
構成を変更します。YAMLファイル
同じ範囲内でhasura/
ディレクトリ変更docker-compose.yaml
ファイルを以下のように変更します.
パスワードの必要性を排除します.
environment:
- “POSTGRES_PASSWORD:“
ポートの割り当てを変更します.
ports:
- “5433:5433“
接続文字列をyugabytedbパラメータで指定します.
environment:
- HASURA_GRAPHQL_DATABASE_URL: postgres://yugabyte:@35.224.xx.xx:5433/yugabyte
定数を変更します。jsファイル
移動するsrc/
ディレクトリと編集constants.js
ファイルを以下のように変更します.
//Constants file
export const HASURA_GRAPHQL_URL = '34.68.XX.XX/v1/graphql';
const HASURA_GRAPHQL_ENGINE_HOSTNAME = '34.68.XX.XX';
移行を適用する
戻るhasura/
ディレクトリを作成し、移行スクリプトを実行します.
$ hasura migrate apply
これで、Hasuraコンソールのサンプルアプリのテーブルを見ることができます.
アプリケーションを起動する
我々はすぐにアプリケーションのルートでアプリケーションを実行する準備ができて~/graphql-engine/community/sample-apps/realtime-location-tracking/
注意:ノードをインストールする必要があります.あなたのシステムにすでに存在しないならば、js.
$ npm start
あなたは、ブラウザのウィンドウをサンプルアプリケーションのランディングページを開くを参照してくださいする必要があります.
をクリックして“トラックの場所”ボタンをリアルタイムの場所の追跡の例を表示します.
結論
それだ!これで、Gake上で3ノードのyugabytedbクラスタの上に実行されているhasura - graphqlエンジンがあります.GraphSQLのリアルタイムの場所を追跡するアプリケーションは、ローカルで実行しているHasuraとYugabyteDB雲の中で活用しています.
Reference
この問題について(Hasura Graphqlエンジンと分散SQLを使用したリアルタイムロケーションアプリケーションの配備), 我々は、より多くの情報をここで見つけました
https://dev.to/yugabyte/deploying-a-real-time-location-app-with-hasura-graphql-engine-and-distributed-sql-1855
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/deployment.yaml
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/svc.yaml
value: postgres://yugabyte:@35.224.XX.XX:5433/yugabyte
$ kubectl create -f deployment.yaml
deployment.apps/hasura created
$ kubectl create -f svc.yaml
service/hasura created
$ kubectl get services --namespace yb-demo
ステップ3では、ローカルに動作します.このデモの目的のために、私はMacにいます.
サンプルアプリケーションのダウンロード
$ git clone https://github.com/hasura/graphql-engine
$ cd graphql-engine/community/sample-apps/realtime-location-tracking
hasura cliをインストール
$ curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash
設定を変更します。YAMLファイル
移動する
hasura/
ディレクトリと編集config.yaml
hasuraサービスの外部IPを持つファイル.例えば、endpoint: http://34.68.XX.XX
構成を変更します。YAMLファイル
同じ範囲内で
hasura/
ディレクトリ変更docker-compose.yaml
ファイルを以下のように変更します.パスワードの必要性を排除します.
environment:
- “POSTGRES_PASSWORD:“
ポートの割り当てを変更します.ports:
- “5433:5433“
接続文字列をyugabytedbパラメータで指定します.environment:
- HASURA_GRAPHQL_DATABASE_URL: postgres://yugabyte:@35.224.xx.xx:5433/yugabyte
定数を変更します。jsファイル
移動する
src/
ディレクトリと編集constants.js
ファイルを以下のように変更します.//Constants file
export const HASURA_GRAPHQL_URL = '34.68.XX.XX/v1/graphql';
const HASURA_GRAPHQL_ENGINE_HOSTNAME = '34.68.XX.XX';
移行を適用する
戻る
hasura/
ディレクトリを作成し、移行スクリプトを実行します.$ hasura migrate apply
これで、Hasuraコンソールのサンプルアプリのテーブルを見ることができます.
アプリケーションを起動する
我々はすぐにアプリケーションのルートでアプリケーションを実行する準備ができて
~/graphql-engine/community/sample-apps/realtime-location-tracking/
注意:ノードをインストールする必要があります.あなたのシステムにすでに存在しないならば、js.$ npm start
あなたは、ブラウザのウィンドウをサンプルアプリケーションのランディングページを開くを参照してくださいする必要があります.
をクリックして“トラックの場所”ボタンをリアルタイムの場所の追跡の例を表示します.

結論
それだ!これで、Gake上で3ノードのyugabytedbクラスタの上に実行されているhasura - graphqlエンジンがあります.GraphSQLのリアルタイムの場所を追跡するアプリケーションは、ローカルで実行しているHasuraとYugabyteDB雲の中で活用しています.
Reference
この問題について(Hasura Graphqlエンジンと分散SQLを使用したリアルタイムロケーションアプリケーションの配備), 我々は、より多くの情報をここで見つけました
https://dev.to/yugabyte/deploying-a-real-time-location-app-with-hasura-graphql-engine-and-distributed-sql-1855
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(Hasura Graphqlエンジンと分散SQLを使用したリアルタイムロケーションアプリケーションの配備), 我々は、より多くの情報をここで見つけました https://dev.to/yugabyte/deploying-a-real-time-location-app-with-hasura-graphql-engine-and-distributed-sql-1855テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol