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
そして物語は更に何度目かのアプリ内通知再実装を迎える / Reimplement in app...
Search
moznion
August 19, 2017
Technology
1
3.8k
そして物語は更に何度目かのアプリ内通知再実装を迎える / Reimplement in app notification again
Kyoto.なんか #3の資料です
moznion
August 19, 2017
Tweet
Share
More Decks by moznion
See All by moznion
Develop to Survive - YAPC::Hakodate 2024 Keynote
moznion
9
13k
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
3
2.3k
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
1
890
RuboCopのカスタムCopを書いてContributionしてみる - Contributing a Custom Cop to RuboCop: A Hands-on Experience
moznion
0
60
AWS上に構築する メンテ容易なElasticsearch System / Maintainable Elasticsearch system on AWS
moznion
2
3.9k
PROXY Protocol aware Proxy Server on Node.js
moznion
2
2.4k
Perl meets AWS Lambda
moznion
0
4.7k
ソフトウェア開発における 「設計」と「パフォーマンス」の相互作用 / Interaction Between Design and Performance on Software Development
moznion
12
6.9k
Javaカードの世界 / The world of Java Card
moznion
9
13k
Other Decks in Technology
See All in Technology
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
460
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
220
Terraform Stacks入門 #HashiTalks
msato
0
320
Microsoft Intune アプリのトラブルシューティング
sophiakunii
1
430
"君は見ているが観察していない"で考えるインシデントマネジメント
grimoh
4
1.1k
2024年グライダー曲技世界選手権参加報告/2024 WGAC report
jscseminar
0
310
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.8k
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
340
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
480
Can We Measure Developer Productivity?
ewolff
1
120
スクラム成熟度セルフチェックツールを作って得た学びとその活用法
coincheck_recruit
1
110
マイベストのデータ基盤の現在と未来 / mybest-data-infra-asis-tobe
mybestinc
2
2k
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
GitHub's CSS Performance
jonrohan
1030
460k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Documentation Writing (for coders)
carmenintech
65
4.4k
Building an army of robots
kneath
302
42k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
The Cult of Friendly URLs
andyhume
78
6k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Practical Orchestrator
shlominoach
186
10k
Transcript
ͦͯ͠ޠߋʹԿ͔ͷ ΞϓϦ௨࠶࣮Λܴ͑Δ @moznion
@moznion Server Sideଠ
લճͷ͋Β͢͡
લճͷ͋Β͢͡
લճͷ͋Β͢͡ ͿΓͷग़Ͱ͢
ΞϓϦ௨ͱ
ΞϓϦ௨ͱ
None
ΞϓϦ௨ͷ๊͑Δ
༗ޮͳσʔλߏΛߟ͑Δͷ͕͍͠ w 8SJUF)BSEͳΞʔΩςΫνϟʹ͢Δ͔ w 3FBE)BSEͳΞʔΩςΫνϟʹ͢Δ͔ w ϋΠϒϦου
8SJUF)BSEͳΞʔΩςΫνϟ Storage Mailbox Write
Read
8SJUF)BSEͳΞʔΩςΫνϟ Storage Mailbox 4VCTDSJCFSͱ.BJMCPY͕ରԠ
Write Read
8SJUF)BSEͳΞʔΩςΫνϟ w 1SPT w 3FBE͕؆୯ 4VCTDSJCFSʹඥͮ͘ .BJMCPYΛ୯ʹಡΊऔͬͯ͜ΕΔ w $POT
w 8SJUFσʔλྔ͕૿͑Δ εύΠΫ͢Δ w 4UPSBHFͷσʔλ༰ྔ͕૿͑Δ ޙड़
3FBE)BSEͳΞʔΩςΫνϟ Write Read
3FBE)BSEͳΞʔΩςΫνϟ Write Read ͭͷσʔλιʔε͔Β 4VCTDSJCFSຖʹҟͳΔ௨Λ औಘͯ͘͠Δ
3FBE)BSEͳΞʔΩςΫνϟ w 1SPT w 8SJUF͢Δσʔλྔ͕গͳͯ͘ࡁΉ NBTUFSͱͳΔσʔλ͚ͩͰྑ͍ w $POT w
ͭͷσʔλιʔεΛͱʹͯ͠ɼ ֤4VCTDSJCFSʹԠͨ͡௨ΛΈཱͯΔ ඞཁ͕͋ΔͷͰSFBE͕ෳࡶʹͳΓ͕ͪ ॏ͍ΫΤϦ
લճͷ͋Β͢͡
8SJUF)BSEͳ ΞʔΩςΫνϟΛ࠾༻
8SJUF)BSEͳ ΞʔΩςΫνϟΛ࠾༻
8SJUF)BSEͳ ΞʔΩςΫνϟΛ࠾༻
ৄࡉલճͷεϥΠυ IUUQTTQFBLFSEFDLDPNNP[OJPO SFJNQMFNFOUJOBQQOPUJpDBUJPO
ͦͷޙฏͳʑΛ ա͍͕ͯͨ͝͠ʜʜ
Redisյ յͱݴ͏ఔͰͳ͍
w σʔλྔ͕େ͖͘ͳΓ͗ͨ͢ w ඦ(#ͷΦʔμʔ w ͦΓΌͦ͏ͩ VTFSͿΜNBJMCPY͕͋Δ w 3FEJTΛཧ͍ͯ͠ΔΤϯδχΞ͔Β ʮͦΖͦΖצหͯ͘͠ΕʯͱݴΘΕΔ
3FEJTͷݶք
3FEJTͷݶք w ௨σʔλॖୀ͠ʹ͍͘ w ٳϢʔβͰ͋ͬͯɼͦͷϢʔβͷ ௨σʔλফͤͳ͍ ॖখ͋Γ͔ w ͭ·Γσʔλ૿͑ΔҰํ
3FEJTͷݶք w 3FEJT͕ѱ͍Θ͚Ͱͳ͍ʂʂʂʂ w Ϣʔεέʔε͕߹Θͳ͔ͬͨ w େྔͷӬଓσʔλ࣋ͨͤΔͷΉ͍ͣ
ݱࡏ
w ͩ·ͩ͠·͠3FEJTΛ͍ͬͯΔʜʜ ͣ
Ͳ͏͢Εྑ͍ͷ͔
Ͳ͏͢Εྑ͍ͷ͔
ͭΒ͍ʂʂ
͜͜ͰৼΓฦͬͯΈ·͠ΐ͏
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ແਚଂͳετϨʔδʜʜ
Amazon S3
"NB[PO4 w આ໌ෆཁ w "84ͷ0CKFDU4UPSBHF w ແਚଂ ແਚଂͰͳ͍
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ϑΟʔυʜʜ
RSS
344 w આ໌ෆཁ w 9.-Ͱهड़Մೳ w αʔόଆɾΫϥΠΞϯτଆΘͣॆ࣮ͨ͠ αϙʔτ w ࠷ۙ344ͬͯΑΓ"UPNͰ͔͢Ͷ
Write Feed 1 Feed 2 Feed 3
S3 Read ུ֓
ུ֓ w αʔό344 "UPN 'FFEͷϑΝΠϧΛ 4ʹ165 PS1"5$) w ΫϥΠΞϯτ4͔Β'FFEΛ(&5͖ͯ͠
ͯɼ344Ϧʔμʔ࣮ͳΓͳΜͳΓͰ௨ ΛಡΈऔΔ w γϯϓϧʂʂʂʂʂ
1SPT w 8SJUF)BSEʹͳͬͯ૬ख4͔ͩΒ ·͋େৎͰ͠ΐ͏ͱ͍͏҆৺ײ w 3FBE͕݅ଟ͘ͳͬͯ૬ख4͔ͩΒ ·͋େৎͰ͠ΐ͏ͱ͍͏҆৺ײ ୯ͳΔ'FFEpMFͷTFSWFͩ͠ʜʜ w
344ͱ͍͏ރΕٕͨज़ͷస༻ʹΑΔ҆৺ײ
$POT w 0CKFDU4UPSBHFͷ165ͱ͍͏ॲཧͷ ಛੑ্ɼߴͳଈ࣌ੑΛ࣋ͨͤΔͷ͕ ͍͠ w ೝূɾೝՄ w طಡཧ
ଈ࣌ੑʹ͍ͭͯͷ w ྫ͑ɼʮ164)௨͕ૹΒΕ͖ͯͨͷʹ ௨ը໘ʹ৽͍͠௨͕ແ͍ʯͱ͍͏ έʔε w ϑΟʔυͷߋ৽͕Ԇ͍ͯ͠ΔͷݪҼ
ଈ࣌ੑʹ͍ͭͯͷ w ʮϑΟʔυͷߋ৽͕ऴΘͬͨΒ164)௨ΛൃՐ ͢ΔʯΈ͍ͨͳΠϕϯτۦಈʹ͢Δख͋Δ υ ϝΠϯΠϕϯτతͳ w ͔͠͠߹ʹΑͬͯॲཧͷߴԽͷͨΊʹ164) ௨ૹ৴ͱϑΟʔυߋ৽ผͷϫʔΧϓϩηε͕
ඇಉظతʹͬͯΔɼΈ͍ͨͳͷ͋Γ·͢ΑͶ w ͍͠ɼ߹ʹΑΔͱ͔͠ݴ͑ͳ͍ʜʜ
ೝূɾೝՄ w ུ֓ਤͷΑ͏ͳૉͳߏͩͱɼ 4ͷύʔϚϦϯΫ͑͞Θ͔Ε୭Ͱ ௨ͷ༰͕ಡΈऔΕͯ͠·͏ w ଟ͘ͷ߹ͦΕϚζ͍Ͱ͠ΐ͏ Ϛζ͘ͳ͍߹͋Δ͔͠Εͳ͍
Write S3 Read ೝূɾೝՄ
º 6TFS͔ΒͷSFBE ڐՄ͠ͳ͍ Write S3 Read ೝূɾೝՄ
Write S3 Read ೝূɾೝՄ αʔό4ؒͷ SFBEͷΈڐՄ͢Δ
αʔόͰϓϩΩγ͢Δͱ /FUXPSLӽ͠ͷ*0͕ͪ ੜ͡ΔͷͰϘτϧωοΫ ʹͳΓ͏Δʜʜ Write S3 Read
ೝূɾೝՄ
ೝূɾೝՄ w 4Λ୯ͳΔόοΫΤϯυ4UPSBHFͱͯ͠ Έͳͯ͠ɼαʔόܦ༝ͰίϯςϯπΛฦ͢ Α͏ʹ͢Δ w γϯϓϧ͕ͩϓϩΩγ͍ͯ͠Δαʔό͕ ϘτϧωοΫʹͳΔՄೳੑ͕͋Δ
ೝূɾೝՄ Write S3 (?) Read Onetime Token Onetime Token Serve
Onetime token Onetime Token
ೝূɾೝՄ w αʔόPOFUJNFUPLFOΛΫϥΠΞϯτʹฦ ٫͠ɼΫϥΠΞϯτͦͷPOFUJNFUPLFOͱ ڞʹTUPSBHFʹΞΫηεͯ͠(&5 w TUPSBHFଆ͕POFUJNFUPLFOͰೝূͯ͠ίϯ ςϯπΛฦ͔͢Ͳ͏͔Λஅ w ͜Ε4ͩͱग़དྷͳ͍ؾ͕͢Δʜʜ
ग़དྷΔ0CKFDU4UPSBHF͋Δͷ͔ʁ
طಡཧ w ୯७ʹϑΟʔυͷϑΝΠϧΛ৴͍ͯ͠Δ ͚ͩͳͷͰαʔόαΠυͰͷطಡཧ͕ ͍͠ w ΫϥΠΞϯτଆʹؤுͬͯΒ͏͔͠ʜʜ
·ͱΊ
·ͱΊ w ΞϓϦ௨࣮ʹ༷ʑͳ͕͋Δ w 8SJUFʹدͤΔ͔3FBEʹدͤΔ͔ w 8SJUFʹدͤͭͭɼ4UPSBHFΛ4ʹ͢Δͱ͍͏ ΞʔΩςΫνϟͷఏҊ ڊਓͷݞʹΔͧ
w ͔͠͠·ͩݕ౼͖͋͢Δ
·ͱΊ w ΞϓϦ௨࣮ͻͱͭऔͬͯํ๏͕ ͨ͘͞Μ͋ͬͯԞ͕ਂ͍ w ༻్ʹ߹Θͤͯదͳํ๏Λબ͢Δ ඞཁ͕͋Δ w ଞʹͬͱྑ͍ػߏ͕͋ͬͨΒٞ͠·͠ΐ ͏
͍ͬͦ54%#ʹಥͬࠐΜ͡Ό͏ͱ͔
Q?