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
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
Local CI × GitHub Actions
gogutan
2
220
夫婦で子育てするための育児標準化
codmoninc
PRO
0
370
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
160
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
440
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
110
USB PDを使ってスマホを労わりたい
raspython3
0
180
Running Kotlin + Quarkus with Lambda
nealle
1
3.8k
go-sqletch
moznion
0
140
Metadata - Section 1: HTML Basics
mohab1
0
120
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
290
How to Design Configuration for Rails Applications
willnet
1
810
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Documentation Writing (for coders)
carmenintech
77
5.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
A better future with KSS
kneath
240
18k
The Invisible Side of Design
smashingmag
301
52k
Mind Mapping
helmedeiros
1
400
Agile that works and the tools we love
rasmusluckow
331
22k
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]