Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
Datalab and colaboratory
Hayato Yoshikawa
FirebaseとNuxtでLPを作って見た
Kenjiro Kubota
Serverless on GCP
Hayato Yoshikawa
2018 07-23
Yuji Oshima
Chrome osとgo言語からgoogleの今後を妄想してみる
Masakazu Muraoka
Mongodb World 2014
Yoshihiro Iwanaga
ClojureでElectronアプリを作ろう
Kazuhiro Hara
mruby_nginx_module at pyfes 2013.11
Tatsuhiko Kubo
1
of
15
Top clipped slide
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Sep. 28, 2017
•
0 likes
0 likes
×
Be the first to like this
Show More
•
611 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Bazelを使ってDataflowアプリをビルドするとつらかったという話。gRPC+golangの組み合わせであればそれなりに使える。
Katsunori Kanda
Follow
Senior Developer Mobile Advertising at CyberAgent
Advertisement
Advertisement
Advertisement
Recommended
Reactive Workflow Argo Eventsの紹介
Daisuke Taniwaki
1.8K views
•
9 slides
GCP でも Serverless!!
Igarashi Toru
241 views
•
28 slides
A practical guide to machine learning on GCP
Hayato Yoshikawa
2.1K views
•
53 slides
FirebaseAnalytics_BigQuery_Datastudio
さとる なかむら
1.6K views
•
32 slides
OSC Hiroshima 2013
Yuya Adachi
1.8K views
•
41 slides
2018 07-19dist
Yuji Oshima
1.8K views
•
15 slides
More Related Content
Slideshows for you
(20)
Datalab and colaboratory
Hayato Yoshikawa
•
1.7K views
FirebaseとNuxtでLPを作って見た
Kenjiro Kubota
•
1.9K views
Serverless on GCP
Hayato Yoshikawa
•
1.2K views
2018 07-23
Yuji Oshima
•
934 views
Chrome osとgo言語からgoogleの今後を妄想してみる
Masakazu Muraoka
•
1.6K views
Mongodb World 2014
Yoshihiro Iwanaga
•
1.1K views
ClojureでElectronアプリを作ろう
Kazuhiro Hara
•
5.3K views
mruby_nginx_module at pyfes 2013.11
Tatsuhiko Kubo
•
2.8K views
mruby_nginx_module
Tatsuhiko Kubo
•
3.5K views
GCP HTTPロードバランサ運用例
Fumihiko Shiroyama
•
8.8K views
Tfug kansai vol3
Natsutani Minoru
•
610 views
Google Apps Script 概要
Y OCHI
•
1K views
mruby_nginx_module〜Embedded mruby into Nginx〜
Tatsuhiko Kubo
•
2.6K views
The History of Reactive Extensions
Yoshifumi Kawai
•
60.7K views
Gatsby & React Static
Kazuhiro Hara
•
878 views
ng build --prod & Continuous Delivery
bitbank, Inc. Tokyo, Japan
•
1.5K views
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
•
567 views
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
•
23.4K views
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
•
3.7K views
Excite beer bash06
Arata Honda
•
217 views
Similar to BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
(20)
Grailsのススメ(仮)
Tsuyoshi Yamamoto
•
1.2K views
Groovy base gradle_20130309
Nobuhiro Sue
•
2.3K views
Datadog Agent on CloudRunによるGCPトレービリティ向上
Ryo Sasaki
•
356 views
Gws 20120521 gradle
Nobuhiro Sue
•
1.6K views
Google Product
Daisuke Sugai
•
2.5K views
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
•
13.6K views
私たちがGCPを使い始めた本当の理由
gree_tech
•
2.2K views
明日から使えるgradle
kimukou_26 Kimukou
•
7.6K views
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Ryuji Tamagawa
•
10.1K views
[visasQ] 2017-04-26 ビザスクを支えるアーキテクチャ
visasQ - ビザスク
•
2K views
2018 04-14-cockroachdb-20-now-available
Naoto Gohko
•
348 views
SpringOne Platform Replay -Pivotal Cloud Foundry-
CASAREAL, Inc.
•
775 views
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
•
3.4K views
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
Google Cloud Platform - Japan
•
2.6K views
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Takashi Okawa
•
440 views
Node-REDのロードマップや見どころ
BMXUG
•
6.6K views
ASP.NET Core のお気に入りの機能たち (docker向け)
Takayoshi Tanaka
•
2.6K views
Gae hands on
Hayato Ito
•
643 views
0831 node学園lt
Kazuya Fukumoto
•
1.6K views
Tech lounge gcp_20190313
yutaka_baba
•
103 views
Advertisement
More from Katsunori Kanda
(14)
Airflow 2.0 migration ガイド
Katsunori Kanda
•
719 views
Web Privacy Survival Guide
Katsunori Kanda
•
2.6K views
Airflowを広告データのワークフローエンジンとして運用してみた話
Katsunori Kanda
•
780 views
GCSでstatic web hosting
Katsunori Kanda
•
1K views
Dockerだけではないコンテナのはなし
Katsunori Kanda
•
3.9K views
RealSenseを使ってCrazyflieを自律飛行させてみた
Katsunori Kanda
•
1.5K views
KINECT WITH ROS
Katsunori Kanda
•
2.5K views
Docker超入門
Katsunori Kanda
•
1.1K views
Hadoopことはじめ
Katsunori Kanda
•
1.6K views
データファースト開発
Katsunori Kanda
•
9.8K views
Spark Summit 2015 参加報告
Katsunori Kanda
•
3.3K views
20150207 何故scalaを選んだのか
Katsunori Kanda
•
5.1K views
Discretized Streams: Fault-Tolerant Streaming Computation at Scaleの解説
Katsunori Kanda
•
1.2K views
自動テストのすすめ
Katsunori Kanda
•
758 views
Recently uploaded
(20)
留信网认证可查【皇家霍洛威学院文凭证书毕业证购买】
32lkhng
•
2 views
ペンタエリスリトール市場.pdf
HinaMiyazu
•
3 views
点群SegmentationのためのTransformerサーベイ
Takuya Minagawa
•
13 views
ネットワークパケットブローカー市場.pdf
HinaMiyazu
•
6 views
量子論.pdf
hiro150493
•
5 views
PCベース制御による集中制御.pdf
ssusercd9928
•
19 views
JSTQB_テストプロセスの概念モデル.pdf
akipii Oga
•
153 views
☀️【卡尔顿大学毕业证成绩单留学生首选】
15sad
•
2 views
Üslup ve tercüme.pdf
1Hmmtks
•
2 views
TestSIP (1).pdf
DeependraSingh712859
•
2 views
HTTPの仕組みについて
iPride Co., Ltd.
•
8 views
通信プロトコルについて
iPride Co., Ltd.
•
5 views
☀️【中央兰开夏大学毕业证成绩单留学生首选】
25mjhd12
•
4 views
Forguncy8 製品概要 202305.pptx
フォーガンシー
•
54 views
【DL輪読会】Egocentric Video Task Translation (CVPR 2023 Highlight)
Deep Learning JP
•
44 views
20230516 @Mix Leap Hirohiko_Suwa
Masashi Nakagawa
•
83 views
留信网认证可查【拜欧拉大学文凭证书毕业证购买】
1lkjhg
•
3 views
☀️【杜兰大学毕业证成绩单留学生首选】
2125nuh
•
2 views
Forguncy製品概要.pptx
フォーガンシー
•
28 views
【2023年5月】平成生まれのためのUNIX&IT歴史講座
法林浩之
•
16 views
Advertisement
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Bazelでビルドしたアプリを GCPにデプロイしようとしてハマった話 (Dataflowのあたり) GCPUG Tokyo DevOps
Day September 2017 Katsunori Kanda (@potix2)
自己紹介 神田勝規(かんだかつのり) @potix2 株式会社サイバーエージェント アドテクスタジオ サーバーサイドエンジニア 興味があること ROS
/ droneの自律制御 Minecraft
結論 ● gRPC使うならbazelは良い選択肢 ● golangは依存関係の解決にやや難があるが使えなくは無い ○
最近、cross compileできるようになった:) ● bazelを使ってJavaのビルドをするのは辛い(とくにDartaflow)
bazelとは? ● 最近、google関連のOSSでよく使われているビルドツール ○ tensorflow,
kubernetes, istioなど ● 分散ビルドシステム ● 多言語マルチプロジェクトが扱いやすい(DAG) ● 競合プロダクト: pants service.proto java client server app golang client protocol bufferも プロジェクトとして扱える (オススメポイント)
Bazelの簡単な使い方 ● ルートディレクトリにWORKSPACEファイルを置く ○ 読み込むbazelのrule(プラグインのようなもの)など、 全体設定を書く ●
ビルド対象のディレクトリにBUILDファイルを置く ○ プログジェクトのビルド設定を書く。バイナリーの生 成ルールや、テストの実行方法など。
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 ファイル構造 プロジェクトの依存関係
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", ) ...
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
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
ここからはbazelのつらいはなし
Dataflowアプリのビルド ● 一言で言うと地獄 ● Transitive
dependencyを解決する良い方法がない ● jarのバージョンコンフリクトした時の解決ルールが mavenと違う ○ bazelはプロジェクト初期からJavaのビルドをサポートしているはずな のに・・・
Transitive Dependencyとは? dependency Transitive dependency ... ...
Dataflowアプリをビルドするためにやったこと ● 公式ページに書いてある方法だとうまく行かない ○ 参考:
https://docs.bazel.build/versions/master/generate-workspace.html ● https://github.com/bazelbuild/miglation-tooling を使ってみた ○ が、これもうまく行かない ● mavenの実行結果から依存関係を抽出するスクリプトを書いて対処した ○ チームメンバーが作ってくれた!ありがとう:)bazelのjava_rulesがmavenと同じルールで依存関係を解決してくれるようになるといいな・・・
結論(ふたたび) ● gRPC使うならbazelは良い選択肢 ● golangは依存関係の解決にやや難があるが使えなくは無い ○
最近、cross compileできるようになった:) ● bazelを使ってJavaのビルドをするのは辛い(とくにDartaflow)
おしまい
Advertisement