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
15万人の作家を支えるサービス開発の裏側 / back-of-the-service-deve...
Search
monochromegane
October 24, 2015
Technology
0
4k
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
不確実性下における目的と手段の統合的探索に向けた連続腕バンディットの応用 / iot70_gp_rff_mab
monochromegane
1
110
なめらかなシステムと運用維持の終わらぬ未来 / dicomo2025_coherently_fittable_system
monochromegane
0
2k
ベクトル検索システムの気持ち
monochromegane
36
11k
Go言語での実装を通して学ぶ、高速なベクトル検索を支えるクラスタリング技術/fukuokago-kmeans
monochromegane
1
190
Go言語でターミナルフレンドリーなAIコマンド、afaを作った/fukuokago20_afa
monochromegane
2
280
多様かつ継続的に変化する環境に適応する情報システム/thesis-defense-presentation
monochromegane
1
990
Online Nonstationary and Nonlinear Bandits with Recursive Weighted Gaussian Process
monochromegane
0
600
AIを前提とした体験の実現に向けて/toward_ai_based_experiences
monochromegane
2
1k
Go言語でMac GPUプログラミング
monochromegane
1
660
Other Decks in Technology
See All in Technology
Cloud WANの基礎から応用~少しだけDeep Dive~
masakiokuda
3
110
React Server ComponentsでAPI不要の開発体験
polidog
PRO
0
340
Engineering Failure-Resilient Systems
infraplumber0
0
130
GCASアップデート(202506-202508)
techniczna
0
160
Claude Codeから我々が学ぶべきこと
oikon48
10
2.8k
Amazon Q と『音楽』-ゲーム音楽もAmazonQで作成してみた感想-
senseofunity129
0
170
プロダクトエンジニアリングで開発の楽しさを拡張する話
barometrica
0
210
ファッションコーディネートアプリ「WEAR」における、Vertex AI Vector Searchを利用したレコメンド機能の開発・運用で得られたノウハウの紹介
zozotech
PRO
0
610
✨敗北解法コレクション✨〜Expertだった頃に足りなかった知識と技術〜
nanachi
1
770
2025新卒研修・Webアプリケーションセキュリティ #弁護士ドットコム
bengo4com
1
870
家族の思い出を形にする 〜 1秒動画の生成を支えるインフラアーキテクチャ
ojima_h
3
1.3k
はじめての転職講座/The Guide of First Career Change
kwappa
5
4.4k
Featured
See All Featured
Speed Design
sergeychernyshev
32
1.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Music & Morning Musume
bryan
46
6.7k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
Gamification - CAS2011
davidbonilla
81
5.4k
Building Adaptive Systems
keathley
43
2.7k
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 ΞλϦϚΤ
• ϓϩδΣΫτେنԽͷରԠ • ۀϩδοΫෳࡶԽͷରԠ
ΞλϦϚΤΛ ΞλϦϚΤʹ
͓ΘΓ