Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Shipping code at PyConPL 2013
Search
antekpiechnik
October 17, 2013
Technology
77
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Shipping code at PyConPL 2013
antekpiechnik
October 17, 2013
More Decks by antekpiechnik
See All by antekpiechnik
Base - A Customer Focused Company
antekpiechnik
1
58
Shipping code - DevDay '12
antekpiechnik
1
58
HackKRK
antekpiechnik
1
56
Constant Deployment Flow
antekpiechnik
3
160
Other Decks in Technology
See All in Technology
go-sqletch
moznion
0
140
Optunaの最新リリースv5.0について
pfn
PRO
0
120
Local CI × GitHub Actions
gogutan
2
210
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
130
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
1.3k
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
550
Metadata - Section 1: HTML Basics
mohab1
0
120
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
160
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
200
Browser Spec: Testing Hotwire with Ruby
takahashim
1
120
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
150
Featured
See All Featured
Practical Orchestrator
shlominoach
192
12k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
540
Faster Mobile Websites
deanohume
310
32k
Transcript
None
None
null ’ ship it
ship code w w
architecture delivery ownership b architecture delivery ownership b
None
base r rails
base r rails DB b - authentication r r Everything
external public api rr w f features impractical f r
r w r b / api
dog food your apis all fr b public api
dog food your apis b r clients frontends
dog food your apis completness f r r r well
tested third party r
backbone.js event-driven b syncing r modularity v apis
separate fr massive fr backbone.js
separate fr massive fr backbone.js top-level fr w modules
backbone.js reports f necessary
auth system overloading r b universal api
auth system r r SERVICE
service-oriented architecture
soa r b modules SERVICEs design f r failure agnostic
fr Cost soa
fr Cost soa r services r storage f testing
f r calls soa FS::API::Tags::Tag. user_context(user.api_token). find(id) FS::API::Core::Account.find(id)
json f r w api-based staying agnostic
json responses staying agnostic
staying agnostic { "items": [ "10034", "10041", "10046" ], "metadata":
{ "total": 3 } }
absolutely no xml
f r development soa
bugs f r development soa
bugs f maintenance f r development soa
framework b interfaces / / q b serialization
growth > 30 r Services > 100 Aws b
360k / r w v r 150m 46ms v r
r 23.1ms performance
r f 1.4k r v 60M r rv performance
w w w soa what’s going on?
synchronous calls
message queues
rabbitmq
rabbitmq r b messages v r library
rabbitmq Dispatcher.start(opts) do |config| config.handle "deal.new", :with => Handlers::DealHandler end
rabbitmq class Handlers::DealHandler def process(event_data) # do stuff here end
end
rabbitmq r 10 million v
testing continuous integration rv r fully tested w
isolation r mirroring testing
mocking r versioning testing in isolation preserve r
errors whole requests testing in isolation v r f presence
of attributes
testing in isolation selenium
testing qa team r nothing b r
architecture delivery b architecture delivery b
STABLE b r all the time
architecture delivery b automation
architecture delivery b automation automation
architecture delivery b automation automation automation
setup testing delivery automation
setup automation stack f code r bootstrap r all else
nginx ` -fr `
setup automation vagrant + puppet v f next?
master branch w passing tests w deployable notifications
sandbox f production v r production-scaled ( ) r -r
testing
cautious deployments
cautious automated deployments
cautious ordinary automated deployments
grid
allocation r resources grid
predefined resources web w r r background job w r
r rabbit w r r
predefined resources tags = Service.find_by_name(“tags”) tags.web_workers = 8 tags.background_workers =
3 end
dynamic allocation master nodes mit star cluster slots r node
dynamic allocation
dynamic allocation r scaling
grid grid deploy tags production
check r r w ’ necessary routing grid
grid console grid console tags production
r r isolation r blacklisting grid
architecture delivery ownership b architecture delivery ownership b
ownership v r b owns r f product
ownership everyone r everyone
everyone deploys r r first week
influence r Familiarizes w r r v f anxiety deployment
r shipping r influencing customers r code ownership
20-40 r day w deploy
often stable b
fast often v
None
architecture delivery ownership b @antekpiechnik
[email protected]