Cloud Native Meetup Tokyo #1
with NATS with Kubernetes
の世界へ
Who?
Hayahito
Kawamitsu 某通信会社、
クラウド上での
コンテナサービス
(Rancher)
開発・運用
最近の社外活動
IoT
×
ヘルスケア
システム実装
on
GCP
Agenda
3
2
1 About NATS
NATS, NATS Streaming, Deploy, Monitoring, Logging, Benchmark
NATS with Kubernetes
Cluster, Deploy (NATS Operator)
OpenFaas with NATS with Kubernetes
Architecture, Deploy
with NATS with Kubernetesの世界へ
with NATS with Kubernetesの世界へ
(少々脱線)
メッセージングシステムの
市場ニーズ調査
GCP Sample Solutions(全56種)を元に、
プロダクト(全70種以上)の市場ニーズを調査。
以下は、IoTソリューション例。
順位 プロダクト名 登場回数
1 Cloud Storage 30
2 Compute Engine 24
3 BigQuery 23
4 App Engine 21
5 Cloud Dataflow 18
6 Cloud Load Balancing 15
7 Kubernetes Engine 13
7 Cloud PubSub 13
9 Cloud Bigtable 12
9 Cloud SQL 12
GCPサンプルソリューション登場プロダクト Top 10
メッセージングシステムを
必要とするソリューションは
多い!!
いま、ふたたびのNATSへ
Availability
Cluster
Security
TLS / User-Token
based Authentication
/ Authorization
Go言語で実装されたオープンソースのメッセージングシステム
(ソフトウェア / ハードウェアを問わず、分散したシステム間のメッセージのやり取り(送受信)をサポート)
NATS
Neural Autonomic Transport System
1 Performance and
Scalability
1,800万メッセージ/秒
2
Simplicity
Single binary / Text-based
protocol / No external
dependencies
3
4
DNA
メッセージングモデル
Publish/Subscribe Request/Reply Queueing
(Load balanced
queue subscriber)
NATS Streaming
データストリーミングシステム powerd by NATS
> Delivery: At-least-once
クライアントが接続した際に、過去のメッセージも受信
可能。
> Storage: Memory, File or Database
ストレージ上にメッセージを保存することで実装。
> Store Limits設定可能
Subject毎にメッセージの保存期間を設定可能。
Monitoring
Endpoint for metrics nats-top Prometheus
Grafana
NATS
Server
NATS
Server
Prometheus
NATS
Prometheus
Exporter
NATS
Prometheus
Exporter
nats-top is a top like tool
for monitoring NATS
servers.
http://localhost:8222/vars
http://localhost:8222/connz
http://localhost:8222/subsz
http://localhost:8222/routez
Logging
<実行コマンド>
$ gnatsd -s udp://localhost:514
<実行コマンド>
$ gnatsd -l nats.log
ログファイル出力 Syslog
<その他オプション>
-l, --log FILE File to redirect log output.
-T, --logtime Timestamp log entries (default is true).
-s, --syslog Enable syslog as log method.
-r, --remote_syslog Syslog server address.
-D, --debug Enable debugging output.
-V, --trace Trace the raw protocol.
-DV Debug and Trace.
<実行環境>
CPU: Intel Xeon CPU E5-2643 3.30GHz
Memory: 32GB
<ベンチマークツール(nats-bench)インストール>
$ go get github.com/nats-io/go-nats
$ go install $GOPATH/src/github.com/nats-io/go-nats/examples/nats-bench.go
<NATS実行>
$ gnatsd
<実行コマンド: オプション確認>
$ nats-bench -h
-np NUM_PUBLISHERS
-ns NUM_SUBSCRIBERS
-n NUM_MSGS
-ms MESSAGE_SIZE <subject>
ベンチマークとチューニング
<実行コマンド N:Mスループットテスト>
$ nats-bench -np 5 -ns 5 -n 10000000 -ms 16 foo
...省略...
NATS Pub/Sub stats: 6,666,260 msgs/sec 101.72 MB/sec
...省略...
チューニングのナレッジをお
持ちの方いらっしゃいます
か?
Benchmark
Let’s Deploy!
<前提条件>
・Go 1.5+ and set $GOPATH
<実行コマンド>
$ go get github.com/nats-io/gnatsd
$ gnatsd
<前提条件>
・Dockerインストール
<実行コマンド>
$ docker run -p 4222:4222 nats
ソースインストール & 実行 Dockerコンテナ実行
Client
NATS
NATS NATS
4222
Management
HTTP/
HTTPS
8222
route:
6222
$ telnet localhost 4222
Trying ::1...
Connected to localhost.
Escape character is '^]'.
INFO
{"server_id":"34wyPXXqogfLVYw2fMvMpc","vers
ion":"1.1.1","git_commit":"","go":"go1.10.2","host":"
0.0.0.0","port":4222,"auth_required":false,"tls_re
quired":false,"tls_verify":false,"max_payload":104
8576}
pub foo.bar 5
hello
+OK
Let’s Pub/Sub!
(Human NATS Client: Telnet)
Subscriber実行 Publisher実行
$ telnet localhost 4222
Trying ::1...
Connected to localhost.
Escape character is '^]'.
INFO
{"server_id":"34wyPXXqogfLVYw2fMvMpc","vers
ion":"1.1.1","git_commit":"","go":"go1.10.2","host":"
0.0.0.0","port":4222,"auth_required":false,"tls_re
quired":false,"tls_verify":false,"max_payload":104
8576}
sub foo.* 90
+OK
MSG foo.bar 90 5
hello
1
2
3
4
5
with NATS with Kubernetesの世界へ
NATS with Kubernetes
NATS Cluster
Cluster
Publisher
Publisher
Sbuscriber
Subscriber
Subscriber
NATS
NATS NATS
クラスタ内のLeader決めなどは、Raft
Consensus Algorithmに基づいて実施。
etcdでも同アルゴリズムが採用されているが、
詳細は別資料参照。
$ echo '
apiVersion: "nats.io/v1alpha2"
kind: "NatsCluster"
metadata:
name: "example-nats-cluster"
spec:
size: 3
version: "1.1.0"
' | kubectl -n nats-io apply -f -
Let’s Deploy (NATS Operator)!
<手順>
$ kubectl apply -f
https://raw.githubusercontent.com/nats-io/nats
-operator/master/example/deployment.yaml
$ kubectl get pod -n nats-io -o wide
$ kubectl get service -n nats-io
$ kubectl get crd -n nats-io
NAME AGE
natsclusters.nats.io 1h
1
3
2
OpenFaas with NATS Streaming
with Kubernetes
with NATS with Kubernetesの世界へ
with NATS with Kubernetesの世界へ
Namespace: openfaas
faas-netes
Client Gateway faas-netes
Prometheus
nats-streaming queue-worker
FUNCTION
FUNCTION
...
faas-netes: Kubernetes上にて、OpenFaaSが動作するのをサポート。
いくつかのデプロイツールが含まれる。
Alertmanager
Namespace: openfaas-fn
<前提条件>
・Kubernetes 1.8 or 1.9 cluster running on Linux hosts.
・Install Helm.
<実行コマンド>
$ git clone https://github.com/openfaas/faas-netes.git
$ cd faas-netes/chart
$ kubectl create ns openfaas
$ kubectl create ns openfaas-fn
$ helm upgrade --install openfaas openfaas/ 
--namespace openfaas --set functionNamespace=openfaas-fn
Let’s Deploy OpenFaaS!
<実行コマンド>
$ curl -sL https://cli.openfaas.com
$ git clone https://github.com/openfaas/faas-cli
$ cd faas-cli
$ faas-cli deploy -f stack.yml --gateway http://127.0.0.1:31112
$ faas-cli list --gateway http://127.0.0.1:31112
Function Invocations Replicas
nodejs-echo 0 1
<同期実行コマンド>
$ curl http://127.0.0.1:31112/function/nodejs-echo -d “hello”
{"nodeVersion":"v8.9.1","input":"“hello”"}
<非同期実行コマンド>
$ curl http://127.0.0.1:31112/async-function/nodejs-echo -d “hello”
Let’s Deploy Samples!
Enjoy with NATS
with Kubernetes!!
1. Youtube - NATS Intro
https://www.youtube.com/watch?v=Y9bDY_oE80w
2. Youtube - NATS Deep Dive
https://www.youtube.com/watch?v=MAKYz8oPRyw
3. THE LINUX FOUNDATION - CNCFがNATSをホストへ
https://www.linuxfoundation.jp/blog/cncf-to-host-nats/
4. cloud.google.com - GCP Offical Icons and Sample Solutions
https://docs.google.com/presentation/d/1vjm5YdmOH5LrubFhHf1vlqW2O9Z2UqdWA8biN3e8K5U/edit?hl=ja#slide=id.g1a
96c6729e_19_0
5. GitHub - Cloud Native Landscape and Trail map
https://github.com/cncf/landscape
6. NATS Cloud - Introducing NATS Cloud
https://www.nats.cloud/
7. GitHub - NATS - The Cloud Native Messaging System
https://github.com/nats-io
8. Docker Hub - NATS
https://hub.docker.com/_/nats/
9. OpenFaaS - Deployment guide for Kubernetes
https://docs.openfaas.com/deployment/kubernetes/
10. GitHub - The Raft Consensus Algorithm
https://raft.github.io/
参考サイト

