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
“Railsな人” のための低レイヤへの招待 / introduction-to-low-le...
Search
KONDO Uchio
May 21, 2021
Technology
5.3k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
“Railsな人” のための低レイヤへの招待 / introduction-to-low-level-mruby
銀座Rails#34
https://ginza-rails.connpass.com/event/211013/
KONDO Uchio
May 21, 2021
Transcript
77 slides
l3BJMTͳਓzͷͨΊͷϨΠϠͷট 6DIJP,POEP(.01FQBCP *OD ۜ࠲3BJMT ͦΕɺNSVCZͰ
γχΞɾϓϦϯγύϧΤϯδχΞ ۙ౻ Ӊஐ࿕ / @udzura https://blog.udzura.jp/ Uchio Kondo ٕज़෦ ٕज़ج൫νʔϜ
@ GMOϖύϘ / Ԭ ΤϯδχΞΧϑΣʢԬࢢẂנจԽձؗʣ αϙʔλʔ Duolingo Diamond Leaguer 💎 #Ruby #Rust #mruby #Containers #eBPF #CRIU #Seccomp #RubyKaigi #CloudNativeDays #Zumba #γϨϯ #FitBoxing2
͜͏͍͏ຊΛॻ͖·ͨ͠
ϨΠϠ γεςϜϓϩάϥϛϯά
γεςϜϓϩάϥϛϯάͱ w Α͘ݟ͔͚Δͷ࣍ͷΑ͏ͳ༰Λࢦͯ͠ʮγεςϜϓϩάϥϛϯάʯͱ͍͏߹Ͱ͢ɻ w $ݴޠʹΑΔϓϩάϥϛϯά w ΞηϯϒϦݴޠΛҙࣝͨ͠$ݴޠʹΑΔϓϩάϥϛϯά w ݴޠॲཧܥʢΠϯλϓϦλΛؚΉʣɺಛʹωΠςΟϒίʔυΛੜ͢ΔίϯύΠϥͷ։ൃ w
04ࣗͷϓϩάϥϛϯά w 04ͷఏڙ͢ΔػೳΛͬͨϓϩάϥϛϯά w ຊ࿈ࡌͰɺҰ൪࠷ޙͷʮ04ͷఏڙ͢ΔػೳΛͬͨϓϩάϥϛϯάʯΛγεςϜϓϩάϥ ϛϯάͷఆٛͱͯ͠Λ͢͢Ί·͢ɻ (PͳΒΘ͔ΔγεςϜϓϩάϥϛϯάୈճΑΓ
04ͷػೳͱ wϑΝΠϧҰͭಡΉɺλʔϛφϧʹҰͭจࣈΛදࣔ͢ΔɺϓϩηεΛ࡞ ΔɺͦͷதͰ04ͷػೳ͕ΘΕ͍ͯΔɻ w͔͠͠ɺීஈɺΈͳ͞Μ͕͍͍ײ͡ʹϓϩάϥϜΛಈ͔ͤΔΑ͏ɺ ࠷ݶͷͱ͜ΖҎ֎ӅΕ͍ͯΔͱݴ͑Δɻ w04ͷػೳͷதʹɺηΩϡϦςΟɺαʔόͷՄ༻ੑϓϩάϥϜͷ ύϑΥʔϚϯεʹܨ͕Δߴͳͷ͋Δɻ
γεςϜίʔϧ w04ͷػೳΛ͏ͨΊͷΠϯλϑΣʔε w$16ʹɺϢʔβϞʔυͱΧʔωϧϞʔυ͕͋Δɻ wΧʔωϧϞʔυͰɺॏཁͳ$16໋ྩΛ࣮ߦͰ͖ͯ͠·͏ͷͰɺ Ϣʔβ͕ීஈ͔Βͦ͏͍͏໋ྩΛݺͼग़ͤΔͱةݥɻ wͳͷͰɺϞʔυΛ͚ɺී௨ͷϓϩάϥϜ͕ةݥͳૢ࡞ΛͰ͖ͳ͍Α ͏ɺඞཁͳ෦ͷΈ04͕ΠϯλϑΣʔεΛ༻ҙ͍ͯ͠Δ ৄࡉʮΈ͔ΜຊʯลΓΛಡΉͱ͍͍Ͱ͢
$16ͷϞʔυͱγεςϜίʔϧ ϓϩηε ϢʔβϞʔυ $16 ΧʔωϧϞʔυ ϢʔβϞʔυ γεςϜίʔϧ ॏཁͳ$16ػೳΛͬͯ 04ͷ͓ࣄΛ͢Δ ੍ޚΛ͢
Χʔωϧͷ͓ࣄͱɺϢʔβͷ͓ࣄ͔Ε͍ͯΔɺ͙Β͍ͷཧղͰ͍ͬͨΜ0,
ΞϓϦέʔγϣϯΛࢧ͑ΔϨΠϠΛΔ wϢʔβϥϯυͷϓϩάϥϜɺڀۃతʹʮϢʔβϥϯυͰͷܭࢉʯͱ ʮγεςϜίʔϧͷݺͼग़͠ʯͷΈΛ͍ͯ͠Δͱߟ͑ΒΕΔ wΓ͍ͨ͜ͱΛ࣮ݱ͢Δ্Ͱॏཁͳɺ04ͷੈքͰͷࣄΛΖ͏
ʹཱͭͷʁ
ʮϨΠϠʯͷΞϓϩʔνΛͯ͠ΈΑ͏ wϨΠϠʮछͷਆثʯ wͦͷதͰɺstrace(1)ͱperf(1)ͷ͍ํΛσϞ͠·͢ wʢࣗମਓతͳγνϡΤʔγϣϯͰ͢ʣ strace(1) gdb(1) perf(1) valgrind(1)
TUSBDF
strace(1) wରͷϓϩάϥϜ͕ൃߦ͢Δ γεςϜίʔϧΛࢹ͠ɺ Կ͕Ͳ͏ݺͼग़͞Ε͔ͨ දࣔ͢Δπʔϧ w ΦϓγϣϯʹΑΓɺݺͼग़͠ͷ౷ܭදࣔͰ͖Δʢࠓճෆ༻ʣ ͍͕ͭ͜ϚείοτΩϟϥʁ
wҎԼͷΑ͏ͳ4JOBUSBͷΞϓϦέʔγϣϯΛ্ཱͪ͛ͨɻ
ଓ͖ w͜ͷΞϓϦέʔγϣϯΛಈ͔͍ͯ͠ΔڥͰɺ wlocalhost:4567ΞΫηεͰ͖Δ w127.0.0.1:4567ΞΫηεͰ͖ͳ͍ w͜ΕͲ͏ͯ͠ʁ ·͋ɺ͙͢צ͖ͮͦ͏ͳͰ͕͢
TUSBDFͰோΊͯΈΑ͏ •strace -e network ${command}
TUSBDFͰோΊͯΈΑ͏ •strace -e network ${command} ໌Β͔ʹෆࣗવͳCJOE ͷൃߦ͕͋Δ "'@*/&5
DVSMͷଆ wMPDBMIPTU*1Wɺʢવʣ*1WͰͭͳ͗ʹߦ͘
ղܾฤ wMPDBMIPTUͷղܾ͕ม͔ɻؔͦ͠͏ͳϑΝΠϧFUDIPTUT ⁉ ⁉ ⁉ ⁉ ୭ͩΑ͜ΜͳઃఆೖΕͨͭ
IPTUTΛ͢ͱͪΌΜͱ͜͏ͳΔɻ
QFSG
perf(1) w-JOVYͷͨΊͷߴػೳύϑΥʔϚϯεੳπʔϧɻ w$16ͷΧϯλ౷ܭใɺ ֤ؔͷΦʔόϔουɺ ͳͲͳͲΛूܭදࣔ
w࣍ͷ3BJMTΞϓϦέʔγϣϯͷIFMMPJOEFYͷΞΫηε͕ົʹ͍ɻ ιʔείʔυΛݟͳ͍ͰݪҼΛਪଌ͠Α͏
ݱࡏͷύϑΥʔϚϯε w͜Ε͔֬ʹ
QFSGͰੳ͠Α͏ 7.ͷผͷλʔϛφϧͰ QFSGSFDPSEΛΞλον ҰԠ ϕϯνϚʔΫ ผͷϗετ ࠓճϗετϚγϯ ͚ͩͲ ͔ΒΒͤΔ
݁Ռ
݁Ռͷߟ ($͕ΕͯΔײ ($͕ΕͯΔͷͰɺ ڊେͳΦϒδΣΫτΛ ܁Γฦ͠࡞ࣺ͍ͬͯͯͯΔʁ ͔͙Β͍૾Ͱ͖Δ
݁Ռͷߟ +40/ KTPOHFN ͷ ͕ؔΘΓͱ্Ґʹ͍Δ ͔͠HFOFSBUFͰͳ͘ QBSTFͷํͳͷͰɺ ڊେͳઃఆ+40/Λύʔε ͯ͠Δͱ͔ʁ
ࢀߟίʔϧάϥϑ w໊લ͕ղܾͰ͖ͳ্͍͕ؔʹ͍Δ͚ͲɺࣅͨΑ͏ͳੳʹͳΓͦ͏
ղܾฤ wϦΫΤετຖʹڊେ+40/ઃఆΛύʔε͠ɺίϯτϩʔϥͷΠϯελ ϯεมʹΞαΠϯ͍ͯͨ͠ɻ
ίʔυमਖ਼ޙͷύϑΥʔϚϯε wҰԠΫϥεมʹΩϟογϡ͢ΔΑ͏ʹͨ͠Β͜͏͍͏ײ͡
ίʔυमਖ਼ޙͷQFSG wʢҰճΞΫηε͔ͯ͠Βͷܭଌʣ
͜͜·Ͱͷ·ͱΊ wγεςϜͷ͕ࣝ͋Δ͜ͱͷϝϦοτͷҰͭͱͯ͠ɺ γεςϜͷσόοάπʔϧ͕͑ΔΑ͏ʹͳΔ͜ͱ͕ڍ͛ΒΕͦ͏ɻ wݴޠϛυϧΣΞΛΘͳ͍ීวతͳΓํͰσόοάύϑΥʔ ϚϯεվળΛ࣮ࢪͰ͖Δɻ·ͨɺ͍͠Λݟ͚ͭΒΕΔɻ w֤ݴޠݻ༗ͷσόοΨʔʢ3VCZͳΒQSZ CZFCVH TUBDLQSPGʣΛ ͏ͱ͖ʹɺγεςϜͷ͕ࣝ͋Δํ͕ղ૾ߴ͑͘Δͣ
γεςϜΛֶͿ
γεςϜͷ͜ͱΛֶͿۙಓ wલड़ͨ͠Α͏ͳπʔϧɺγεςϜͷ͕ࣝ͋Δఔͳ͍ͱ͍͜ͳ ͤͳ͍ɻͦͷࣝͲ͏͚ͭΔʁ wࢲͨͪϓϩάϥϚͳͷͰɺγεςϜʹؔ͢ΔϓϩάϥϛϯάΛ͢Δ ͱɺରυϝΠϯʹ͍ͭͯͷཧղ͕ਂ·ΔͷͰʁ ˠγεςϜϓϩάϥϛϯάΛ࢝ΊΑ͏ʂ
γεςϜϓϩάϥϛϯάͷͨΊͷಓ۩ w$ݴޠʁ
લఏ$ݴޠͷࣝʹཱͭ wγεςϜͷ͜ͱΛΔʹઌड़ͨ͠04ͷΠϯλϑΣʔεͰ͋Δ γεςϜίʔϧΛཧղ͢Δͱ͜Ζ͔Β࢝ΊΔͷ͕ྑ͍ʢࢲݟʣ wγεςϜίʔϧΛͲ͏ݺͼग़͔͢ɺ$ݴޠͷؔͷఆٛͰཧղ͢Δ ͷ͕Ұ൪खͬऔΓૣ͘ɺௐ͍͢ɻ wͬͯΈΔͷ$ݴޠ͕Ұ൪ૣ͍ɻ
':*$ݴޠΛ֮͑Δࡍͷίπ w࣍ͷΑ͏ͳ؍Ͱ֮͑Δͱ͍͍͔ wجຊจ๏ wϙΠϯλͷجૅ wΦϒδΣΫτ͕ϝϞϦͷͲ͜ʹஔ͞ΕΔ͔ ώʔϓελοΫ wMJCDΛ͡Ίͱͨ͠جຊతͳϥΠϒϥϦͷࣝ wίϯύΠϧϦϯΫͷखॱɺ࡞๏
ͦΕͰ$ݴޠ͍͠ w$ݴޠͰϝϞϦͷҙ͕ࣝߴ·Δͷ͍͍͕ɺਓྨ͕ਖ਼͘͠ϝϞϦΛѻ ͏ͷ͍͠ɻ w$8&5PQ ·ͩ·ͩෆదͳ ϝϞϦͷѻ͍ʹؔ͢Δ ੬ऑੑ͕ଟ͍ IUUQTOFXTNZOBWJKQBSUJDMF
$ݴޠͷ͠͞ wϝϞϦʹؔ͢ΔόάΛճආ͢Δͷ͕ͱʹ͔͍͘͠ wϝϞϦϦʔΫɺμϯάϦϯάϙΠϯλɺ0P# wจࣈྻɺྻɾϚοϓͳͲجຊతͳσʔλߏΛѻ͏ͷ໘ wγεςϜίʔϧΛ୯ҰͰݺͿͷ͍͍͕ɺ࣮ࡍʹෳͷγεςϜ ίʔϧͰσʔλΛΓऔΓ͢Δͷ͕ී௨ɻ wશͯͷσʔλՃΛ$ݴޠͰΔͷେม
ͦ͜Ͱ
ɹɹɹɹͬͯʁ wΈࠐΈͷͨΊͷ3VCZ࣮ɻ wҰ෦ͷϥΠϒϥϦͷΈΛؚΉόΠφϦΛ࡞Ͱ͖ͨΓ͢Δ w$ݴޠͱͷӡ༻ੑͷྑ͔͞ΒɺϛυϧΣΞαʔόͷΈࠐΈ༻ ్ʹ׆༻Ͱ͖Δ wγεςϜϓϩάϥϛϯάͱͯͬͪ͜͠ͷಛ͕ੜ͖Δ
NSVCZͱ.3* w͋͘·Ͱผͷ࣮ɺతͷҟͳΔݴޠ͕ͩɺֶश͍͢͠Α͏ʹ ֩ͱͳΔ༷ʢ*403VCZ૬ʣڞ௨ɻ࠷৽ͷػೳॱ࣍ϙʔτ ͞Ε͍ͯΔɻ ʮ8FCͰ͑ΔNSVCZγεςϜϓϩάϥϛϯάೖʯQ
NSVCZͷڧΈ wจࣈྻૢ࡞ɺجຊతͳσʔλߏ3VCZʹͤΒΕΔ wϝϞϦͦΕͰ·͍͕ͩ͠ɺ($ͱɺϝϞϦ্ͷΦϒδΣΫτͷ ͷ֬อղ์Λ($ʹͤΔΈ͕༻ҙ͞Ε͍ͯΔ w͓࡞๏ʹैͬͯ֬อղ์͢ΕɺϝϞϦϦʔΫͷ৺͕ݮΔ w$"1*͕.3*ΑΓཧ͞Εɺ$ͷੈքͱ3VCZͷੈքͷߦ͖དྷָ͕ʹ ͳ͍ͬͯΔɻ
':*3VCZͰ$CJOEJOHॻ͚Δ͚Ͳ wͱ͍͏ΑΓɺͦͦ3VCZɺ6/*9ͰͷγεςϜίʔϧΛ͡Ίͱ ֤ͨ͠छػೳΛखܰʹ͏ͨΊʹ։ൃ͞Εͨʢཁग़య ʣ wͨͩɺࠓͷ3VCZͰͷ$CJOEJOH͔ͳΓಛघͳ໘Λఆ wNSVCZɺ$ݴޠͱͷ࿈ܞੑΛୈҰʹߟ͍͑ͯΔͷͰएׯॻ͖͘͢ ͳ͍ͬͯΔʢ͜ΕࢲݟͰ͕͢ʣɻ
ॻ͍ͯΈ·͠ΐ͏
؆୯ͳྫ wϗετ໊ɺϚγϯͷใΛऔಘ͢Δuname(1)ίϚϯυ w͜ͷ෦ͰΘΕ͍ͯΔγεςϜίʔϧΛੳ͠ɺಉ݁͡ՌΛग़͢ί ϚϯυΛ࡞ͬͯΈΔ
NSVCZͷϓϩδΣΫτΛͭ͘Δ wNSCHFNNSVCZʹ͓͚ΔHFNͷϓϩδΣΫτΛ࡞ͬͯΈΔ wNSCHFNUFNQMBUFίϚϯυͰੜɻҎԼ-JOVYͰ $ apt install gperf bison build-essential $
brew tap mrbgems/mrbgem-template # using linuxbrew $ brew install mrbgem-template $ mrbgem-template -B myuname -m 3.0.0 mruby-myuname
ϓϩδΣΫτ͕Ͱ͖ͨ
VOBNF ԿΛ͍ͯ͠Δʁ wTUSBDFͰ͍͔͚ͯΈΔ wVOBNF ͱ͍͏ରԠ͢ΔγεςϜίʔϧΛݺΜͰ͍Δ
VOBNF ͷ͍ํ wNBOίϚϯυͰ֬ೝͰ͖Δʢ͠ɺݕࡧͯ͠0,ʣ wηΫγϣϯ
$ͷίʔυΛฤू wࣗಈੜ͞Εͨ$ϑΝΠϧΛฤूɺVOBNF Λ͏ؔΛॻ͘ ΓɺҾͷܕʹ
ϝιουʹ͢Δ wࣗಈੜ͞ΕͨॳظԽ༻ؔ෦ʹهड़ɻ$3VCZʹࣅͯΔ
Ϗϧυͯ֬͠ೝ wNJSCͱ͍͏ɺJSCతͳͷ͕͋Δ wͳͷͰNSVCZͷϝιουʹͰ͖Ε͋ͱ͍ͭͷ3VCZ ϗετ໊ΛऔಘͰ͖ͨʂ
͜ͷޙ wNBOͷఆٛΛݟͯਅ໘ʹϝϯό͝ͱʹϝιουΛ࡞Γɺ දࣔ͢Δ͚ͩ wͳ͓ɺNSVCZͰίϚϯυϥΠϯπʔϧ࡞Ε·͢ wϫϯόΠφϦͰ͢ʢελςΟοΫϦϯΫ·ͰͪΐͬͱΉ͍ͣʣ wৄࡉNSVCZͳΜͪΌΒೖͱ͍͏ຊʹɻ
͞ΒͳΔ NSVCZγεϓϩͷੈք
3BJMTΛηΩϡΞʹ͢Δ w੬ऑੑ͕͋Δ3BJMTΞϓϦέʔγϣϯ͕͋Δɺͱ͢Δɻ wྫ͑ wNLOPE γεςϜίʔϧΛNLOPE ܦ༝Ͱൃߦ͞ΕΔͱ͢Δ wNLOPE
σόΠεϑΝΠϧΛ࡞͢Δ wFH/dev/zero, /dev/null, /dev/urandom
3$& ͷྫ wQJOHͷ݁ՌΛग़ྗ͢Δ ͕ͣɻ 3$&3FNPUF$PEF&YFDVUJPO ԕִૢ࡞ FH8FCΞΫηε Ͱࣗ༝ʹίϚϯυΛൃߦͤ͞ΒΕΔ੬ऑੑͷҰൠతͳݺশ
NLOPEͰ߈ܸͰ͖ͦ͏ͳྫ wྫઃఆϑΝΠϧͳͲΛىಈ࣌ͳͲͰಡΈࠐΜͰ͍ΔΑ͏ͳ߹ wͦͷઃఆϑΝΠϧΛNLOPEʹΑΓɺແݶʹσʔλΛऔΓग़ͤΔ ΩϟϥΫλσόΠε FH/dev/urandom ʹมߋ͞ΕΔͱɺಡΈࠐ Έ͕ऴΘΒͣʹ%P4߈ཱܸ͕͢Δɻ wNLOPE γεςϜίʔϧΛࣗ༝ʹൃߦͰ͖Δͱةݥ
Ծʹ੬ऑੑ͕͋ͬͨͱͯ͠ w3$&ͷΑ͏ͳಛڃͷ੬ऑੑ͕͋ͬͨ߹Ͱɺ ࠷ޙͷࡆͱͯ͠ةݥͳγεςϜίʔϧͷ࣮ߦΛ͙Έͳ͍͔ʁ wˠҰͭͷҊͱͯ͠ɺTFDDPNQΛར༻͢Δ
TFDDPNQͱ wγεςϜίʔϧݺͼग़͠ΛϑΟϧλϦϯά͢ΔΈ wྫ͑ɺಛఆͷγεςϜίʔϧͷΈڐՄ BMMPXMJTU ɺ ٯʹېࢭ EFOZMJTU ɺͱ͍ͬͨઃఆΛద༻Ͱ͖Δ w˞࣮%PDLFSͳͲɺҰൠʹΘΕΔίϯςφٕज़Ͱ෦Ͱطʹ ར༻͞Ε͍ͯΔͷͰɺࠓճ7.্ͷ͍ͪϓϩηεͷద༻ྫɻ
NSVCZTFDDPNQ wNSVCZ͔ΒTFDDPNQ γεςϜίʔϧʢਖ਼֬ʹMJCTFDDPNQΛ ܦ༝ͯ͠ʣʹΞΫηε͢ΔͨΊͷNSCHFN w!VE[VSB͕ੲίϯςφΛࣗ࡞͢Δͱ͖ʹҰॹʹ࡞ͬͨ IUUQTHJUIVCDPNIBDPOJXBNSVCZTFDDPNQ
NSVCZTFDDPNQ w͜͏͍͏%4-ͰϑΟϧλϦϯάઃఆ͕Ͱ͖Δʂ
ىಈ༻ͷNSVCZεΫϦϓτΛॻ͘ wTFDDPNQͷίϯςΫετΛϩʔυ͢ΔˠSBJMTʹFYFDWF ͢Δ wNSVCZTFDDPNQΛΈࠐΜͩNSVCZόΠφϦΛ༻ҙ͠ɺ ΞϓϦέʔγϣϯىಈ࣌ʹɺ͜ͷεΫϦϓτΛ͢
࣮ࡍʹ߈ܸͯ͠ΈΔ wNLOPE ͷݺͼग़͠ΛΤϥʔʹͰ͖ͨʂ 3BJMTͷϩάʹ͜Ε͕ग़ྗ͞ΕΔɻ
ิઆ໌ wͪΖΜଞʹةݥͳγεςϜίʔϧ͋ΔͷͰɺBMMPXMJTUϕʔεͰ ϦετΛӡ༻͢Δͷ͕ཧɻͦΕ݁ߏେมɻ w͋ͱͦͦɺSPPUͰಈ͔ͪ͠Όμϝʢ͚ͩͲɺಛݖঢ͕֨Ͱ͖ Δ߈ܸͩͬͯ͋Γ͏ΔͷͰʣ
NSVCZΛγεϓϩͰ͏ྑ͞ w͜͜·ͰΛɺৼΓฦΔͱ wγεςϜίʔϧͷݺͼग़͠نϞϊʹΑ͍͕ͬͯ͠ɺ%4-Λ ࡞ͯ͠ϥοϓ͠ɺӡ༻Λ͘͢͠Ͱ͖Δ wϫϯόΠφϦͷίϚϯυʹݻΊΒΕΔ ʢݱࡏͷ$3VCZͰ͍͠ʣ wϫϯόΠφϦͷπʔϧʹɺ͞Βʹ֎෦ͷઃఆ%4-ΛಡΈࠐ·ͤΔɺ ͱ͍͏͍ํՄೳɻDGNPE@NSVCZOHY@NSVCZ
ଟ͕࣌ؒͳͯ͘ݴ͑ͳ͍τϐοΫ
NSVCZͷιϑτΣΞΈࠐΈ wNSVCZͷԠ༻ྫͱͯ͠ɺιϑτΣΞʹΈࠐΉྫΛհ͠·͢ wNSVCZ͕Έࠐ·Εͨϛυϧͷද wNPE@NSVCZ"QBDIF)5514FSWFS NSVCZ wOHY@NSVCZOHJOY NSVCZ wIPIUUQରԠͷߴ8FCαʔόͷઃఆΛNSVCZͰॻ͚Δ
ιϑτΣΞʹΈࠐΉͱ w͍Ζ͍ΖͳϛυϧΣΞʹɺ$ݴޠʹΑΓϓϥάΠϯ֦ுػೳΛ ॻͨ͘ΊͷΠϯλϑΣʔε͕͋Δ wͦͷ$ݴޠͷΠϯλϑΣʔεʹର͠ɺNSVCZͰCJOEJOHΛॻ͚ɺ NSVCZͷεΫϦϓτ͔ΒͦͷϛυϧΣΞΛ੍ޚͰ͖Δ wγεςϜϓϩάϥϛϯάɺ ͋Δҙຯ04ʹର͠NSVCZΛ ΈࠐΜͰ͍Δɺͱݴ͑Δ
·ͱΊ
NSVCZͰΓࠐΜͰ͍͘ੈք wࠓ·Ͱ$ݴޠͷྗ͕ڧ͔ͬͨൣғͰɺ3VCZΛ׆༻Ͱ͖ΔΑ͏ʹ wγεςϜϓϩάϥϛϯά wϛυϧΣΞͷ֦ு wকདྷɺ-JOVYΧʔωϧͷ֦ுͳΜ͔
3VCZΛ͑Δൣғͷ͕Γ w3BJMTͷΑ͏ͳ8FCͷੈք͔Βɺ Πϯϑϥʹ͓͚ΔϓϩάϥϛϯάͷੈքͰ ׆༻Ͱ͖ΔΑ͏ʹͳΔͷͰ
γεςϜϓϩάϥϛϯά໘ന͍ wʮී௨ͷͭΒͷԼΛߦ͚ʯ IUUQYDDOFUCMPHBSDIJWFTIUNMɹ
ʮ#JOBSZ)BDLTʯॻධCZͩ͞͞͞Μ wόΠφϦΞϯ͕ܦݧ͍ͯ͠ΔͰ͋Ζ͏Ϩϕϧϓϩάϥϛϯά͕࣋ ͭʮυΩυΩײʯɺॻ੶ͰֶͿͷͰͳ͍ͷ͔͠Ε·ͤΜͷ ͰɺͦͷΑ͏ͳॻ੶͋Γ͑ͳ͍ͷ͔͠Ε·ͤΜɻͨͩɺຊॻΛಡ ΜͰɺͳΜ͔ͩΑ͘Θ͔Βͳ͍͚ͲʮυΩυΩײʯΛײ͡Δͱ͍͏ਓ ɺ͢ͰʹόΠφϦΞϯͳͷ͔͠Ε·ͤΜɻ ʮ3VCZJTU.BHB[JOFʯ߸ॻ੶հʰ#JOBSZ)BDLTʱ IUUQTNBHB[JOFSVCZJTUOFUBSUJDMFT#PPL#JOBSZ)BDLTIUNM
ϨΠϠͰ 3VCZΛܾΊ·͠ΐ͏
<13> wNSVCZۀք།ҰॻళͰฒͿۀॻ੶ͰɺγεϓϩͷҎԼͷΑ͏ͳτ ϐοΫΛهड़͍ͯ͠·͢ w$ϥΠϒϥϦͷ͍ํ w"QBDIF֦ு αʔόࠐ ͷॻ͖ํ w$ͷηΩϡϦςΟ όοϑΝΦʔόʔϥϯ
w֤छσόοάπʔϧ छͷਆث ͷղઆ ࣮ྫʴͰ݁ߏஸೡʹͬͯ·͢
More Decks by KONDO Uchio
See All by KONDO Uchio
大規模レガシーテストを 倒すための CI基盤の作り方 / #CICD2023
udzura
5
2.6k
Ruby x BPF in Action / RubyKaigi 2022
udzura
0
340
Narrative of Ruby & Rust
udzura
0
290
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.9k
Talk of RBS
udzura
0
520
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
880
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
840
Device access filtering in cgroup v2
udzura
1
1.1k
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
960
Other Decks in Technology
See All in Technology
SREのためのFinOps入門
muziyoshiz
3
1.5k
ラクスル会社紹介資料|エンジニア向け / RAKSUL Introduction for Engineers
raksulrecruiting
0
100
Kiro Crew 入門 (手を離しても進む仕事) | 目指せ Kiro マスター 11
inariku
PRO
4
740
Biohub - Cell Tracking During Development 5th place solution
rist
0
140
AI対話型分析を作成し、リリースするまでの話 / The Road to Release: Buiding AI Conversational Analytics
yappli_developers
0
100
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
5
330
BALLAS Technology Deck
ballas_inc
0
590
Kiro 入門 (1 つのエージェントを、どの画面からでも) | 目指せ Kiro マスター 01
inariku
PRO
6
1.7k
Reticulum, le réseau cypherpunk dont vous avez besoin !
rlifchitz
0
140
田んぼの見回りをIoTで減らしたい!水位監視から電池駆動カメラまでの試行錯誤
itosoft
1
160
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
2
1.2k
bpf_arenaとstruct_opsを使うのが難しかった話
masu_mi
0
230
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.8k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
440
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
The Limits of Empathy - UXLibs8
cassininazir
2
780
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Building the Perfect Custom Keyboard
takai
2
950
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
430
Into the Great Unknown - MozCon
thekraken
41
2.8k
SEO for Brand Visibility & Recognition
aleyda
0
4.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
sira's awesome portfolio website redesign presentation
elsirapls
0
500