Enviar búsqueda
Cargar
Best practices-for-production-environments
•
7 recomendaciones
•
8,351 vistas
Artem Kovardin
Seguir
Ingeniería
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 45
Descargar ahora
Descargar para leer sin conexión
Recomendados
Let the contribution begin
Let the contribution begin
SeongJae Park
Intro. to Git and Github
Intro. to Git and Github
Olmo F. Maldonado
Surgeons guide plugin development
Surgeons guide plugin development
afragen
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
Evan Lin
FTC Robot C to Java
FTC Robot C to Java
Jeanne Boyarsky
Understanding Pseudo-Versions Moving to Go 1.13 What is in Go 1.14+ for Modules
Understanding Pseudo-Versions Moving to Go 1.13 What is in Go 1.14+ for Modules
Mitali Bisht
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
John Potocny
Introduction to go
Introduction to go
Anthony Chow
Recomendados
Let the contribution begin
Let the contribution begin
SeongJae Park
Intro. to Git and Github
Intro. to Git and Github
Olmo F. Maldonado
Surgeons guide plugin development
Surgeons guide plugin development
afragen
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
Evan Lin
FTC Robot C to Java
FTC Robot C to Java
Jeanne Boyarsky
Understanding Pseudo-Versions Moving to Go 1.13 What is in Go 1.14+ for Modules
Understanding Pseudo-Versions Moving to Go 1.13 What is in Go 1.14+ for Modules
Mitali Bisht
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
John Potocny
Introduction to go
Introduction to go
Anthony Chow
Meet Git
Meet Git
Ben Scheirman
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
Evan Lin
Introduction to GoLang
Introduction to GoLang
NVISIA
Golang
Golang
Michael Blake
Project52
Project52
Evan Lin
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Evan Lin
Android developing in a wrong way
Android developing in a wrong way
Rahmatollah (Sadra) Isapanah Amlashi
Librerías Opensoure de Square
Librerías Opensoure de Square
betabeers
An introduction to Phing the PHP build system
An introduction to Phing the PHP build system
Jeremy Coates
Golang taipei #45 10th birthday
Golang taipei #45 10th birthday
Evan Lin
Pseudo-versions, moving to Go1.13 and later versions
Pseudo-versions, moving to Go1.13 and later versions
Mitali Bisht
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
Evan Lin
Blender+Python script模擬電影裡的GUI介面動畫
Blender+Python script模擬電影裡的GUI介面動畫
David Chen
An introduction to Phing the PHP build system (PHPDay, May 2012)
An introduction to Phing the PHP build system (PHPDay, May 2012)
Jeremy Coates
Intro android
Intro android
Daniyar Mukhanov
Version Control With GitHub & RStudio
Version Control With GitHub & RStudio
Rsquared Academy
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
digitalzombie
Git workflows (Basics)
Git workflows (Basics)
Roman Kuba
Git single branch
Git single branch
Carl Brown
git fail --force (make it up with your pull requests)
git fail --force (make it up with your pull requests)
Carlos Duarte do Nascimento
Building A Relevancy Engine Using MongoDB and Go
Building A Relevancy Engine Using MongoDB and Go
ardan-bkennedy
Fraser Graham Killer Robots
Fraser Graham Killer Robots
Artem Kovardin
Más contenido relacionado
La actualidad más candente
Meet Git
Meet Git
Ben Scheirman
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
Evan Lin
Introduction to GoLang
Introduction to GoLang
NVISIA
Golang
Golang
Michael Blake
Project52
Project52
Evan Lin
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Evan Lin
Android developing in a wrong way
Android developing in a wrong way
Rahmatollah (Sadra) Isapanah Amlashi
Librerías Opensoure de Square
Librerías Opensoure de Square
betabeers
An introduction to Phing the PHP build system
An introduction to Phing the PHP build system
Jeremy Coates
Golang taipei #45 10th birthday
Golang taipei #45 10th birthday
Evan Lin
Pseudo-versions, moving to Go1.13 and later versions
Pseudo-versions, moving to Go1.13 and later versions
Mitali Bisht
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
Evan Lin
Blender+Python script模擬電影裡的GUI介面動畫
Blender+Python script模擬電影裡的GUI介面動畫
David Chen
An introduction to Phing the PHP build system (PHPDay, May 2012)
An introduction to Phing the PHP build system (PHPDay, May 2012)
Jeremy Coates
Intro android
Intro android
Daniyar Mukhanov
Version Control With GitHub & RStudio
Version Control With GitHub & RStudio
Rsquared Academy
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
digitalzombie
Git workflows (Basics)
Git workflows (Basics)
Roman Kuba
Git single branch
Git single branch
Carl Brown
git fail --force (make it up with your pull requests)
git fail --force (make it up with your pull requests)
Carlos Duarte do Nascimento
La actualidad más candente
(20)
Meet Git
Meet Git
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
Introduction to GoLang
Introduction to GoLang
Golang
Golang
Project52
Project52
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Android developing in a wrong way
Android developing in a wrong way
Librerías Opensoure de Square
Librerías Opensoure de Square
An introduction to Phing the PHP build system
An introduction to Phing the PHP build system
Golang taipei #45 10th birthday
Golang taipei #45 10th birthday
Pseudo-versions, moving to Go1.13 and later versions
Pseudo-versions, moving to Go1.13 and later versions
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
Blender+Python script模擬電影裡的GUI介面動畫
Blender+Python script模擬電影裡的GUI介面動畫
An introduction to Phing the PHP build system (PHPDay, May 2012)
An introduction to Phing the PHP build system (PHPDay, May 2012)
Intro android
Intro android
Version Control With GitHub & RStudio
Version Control With GitHub & RStudio
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
Git workflows (Basics)
Git workflows (Basics)
Git single branch
Git single branch
git fail --force (make it up with your pull requests)
git fail --force (make it up with your pull requests)
Destacado
Building A Relevancy Engine Using MongoDB and Go
Building A Relevancy Engine Using MongoDB and Go
ardan-bkennedy
Fraser Graham Killer Robots
Fraser Graham Killer Robots
Artem Kovardin
Go database/sql
Go database/sql
Artem Kovardin
High Performance Systems in Go - GopherCon 2014
High Performance Systems in Go - GopherCon 2014
Derek Collison
A Channel Compendium
A Channel Compendium
Cloudflare
Garbage collector и управление памятью в Go
Garbage collector и управление памятью в Go
Artem Kovardin
C-spirit reborn: why Go was bound to be created
C-spirit reborn: why Go was bound to be created
Artem Kovardin
Anthony Starks - deck
Anthony Starks - deck
Artem Kovardin
OOP в Go
OOP в Go
Artem Kovardin
Scaling your time series data with Newts
Scaling your time series data with Newts
jwhite08
Aplicación de aprendizaje automático en minería de datos en la evaluación del...
Aplicación de aprendizaje automático en minería de datos en la evaluación del...
mariasusanaSD
Goraft and InfluxDB
Goraft and InfluxDB
nobu_k
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Lucidworks
Chronix Poster for the Poster Session FAST 2017
Chronix Poster for the Poster Session FAST 2017
Florian Lautenschlager
Automotive Information Research driven by Apache Solr
Automotive Information Research driven by Apache Solr
QAware GmbH
Vamp - The anti-fragilitiy platform for digital services
Vamp - The anti-fragilitiy platform for digital services
QAware GmbH
A Fast and Efficient Time Series Storage Based on Apache Solr
A Fast and Efficient Time Series Storage Based on Apache Solr
QAware GmbH
Azure Functions - Get rid of your servers, use functions!
Azure Functions - Get rid of your servers, use functions!
QAware GmbH
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
QAware GmbH
Time Series Analysis with Spark
Time Series Analysis with Spark
Sandy Ryza
Destacado
(20)
Building A Relevancy Engine Using MongoDB and Go
Building A Relevancy Engine Using MongoDB and Go
Fraser Graham Killer Robots
Fraser Graham Killer Robots
Go database/sql
Go database/sql
High Performance Systems in Go - GopherCon 2014
High Performance Systems in Go - GopherCon 2014
A Channel Compendium
A Channel Compendium
Garbage collector и управление памятью в Go
Garbage collector и управление памятью в Go
C-spirit reborn: why Go was bound to be created
C-spirit reborn: why Go was bound to be created
Anthony Starks - deck
Anthony Starks - deck
OOP в Go
OOP в Go
Scaling your time series data with Newts
Scaling your time series data with Newts
Aplicación de aprendizaje automático en minería de datos en la evaluación del...
Aplicación de aprendizaje automático en minería de datos en la evaluación del...
Goraft and InfluxDB
Goraft and InfluxDB
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Chronix Poster for the Poster Session FAST 2017
Chronix Poster for the Poster Session FAST 2017
Automotive Information Research driven by Apache Solr
Automotive Information Research driven by Apache Solr
Vamp - The anti-fragilitiy platform for digital services
Vamp - The anti-fragilitiy platform for digital services
A Fast and Efficient Time Series Storage Based on Apache Solr
A Fast and Efficient Time Series Storage Based on Apache Solr
Azure Functions - Get rid of your servers, use functions!
Azure Functions - Get rid of your servers, use functions!
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
Time Series Analysis with Spark
Time Series Analysis with Spark
Similar a Best practices-for-production-environments
Getting started with go - Florin Patan - Codemotion Milan 2016
Getting started with go - Florin Patan - Codemotion Milan 2016
Codemotion
Getting started with Go - Florin Patan - Codemotion Rome 2017
Getting started with Go - Florin Patan - Codemotion Rome 2017
Codemotion
R1-intro-to-go.pptx
R1-intro-to-go.pptx
Ababb2
Dependent things dependency management for apple sw - slideshare
Dependent things dependency management for apple sw - slideshare
Cavelle Benjamin
Untangling4
Untangling4
Derek Jacoby
SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic
Aman Patial
Introduction to Go
Introduction to Go
Simon Hewitt
Write microservice in golang
Write microservice in golang
Bo-Yi Wu
Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web Apps
James Williams
Git In One Evening
Git In One Evening
Maxwell Pearl
Building APIs using Go
Building APIs using Go
Elton Minetto
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies
rahulbot
Testing Toolbox
Testing Toolbox
Michael Peters
Startup Camp - Git, Python, Django session
Startup Camp - Git, Python, Django session
Juraj Michálek
Goの標準的な開発の流れ
Goの標準的な開発の流れ
Ryuji Iwata
Zend con 2016 bdd with behat for beginners
Zend con 2016 bdd with behat for beginners
Adam Englander
Trying out the Go language with Google App Engine
Trying out the Go language with Google App Engine
Lynn Langit
An Introduction to Go
An Introduction to Go
Imesh Gunaratne
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for Beginners
Adam Englander
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
Scott Graham
Similar a Best practices-for-production-environments
(20)
Getting started with go - Florin Patan - Codemotion Milan 2016
Getting started with go - Florin Patan - Codemotion Milan 2016
Getting started with Go - Florin Patan - Codemotion Rome 2017
Getting started with Go - Florin Patan - Codemotion Rome 2017
R1-intro-to-go.pptx
R1-intro-to-go.pptx
Dependent things dependency management for apple sw - slideshare
Dependent things dependency management for apple sw - slideshare
Untangling4
Untangling4
SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic
Introduction to Go
Introduction to Go
Write microservice in golang
Write microservice in golang
Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web Apps
Git In One Evening
Git In One Evening
Building APIs using Go
Building APIs using Go
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies
Testing Toolbox
Testing Toolbox
Startup Camp - Git, Python, Django session
Startup Camp - Git, Python, Django session
Goの標準的な開発の流れ
Goの標準的な開発の流れ
Zend con 2016 bdd with behat for beginners
Zend con 2016 bdd with behat for beginners
Trying out the Go language with Google App Engine
Trying out the Go language with Google App Engine
An Introduction to Go
An Introduction to Go
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for Beginners
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
Último
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
me23b1001
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptx
Purva Nikam
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
VICTOR MAESTRE RAMIREZ
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniques
ugginaramesh
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
SAURABHKUMAR892774
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
Tagore Institute of Engineering And Technology
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Anamika Sarkar
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
121011101441
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
eptoze12
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
dollysharma2066
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
DeepakSakkari2
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
João Esperancinha
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
ssuser2ae721
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
wendy cai
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
asadnawaz62
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
959SahilShah
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
Asst.prof M.Gokilavani
Past, Present and Future of Generative AI
Past, Present and Future of Generative AI
abhishek36461
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
jennyeacort
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
sdickerson1
Último
(20)
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptx
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniques
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
Past, Present and Future of Generative AI
Past, Present and Future of Generative AI
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
Best practices-for-production-environments
1.
Best Practices for Production
Environments
2.
These slides may
not make much sense without a narrative! For the proper article, see http://peter.bourgon.org/go-in-production
3.
4.
Some Go Projects Bazooka Traffic tier Media
streaming Search & Explore glue Prometheus Stream backend* HLS implementation** Many others…
5.
Dev environment Repo structure Formatting
and style Configuration Logging and telemetry Validation and testing Dependency management ᕕ( ᐛ )ᕗ Build and deploy
6.
Dev environment
7.
Single GOPATH for
all projects Work in $GOPATH/src/github.com/soundcloud/foo vim, Sublime Text, emacs—no IDEs
8.
Repo structure
9.
github.com/soundcloud/whatever/ README.md Makefile main.go support.go
10.
github.com/soundcloud/whatever/ README.md Makefile main.go support.go foo/ foo.go bar.go
11.
github.com/soundcloud/whatever/ README.md Makefile whatever-server/ main.go whatever-worker/ main.go foo/ foo.go bar.go
12.
Formatting and style
13.
go fmt Google’s Code
Review Guidelines Avoid named return parameters Avoid make and new (unless you know sizes) Use struct{} for sentinel value: sets, signal chans Break long lines on parameters
14.
func process(dst io.Writer,
readTimeout, writeTimeout time.Duration, allowInvalid bool, max int, src <-chan util.Job) { // ... }
15.
func process( dst io.Writer, readTimeout,
writeTimeout time.Duration, allowInvalid bool, max int, src <-chan util.Job, ) { // ... }
16.
f := foo.New(foo.Config{ “zombo.com”, conference.KeyPair{ Key:
“gophercon”, // String value Value: 2014, }, os.Stdout, })
17.
Configuration
18.
package flag
19.
func main() { var
( foo = flag.String(“foo”, “doch”, “...”) bar = flag.Int(“bar”, 34, “...”) ) flag.Parse() // ... }
20.
Logging and telemetry
21.
Logging and telemetry
22.
package log
23.
Logging and telemetry
24.
Push model Pull model vs. Graphite Statsd AirBrake expvar Prometheus others?
25.
Testing and validation
26.
Testing and validation
27.
package testing ☞reflect.DeepEqual☜
28.
// +build integration var
fooAddr = flag.String(...) func TestFoo(t *testing.T) { f, err := newFoo(*fooAddr) // ... }
29.
Testing and validation
30.
Save Build onon go fmt goimports or go
vet golint go test and and maybe Deploy on go test -tags=integration gocov?
31.
YAGNI
32.
Dependency management
33.
34.
How important is your
project? go get -d & hope! VENDOR Eh Very ☞ ☞ import proxy?
35.
VENDOR submodules with subtrees with a tool with ✖✖✖ means copy
your dependencies
36.
Binary VENDOR Library _vendor subdirectory Blessed build, with prefixed
GOPATH + vendor subdirectory Rewrite your imports + ☞ ☞
37.
Build and deploy
38.
Build and deploy
39.
Development “Official” ☞ go build ☞
make
40.
GOVER=go1.2.1 ! STAGE=.stage GOPATH=$(CURDIR)/$(STAGE)/gopath GOROOT=$(CURDIR)/$(STAGE)/go GOCC=$(GOROOT)/bin/go GO=TMPDIR=/tmp GOROOT=$(GOROOT) GOPATH=$(GOPATH)
$(GOCC) ! OS=$(shell uname) ARCH=$(shell uname -m) GOOS=$(subst Darwin,darwin,$(subst Linux,linux,$(OS))) GOARCH=$(subst x86_64,amd64,$(ARCH)) GOPKG=$(subst darwin-amd64,darwin-amd64-osx10.8,$(GOVER).$(GOOS)-$(GOARCH).tar.gz) ! PKGBASE=github.com/soundcloud/goku PKGPATH=$(GOPATH)/src/$(PKGBASE) ! all: build ! build: $(GOCC) $(PKGPATH) GOPATH=$(GOPATH) GOROOT=$(GOROOT) GO=$(GOCC) make -C roshi-server build GOPATH=$(GOPATH) GOROOT=$(GOROOT) GO=$(GOCC) make -C roshi-walker build GOPATH=$(GOPATH) GOROOT=$(GOROOT) GO=$(GOCC) make -C reader build GOPATH=$(GOPATH) GOROOT=$(GOROOT) GO=$(GOCC) make -C writer build GOPATH=$(GOPATH) GOROOT=$(GOROOT) GO=$(GOCC) make -C gap-backfill build ! clean: GOPATH=$(GOPATH) GOROOT=$(GOROOT) GO=$(GOCC) make -C roshi-server clean
41.
Build and deploy
42.
StatefulStateless Any/no model12-Factor model ProvisionedScaled vs. Containers
Containers? MySQL, RedisRequest router
43.
$ git push
bazooka master $ bazooka scale -r <new> -n 4 ... $ # validate $ bazooka scale -r <old> -n 0 ... Deploying stateless services
44.
Embrace simplicity
45.
Thanks! ! Peter Bourgon @peterbourgon Questions?
Descargar ahora