More Related Content

PDF
Dockerからcontainerdへの移行
PPTX
ぱぱっと理解するSpring Cloudの基本
PDF
BuildKitの概要と最近の機能
PDF
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdev
PDF
WebSocket / WebRTCの技術紹介
PPTX
NGINXをBFF (Backend for Frontend)として利用した話
PPTX
急速に進化を続けるCNIプラグイン Antrea
PDF
ゼロからはじめるKVM超入門
Dockerからcontainerdへの移行
ぱぱっと理解するSpring Cloudの基本
BuildKitの概要と最近の機能
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdev
WebSocket / WebRTCの技術紹介
NGINXをBFF (Backend for Frontend)として利用した話
急速に進化を続けるCNIプラグイン Antrea
ゼロからはじめるKVM超入門

What's hot (20)

PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
PPTX
初心者向けMongoDBのキホン!
PDF
AS45679 on FreeBSD
PPTX
Docker Networking Overview
PDF
今だからこそ知りたい Docker Compose/Swarm 入門
PDF
HTTPを理解する
 
PDF
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
PPTX
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
DockerとPodmanの比較
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
PDF
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
PPTX
世界一わかりやすいClean Architecture
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
VPC Reachability Analyzer 使って人生が変わった話
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PDF
実装して理解するLINE LoginとOpenID Connect入門
PPTX
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PDF
Docker Compose 徹底解説
PDF
こんなに使える!今どきのAPIドキュメンテーションツール
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
初心者向けMongoDBのキホン!
AS45679 on FreeBSD
Docker Networking Overview
今だからこそ知りたい Docker Compose/Swarm 入門
HTTPを理解する
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
DockerとPodmanの比較
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
世界一わかりやすいClean Architecture
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
VPC Reachability Analyzer 使って人生が変わった話
アーキテクチャから理解するPostgreSQLのレプリケーション
実装して理解するLINE LoginとOpenID Connect入門
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
Docker Compose 徹底解説
こんなに使える!今どきのAPIドキュメンテーションツール
Ad

