Slide 1

Slide 1 text

id:aereal ຍ࠿సͯ͡Ո۩ͱͳΔ Fujiwara Tech Conference 2025 (2025-01-17)

Slide 2

Slide 2 text

࿩͢͜ͱ • ࢲͱfujiwara-ware • ࢲͷ伱ؒՈ۩: frontierͷ঺հ • ࢲͳΓͷfujiwara-wareͷਫ਼ਆੑ

Slide 3

Slide 3 text

• id:aereal • GitHub: aereal • @[email protected] • https://aereal.org/ • Classiגࣜձࣾ ֶशPMF෦ ΞʔΩςΫτ • https://tech.classi.jp/ ࣗݾ঺հ

Slide 4

Slide 4 text

Ұ൪޷͖ͳfujiwara-ware • github.com/fujiwara/tracer • ʮͱʹ͔͘શ෦͘Εʯ͕࣮ݱ͞Ε͍ͯΔ • Ϋϥ΢υϓϩόΠμͱͯ͠ఏڙ͠ʹ͍͘ͷ΋Θ͔ΔͷͰ·͞ʹ伱ؒՈ۩ • ൪֎: github.com/kayac/go-katsubushi • kayac-wareͱ͍͏΂͖͔΋͠Ε·ͤΜ͕…… • GoͰॻ͔ΕͨHTTPͰ͸ͳ͍ϓϩτίϧ (memcachedϓϩτίϧ)
 Λ஻ΔσʔϞϯͷࢀߟʹͤͯ͞΋Β͍·ͨ͠

Slide 5

Slide 5 text

ࢲͱfujiwara-ware (1) • ۀ຿Ͱओʹecspressoͱlambrollʹ͓ੈ࿩ʹͳ͍ͬͯΔ • ো֐ରԠͰtracerʹ͓ੈ࿩ʹͳͬͨ͜ͱ΋͠͹͠͹ • stable੾ΓࠐΈୂ௕ɺ༨༟͕͋Ε͹RC΋ࢼ͠·͢

Slide 6

Slide 6 text

ࢲͱfujiwara-ware (2)

Slide 7

Slide 7 text

ࢲͱfujiwara-ware (3) • ·͜ͽʔ͞ΜͷൃදͰstretcherͷ͜ͱΛࢥ͍ग़͠·ͨ͠ • Capistrano 2 + Gitʹൺ΂ͯ໿40ഒߴ଎ԽͰ͖ͯখ༂Γ • ੈքల։͢Δେن໛΢ΣϒαʔϏεͷσϓϩΠΛࢧ͑Δٕज़ / YAPC::Asia Tokyo 2015 • https://speakerdeck.com/hatena/yapc-asia-tokyo-2015?slide=78

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

lambroll diff --ignore (1) • ࠩ෼ΛͱΔࡍɺjq (gojq) ͷΫΤϦͰࢦఆͨ͠෦෼Λແࢹ͢ΔΦϓγϣϯ • ίϯςφΠϝʔδͷλάͳͲ෼͔Γ͖ͬͨࠩ෼Λແࢹ͔ͨͬͨ͠ • ʮ͜͜͸ࠩ෼ग़͍ͯΔ͚Ͳେৎ෉ʯΈ͍ͨͳӡ༻Λͳ͍ͨ͘͠ • ༻్ʹΑͬͯແࢹ͍ͨ͠෦෼͕มΘΔͷͰ࣮ߦ࣌ʹࢦఆ͍ͨ͠

Slide 10

Slide 10 text

lambroll diff --ignore (2) • github.com/aereal/jsondi f • github.com/itchyny/gojqΛ࢖ͬͯࠩ෼Λग़ྗ͢ΔϥΠϒϥϦ • jsondiff.Ignore(query)ͱ͍͏ΦϓγϣϯΛ౉͢ͱdel(query)ͱ͍͏ ΫΤϦʹม׵ • ͜ΕΛ࢖ͬͯࠩ෼Λग़ྗ͢ΔΑ͏मਖ਼͞Εͨ

Slide 11

Slide 11 text

frontierͷ঺հ (1) • github.com/aereal/frontier • AWS CloudFront FunctionsͷσϓϩΠπʔϧ • lambrollʹΠϯεύΠΞ͞ΕͨσβΠϯ • AWS SDKͷͪΐͬͱݡ͍ϥού

Slide 12

Slide 12 text

