Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
15万人の作家を支えるサービス開発の裏側 / back-of-the-service-development-to-support-150000-creators
monochromegane
October 24, 2015
Technology
0
3.8k
15万人の作家を支えるサービス開発の裏側 / back-of-the-service-development-to-support-150000-creators
「minne」技術戦略カンファレンスの資料です
https://www.youtube.com/watch?v=uYti3xbCVBQ
monochromegane
October 24, 2015
Tweet
Share
More Decks by monochromegane
See All by monochromegane
再帰化への認知的転回/the-turn-to-recursive-system
monochromegane
0
200
仮想的な探索を用いて文脈や時間の経過による番狂わせにも迅速に追従する多腕バンディット手法/wi2_lkf_bandits
monochromegane
0
200
Synapse: 文脈と時間経過に応じて推薦手法の選択を最適化するメタ推薦システム/smash21-synapse
monochromegane
0
160
なめらかなシステムと運用維持の未来/dicomo2021-coherently-fittable-system
monochromegane
1
5.2k
go:embedでExplainable Binaryを作る/fukoukago17_go_code_embedding
monochromegane
2
140
非定常な多腕バンディット問題において効率的に変化を察知する方式の検討/wsa8_predictive_exploratory_model
monochromegane
0
2k
変化検出と要約データ構造を用いた利用者の嗜好の変化に迅速に追従する多腕バンディット手法/iots2020-adaptive-linear-mab
monochromegane
0
540
嗜好伝達コミュニケーションの効率化を目指した伝達方式の検討/wsa7_local_preference
monochromegane
0
2.5k
なめらかなシステムの実現に向けて/coherently-fittable-system
monochromegane
0
280
Other Decks in Technology
See All in Technology
Power BI のうらがわ
hanaseleb
1
130
COSCUP x KCD Taiwan 2020 - 那些年我們在開源社群的日子 - Cloud Native Taiwan
pohsien
0
120
SPAとWebアプリケーションでCognitoの使い方はどう変わるのか? / How do we use cognito with SPA and web applications?
kitano_yuichi
0
380
ReverseETLでユーザーに価値を届ける基盤を実現した話
hakky
0
340
フィンテック養成勉強会#24
finengine
0
330
Azure DevOps Online Vol.6 - 業務で必要なCIをみんなで考えよう
kkamegawa
0
250
Goで実装するブランドネットワークとの接続ポイント
pongzu
2
270
LINSTOR — это как Kubernetes, но для блочных устройств
flant
0
1.3k
ぼくらが選んだ次のMySQL 8.0 / MySQL80 Which We Choose
line_developers
PRO
7
2.9k
ログラスを支える技術的投資の仕組み / loglass-technical-investment
urmot
9
1.9k
大声で伝えたい!定時に帰る方法
sbtechnight
0
230
SBOMを利用したソフトウェアサプライチェーンの保護
masahiro331
1
190
Featured
See All Featured
How GitHub Uses GitHub to Build GitHub
holman
465
280k
How to train your dragon (web standard)
notwaldorf
60
3.9k
Designing for humans not robots
tammielis
241
24k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
37
3.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
15
980
What’s in a name? Adding method to the madness
productmarketing
11
1.6k
Three Pipe Problems
jasonvnalue
89
8.7k
A Tale of Four Properties
chriscoyier
149
21k
From Idea to $5000 a Month in 5 Months
shpigford
373
44k
Web Components: a chance to create the future
zenorocha
303
40k
Six Lessons from altMBA
skipperchong
14
1.4k
What the flash - Photography Introduction
edds
62
10k
Transcript
15ສਓͷ࡞ՈΛࢧ͑Δ αʔϏε։ൃͷཪଆ minneࣄۀ෦ ϓϥοτϑΥʔϜνʔϜ GMO Pepabo, Inc
MIYAKE Yusuke @monochromegane
Platform Team
Fukuoka
Web application Infrastructure and
Ձʹ࣌ؒΛ͏
ΞλϦϚΤΛ ΞλϦϚΤʹ
Infrastructure Team Development
νʔϜͷΞλϦϚΤ
ࣄऀҙࣝΛ࣋ͯΔ
ΔؾͷΖ͏Μʁ ɿΔؾͷͰͳ͍Ͱ͔͢ʁ
ࣄऀҙࣝΛҭͯΔ
తͷڞ༗ Kickoff Break- down Daily stand-up MTG • શһࢀՃ •
ϓϩδΣΫτͷతΛڞ༗ • ΑΓΑ͍ղܾࡦͷݕ౼
શମ૾ͷڞ༗ Kickoff Break- down Daily stand-up MTG λεΫͷམ͠ࠐΈ
ਐḿͷڞ༗ Kickoff Break- down Daily stand-up MTG ظݶͱ༏ઌॱҐ
ج൫ͷΞλϦϚΤ
نΛҙࣝͤ͞ͳ͍
minne Client App Load Balancer Data Store OKARA CDN Job
Worker Batch Memcached Search Request Image Request Dynamic Image Transformation Cache Data Job Job Job Data Indexing Notification Search
Infrastructure as Code
Puppet Packer Serverspec
Deployment
Don’t miss it !
։ൃͷΞλϦϚΤ
γϯϓϧʹอͭ
Code LOC 2012/01 2,662
Code LOC 2013/01 5,508 2,662
Code LOC 2014/01 7,984 2,662 5,508
Code LOC 2015/01 12,085 2,662 5,508 7,984
Code LOC 2015/10 15,771 2,662 5,508 7,984 12,085
Rails
• Ruby 2.2.3 • Rails 4.2.4
• RailsͷϨʔϧʹΓଓ͚Δ
Microservices
ػೳΛγϯϓϧʹอͭ
• ಛԽͨ͠αʔϏεಋೖʹΑΔૣظ՝ղܾ • αʔϏεׂʹΑΔػೳɾϊϋͷڞ༗
Solr • ࡞Ոͱ࡞ͷݕࡧػೳ • Solr 4 (master-slave) + sunspot Master
Slave App Job Worker Update item Indexing Job Indexing Replication Search
OKARA • ࡞ը૾ͷಈతը૾αΠζม • Nginx + ngx_small_light + ngx_mruby +
CDN OKARA CDN Image Request Dynamic Image Transformation ngx_mruby • URL transformation • Hash validation ngx_small_light
See also https://speakerdeck.com/yano3/dynamic-image-transformation-server-okara-beta https://speakerdeck.com/mizor/better-search-for-minne-with-ruby-and-solr @mizor minneͷݕࡧΛRubyͱSolrͰͪΐͬͱศརʹͨ͠ @yano3 ngx_small_lightͱngx_mrubyͰ࡞Δಈతը૾มαʔό
CI
ςετΛγϯϓϧʹอͭ
Multi-containers CI test-queue worker test-queue worker test-queue master docker MySQL
test-queue worker Docker in Docker Drone • Drone + RSpec + test-queue • Docker in Docker • 27min -> 8min
ϨϏϡʔΛγϯϓϧʹอͭ
Coding rule spec it do default, $stdout = $stdout, StringIO.new
begin status = RuboCop::CLI.new.run(['--lint', file]) unless status.zero? raise "status: #{status}\n" + $stdout.string end ensure $stdout = default end end • Rubocop CLI • Ruby, Slim
Next ΞλϦϚΤ
• ϓϩδΣΫτେنԽͷରԠ • ۀϩδοΫෳࡶԽͷରԠ
ΞλϦϚΤΛ ΞλϦϚΤʹ
͓ΘΓ