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
20190126_YAPC_TOKYO.pdf
Search
Shigeki SUGAI
January 26, 2019
Technology
0
620
20190126_YAPC_TOKYO.pdf
Shigeki SUGAI
January 26, 2019
Tweet
Share
More Decks by Shigeki SUGAI
See All by Shigeki SUGAI
Cloudflare Workers + R2で低コストで画像配信を移行した話/cloudflare_workers_r2_migration
teckl
3
6.4k
CloudFront + S3環境から Cloudflare R2 + Workers環境に移行した話
teckl
3
2.4k
20210827-it-kaidan-4
teckl
0
540
レガシーサービスのMySQLバージョンアップ(5.1 -> 5.7)とRDS化
teckl
0
55
20200824-it-kaidan-3
teckl
0
690
20190808_IT_kaidan_2.pdf
teckl
0
980
ほんとにあったITエンジニアの怖い話
teckl
0
1.8k
Perlを中心としたワンライナーあれこれ
teckl
2
2.7k
Other Decks in Technology
See All in Technology
シフトレフトで挑む セキュリティの生産性向上
sekido
PRO
0
270
テストケースの自動生成に生成AIの導入を試みた話と生成AIによる今後の期待
shift_evolve
0
180
可視化プラットフォームGrafanaの基本と活用方法の全て
hamadakoji
0
230
コンテナ・K8s研修 - 前半 コンテナ基礎・ハンズオン【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
頼られるのが大好きな 皆さんへ - 支援相手との期待の合わせ方、突き放し方 -/For_people_who_like_to_be_relied_on
naitosatoshi
1
290
ペパボのオブザーバビリティ研修2024 説明資料
kesompochy
0
1.1k
Scaling Technical Excellence at 104: Evolution in AWS and Developer Empowerment
scotthsieh825
1
150
さらに高品質・高速化を目指すAI時代のテスト設計支援と、めざす先 / AI Test Lab vol.1
shift_evolve
0
190
エンジニアリングマネージャーはどう学んでいくのか #devsumi / How Do Engineering Managers Continue to Learn and Grow?
expajp
4
1.3k
地理情報とAPIのトレンド
nagix
0
160
コンテナ・K8s研修 - 後半 Kubernetes 基礎&ハンズオン【MIXI 24新卒技術研修】
mixi_engineers
PRO
1
120
サーバーレスAPI(API Gateway+Lambda)とNext.jsで 個人ブログを作ろう!
shuntaka
PRO
0
560
Featured
See All Featured
Faster Mobile Websites
deanohume
303
30k
Done Done
chrislema
179
15k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
A better future with KSS
kneath
231
17k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
26
2.1k
Building Adaptive Systems
keathley
34
2k
Into the Great Unknown - MozCon
thekraken
20
1.3k
Writing Fast Ruby
sferik
623
60k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
24
1.8k
Producing Creativity
orderedlist
PRO
340
39k
Making Projects Easy
brettharned
111
5.7k
Transcript
ϨΨγʔ1FSMͱ 1FSMͷ͜Ε͔Β !UFDLM :"1$5PLZP
:"1$
5PLZP
ΊͰ͍ͨ✨✨✨
ͯ͞
ฏωοτ࢙ʢԾʣ օ༷͝ཡͳΒΕ·ͨ͠Ͱ͠ΐ͏͔ʁ
ࠓ ओʹ ͪΐͬͱҰੲͷ1FSMΛ ަ͑ͨΛ͠·͢ Πϯλʔωοτਓձ͚ ίʔυ΄ͱΜͲग़ͳ͍ͷͰؾָʹௌ͍͍ͯͩ͘͞X
ࣗݾհ w 4IJHFLJ4VHBJʢ!UFDLMʣ w γʔαʔגࣜձࣾ w αʔόαΠυΤϯδχΞʢӡ༻ϝΠϯʣ w ΒʔΊΜ w
*OHSFTTɺ1PLÉNPO(0
ձࣾհ w 4FFTBB#MPH w 4FFTBB8JLJ w #PPN"QQ(BNFT w ΄ͱΜͲ1FSMͰಈ͍ͯ·͢ʂʂʂ̍ w
ͦͷଞ##։ൃɺεϚϗΞϓϦडୗ։ൃͳͲ
͓͠ͳ͕͖ w ࢲͱ1FSMͱͷग़ձ͍ w 8&#࣌ w Ψϥέʔ࣌ w 65'࣌ w
$(*NPE@QFSM1MBDL w ϨΨγʔڥͱ1FSM w %PDLFSͷొ w ͜Ε͔Βͷ1FSM w ςΩετॲཧݴޠͱͯ͠ͷ1FSM
ࢲͱ1FSMͱͷग़ձ͍ w ֶੜ࣌ɺࣗϓϩάϥϛϯάͱશ͘ແԑͷੜ׆Ͱ ͨ͠ w ຖͻͨ͢ΒDIʜΠϯλʔωοτΛ͢Δຖ w ࠇྺ࢙ͷʮϗʔϜϖʔδʯΛ࡞ͬͯɺ,&/58&#Ͱआ Γͷ$(*εΫϦϓτʢ1FSMʣͷܝࣔ൘ΛҙຯΘ͔Β ͣઃஔͯ͠༡ΜͰ͍ͨ
ࢲͱ1FSMͱͷग़ձ͍ w ͦͷޙɺ4*FSʹब৬͢Δɺ w ද͖+BWBͷΦʔϓϯܥͷҊ݅ w ͔͠͠ʑΤΫηϧ͍͡Γௐࠪ༻్ͳͲͰ͋ͬͯ ΠϯλʔωοτͳͲ͑ͳ͍ڥͩͬͨΓɺࣗ ͷ͖ͳΠϯλʔωοτͱԕ͍ࣄͷʑ
ࢲͱ1FSMͱͷग़ձ͍ w ͦΜͳ࣌ɺझຯͰݸਓతʹϒϩά Λॻ͍͍ͯͨͱ͜Ζ͕ۮવ༑ਓͩͬ ͨͷ͕͖͔͚ͬͰ 1FSMͷ ϒϩά ͷձࣾʹߦ͘͜ͱʹ w ࣌ʮϒϩάʯͰͳ͘ɺ·ͩ
ʮΣϒϩάʯͱ͍͏ݺশͷํ͕ ϝδϟʔͩͬͨ
ࢲͱ1FSMͱͷग़ձ͍ w ೖ͙ࣾͯ͢͠ʹ1FSMͷҊ ݅Λख͏͜ͱʹ w ͍͖ͳΓϥΫμຊΛ͞ ΕͯʮಡΜͲ͍ͯʯ w ༁͔ΒͣɺݟΑ͏ݟ ·ͶͰࣸܦ͍ͯ͘͠ʜ
࣌ͷڥ w ੈͷதͷΣϒܥاۀͱ͍͑-".1େྲྀߦ͍ͯͨ͠
࣌ͷڥ w ฐࣾయܕతͳ-".1ڥͰͨ͠ w -JOVY $FOU04 w "QBDIF w
.Z42- w 1FSM w NPE@QFSM w 4MFEHF w )5.-5FNQMBUF5FNQMBUF5PPMLJU
8&#࣌ ʢࠒʙʣ
8&#શظ IUUQTKBXJLJQFEJBPSHXJLJ8FC@ΑΓ
8&#࣌ w ʹʮΣϒਐԽʯ͕ొ w ϚογϡΞοϓ w "KBY w ϩϯάςʔϧ w
ϢʔβࢀՃܕͷίϯςϯπ͕ʹ
8&#࣌ͷ1FSM w ࣌8FCαʔϏεΛ1FSM͕େ͖ ͘ࢧ͍͑ͯͨ w ·ͩ8FC"1*͔ͬͨ࣌͠ w "KBYͷొʹΑΓ+40/͕ঃʑʹΘ Ε࢝ΊΔ
8&#࣌ͷ1FSM w NJZBHBXB͞Μͷ1MBHHFS͕Ұେ ϒʔϜʹ w ʮͦΕ1MBHHFSͰͰ͖ΔΑʯ w ʮͦΕ1MBʯ w ࣌DQBONͳͲ·ͩແ͘ɺૉ
ͷ$1"/ͩͬͨͷͰڥߏஙͷ ͕͓ࣝ΅͔ͭͳ͍ঢ়ଶͰΠϯε τʔϧ͢Δ͚ͩͰେมʜ
8&#࣌ͷ1FSM w 8FC4DSBQFS w ݸਓతʹͱͯͬͨ͞Ϟ δϡʔϧ w ͦΕ·Ͱ-81888 ͳͲͰؤு͍ͬͯͨͷ͕ɺ
91BUIͱ$44ηϨΫλ͚ͩͰ αΫοͱऔͬͯ͜ΕΔͷͱ ͯັྗతͰͨ͠✨
Ψϥέʔ࣌
Ψϥέʔ࣌ w 5XJUUFS͕ࠒ͔ΒঃʑʹຊͰྲྀߦ͠͡ΊΔ w ΠϯλʔωοτΛͬͨίϛϡχέʔγϣϯͱ͍͏ͷ ͕ɺ͋ΒΏΔʹ·ͬͨ w ͔͠͠ɺ࣌εϚϗͳͲͳ͘ɺΈΜͳΨϥέʔͰνΣο Ϋ͍ͯͨ͠
Ψϥέʔ࣌ͷ։ൃ w $PPLJF +BWB4DSJQUͳͲॳҰ͑ͣ w 3'$ҧͷΩϟϦΞϝʔϧΞυϨε w 44-5-4ରԠʹূ໌ॻͷറΓͳͲ͕͋ͬͨ w Ψϥέʔʹ࣮͞Ε͍ͯΔϑϧϒϥβͷṖͷڍಈ
Ψϥέʔ࣌ͷ։ൃ w )551.PCJMF"HFOUͰΩϟϦΞɺΛผͯ͠ग़ྗ ༰ʢը૾αΠζʣΛม͑ͨΓɺ$PPLJFαϙʔτ͕͋Δ ͔Ͳ͏͔Λఆͨ͠ w ϖʔδ͋ͨΓͷ༰ྔ੍ݶʹΑΓɺϖʔδϯάαΠζ ͕ϢʔβʹΑͬͯେ͖͘มΘͬͯ͠·͍ͬͯͨ w $PPLJFΛαϙʔτ͍ͯ͠ͳ͍͚ʹ
)5.-4UJDLZ2VFSZΛͬͯηογϣϯ*%Λ63-ʹຒ ΊࠐΜͰηογϣϯҡ࣋ͤͨ͞
Ψϥέʔ࣌ͷจࣈίʔυ w ͍͍ͩͨͷΨϥέʔ4IJGU@+*4ɺ͔͠͠-JOVY&6$+1 ͩͬͨͷͰɺ࣌จࣈίʔυॲཧ͕ࡶͩͬͨ w ιʔείʔυ&6$+1 w %#&6$+1 w Ϣʔβͷදࣔ4IJGU@+*4
w ϝʔϧɿ+*4 *40+1
ঃʑʹ65'ʹ ࠒd
1FSM65'Խͷ͕ w Ψϥέʔঃʑʹ65'͕දࣔՄೳʹͳ͖ͬͯͨ w طʹ͜ͷ࣌-JOVY65'͕σϑΥϧτ w 65'ʹڥΛد͍ͤͯ͘ͱΘ͍͠ॲཧ͔Β։์͞Ε ͯͤʹͳΕΔΒ͍͠ w +DPEFQN͔Β&ODPEFQNͷసظ
1FSM65'Խͷ͕ w ιʔείʔυ%#65'ʹҠߦ͢Δ͜ͱʹ w ࠷ॳVTFVUGΛͻͨ͢ΒೖΕ͍ͯ͘࡞ۀ w ॳ65'ϑϥάपลͷݟ͘͠ɺࢼߦࡨޡ͠ ͳ͕ΒԿ͔͢ΔຖʹจࣈԽ͚ͱͷઓ͍ w খखઌͰJT@VUGͯ͠FODPEF
EFDPEFΛ܁Γฦ͢ͱ ͍͏ͱͯݫ͍͠ࣄʹʜ
1FSM65'Խͷ͕ ͜Ε͕શͯͩͱؾ͍ͮͨͷ͋Δఔ࡞ۀ͕ਐΜͰ͔Βͩͬͨ lೖΓޱͰEFDPEFͯ͠ɼ෦Ͱͯ͢qBHHFEVUG Ͱѻ͍ɼग़ޱͰFODPEF͢Δɽ͜Ε͕ͯ͢Ͱ͢ʂͱʹ͔ ͘͜ͷجຊํΛ·͍ͬͯΕͤʹͳΕ·͢ɽz Perl Ͱ utf8 Խ͚ͨ͠ͱ͖ʹͲ͏ͨ͠Β͍͍͔ -
TokuLog
14(*1MBDL࣌ ʢʙʣ
14(*1MBDL࣌ w ʹ14(*1MBDL͕ੜ w 8FCϑϨʔϜϫʔΫͱ8FCαʔ όΛͭͳ͙ڞ௨ΠϯλϑΣʔε IUUQTHJIZPKQEFWTFSJBMQFSM IBDLFSTIVC
14(*1MBDL࣌ w ࣌NPE@QFSM͕ओྲྀɺ࠷ॳڪΔڪΔॻ͖͑ w $(*QNͱͷผΕ ͦͷޙ1FSMͰίΞϞδϡʔϧ͔ Βআ w ৄ͘͠!YUFUTVKJ͞ΜʹΑΔ<1FSMΣϒ։ൃͷதੈʙ
$(*ͱ1MBDLͷؒʙ> IUUQTXXXTMJEFTIBSFOFU YUFUTVKJQFSMDHJQMBDL Λࢀর
ϨΨγʔڥͱ1FSMʢʙʣ
ϨΨγʔڥͱ1FSM w ੈͷத͍͠ͷͰɺ༷ʑͳཁҼʢύοέʔδཧ͕ෆ ेͩͬͨɺίϯύΠϧͷൿͷλϨʣͰ؆୯ʹ1FSM ͷόʔδϣϯɺ04ͷόʔδϣϯΛ্͛ΒΕͳ͍ͱ͍͏ ͕ग़͖ͯͨ w ࣮ͷมߋɺಈ࡞֬ೝͳͲͷ͕ʑͷαʔϏεӡ༻ Ͱͳ͔ͳ͔औΓͮΒ͘ͳ͖ͬͯͨ
ϨΨγʔڥͱ1FSM w ʮৗʹ࠷৽Λ͏͖ʯͱݴ͏ͷ؆୯ͰͨΓલͷࣄ ͕ͩ w ੈͷதʹͳ͔ͳ͔ͦ͏͍͔ͳ͍ঢ়گʜ w ݱঢ়ͳ͘ಈ͍ͯΔ͠ʜ w ͦΕͬͨͱͯ͠ɺϢʔβʹϝϦοτ͋Δͷʁ
w ࠷ऴతʹɺޙճ͠ͷ࿈ଓʹʜ
ϨΨγʔڥ w ༷ʑͳཧ༝͋ΔʹͤΑɺʮελʔτΞοϓͷ࣌ʯΛɺͦͷ ··์ஔ͓ͯ͘͠ͱ༷ʑͳ΄͜Ζͼ͕ग़͖ͯ·͢ w ༷ॻͳͲແ͍ʜ w લऀ͕ډͳ͍ʜ w ੬ऑੑ͕ग़ͯ04Ξοϓσʔτ͍͠ʜ
w ։ൃڥͱ༻ڥͷϞδϡʔϧͷόʔδϣϯ͕ҧͬͯΔʜ w ͜ͷϑΝΠϧͱͬ͘ʹͬͯແ͍Μ͡Όʜʁ
%PDLFSͷొ
%PDLFS࣌ w ϨΨγʔͳڥΛ͍ͭͯ͘͠Δͱɺݟͯͳ͍ϑϦΛ ͍ͯ͠Δ͏ͪʹڊେͳෛ࠴ʹͳ͍ͬͯͨʜ w ؾ͕ͭ͘ͱ։ൃڥΛ༻ҙ͢Δ͚ͩͰঃʑʹίετ͕ ͔͔ΔΑ͏ʹͳͬͯདྷͯ͠·͍ͬͯͨ w 04ɺϥΠϒϥϦ͕ݹ͍͜ͱʹΑΓ༷ʑͳฐ͕ൃੜ w
ݹͷαʔϏε%PDLFSԽʹΑͬͯԆ໋͢Δ͜ͱʹ
%PDLFS࣌ w NPE@QFSM͔࣌Β14(*Խग़དྷͳ͔ͬͨ೦ͳαʔϏεΛ %PDLFSԽͰԆ໋ w ੲʮγεςϜ1FSMʯʹஸೡʹೖΕ͍ͯͨ$1"/Ϟδϡʔϧɺ ؾ͕ͭ͘ͱؾܰʹ$BSUPOόʔδϣϯݻఆՄೳʹͳ͍ͬͯͨ w ੲঊ͕୮೦ʹߏங͍ͯͨ͠ڥɺ୭ͰڥΛ࡞Δ͜ͱ ͕Ͱ͖ΔΑ͏ʹ
w %PDLFSԽʹΑΓɺ͜Ε·ͰͷηοτΞοϓํ๏͕7BSHSBOU Ҏ্ʹ؆୯ʹͳͬͨ
%PDLFS࣌ w ैདྷڞ༻ͷ։ൃ7.ͳͲΛ༻͍ͯ։ൃΛ͖͕ͬͯͨɺ֤ ࣗઐ༻ͷڥΛαΫοͱ༻ҙग़དྷΔΑ͏ʹ w ڞ༻ڥͰى͖͍ͯͨτϥϒϧͳ͘ͳͬͨ w ։ൃεϐʔυ͕͕͋Δ͜ͱͰɺϨΨγʔڥͷߋ৽࡞ۀɺ νʔϜͰऔΓΉ͜ͱ͕Ͱ͖ΔΑ͏ʹ
%PDLFSͰ1FSMΛখ͘͞͏ w Θ͟Θ͟1FSMͰΒͳͯ͘ɺͱ͍͏ͷ͋ΕͲɺͬ ͺΓ1FSMΛ͍͍ͨ w ͦΕ͕%PDLFSʹΑͬͯ͞Βʹݱ࣮తʹͳͬͨ
%PDLFSͰ1FSMΛখ͘͞͏ w %PDLFSԽʹΑΓڥΛશʹग़དྷΔΑ͏ʹͳͬͨͨ Ίͪΐͬͱͨ͠8FCΞϓϦͳͲΛͲ͜Ͱ࣋ͪӡΔΑ ͏ʹ w 8FCIPPLΛड͚Δͪΐͬͱͨ͠$IBUCPU w *'555Ͱख͕ಧ͔ͳ͍Α͏ͳݸਓతͳεΫϨΠϐϯά w
͍ࣺͯʹ͍ۙΑ͏ͳతͷ8FCΞϓϦέʔγϣϯͱ͔ Λྔ࢈ͯ͠ڥΛԚ͞ͳ͘ͳͬͨ
ͦͯ͠ɺ͜Ε͔Β
ੲͱൺΔͱʜ w ΨϥέʔɺεϚϗͷ಄ʹΑͬͯߟྀ͠ͳͯ͘ྑ͘ ͳ͖ͬͯͨ w 14(*ԽʹΑΓಛఆͷ8&#αʔόʹϩοΫΠϯ͞ΕΔ͜ ͱͳ͘ͳ͖ͬͯͨ w DQBON $BSUPOͷొʹΑͬͯόʔδϣϯΞοϓ༰қ
ʹ w %PDLFSԽʹΑΓݹ͍04͔Β٫Ͱ͖ΔΑ͏ʹ
ࢲ͕ߟ͑Δ͜Ε͔Βͷ 1FSMʹٻΊΒΕΔ͜ͱ
͜Ε͔Βͷ1FSM w ͘Β͍લͱ8&#։ൃΛऔΓר͘ঢ়گมΘΓɺ ޙ͔Βग़དྷͨݴޠଓʑͱ૿͖͍͑ͯͯ·͢ɻ w ޙൃͷݴޠ͕ྑ͍ͱ͜ΖΛ͍࣋ͬͯΔͷવ w ͜Ε͔Β৽نͰαʔϏεΛ࡞Δࡍʹ1FSM͕બΕΔࣄ ࣮֬ʹগͳ͘ͳ͖͍ͬͯͯΔҹ͕͋Γ·͢ɻ
͜Ε͔Βͷ1FSM w ͘ଓ͍ͨαʔϏεɺͲ͏ͯ͠΄͜Ζͼ͕ग़ͯ͘Δ w ࠓޙαʔϏε͕ଓ͘ݶΓอक͠ଓ͚͍ͯ͘ࣄඞཁ w ރΕٕͨज़ʢ1FSMʣͰ͋ͬͯɺదࡐదॴʹ༻͍Εɺ ͍ଓ͚Δ͜ͱ͕Ͱ͖Δ w աڈͱݱࡏɺະདྷܨ͕͍ͬͯΔ
͜Ε͔Βͷ1FSM w 1FSMʹҎԼͷϝϦοτ͕͋Γ·͢ɻ w େͳ$1"/ࢿ࢈ w ڧྗͳޙํޓੑ w ଞͷݴޠͱḮ৭ͷͳ͍8"'ϥΠϒϥϦ w
࠷ߴͷςΩετॲཧڥ w :"1$ɺҬ1.ͳͲͷૉΒ͍͠ίϛϡχςΟ
1FSMͷݪ ςΩετॲཧݴޠͱͯ͠ͷ1FSM
ςΩετॲཧݴޠͱͯ͠ͷ1FSM w ڈͷຊQNʹͯ!UPLVIJSPN͞ΜʹΑΔൃද͕͋ Γ·ͨ͠ɻ w 1FSMɺςΩετॲཧ࣌$(*࣌NPE@QFSM࣌ 1MBDL࣌Λܦͯɺ·ͨςΩετॲཧͷ࣌ʹճ ؼ͍ͯ͠ΔɺͱకΊΒΕ͍ͯ·ͨ͠ɻ w ʜ͕ͦΕ͜ͷޙͷΩʔϊʔτͰฉ͚Δ͔͠Ε·ͤ
ΜͷͰɺৄͦͪ͘͠ΒʹৡΖ͏ͱࢥ͍·͢
ςΩετॲཧݴޠͱͯ͠ͷ1FSM w 1FSMͱͱैདྷͷBXL TFEͱฒͿς ΩετॲཧݴޠͷͨΊͷݴޠ͔Β࢝·ͬͨ w ϫϯϥΠφʔͳͲʹද͞ΕΔΑ͏ʹɺ͜ Ε͔ΒςΩετΛѻ͏Α͏ͳॲཧͣͬ ͱ͍ͬͯ͘ w
6/*9ͷֶ͕Ҏ্ܦաͯ͠ະͩʹ ͍ଓ͚ΒΕΔΑ͏ʹɺ1FSM͜ͷઌς ΩετॲཧͷੈքͰͣͬͱ͍ଓ͚ΒΕ ΔʢͪΖΜ8FC։ൃͷੈքͰʣ
ςΩετॲཧݴޠͱͯ͠ͷ1FSM w ॊೈͰɺ͘ॻ͘͜ͱ͕Ͱ͖ɺԿΑΓૣ͘ॻ͚Δ w ޙํޓੑ͕͋ΓɺҎ্҆ఆͯ͠Քಇ͢Δ w ڧྗͳਖ਼نදݱ w ଟ͘ͷڥͰಈ࡞ w
ඇϓϩάϥϚͷํͰɺ༵େͷΑ͏ͳझຯతͳͱ͜ΖͰ w ීஈଞͷݴޠ͕ϝΠϯͰ͋ͬͯɺBXL TFEͷΑ͏ʹҰͭ ͷಓ۩ͱ͍͚͍͍ͯͬͯ͠
͜Ε͔Β1FSMΛָ͠ΜͰ ߦ͖·͠ΐ͏ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠☺