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
Iterate and Ship
Search
Armin Ronacher
May 10, 2016
Programming
4
420
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
Agentic Coding: The Future of Software Development with Agents
mitsuhiko
0
310
Do Dumb Things
mitsuhiko
0
730
No Assumptions
mitsuhiko
0
240
The Complexity Genie
mitsuhiko
0
240
The Catch in Rye: Seeding Change and Lessons Learned
mitsuhiko
0
350
Runtime Objects in Rust
mitsuhiko
0
360
Rust at Sentry
mitsuhiko
0
500
Overcoming Variable Payloads to Optimize for Performance
mitsuhiko
0
230
Rust API Design Learnings
mitsuhiko
0
590
Other Decks in Programming
See All in Programming
API Platform 4.2: Redefining API Development
soyuka
0
140
Platformに“ちょうどいい”責務ってどこ? 関心の熱さにあわせて考える、責務分担のプラクティス
estie
1
140
Design Foundational Data Engineering Observability
sucitw
3
210
請來的 AI Agent 同事們在寫程式時,怎麼用 pytest 去除各種幻想與盲點
keitheis
0
130
意外と簡単!?フロントエンドでパスキー認証を実現する WebAuthn
teamlab
PRO
2
780
機能追加とリーダー業務の類似性
rinchoku
2
1.3k
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.9k
AWS発のAIエディタKiroを使ってみた
iriikeita
1
190
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
110
デザイナーが Androidエンジニアに 挑戦してみた
874wokiite
0
550
時間軸から考えるTerraformを使う理由と留意点
fufuhu
16
4.8k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
56
13k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
The Pragmatic Product Professional
lauravandoore
36
6.9k
What's in a price? How to price your products and services
michaelherold
246
12k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Gamification - CAS2011
davidbonilla
81
5.4k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Why Our Code Smells
bkeepers
PRO
339
57k
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