Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
MicroServices and MonoRepo
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Hiroaki Egashira
August 06, 2019
Programming
1.4k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MicroServices and MonoRepo
Golangのマイクロサービスをmono repositoryでBazelを利用して管理する方法についてお話しました。
Hiroaki Egashira
August 06, 2019
More Decks by Hiroaki Egashira
See All by Hiroaki Egashira
レコメンドへの大規模アクセスを支えるGo製サーバーの裏側
_hiro511
7
4k
WinTicketにおける リアルタイム性と高負荷を考慮したアーキテクチャ/WinTicket Architecture
_hiro511
4
4k
WinTicketにおけるライブ配信システムの実現
_hiro511
2
920
Other Decks in Programming
See All in Programming
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
580
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
440
setup-vp GitLab対応の裏側
naokihaba
0
150
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
230
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
230
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
420
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
140
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
430
R8 の設定見直しでアプリサイズ削減
andpad
0
100
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
110
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.8k
速習iPhone Duo対応
yuukiw00w
2
950
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Fireside Chat
paigeccino
43
4k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
430
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Designing Experiences People Love
moore
143
24k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
970
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Transcript
ُؕؠٞئ٭لتכ .POP3FQP $"54 $ZCFS"HFOU *OD )JSPBLJ&HBTIJSB娡㱳◽
娡㱳◽)JSPBLJ&HBTIJSB 䇗僖劔䌋⚡炘ئؕف٭ؙ٭ةؘ٤ع⪌炘 $"54 8JO5JDLFUفشؠؙ٤غطشؠٛ٭غ IJSP @IJSP
8JO5JDLFU ˝ ؛٤ٚؕ٤琂魸䤷烨ئؕع ˝ 侇ꝴ䤷烨⯈頇⪌⺎耆 ˝ ⪒㎁⚡㕙סٚؕه何⥼鿥⟓ ˝ "CFNB57ס琂魸زٔ٤ؾٜכ鵽Ⳃ
ُؕؠٞئ٭لت َٝةعٛלֹיױ־
.VMUJQMF3FQPTJUPSJFT WT .POP3FQPTJUPSZ
.POP3FQPTJUPSZ ˝ (PPHMF 'BDFCPPL 5XJUUFS⺱喋 ˝ ❣㰆畘杼ب٤وٜמך׀ ˝ ┉鞉䓪סֵ㚺催 ˝
ؤ٭غס⪦僗כ⫋⮵榫ֿ㳊佄 ˝ 㛻׀םٛنؒؠذٛ٤ءֿ㳊佄 חסَٝةعٛךخ٭تؤ٭غ畘杼
.POP3FQPTJUPSZ ˝ .VMUJQMF3FQPTJUPSJFTס㕙⺬ 邾丗סَٝةعٛמ㚺催ⱶֻיյ㚺催鱮׳סֿꪫ⠠ ❣㰆꞊➟ب٤وٜמך׀
.POP3FQPTJUPSZ ˝ (PPHMF 'BDFCPPL 5XJUUFS⺱喋 ˝ ❣㰆畘杼ب٤وٜמך׀ ˝ ┉鞉䓪סֵ㚺催 ˝
ؤ٭غס⪦僗כ⫋⮵榫ֿ㳊佄 ˝ 㛻׀םٛنؒؠذٛ٤ءֿ㳊佄 חסَٝةعٛךخ٭تؤ٭غ畘杼
.POP3FQPTJUPSZ ˝ 邾丗סُؕؠٞئ٭لتמ㚺催ⱶֻכ׀ؓعِشؠםؤِشعך⺎耆 ˝ ف٭ة٘٤畘杼㳊佄 ┉鞉䓪סֵ㚺催
.POP3FQPTJUPSZ ˝ (PPHMF 'BDFCPPL 5XJUUFS⺱喋 ˝ ❣㰆畘杼ب٤وٜמך׀ ˝ ┉鞉䓪סֵ㚺催 ˝
ؤ٭غס⪦僗כ⫋⮵榫ֿ㳊佄 ˝ 㛻׀םٛنؒؠذٛ٤ءֿ㳊佄 חסَٝةعٛךخ٭تؤ٭غ畘杼
لٜغכطتعⲖ曍荁ׂגַ
#B[FM ˝ (P 1SPUPDPM#VFS $ +"7" "OESPJE J04 םל喋չם銧鏤מ㵚䑴 ˝
䑒釐ם甙䢥דׄلٜغ٬طتعסך鵭ַ ˝ تآ٭ٚهٜ ˝ 䦡䍖⺎耆 لٜغ٬طتعبتطّ
(PMBOHXJUI#B[FM ˝ #B[FMסؕ٤تع٭ٜ CSFXJOTUBMMCB[FM ˝ 803,41"$&نٜؒؕס⛼䡗 㛙鼧ס❣㰆꞊➟םל鋗鳭 ˝ #6*-%نٜؒؕ⛼䡗 لٜغ亠嫎炐גס
(B[FMMF⮵榫י舅Ⳃ榟䡗ך׀
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", urls = [ "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/rules_go/releases/download/0.19.1/rules_go-0.19.1.tar.gz",
"https://github.com/bazelbuild/rules_go/releases/download/0.19.1/rules_go-0.19.1.tar.gz", ], sha256 = "8df59f11fb697743cbb3f26cfb8750395f30471e9eabde0d174c3aebc7a1cd39", ) load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains") go_rules_dependencies() go_register_toolchains() http_archive( name = "bazel_gazelle", urls = [ "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/bazel-gazelle/releases/download/0.18.1/bazel-gazelle-0.18.1.tar.gz", "https://github.com/bazelbuild/bazel-gazelle/releases/download/0.18.1/bazel-gazelle-0.18.1.tar.gz", ], sha256 = "be9296bfd64882e3c08e3283c58fcb461fa6dd3c171764fcc4cf322f60615a9b", ) load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") gazelle_dependencies() 803,41"$& SVMFT@HP (B[FMMF
load("@bazel_gazelle//:def.bzl", "gazelle") # gazelle:prefix github.com/hiro511/golang-bazel gazelle(name = “gazelle”) #6*-%CB[FM
$ tree . !"" BUILD.bazel !"" WORKSPACE #"" cmd #""
main.go $ bazel run //:gazelle (B[FMMF
$ tree . !"" BUILD.bazel !"" WORKSPACE #"" cmd !""
BUILD.bazel #"" main.go $ cat cmd/BUILD.bazel load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = ["main.go"], importpath = "github.com/hiro511/golang-bazel/cmd", visibility = ["//visibility:public"], ) (B[FMMF ̚舅Ⳃ榟䡗
$ cat cmd/BUILD.bazel load("@io_bazel_rules_go//go:def.bzl", “go_library”, “go_binary”) go_library( name = "go_default_library",
srcs = ["main.go"], importpath = "github.com/hiro511/golang-bazel/cmd", visibility = ["//visibility:public"], ) go_binary( name = “hello", embed = [":go_default_library"], visibility = ["//visibility:public"], ) $ bazel run //cmd:hello INFO: Analyzed target //cmd:hello (1 packages loaded, 3 targets configured). INFO: Found 1 target... Target //cmd:hello up-to-date: bazel-bin/cmd/darwin_amd64_stripped/hello INFO: Elapsed time: 0.533s, Critical Path: 0.37s INFO: 2 processes: 2 darwin-sandbox. INFO: Build completed successfully, 5 total actions INFO: Build completed successfully, 5 total actions hello world 3VO فؕػٜٛ٭ٜ
㛙鼧❣㰆꞊➟ ˝ HPNPE (PQLHMPDLنٜؒؕ־❣㰆قشآ٭ة鱮ײ 803,41"$&نٜؒؕמ傴׀鱮׳ HB[FMMFVQEBUFSFQPTGSPN@MFHPNPE HB[FMMFVQEBUFSFQPTGSPN@MF(PQLHMPDL (P.PEVMFTכEFQמ㵚䑴
1SPUPDPM#VFS ˝ HPMBOHQSPUPCVGכHPHPQSPUPמ㵚䑴 ˝ #6*-%CB[FMמٜ٭ٜ鴑鋗דׄ (P銧鏤סؤ٭غ榟䡗⺎耆
ٛٓ٭ع؞ٔشبٖ ˝ ꝧ氦縖$*םלךلٜغؓؗعوشع⪦僗ך׀ ˝ لٜغ냕鵭ך׀ ˝ ؞ٔشبٖفشؠؙ٤غ OHJOY 8FC%"7NPEVMF
#B[FM3FNPUF$BDIF (PPHMF$MPVE4UPSBHF لٜغؓؗعوشعٛٓ٭عמ؞ٔشبٖ⺎耆
ױכ״ ˝ .POP3FQPTJUPSZ ❣㰆畘杼ֿب٤وٜյ┉鞉䓪ֵֿյؤ٭غס⪦僗٬⫋⮵榫ֿ㳊佄 ˝ #B[FM لٜغ٬طتعص٭ٜյ❣㰆꞊➟杼鉮י㲔产סך鵭ַ (B[FMMF⮵榫י(PMBOHסخ٭تؤ٭غסلٜغٜ٭ٜ舅Ⳃ榟䡗⺎耆 (P.PEVMFTEFQס錃㲊אסױױ✳ֻ 1SPUPDPM#VFSס(PMBOHؤ٤قٜؕ⺎耆
ٛٓ٭ع؞ٔشبٖךلٜغؓؗعوشع⪦僗⺎耆
ֵֿכַׇֹױג