Go Conference 2019 Autumn: https://gocon.connpass.com/event/148602/
Gopher artworks: https://github.com/egonelbre/gophers
Accelerate Go developmentwith BazelGo Conference 2019 Autumn@micnncim
View Slide
@micnncimUniversity Student / B4Merpay ← AbemaTV ← Gunosy
AdSoftware Design 2020 1
⚠AttentionBazel Go
Bazel need for Go
Use cases of GoMicroservicesProtobuf (Protocol Bu ers)GoMock ThriftKubernetes, Istio,
Hard pointsMonorepoProtobufgo build
Monorepoッ 1,000ッ 1 2 2,000ッ Make le 1,000 go buildッ localCI
ProtobufVCSDocker
Bazel
Bazel 1.0.0 Release2019/10/10
Overviewッ Google OSS multi-languageッ Starlark Pythonッッ Buck (Facebook), Pants (Twitter)
Fastッッッ Remote Caching
Reproducibleッ Sandbox /ッッ Go protoc kubectlッッ local, CI, ,
How does Bazel work?1. Loading phase: BUILDッ Bazel WORKSPACEBUILDッ Starlark
How does Bazel work?2. Analysis phase: DAG (directed acyclicgraph) action graphaction : run gcc on hello.c and get hello.oaciton graph Bazeltrack
How does Bazel work?3. Execution phase: build action❗
Use casesGoogle, Uber, Dropbox, Pinterest, Stripe,Microservices with MonorepoKubernetes, Envoy, Protobuf, Tensor ow, Angular,Google OSS Bazel
Bazel❤Go
Monorepoッッッ bazel build //
Rebuild by go buildgo version: go1.13 darwin/amd64
Rebuild by bazel buildbazel version: 0.28.1
Protobufッ protocッ Bazel SandboxVCSッ GoMock
❤
Practice
Practiceッ Go protocッ Gazelle (BUILD )ッ .bazelrc ( )ッ Bazelisk (Bazel )ッ nogo (Go Bazel )
Gazellebazelbuild/bazel-gazelleGo BUILDGo
.bazelrcBazel 100.bazelrc
Bazeliskbazelbuild/bazelisk.bazelversionBazel(OS, Arch) Bazel
nogobazelbuild/rules_goGo Analyzer
Bazel in OSS
in OSSッ Kubernetes kazelッ Istio Bazel go build
THANK YOU!@micnncim