Soumettre la recherche
Mettre en ligne
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
•
Télécharger en tant que PPTX, PDF
•
0 j'aime
•
632 vues
Katsunori Kanda
Suivre
Bazelを使ってDataflowアプリをビルドするとつらかったという話。gRPC+golangの組み合わせであればそれなりに使える。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 15
Télécharger maintenant
Recommandé
Reactive Workflow Argo Eventsの紹介
Reactive Workflow Argo Eventsの紹介
Daisuke Taniwaki
GCP でも Serverless!!
GCP でも Serverless!!
Igarashi Toru
A practical guide to machine learning on GCP
A practical guide to machine learning on GCP
Hayato Yoshikawa
FirebaseAnalytics_BigQuery_Datastudio
FirebaseAnalytics_BigQuery_Datastudio
さとる なかむら
OSC Hiroshima 2013
OSC Hiroshima 2013
Yuya Adachi
2018 07-19dist
2018 07-19dist
Yuji Oshima
俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ
Masayuki KaToH
自由な空間情報利用のためのツールQGISと日本語化プロジェクトの紹介
自由な空間情報利用のためのツールQGISと日本語化プロジェクトの紹介
Yoichi Kayama
Recommandé
Reactive Workflow Argo Eventsの紹介
Reactive Workflow Argo Eventsの紹介
Daisuke Taniwaki
GCP でも Serverless!!
GCP でも Serverless!!
Igarashi Toru
A practical guide to machine learning on GCP
A practical guide to machine learning on GCP
Hayato Yoshikawa
FirebaseAnalytics_BigQuery_Datastudio
FirebaseAnalytics_BigQuery_Datastudio
さとる なかむら
OSC Hiroshima 2013
OSC Hiroshima 2013
Yuya Adachi
2018 07-19dist
2018 07-19dist
Yuji Oshima
俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ
Masayuki KaToH
自由な空間情報利用のためのツールQGISと日本語化プロジェクトの紹介
自由な空間情報利用のためのツールQGISと日本語化プロジェクトの紹介
Yoichi Kayama
Datalab and colaboratory
Datalab and colaboratory
Hayato Yoshikawa
FirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見た
Kenjiro Kubota
Serverless on GCP
Serverless on GCP
Hayato Yoshikawa
2018 07-23
2018 07-23
Yuji Oshima
Chrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみる
Masakazu Muraoka
Mongodb World 2014
Mongodb World 2014
Yoshihiro Iwanaga
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
Kazuhiro Hara
mruby_nginx_module at pyfes 2013.11
mruby_nginx_module at pyfes 2013.11
Tatsuhiko Kubo
mruby_nginx_module
mruby_nginx_module
Tatsuhiko Kubo
GCP HTTPロードバランサ運用例
GCP HTTPロードバランサ運用例
Fumihiko Shiroyama
Tfug kansai vol3
Tfug kansai vol3
Natsutani Minoru
Google Apps Script 概要
Google Apps Script 概要
Y OCHI
mruby_nginx_module〜Embedded mruby into Nginx〜
mruby_nginx_module〜Embedded mruby into Nginx〜
Tatsuhiko Kubo
The History of Reactive Extensions
The History of Reactive Extensions
Yoshifumi Kawai
Gatsby & React Static
Gatsby & React Static
Kazuhiro Hara
ng build --prod & Continuous Delivery
ng build --prod & Continuous Delivery
bitbank, Inc. Tokyo, Japan
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
Excite beer bash06
Excite beer bash06
Arata Honda
Grailsのススメ(仮)
Grailsのススメ(仮)
Tsuyoshi Yamamoto
Groovy base gradle_20130309
Groovy base gradle_20130309
Nobuhiro Sue
Contenu connexe
Tendances
Datalab and colaboratory
Datalab and colaboratory
Hayato Yoshikawa
FirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見た
Kenjiro Kubota
Serverless on GCP
Serverless on GCP
Hayato Yoshikawa
2018 07-23
2018 07-23
Yuji Oshima
Chrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみる
Masakazu Muraoka
Mongodb World 2014
Mongodb World 2014
Yoshihiro Iwanaga
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
Kazuhiro Hara
mruby_nginx_module at pyfes 2013.11
mruby_nginx_module at pyfes 2013.11
Tatsuhiko Kubo
mruby_nginx_module
mruby_nginx_module
Tatsuhiko Kubo
GCP HTTPロードバランサ運用例
GCP HTTPロードバランサ運用例
Fumihiko Shiroyama
Tfug kansai vol3
Tfug kansai vol3
Natsutani Minoru
Google Apps Script 概要
Google Apps Script 概要
Y OCHI
mruby_nginx_module〜Embedded mruby into Nginx〜
mruby_nginx_module〜Embedded mruby into Nginx〜
Tatsuhiko Kubo
The History of Reactive Extensions
The History of Reactive Extensions
Yoshifumi Kawai
Gatsby & React Static
Gatsby & React Static
Kazuhiro Hara
ng build --prod & Continuous Delivery
ng build --prod & Continuous Delivery
bitbank, Inc. Tokyo, Japan
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
Excite beer bash06
Excite beer bash06
Arata Honda
Tendances
(20)
Datalab and colaboratory
Datalab and colaboratory
FirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見た
Serverless on GCP
Serverless on GCP
2018 07-23
2018 07-23
Chrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみる
Mongodb World 2014
Mongodb World 2014
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
mruby_nginx_module at pyfes 2013.11
mruby_nginx_module at pyfes 2013.11
mruby_nginx_module
mruby_nginx_module
GCP HTTPロードバランサ運用例
GCP HTTPロードバランサ運用例
Tfug kansai vol3
Tfug kansai vol3
Google Apps Script 概要
Google Apps Script 概要
mruby_nginx_module〜Embedded mruby into Nginx〜
mruby_nginx_module〜Embedded mruby into Nginx〜
The History of Reactive Extensions
The History of Reactive Extensions
Gatsby & React Static
Gatsby & React Static
ng build --prod & Continuous Delivery
ng build --prod & Continuous Delivery
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Excite beer bash06
Excite beer bash06
Similaire à BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Grailsのススメ(仮)
Grailsのススメ(仮)
Tsuyoshi Yamamoto
Groovy base gradle_20130309
Groovy base gradle_20130309
Nobuhiro Sue
Datadog Agent on CloudRunによるGCPトレービリティ向上
Datadog Agent on CloudRunによるGCPトレービリティ向上
Ryo Sasaki
Gws 20120521 gradle
Gws 20120521 gradle
Nobuhiro Sue
Google Product
Google Product
Daisuke Sugai
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由
gree_tech
明日から使えるgradle
明日から使えるgradle
kimukou_26 Kimukou
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Ryuji Tamagawa
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
visasQ - ビザスク
2018 04-14-cockroachdb-20-now-available
2018 04-14-cockroachdb-20-now-available
Naoto Gohko
SpringOne Platform Replay -Pivotal Cloud Foundry-
SpringOne Platform Replay -Pivotal Cloud Foundry-
CASAREAL, Inc.
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
Google Cloud Platform - Japan
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Takashi Okawa
Node-REDのロードマップや見どころ
Node-REDのロードマップや見どころ
BMXUG
ASP.NET Core のお気に入りの機能たち (docker向け)
ASP.NET Core のお気に入りの機能たち (docker向け)
Takayoshi Tanaka
Gae hands on
Gae hands on
Hayato Ito
0831 node学園lt
0831 node学園lt
Kazuya Fukumoto
Tech lounge gcp_20190313
Tech lounge gcp_20190313
yutaka_baba
Similaire à BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
(20)
Grailsのススメ(仮)
Grailsのススメ(仮)
Groovy base gradle_20130309
Groovy base gradle_20130309
Datadog Agent on CloudRunによるGCPトレービリティ向上
Datadog Agent on CloudRunによるGCPトレービリティ向上
Gws 20120521 gradle
Gws 20120521 gradle
Google Product
Google Product
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由
明日から使えるgradle
明日から使えるgradle
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
2018 04-14-cockroachdb-20-now-available
2018 04-14-cockroachdb-20-now-available
SpringOne Platform Replay -Pivotal Cloud Foundry-
SpringOne Platform Replay -Pivotal Cloud Foundry-
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Node-REDのロードマップや見どころ
Node-REDのロードマップや見どころ
ASP.NET Core のお気に入りの機能たち (docker向け)
ASP.NET Core のお気に入りの機能たち (docker向け)
Gae hands on
Gae hands on
0831 node学園lt
0831 node学園lt
Tech lounge gcp_20190313
Tech lounge gcp_20190313
Plus de Katsunori Kanda
Airflow 2.0 migration ガイド
Airflow 2.0 migration ガイド
Katsunori Kanda
Web Privacy Survival Guide
Web Privacy Survival Guide
Katsunori Kanda
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話
Katsunori Kanda
GCSでstatic web hosting
GCSでstatic web hosting
Katsunori Kanda
Dockerだけではないコンテナのはなし
Dockerだけではないコンテナのはなし
Katsunori Kanda
RealSenseを使ってCrazyflieを自律飛行させてみた
RealSenseを使ってCrazyflieを自律飛行させてみた
Katsunori Kanda
KINECT WITH ROS
KINECT WITH ROS
Katsunori Kanda
Docker超入門
Docker超入門
Katsunori Kanda
Hadoopことはじめ
Hadoopことはじめ
Katsunori Kanda
データファースト開発
データファースト開発
Katsunori Kanda
Spark Summit 2015 参加報告
Spark Summit 2015 参加報告
Katsunori Kanda
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
Katsunori Kanda
Discretized Streams: Fault-Tolerant Streaming Computation at Scaleの解説
Discretized Streams: Fault-Tolerant Streaming Computation at Scaleの解説
Katsunori Kanda
自動テストのすすめ
自動テストのすすめ
Katsunori Kanda
Plus de Katsunori Kanda
(14)
Airflow 2.0 migration ガイド
Airflow 2.0 migration ガイド
Web Privacy Survival Guide
Web Privacy Survival Guide
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話
GCSでstatic web hosting
GCSでstatic web hosting
Dockerだけではないコンテナのはなし
Dockerだけではないコンテナのはなし
RealSenseを使ってCrazyflieを自律飛行させてみた
RealSenseを使ってCrazyflieを自律飛行させてみた
KINECT WITH ROS
KINECT WITH ROS
Docker超入門
Docker超入門
Hadoopことはじめ
Hadoopことはじめ
データファースト開発
データファースト開発
Spark Summit 2015 参加報告
Spark Summit 2015 参加報告
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
Discretized Streams: Fault-Tolerant Streaming Computation at Scaleの解説
Discretized Streams: Fault-Tolerant Streaming Computation at Scaleの解説
自動テストのすすめ
自動テストのすすめ
Dernier
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Dernier
(9)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
1.
Bazelでビルドしたアプリを GCPにデプロイしようとしてハマった話 (Dataflowのあたり) GCPUG Tokyo DevOps
Day September 2017 Katsunori Kanda (@potix2)
2.
自己紹介 神田勝規(かんだかつのり) @potix2 株式会社サイバーエージェント アドテクスタジオ サーバーサイドエンジニア 興味があること ROS
/ droneの自律制御 Minecraft
3.
結論 ● gRPC使うならbazelは良い選択肢 ● golangは依存関係の解決にやや難があるが使えなくは無い ○
最近、cross compileできるようになった:) ● bazelを使ってJavaのビルドをするのは辛い(とくにDartaflow)
4.
bazelとは? ● 最近、google関連のOSSでよく使われているビルドツール ○ tensorflow,
kubernetes, istioなど ● 分散ビルドシステム ● 多言語マルチプロジェクトが扱いやすい(DAG) ● 競合プロダクト: pants service.proto java client server app golang client protocol bufferも プロジェクトとして扱える (オススメポイント)
5.
Bazelの簡単な使い方 ● ルートディレクトリにWORKSPACEファイルを置く ○ 読み込むbazelのrule(プラグインのようなもの)など、 全体設定を書く ●
ビルド対象のディレクトリにBUILDファイルを置く ○ プログジェクトのビルド設定を書く。バイナリーの生 成ルールや、テストの実行方法など。
6.
gRPCサービス・クライアントの例(golang) . ├── BUILD ├── WORKSPACE └──
hello ├── BUILD ├── client │ ├── BUILD │ └── client.go ├── hello.proto └── server ├── BUILD └── server.go ファイル一式: https://github.com/potix2/grpc-with-bazel hello hello/server hello/client ファイル構造 プロジェクトの依存関係
7.
WORKSPACEの例 git_repository( name = “io_bazel_rules_go”, remote
= “https://github.com/bazelbuild/rules_go.git”, tag = “0.5.2”, ) load(“@io_bazel_rules_go//go:def.bzl”, “go_repositories”, “go_repository”) git_repository( name = "org_pubref_rules_protobuf", remote = "https://github.com/pubref/rules_protobuf.git", tag = "v0.7.2", ) load("@org_pubref_rules_protobuf//go:rules.bzl", "go_proto_repositories") go_proto_repositories() go_repositories( go_version = "1.8.3", ) ...
8.
package(default_visibility = ["//visibility:public"]) load("@org_pubref_rules_protobuf//go:rules.bzl",
"go_proto_library") go_proto_library( name = "hello-go-proto", protos = [ "hello.proto", ], with_grpc = True, ) BUILDの例: hello(gRPC) hello/BUILD
9.
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") go_library( name
= "go_default_library", srcs = ["server.go"], visibility = ["//visibility:private"], deps = [ "//hello:hello-go-proto", "@org_golang_google_grpc//:go_default_library", "@org_golang_x_net//context:go_default_library", ], ) go_binary( name = "server", library = ":go_default_library", visibility = ["//visibility:public"], ) BUILDの例: hello/server (golang) hello/server/BUILD
10.
ここからはbazelのつらいはなし
11.
Dataflowアプリのビルド ● 一言で言うと地獄 ● Transitive
dependencyを解決する良い方法がない ● jarのバージョンコンフリクトした時の解決ルールが mavenと違う ○ bazelはプロジェクト初期からJavaのビルドをサポートしているはずな のに・・・
12.
Transitive Dependencyとは? dependency Transitive dependency ... ...
13.
Dataflowアプリをビルドするためにやったこと ● 公式ページに書いてある方法だとうまく行かない ○ 参考:
https://docs.bazel.build/versions/master/generate-workspace.html ● https://github.com/bazelbuild/miglation-tooling を使ってみた ○ が、これもうまく行かない ● mavenの実行結果から依存関係を抽出するスクリプトを書いて対処した ○ チームメンバーが作ってくれた!ありがとう:)bazelのjava_rulesがmavenと同じルールで依存関係を解決してくれるようになるといいな・・・
14.
結論(ふたたび) ● gRPC使うならbazelは良い選択肢 ● golangは依存関係の解決にやや難があるが使えなくは無い ○
最近、cross compileできるようになった:) ● bazelを使ってJavaのビルドをするのは辛い(とくにDartaflow)
15.
おしまい
Télécharger maintenant