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
Jubatusよもやま話 〜OSSのミドルウェア開発〜
Search
Shuzo Kashihara
December 23, 2017
Technology
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Jubatusよもやま話 〜OSSのミドルウェア開発〜
第1回Webシステムアーキテクチャ研究会
Shuzo Kashihara
December 23, 2017
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
370
Other Decks in Technology
See All in Technology
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
530
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
2.1k
AI 時代のスタートアップエコシステ厶から考究する技術的負債との向き合い方
m3m0r7
PRO
3
2.3k
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
210
絵ではじめるKubernetesセキュリティ
aoi1
4
690
映像変換サーバーなしで端末内でHLSを生成してライブ配信
hikarusato
0
130
Reactの設計論
uhyo
24
14k
おい、エージェントを使って終わらせろ
nwiizo
2
750
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
9
4.7k
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
120
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
150
JSONataとAWS Step Functionsで目指すRuntimelessな世界
mu7889yoon
0
280
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
600
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
600
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
240
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
GraphQLとの向き合い方2022年版
quramy
50
15k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
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