Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Iterate and Ship
Armin Ronacher
May 10, 2016
Programming
4
360
Iterate and Ship
How we iterate and ship at Sentry.
Armin Ronacher
May 10, 2016
Tweet
Share
More Decks by Armin Ronacher
See All by Armin Ronacher
We gave a Mouse an NDK
mitsuhiko
0
440
Debug is the new Release
mitsuhiko
1
410
A Future Python
mitsuhiko
0
2.1k
Failing in Rust
mitsuhiko
5
760
A Python for Future Generations
mitsuhiko
19
8.5k
Rust at Sentry
mitsuhiko
4
880
My Python is Rusting
mitsuhiko
2
1.4k
Pragmantic SaaS Architecture
mitsuhiko
4
630
A Practical Road to SaaS' in Python
mitsuhiko
9
1.2k
Other Decks in Programming
See All in Programming
LOWYAの信頼性向上とNew Relic
kazumax55
4
350
SPA/MPA 議論の俯瞰と 現代における設計のポイント - #tfcon 2022 フロントエンド設計
ahomu
3
1.8k
Monadic Java
mariofusco
4
260
クリエイティブ系のウェブサイト制作で役立つCSS技法 / CSS for develop creative website
clockmaker
2
1.5k
Composing an API with Kotlin (Kotlin Dev Day 2022)
zsmb
0
260
Is Rust a great language for building Kubernetes ecosystem
deepu105
0
140
Reinventing the wheel ... as a service
mariofusco
3
260
Update from the Elixir team - 2022
whatyouhide
0
170
Blazor WebAssembly – Dynamische Formulare und Inhalte in Aktion
patrickjahr
0
160
プログラミングを勉強したいと言われたら
yuba_4
0
390
スモールチームがAmazon Cognitoでコスパよく作るサービス間連携認証
tacke_jp
2
350
既存のプロジェクトにKMMを導入するための対応策
martysuzuki
2
300
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
295
110k
Done Done
chrislema
174
14k
Git: the NoSQL Database
bkeepers
PRO
415
59k
Fireside Chat
paigeccino
11
1.3k
A designer walks into a library…
pauljervisheath
196
16k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.4k
Typedesign – Prime Four
hannesfritz
33
1.3k
Intergalactic Javascript Robots from Outer Space
tanoku
261
25k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
15
910
Fantastic passwords and where to find them - at NoRuKo
philnash
25
1.5k
GraphQLの誤解/rethinking-graphql
sonatard
24
6.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
655
120k
Transcript
Armin Ronacher iterate and ship
Armin Ronacher @mitsuhiko Flask / Sentry / Lektor
̿ SENTRY ̀
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
̿ 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)
̿ 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 / npm shrinkwrap
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
̿ 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
̿ 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