Similar to with NATS with Kubernetesの世界へ (20)

KEY
P2Pって何?
PDF
Node.jsでブラウザメッセンジャー
PDF
20170329 container technight-第一回勉強会
PDF
20170329 container technight-第一回勉強会
PDF
マイクロサービス時代の生存戦略 with HashiCorp
PDF
DockerとKubernetesが作る未来
PDF
k8sとOpenShiftの違いとは.pdf
PDF
AWSとGCPを使用したインフラ環境
PDF
OpenStack + Common Lisp
PDF
RouterBOARD with OpenFlow
PDF
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
PPTX
WebRTC meetup Tokyo 1
PPTX
WebDB Forum 2012 基調講演資料
PPTX
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
PDF
Cloud Foundry: Open Platform as a Service
PDF
分散バージョン管理システムって何なん 20101218
PDF
Ansible npstudy-shtsuchi
PDF
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
PDF
Kubernetesと閉域網
PPTX
Cloudstack user group meeting in osaka
P2Pって何?
Node.jsでブラウザメッセンジャー
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
マイクロサービス時代の生存戦略 with HashiCorp
DockerとKubernetesが作る未来
k8sとOpenShiftの違いとは.pdf
AWSとGCPを使用したインフラ環境
OpenStack + Common Lisp
RouterBOARD with OpenFlow
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
WebRTC meetup Tokyo 1
WebDB Forum 2012 基調講演資料
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
Cloud Foundry: Open Platform as a Service
分散バージョン管理システムって何なん 20101218
Ansible npstudy-shtsuchi
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Kubernetesと閉域網
Cloudstack user group meeting in osaka
Ad

