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
580
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
Agentic Coding: The Future of Software Development with Agents
mitsuhiko
0
500
Do Dumb Things
mitsuhiko
0
860
No Assumptions
mitsuhiko
0
330
The Complexity Genie
mitsuhiko
0
280
The Catch in Rye: Seeding Change and Lessons Learned
mitsuhiko
0
390
Runtime Objects in Rust
mitsuhiko
0
370
Rust at Sentry
mitsuhiko
0
540
Overcoming Variable Payloads to Optimize for Performance
mitsuhiko
0
260
Rust API Design Learnings
mitsuhiko
0
630
Other Decks in Programming
See All in Programming
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
170
Data-Centric Kaggle
isax1015
2
760
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
540
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.8k
Implementation Patterns
denyspoltorak
0
280
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
180
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
590
2026年 エンジニアリング自己学習法
yumechi
0
130
CSC307 Lecture 03
javiergs
PRO
1
490
CSC307 Lecture 02
javiergs
PRO
1
770
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
今から始めるClaude Code超入門
448jp
7
8.3k
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
71
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
We Have a Design System, Now What?
morganepeng
54
8k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Mind Mapping
helmedeiros
PRO
0
75
Bash Introduction
62gerente
615
210k
How to Talk to Developers About Accessibility
jct
2
130
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
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 :)