frontierͷ঺հ (2) • ݱ࣌఺ͰσϓϩΠͱઃఆͷදࣔͱطଘؔ਺ͷΠϯϙʔτ͕Ͱ͖Δ • ઃఆͷࠩ෼දࣔ͸࣮૷͢Δͭ΋Γ • ઃఆϑΝΠϧͷjsonnetαϙʔτ͸ະఆ (΍Βͳ͍دΓ) • CF Functions͸ڽͬͨઃఆ͕ͳ͍ (Ͱ͖ͳ͍) ͷͰ͍Βͳ͍ͱࢥ͍ͬͯΔ • won't implementͰ͸ͳ͍ͷͰཁ๬΍༻్͕Θ͔Ε͹ߟ͑·͢ • KVS·ΘΓʹpain point͕͋Γͦ͏͚ͩͲΑ͘Θ͔͍ͬͯͳ͍

Slide 13

Slide 13 text

伱ؒՈ۩Λ࡞ͬͯΈͯ • ॱ൪ʹSDKΛݺͼग़͚ͩ͢Ͱ΋͍Ζ͍Ζؾ෇͖͕͋Δ • ͨͱ͑͹GetFunction͸ίʔυ΋ฦ͚͢ͲϝλσʔλΛؚ·ͣɺϝλσʔλ ΛಘΔʹ͸DescribeFunctionΛݺ͹ͳ͍ͱ͍͚ͳ͍ɺͱ͔ • SDKΛோΊ͍ͯΔͱΑ͘Θ͔Βͳ͍ύϥϝʔλΛݟ͚ͭͯษڧʹͳΔ • CF Functionsʹ͸stage͕͋ͬͯlive͡Όͳ͍ͱಈ͔ͳ͍ͱ͔ • ࠓޙͷͭΒΈʹͳΓͦ͏ͳ఺ (= धཁ) ʹؾ͕ͭ͘

Slide 14

Slide 14 text

伱ؒՈ۩ͷਫ਼ਆੑ • UNIX఩ֶͱ΋ҟͳΔ • ݱ୅ͷWeb։ൃ͸͋Γ΋ͷΛ૊Έ߹ΘͤΔ͜ͱ͕ଟ͍ • UNIX఩ֶͷʮͻͱͭͷ͜ͱʯ͕ࣗݾ׬݁తͰ͋ͬͨͷʹରͯ͠ɺ
 ͍·͸ྖҬԣஅతʹͳ͍ͬͯΔ • UNIXͰ͍͑͹ϓϩηεؒ௨৴͕ओ໾Ͱ͋Γ௧ΈͰ΋͋ΔΈ͍ͨͳ͔Μ͡

Slide 15

Slide 15 text

djb-wareͱͷྨࣅੑ • ͨͱ͑͹daemontools͸ʮϓϩηεΛσʔϞϯԽ͍ͨ͠ʯͱ͍͏
 ྖҬԣஅతͳؔ৺ΛҰखʹ୲ͬͯ͘ΕΔ • ݸʑͷ෦඼͸ἧ͍͚ͬͯͨͲίϚϯυҰൃͰσʔϞϯΛ࠶ىಈ͢Δͱ͔
 ซͤͯϩάΛϩʔςʔτ͢Δͱ͔࣮༻্͔ܽͤͳ͍ɾ͋Δͱخ͍͠ॲཧΛ
 ࠶ར༻Մೳʹͯ͘͠ΕΔͷ͕daemontools • ECSαʔϏεΛσϓϩΠ͢Δ࣌ɺίϯτϩʔϥΛ໰Θͣ׬ྃΛ଴͍ͪͨͱ͔
 ͦ͏͍͏ࡉ͔͍ͱ͜Ζʹख͕ಧ͘ͷ͕伱ؒՈ۩Ͱ͋Γfujiwara-ware

Slide 16

Slide 16 text

·ͱΊ • ܅͚ͩͷΦϦδφϧՈ۩Ͱ࠷ڧͷ෦԰Λ࡞Ζ͏ • ͨ·ʹCP͕σβΠφʔζϚϯγϣϯΛചΔ͜ͱ΋͋Δ͚Ͳਖ਼௚ϐϯΩϦ • ԿΑΓѪண͕༙͘ • ࡞Γ͜Έͷ༨஍͕ແݶʹ͋ΔͷͰ
 झຯϓϩάϥϛϯά (= ຍ࠿) ͷωλͱͯ͠ྑ࣭ • ͍ͭͰʹ࣮༻ੑ΋൐͓ͬͯಘ