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
Jubatusよもやま話 〜OSSのミドルウェア開発〜
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Shuzo Kashihara
December 23, 2017
Technology
0
530
Jubatusよもやま話 〜OSSのミドルウェア開発〜
第1回Webシステムアーキテクチャ研究会
Shuzo Kashihara
December 23, 2017
Tweet
Share
More Decks by Shuzo Kashihara
See All by Shuzo Kashihara
Reading “Bridging the Virtualization Performance Gap for HPC Using SR-IOV for Infiniband”
suma90h
1
350
Other Decks in Technology
See All in Technology
ReactのdangerouslySetInnerHTMLは“dangerously”だから危険 / Security.any #09 卒業したいセキュリティLT
flatt_security
0
470
今日から始められるテスト自動化 〜 基礎知識から生成AI活用まで 〜
magicpod
1
120
Kiroで見直す開発プロセスとAI-DLC
k_adachi_01
0
120
The Rise of Browser Automation: AI-Powered Web Interaction in 2026
marcthompson_seo
0
300
ABEMAのバグバウンティの取り組み
kurochan
1
600
Phase06_ClaudeCode実践
overflowinc
0
1.7k
1GB RAMのラズピッピで何ができるのか試してみよう / 20260319-rpijam-1gb-rpi-whats-possible
akkiesoft
0
830
LLMに何を任せ、何を任せないか
cap120
6
2.1k
AWS Systems Managerのハイブリッドアクティベーションを使用したガバメントクラウド環境の統合管理
toru_kubota
0
140
TypeScript 7.0の現在地と備え方
uhyo
7
2k
Phase12_総括_自走化
overflowinc
0
1.2k
Phase04_ターミナル基礎
overflowinc
0
2k
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.2k
Thoughts on Productivity
jonyablonski
75
5.1k
Odyssey Design
rkendrick25
PRO
2
550
Marketing to machines
jonoalderson
1
5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
480
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
290
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Transcript
JubatusΑ· ʙOSSͷϛυϧΣΞ։ൃʙ 201712݄23 ୈ1ճΣϒγεςϜΞʔΩςΫνϟݚڀձ ദݪलଂʢ@suma90hʣ 1
ࣗݾհ • Shuzo Kashihara (ദݪ लଂ, @suma90h) • ઐ •
LinuxγεςϜϓϩάϥϛϯά(userland): C, C++(03) • Jenkins͓͡͞Μ • ٕज़എܠ • PFI࣌ʙɿશจݕࡧɾϨίϝϯυΤϯδϯͷ։ൃʢςετʣɺJubatus։ൃɺࣾΣϒΞϓϦ ͳͲ • झຯͳͲ • ಡॻ: ྺ࢙, Պֶ, খઆ • ఱମࣸਅ 2
Jubatusͱ • ػցֶशʢࢄʣͷϛυϧΣΞٴͼϑϨʔϜϫʔΫ • αʔόʗΫϥΠΞϯτͷར༻ܗଶΛऔΓɺͦͷؒRPCͰΓ औΓ͢Δ • JubatusΛϥΠϒϥϦͱͯ͠ݺͼग़ͯ͑͠ΔCPython֦ு͋ Δ [Ebedded
Jubatus Python] • ࢄͨ͠αʔόͷΠϯελϯεͰฒྻʹֶशɾਪͰ͖Δͷ͕εΰ Π • http://jubat.us/ 3
WSAݚͰ͍ͨ͜͠ͱ • OSSʢϛυϧΣΞΛྫʹ͢ΔʣͷνʔϜ։ൃʹ͓͚Δ • νʔϜϏϧσΟϯάʗνʔϜ։ൃʹ͓͚Δϊϋɾݟ ʹؔͯ͠ɺ • OSSϛυϧΣΞ։ൃʹ͓͚Δҙࢤܾఆͷํɺٞใڞ༗ͷํͷհ • ιϑτΣΞͷ࣭Մ༻ੑʢSLAʣΆ͍͜ͱͷ࣭ɾఏىʢٞʣ
ʹ͍ͭͯҰൠԽ͍ͯͨ͠͠ɻલऀׂͱνʔϜӡ༻ͳύλʔϯͳͷʹରͯ͠ɺޙऀ ٕज़͕͋ͬͯͲ͏Ξϓϩʔν͢Δ͔ͱ͍͏ͱͳ͍ͬͯΔɻલऀʹ͍ͭͯ༧ ߘʹॻ͍ͨͨΊɺεϥΠυͰׂѪͯ͠ςʔϚΛߜͬͨ 4
։ൃνʔϜ͕࢝·Δͱ͖ • ࠷ॳ͔Θ͔Βͳ͍͕ɺϧʔϧɾ։ൃϓϩηεΛ࡞ͬͨΓܾΊΔ͜ͱ͕࢝·Δʢؾ͕͢Δʣ • ୭͔ҰਓͷΦϦδφϧ͕͋Γɺ͔ͦ͜Β͋Δఔ۩ମੑ͕͋Δঢ়ଶͰ࢝·Δ͜ͱ͋Δ • ར༻͢ΔαʔϏεɺϓϥοτϑΥʔϜ҉ͷ͏ͪʹܾ·Δ͜ͱ͋Δ • GitHub? GitLab?ɺOSʢLinux?
Windows?ʣɺϛυϧΣΞʢApache? Nginx?ʣɺϓϩάϥϛϯάݴޠ • ʢಛʹOSSͷʣιϑτΣΞͱܾͯ͠ΊΔɺܾ·Δͷͱͯ͠ҎԼͷΑ͏ͳͷ͕͋Δ • ໊ɺίʔυωʔϜɺϥΠηϯε • ίʔσΟϯάنʢελΠϧʣ • Ϗϧυํ๏࠾༻͢Δπʔϧ܈ʢϓϩάϥϛϯάݴޠʹґଘ͢Δʣ • ϦϦʔεํ๏ɺόʔδϣχϯάɺυΩϡϝϯςʔγϣϯ • ιʔείʔυ܈Λϗετ͢ΔॴʢGitHubʣ • ෦ͷϨϏϡʔํ๏ɺOSSͷ߹֎෦͔ΒͷߩݙͷରԠํ๏ etc • ʢҰൠԽ͍ͨ͠༰Ͱͳ͘ɺ୯ʹ͋ΔΑͶɺͱ͍͏ྻڍͰ͢ʣ 5
͍͔ʹͯ͠νʔϜ։ൃΛճ͔͢ • ڀۃతʹνʔϜશһ͕෦ɾ֎෦ͷࡶ༻ʹؾΛऔΒΕͣʹύϑΥʔϚϯεΛൃشͰ͖Δ͔ɺͩͱࢥ͍ͬͯΔ • ՝ • νʔϜΛ࡞Δͱ͖Ͳ͏͍͔ͬͯ͘ [→ 2017༧ߘ] •
ίʔσΟϯάҎ֎ʹൃੜ͢ΔҰൠతͳࡶʹର͢ΔͲ͏ͯ͠ൃੜ͢ΔࣄͷରԠ • ղܾํ๏ • ఆܕతͳύλʔϯʹର͢ΔԠΛ͋Β͔͡ΊܾΊͨΓɺࣗಈԽͰ͖Δͱ͜Ζͨ͠Γ͢Δ • ϏϧυϦϦʔεͳΒࣗಈԽͷΈΛɺOSSͷߩݙͳΒͲ͏͍͏ϨϏϡʔ߲ɾํͳΒϚʔδͰ͖Δ ͷ͔νʔϜͰ͍͍ͪͪ૬ஊ͠ͳ͍͍ͯ͘ϑοτϫʔΫͷ͍ܰମ੍Λ࡞Δ • ߟ͑Δ͖ͱ͜ΖͰ಄Λ͍ɺ࡞ۀͰྲྀͯ͠ߦ͑Δ෦ʹ࣌ؒΛ͔͚ͳ͍ͰιϑτΣΞΛ։ൃ͍ͯ͘͠ • ࠔͬͨͱ͖Ϧʔμʔʹղܾͯ͠͠·͏ʢϦʔμʔͷෛ୲͕͋Δͱ͍͏՝Δʣ 6
OSS։ൃίϛϡχςΟʹ͓͚Δ ҙࢥܾఆ • ։ൃνʔϜશൠͰҙࢥܾఆΛഭΒΕΔͱ͖ʢίϛϡχςΟͰʣ • ։ൃରͷઃܭΛܾΊͯߦಈ͢Δͱ͖ʢٕज़తͳͷͰʣ ͷ2ύλʔϯʹͬ͘͟ΓͱେผͰ͖Δͱࢥ͏ 7
ҙࢥܾఆϙϦγʔͷߟ͑ํ • ୡ͍ͨ͜͠ͱɾΓ͍ͨ͜ͱ • ॏཁɾॏཁͰͳ͍ࣄʹ͍ͭͯͷɺνʔϜͰͷਝͳҙࢥܾఆ͕͍ͨ͠ • νʔϜ։ൃ͋Δ͋Δ • ϒϨΠϯετʔϛϯάɺ͘͠ΧΦε •
ࣗసंஔ͖ͷٞ ʹͳ͕ͬͯٞऩଋ͠ͳ͍ • ղܾࡦ • 1໊ʙ3໊΄Ͳͦͷʹڧͦ͏ͳ୲ϝϯόʔΛબग़ͯ͠ɺͦͷϝϯόʔ͔Βఏग़͞Εͨ ఏҊΛνʔϜͰٞ͢ΔʢΏΔ͍ΞΠσΟΞ͕۩ମతʹݻ·͖͍ͬͯͯΔͷͰɺνʔϜ શମͰϨϏϡʔ͍͢͠ʣ • ຊʹࠔͬͨͱ͖Ϧʔμʔ͕ܾఆ͢Δʢ※ wikipedia: ༏͍͠ऴͷಠࡋऀ ) 8
։ൃઃܭΛٞ͢Δͱ͖ • ୡ͍ͨ͜͠ͱɾΓ͍ͨ͜ͱ • ৽ن࣮ɾઃܭͷݟ͠ͳͲɺιϑτΣΞʹେ͖ͳมߋΛՃ͍͑ͨͱ͖ͷઃܭใͷڞ༗ͱ ϨϏϡʔΛ͍ͨ͠ • ͪΖΜɺνʔϜϝϯόʔશһͰϗϫΠτϘʔυ্ͰϒϨΠϯετʔϛϯά͢Δͷඇݱ࣮త • ղܾࡦ
• σβΠϯυΩϡϝϯτͷ࡞ͱڞ༗ • ίʔυΛॻ͘લʹσβΠϯυΩϡϝϯτΛ࡞͠ɺڞ༗͠ɺϨϏϡʔͯ͠Β͏ελΠϧ • ୈҰʹࣥචऀͷ಄ͷதͰɺਓʹಡΊΔܗͷઃܭจॻ͕͢Δ • ࣍ʹɺͦΕΛͬͯνʔϜϝϯόʔ͕ઃܭΛϨϏϡʔͰ͖Δঢ়ଶʹͳΔ • ઃܭͷڞ༗ͱٞGoݴޠͷߩݙऀ͚จॻͰਪ͞Ε͍ͯΔ 9
ʲօ༷ͷ࣭ɾఏىʳ ιϑτΣΞͷ࣭ɾՄ༻ੑΛͲ͏ҡ͍͔࣋ͯ͘͠ • ۜͷؙ͕ͳ͍͜ͱʹରͯ͠Ͳ͏ΞϓϩʔνΛͱΔ͔ʢόάͷͳ͍͜ͱɺՄ༻ੑ, MTBFʁʣ ʮͲ͜·Ͱςετ ͢ΕऴΘΓ͕͘Δͷʁʯ • ྃʹର͢Δࢦඪ͋Δʢৄ͘͠ͳ͍Ͱ͢ɻͦΕͰɺΫϦΞͨ͠Βຊʹ͍͍ͷʁɹͱ͍͏͋Δʣ •
JubatusͰςετʹՃ͑ɺQPS(Query per Second)ݟ͍ͯͨ • ґଘϥΠϒϥϦͷόάιϑτΣΞʹӨڹ͢Δ͜ͱ͕͋ΔɻґଘϥΠϒϥϦؚΊͨ • Trusted computing baseͱ͍͏֓೦ͱɺͦΕΛࢀߟʹγεςϜͷྖҬͰ৴པ͢Δ෦Λݶఆ͢Δߟ͑ํͲ͏͔ ʢ͓ͦΒ͘ҙࣝͯ͠ͳ࣮ͯ͘ફ͍ͯ͠Δʣ • ྫ͑ɺCPU/OS(Linux)όά͍ͬͯͳ͍ͷͱͯ͠ɺ৴པͰ͖Δͱߟ͑Δ • ͘͠ɺόάͬͯͯସՄೳͳͷͱͯ͠ɺγεςϜͱͯ͠ӅṭՄೳͳͷͱߟ͑Δ • ϓϩάϥϛϯάͷํ๏ɾιϑτΣΞςετͷख๏ɾγεςϜશମͷෆ۩߹ʹର͢ΔΞϓϩʔν(Chaos Monkey) ͳͲଘࡏ͍ͯ͠Δ [2017༧ߘ] • ςετέʔεϨϕϧͰɺೖྗύλʔϯΛཚͰ͍͘Βੜͯ͠ॏେͳόάʹ໓ଟʹͨΒͳ͍ʢܦݧʣ 10
·ͱΊ • OSSͰͷҙࢤܾఆɺઃܭϨϏϡʔํ๏Λհͨ͠ • [ҙ]ҙࢤܾఆʹ͍ͭͯɺνʔϜϝϯόʔ͕ࣗൃతʹߩݙ Ͱ͖ΔϝϯόʔͰߏ͞ΕΔͱ҉ͷ͏ͪʹԾఆ͍ͯ͠Δ͔ • σβΠϯυΩϡϝϯτͱϨϏϡʔମ੍ʹ͍ͭͯհͨ͠ •
ଞʹڞ༗͍ͨ͠ςʔϚ͋Δ͕ɺ༧ߘΛࢀর • ࣭ɾఏىͱ͍͏ܗͰɺςετͷྃՄ༻ੑͷҡ࣋ͱɺղ ܾ͢Δ͔͠Εͳ͍Ξϓϩʔνʹ͍ͭͯऔΓ্͛ͨ 11