with NATS with Kubernetesの世界へ

  • 1. Cloud Native Meetup Tokyo #1 with NATS with Kubernetes の世界へ
  • 3. Agenda 3 2 1 About NATS NATS, NATS Streaming, Deploy, Monitoring, Logging, Benchmark NATS with Kubernetes Cluster, Deploy (NATS Operator) OpenFaas with NATS with Kubernetes Architecture, Deploy
  • 8. 順位 プロダクト名 登場回数 1 Cloud Storage 30 2 Compute Engine 24 3 BigQuery 23 4 App Engine 21 5 Cloud Dataflow 18 6 Cloud Load Balancing 15 7 Kubernetes Engine 13 7 Cloud PubSub 13 9 Cloud Bigtable 12 9 Cloud SQL 12 GCPサンプルソリューション登場プロダクト Top 10 メッセージングシステムを 必要とするソリューションは 多い!!
  • 10. Availability Cluster Security TLS / User-Token based Authentication / Authorization Go言語で実装されたオープンソースのメッセージングシステム (ソフトウェア / ハードウェアを問わず、分散したシステム間のメッセージのやり取り(送受信)をサポート) NATS Neural Autonomic Transport System 1 Performance and Scalability 1,800万メッセージ/秒 2 Simplicity Single binary / Text-based protocol / No external dependencies 3 4 DNA
  • 12. NATS Streaming データストリーミングシステム powerd by NATS > Delivery: At-least-once クライアントが接続した際に、過去のメッセージも受信 可能。 > Storage: Memory, File or Database ストレージ上にメッセージを保存することで実装。 > Store Limits設定可能 Subject毎にメッセージの保存期間を設定可能。
  • 13. Monitoring Endpoint for metrics nats-top Prometheus Grafana NATS Server NATS Server Prometheus NATS Prometheus Exporter NATS Prometheus Exporter nats-top is a top like tool for monitoring NATS servers. http://localhost:8222/vars http://localhost:8222/connz http://localhost:8222/subsz http://localhost:8222/routez
  • 14. Logging <実行コマンド> $ gnatsd -s udp://localhost:514 <実行コマンド> $ gnatsd -l nats.log ログファイル出力 Syslog <その他オプション> -l, --log FILE File to redirect log output. -T, --logtime Timestamp log entries (default is true). -s, --syslog Enable syslog as log method. -r, --remote_syslog Syslog server address. -D, --debug Enable debugging output. -V, --trace Trace the raw protocol. -DV Debug and Trace.
  • 15. <実行環境> CPU: Intel Xeon CPU E5-2643 3.30GHz Memory: 32GB <ベンチマークツール(nats-bench)インストール> $ go get github.com/nats-io/go-nats $ go install $GOPATH/src/github.com/nats-io/go-nats/examples/nats-bench.go <NATS実行> $ gnatsd <実行コマンド: オプション確認> $ nats-bench -h -np NUM_PUBLISHERS -ns NUM_SUBSCRIBERS -n NUM_MSGS -ms MESSAGE_SIZE <subject> ベンチマークとチューニング <実行コマンド N:Mスループットテスト> $ nats-bench -np 5 -ns 5 -n 10000000 -ms 16 foo ...省略... NATS Pub/Sub stats: 6,666,260 msgs/sec 101.72 MB/sec ...省略... チューニングのナレッジをお 持ちの方いらっしゃいます か?
  • 17. Let’s Deploy! <前提条件> ・Go 1.5+ and set $GOPATH <実行コマンド> $ go get github.com/nats-io/gnatsd $ gnatsd <前提条件> ・Dockerインストール <実行コマンド> $ docker run -p 4222:4222 nats ソースインストール & 実行 Dockerコンテナ実行 Client NATS NATS NATS 4222 Management HTTP/ HTTPS 8222 route: 6222
  • 18. $ telnet localhost 4222 Trying ::1... Connected to localhost. Escape character is '^]'. INFO {"server_id":"34wyPXXqogfLVYw2fMvMpc","vers ion":"1.1.1","git_commit":"","go":"go1.10.2","host":" 0.0.0.0","port":4222,"auth_required":false,"tls_re quired":false,"tls_verify":false,"max_payload":104 8576} pub foo.bar 5 hello +OK Let’s Pub/Sub! (Human NATS Client: Telnet) Subscriber実行 Publisher実行 $ telnet localhost 4222 Trying ::1... Connected to localhost. Escape character is '^]'. INFO {"server_id":"34wyPXXqogfLVYw2fMvMpc","vers ion":"1.1.1","git_commit":"","go":"go1.10.2","host":" 0.0.0.0","port":4222,"auth_required":false,"tls_re quired":false,"tls_verify":false,"max_payload":104 8576} sub foo.* 90 +OK MSG foo.bar 90 5 hello 1 2 3 4 5
  • 21. NATS Cluster Cluster Publisher Publisher Sbuscriber Subscriber Subscriber NATS NATS NATS クラスタ内のLeader決めなどは、Raft Consensus Algorithmに基づいて実施。 etcdでも同アルゴリズムが採用されているが、 詳細は別資料参照。
  • 22. $ echo ' apiVersion: "nats.io/v1alpha2" kind: "NatsCluster" metadata: name: "example-nats-cluster" spec: size: 3 version: "1.1.0" ' | kubectl -n nats-io apply -f - Let’s Deploy (NATS Operator)! <手順> $ kubectl apply -f https://raw.githubusercontent.com/nats-io/nats -operator/master/example/deployment.yaml $ kubectl get pod -n nats-io -o wide $ kubectl get service -n nats-io $ kubectl get crd -n nats-io NAME AGE natsclusters.nats.io 1h 1 3 2
  • 23. OpenFaas with NATS Streaming with Kubernetes
  • 26. Namespace: openfaas faas-netes Client Gateway faas-netes Prometheus nats-streaming queue-worker FUNCTION FUNCTION ... faas-netes: Kubernetes上にて、OpenFaaSが動作するのをサポート。 いくつかのデプロイツールが含まれる。 Alertmanager Namespace: openfaas-fn
  • 27. <前提条件> ・Kubernetes 1.8 or 1.9 cluster running on Linux hosts. ・Install Helm. <実行コマンド> $ git clone https://github.com/openfaas/faas-netes.git $ cd faas-netes/chart $ kubectl create ns openfaas $ kubectl create ns openfaas-fn $ helm upgrade --install openfaas openfaas/ --namespace openfaas --set functionNamespace=openfaas-fn Let’s Deploy OpenFaaS!
  • 28. <実行コマンド> $ curl -sL https://cli.openfaas.com $ git clone https://github.com/openfaas/faas-cli $ cd faas-cli $ faas-cli deploy -f stack.yml --gateway http://127.0.0.1:31112 $ faas-cli list --gateway http://127.0.0.1:31112 Function Invocations Replicas nodejs-echo 0 1 <同期実行コマンド> $ curl http://127.0.0.1:31112/function/nodejs-echo -d “hello” {"nodeVersion":"v8.9.1","input":"“hello”"} <非同期実行コマンド> $ curl http://127.0.0.1:31112/async-function/nodejs-echo -d “hello” Let’s Deploy Samples!
  • 29. Enjoy with NATS with Kubernetes!!
  • 30. 1. Youtube - NATS Intro https://www.youtube.com/watch?v=Y9bDY_oE80w 2. Youtube - NATS Deep Dive https://www.youtube.com/watch?v=MAKYz8oPRyw 3. THE LINUX FOUNDATION - CNCFがNATSをホストへ https://www.linuxfoundation.jp/blog/cncf-to-host-nats/ 4. cloud.google.com - GCP Offical Icons and Sample Solutions https://docs.google.com/presentation/d/1vjm5YdmOH5LrubFhHf1vlqW2O9Z2UqdWA8biN3e8K5U/edit?hl=ja#slide=id.g1a 96c6729e_19_0 5. GitHub - Cloud Native Landscape and Trail map https://github.com/cncf/landscape 6. NATS Cloud - Introducing NATS Cloud https://www.nats.cloud/ 7. GitHub - NATS - The Cloud Native Messaging System https://github.com/nats-io 8. Docker Hub - NATS https://hub.docker.com/_/nats/ 9. OpenFaaS - Deployment guide for Kubernetes https://docs.openfaas.com/deployment/kubernetes/ 10. GitHub - The Raft Consensus Algorithm https://raft.github.io/ 参考サイト