Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Shipping Sentry
Search
Armin Ronacher
November 15, 2016
Programming
1
520
Shipping Sentry
How we ship Sentry to production and on premises.
Armin Ronacher
November 15, 2016
Tweet
Share
More Decks by Armin Ronacher
See All by Armin Ronacher
Rust at Sentry
mitsuhiko
0
220
Overcoming Variable Payloads to Optimize for Performance
mitsuhiko
0
99
Rust API Design Learnings
mitsuhiko
0
390
The Snowball Effect of Open Source
mitsuhiko
0
280
Mobile Games are Living Organisms, Too
mitsuhiko
0
180
We gave a Mouse an NDK
mitsuhiko
0
630
Debug is the new Release
mitsuhiko
1
510
A Future Python
mitsuhiko
0
2.6k
Failing in Rust
mitsuhiko
5
850
Other Decks in Programming
See All in Programming
object-oriented-conference-2024
fuwasegu
6
2k
受託開発でGitLab CI を活用していく
xiombatsg
1
130
Dockerで始めるAWS Lambda開発
stutkhd0709
14
2.5k
ここ1~2年くらいで 使えるようになった(主要ブラウザーの最新版 がすべて対応した ) ウェブの新機能について ランダムに喋る!
myzkyy
9
6.5k
WebComponentsで フレームワークを1ページに共存させる
webuilder240
0
150
LPIXEL×CADDi_kaerururu
kaerururu
3
300
実践!RDRAを活用した既存システムの仕様変更 / Specification Changes in Existing Systems Utilizing RDRA
imamotohikaru
0
2.8k
フロントエンドパフォーマンス 入門
shouta2
7
1.5k
クソコード動画『カプセル化 Mk-II』 で考える 上手くカプセル化できない理由 / encapsulation2
minodriven
11
8.1k
もうすぐ新年度、Babylon.jsがお勧めな3個の理由
hideg
0
170
どうしてこうなった命名集 ~🔥編~ / OOC 2024 LT
pictiny
4
2.9k
せっかくモデル図描くのなら、嬉しいことが多い方がいいよね!
kuboaki
1
1.8k
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
397
65k
The Invisible Side of Design
smashingmag
293
49k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
219
21k
Thoughts on Productivity
jonyablonski
57
3.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
319
20k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.8k
Designing on Purpose - Digital PM Summit 2013
jponch
109
6.4k
Building Effective Engineering Teams - LeadDev
addyosmani
25
1.8k
Building a Scalable Design System with Sketch
lauravandoore
455
32k
KATA
mclloyd
14
11k
Clear Off the Table
cherdarchuk
82
310k
Automating Front-end Workflow
addyosmani
1353
200k
Transcript
Armin Ronacher Shipping Sentry
Armin Ronacher @mitsuhiko Flask / Sentry / Lektor
Find the Slides at lucumr.pocoo.org/talks
reach out to me! I want to talk :)
sentry.io
None
None
None
None
None
「 THE TWO PRODUCTS 」
sentry vs ‘getsentry’
sentry open source repo on-premise monthly releases
‘getsentry’ billing & quotas depends on sentry hourly deploys
「 GROWING THE TEAM 」
2.5 to 25 more process keep processes light keep developers
happy
2 locations process in code natural for us because of
the Open Source nature
「 THE GOALS 」
deploy in seconds be unable to screw up and if
you do: instant rollbacks
tag a release once a month
「 WORKFLOW 」
commit review integration deploy
requires good test coverage requires good local setup makes it
easier for newcomers
「 COMMITTING 」
lint on commit!
1 Release / Month 5 Deployments / Day On Prem:
Hosted:
None
master is stable
1. branch off master 2. pull request 3. merge
all the pull requests
!! AVOID DOWNTIME !!
postgres <3 transactional ddl, concurrent indexes, cheap alter table add
nullable columns
bidirectional compatibility
separation of state and connections
「 CONTINUOUS TESTING 」
sentry travis-ci.org test all the code
‘getsentry’ travis-ci.com test code relevant for us
「 CONTINUOUS DELIVERY 」
FREIGHT wait for travis > build > ship
bidirectional communication with the main slack channel
dev never matches prod :(
thus: fast rollbacks! (backwards + forwards compatibility)
「 CODE STRUCTURE 」
large systems are organisms
not all things will run the same code at the
same time
data schema ~ code behavior
break up larger features
feature flag it! (we shipped some code to on-prem we
backed out)
「 REPO STRUCTURE 」
move towards “monorepos” (but within what is possible with our
tools) {not as mono as we would like}
「 MOVING PARTS 」
keep dev basic: fewer parts
do not diverge dev from prod too much
virtual machines and docker are not an acceptable dev environment
「 REPRODUCIBLE BUILDS 」
pip freeze / yarn
nothing is more frustrating than a failed deploy because a
dependency of a dependency of a dependency of a dependency pushed out a broken release
build once > ship to many
「 BINARY DEPS 」
OS X & “manylinux”
C/C++/Rust Modules for Python
Build in Docker on old CentOS
Debian / RHEL / Ubuntu
「 MONITOR FAILURES 」
associate failures to users
map support requests to failures
use sentry :-)
「 FRIENDLY ROBOTS 」
replace yourself!
bots and webhooks
github hooks
notify to communication hub
testing danger.systems
「 BETTER CLIMATE 」
the more robots, the better the integration, the smaller the
fear of doing damage
If you can launch a feature on your first day
of work that's motivating
also: happy customers
Q&A reach out to me! I want to talk :)