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 code at PyConPL 2013
Search
antekpiechnik
October 17, 2013
Technology
74
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
53
Shipping code - DevDay '12
antekpiechnik
1
55
HackKRK
antekpiechnik
1
55
Constant Deployment Flow
antekpiechnik
3
160
Other Decks in Technology
See All in Technology
Genie Codeハンズオン応用編
taka_aki
0
130
【書籍出版記念】 10周回って、エージェント開発は RAGがすべてだった。〜RAGの歴史と開発現場で見えた実践知〜
akiratameto
3
430
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.7k
35分でわかるEffective Platform Engineering
nwiizo
5
550
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
猫付きpingコマンドを自作
uyuki234
0
280
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
100
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
コーチングの奥義 何もしないテクニック
jinwatanabe
0
140
2027年のMetricKit
kantacky
0
130
Go 1.27 の標準パッケージに uuid が入った!のでいろいろ喋る / go_127_std_go_uuid
convto
3
550
AIに持続⼒を与える 判断の⻑期記憶設計
eiei114
1
440
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
We Have a Design System, Now What?
morganepeng
55
8.3k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
Building Adaptive Systems
keathley
44
3.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
410
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
250
Prompt Engineering for Job Search
mfonobong
0
410
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
660
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]