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
盆栽転じて家具となる / Bonsai and Furnitures
Search
aereal
January 17, 2025
Programming
0
4.8k
盆栽転じて家具となる / Bonsai and Furnitures
https://connpass.com/event/338668/
aereal
January 17, 2025
Tweet
Share
More Decks by aereal
See All by aereal
How to send distibuted traces to Datadog using build own OpenTelemetry-Lambda distribution
aereal
3
280
好きな技術《コト》で、 生きていく技術 / life with what you like
aereal
5
4k
qron: Cloud Native Cron Alternativeの今
aereal
2
2.7k
自動作曲入門 / introduction to programatic music composition
aereal
1
530k
はてなブログ タグとCDK / The epic of AWS CDK and Hatena Blog Tag
aereal
2
200k
はてなブログ タグの技術選択 / The technical details of Hatena Blog Tag
aereal
3
200k
ブログサービスのHTTPS化を支えたAWSで作るピタゴラスイッチ / The construction of large scale TLS certificates management system with AWS
aereal
3
400k
AWSではてなブログの常時HTTPS配信をバーンとやる話 / The Epic of migration from HTTP to HTTPS on Hatena Blog with AWS
aereal
14
18k
ScalaとPerlでMicroservices in production / Building microservices with Perl and Scala in production
aereal
0
5.5k
Other Decks in Programming
See All in Programming
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
3
750
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
660
ニーリーにおけるプロダクトエンジニア
nealle
0
800
10 Costly Database Performance Mistakes (And How To Fix Them)
andyatkinson
0
240
すべてのコンテキストを、 ユーザー価値に変える
applism118
3
1.2k
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
0
150
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
540
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
280
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
2
150
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
110
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
270
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Designing for humans not robots
tammielis
253
25k
Into the Great Unknown - MozCon
thekraken
39
1.9k
What's in a price? How to price your products and services
michaelherold
246
12k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
How STYLIGHT went responsive
nonsquared
100
5.6k
Building an army of robots
kneath
306
45k
Transcript
id:aereal ຍసͯ͡Ո۩ͱͳΔ Fujiwara Tech Conference 2025 (2025-01-17)
͢͜ͱ • ࢲͱfujiwara-ware • ࢲͷ伱ؒՈ۩: frontierͷհ • ࢲͳΓͷfujiwara-wareͷਫ਼ਆੑ
• id:aereal • GitHub: aereal • @
[email protected]
• https://aereal.org/ •
Classiגࣜձࣾ ֶशPMF෦ ΞʔΩςΫτ • https://tech.classi.jp/ ࣗݾհ
Ұ൪͖ͳfujiwara-ware • github.com/fujiwara/tracer • ʮͱʹ͔͘શ෦͘Εʯ͕࣮ݱ͞Ε͍ͯΔ • ΫϥυϓϩόΠμͱͯ͠ఏڙ͠ʹ͍͘ͷΘ͔ΔͷͰ·͞ʹ伱ؒՈ۩ • ൪֎: github.com/kayac/go-katsubushi
• kayac-wareͱ͍͏͖͔͠Ε·ͤΜ͕…… • GoͰॻ͔ΕͨHTTPͰͳ͍ϓϩτίϧ (memcachedϓϩτίϧ) ΛΔσʔϞϯͷࢀߟʹͤͯ͞Β͍·ͨ͠
ࢲͱfujiwara-ware (1) • ۀͰओʹecspressoͱlambrollʹ͓ੈʹͳ͍ͬͯΔ • োରԠͰtracerʹ͓ੈʹͳͬͨ͜ͱ͠͠ • stableΓࠐΈୂɺ༨༟͕͋ΕRCࢼ͠·͢
ࢲͱfujiwara-ware (2)
ࢲͱfujiwara-ware (3) • ·͜ͽʔ͞ΜͷൃදͰstretcherͷ͜ͱΛࢥ͍ग़͠·ͨ͠ • Capistrano 2 + Gitʹൺͯ40ഒߴԽͰ͖ͯখ༂Γ •
ੈքల։͢ΔେنΣϒαʔϏεͷσϓϩΠΛࢧ͑Δٕज़ / YAPC::Asia Tokyo 2015 • https://speakerdeck.com/hatena/yapc-asia-tokyo-2015?slide=78
None
lambroll diff --ignore (1) • ࠩΛͱΔࡍɺjq (gojq) ͷΫΤϦͰࢦఆͨ͠෦Λແࢹ͢ΔΦϓγϣϯ • ίϯςφΠϝʔδͷλάͳͲ͔Γ͖ͬͨࠩΛແࢹ͔ͨͬͨ͠
• ʮࠩ͜͜ग़͍ͯΔ͚ͲେৎʯΈ͍ͨͳӡ༻Λͳ͍ͨ͘͠ • ༻్ʹΑͬͯແࢹ͍ͨ͠෦͕มΘΔͷͰ࣮ߦ࣌ʹࢦఆ͍ͨ͠
lambroll diff --ignore (2) • github.com/aereal/jsondi f • github.com/itchyny/gojqΛͬͯࠩΛग़ྗ͢ΔϥΠϒϥϦ •
jsondiff.Ignore(query)ͱ͍͏ΦϓγϣϯΛ͢ͱdel(query)ͱ͍͏ ΫΤϦʹม • ͜ΕΛͬͯࠩΛग़ྗ͢ΔΑ͏मਖ਼͞Εͨ
frontierͷհ (1) • github.com/aereal/frontier • AWS CloudFront FunctionsͷσϓϩΠπʔϧ • lambrollʹΠϯεύΠΞ͞ΕͨσβΠϯ
• AWS SDKͷͪΐͬͱݡ͍ϥού
frontierͷհ (2) • ݱ࣌ͰσϓϩΠͱઃఆͷදࣔͱطଘؔͷΠϯϙʔτ͕Ͱ͖Δ • ઃఆͷࠩද࣮ࣔ͢ΔͭΓ • ઃఆϑΝΠϧͷjsonnetαϙʔτະఆ (Βͳ͍دΓ) •
CF Functionsڽͬͨઃఆ͕ͳ͍ (Ͱ͖ͳ͍) ͷͰ͍Βͳ͍ͱࢥ͍ͬͯΔ • won't implementͰͳ͍ͷͰཁ༻్͕Θ͔Εߟ͑·͢ • KVS·ΘΓʹpain point͕͋Γͦ͏͚ͩͲΑ͘Θ͔͍ͬͯͳ͍
伱ؒՈ۩Λ࡞ͬͯΈͯ • ॱ൪ʹSDKΛݺͼग़͚ͩ͢Ͱ͍Ζ͍Ζؾ͖͕͋Δ • ͨͱ͑GetFunctionίʔυฦ͚͢ͲϝλσʔλΛؚ·ͣɺϝλσʔλ ΛಘΔʹDescribeFunctionΛݺͳ͍ͱ͍͚ͳ͍ɺͱ͔ • SDKΛோΊ͍ͯΔͱΑ͘Θ͔Βͳ͍ύϥϝʔλΛݟ͚ͭͯษڧʹͳΔ • CF
Functionsʹstage͕͋ͬͯlive͡Όͳ͍ͱಈ͔ͳ͍ͱ͔ • ࠓޙͷͭΒΈʹͳΓͦ͏ͳ (= धཁ) ʹؾ͕ͭ͘
伱ؒՈ۩ͷਫ਼ਆੑ • UNIXֶͱҟͳΔ • ݱͷWeb։ൃ͋ΓͷΛΈ߹ΘͤΔ͜ͱ͕ଟ͍ • UNIXֶͷʮͻͱͭͷ͜ͱʯ͕ࣗݾ݁తͰ͋ͬͨͷʹରͯ͠ɺ ͍·ྖҬԣஅతʹͳ͍ͬͯΔ • UNIXͰ͍͑ϓϩηεؒ௨৴͕ओͰ͋Γ௧ΈͰ͋ΔΈ͍ͨͳ͔Μ͡
djb-wareͱͷྨࣅੑ • ͨͱ͑daemontoolsʮϓϩηεΛσʔϞϯԽ͍ͨ͠ʯͱ͍͏ ྖҬԣஅతͳؔ৺ΛҰखʹ୲ͬͯ͘ΕΔ • ݸʑͷ෦ἧ͍͚ͬͯͨͲίϚϯυҰൃͰσʔϞϯΛ࠶ىಈ͢Δͱ͔ ซͤͯϩάΛϩʔςʔτ͢Δͱ͔࣮༻্͔ܽͤͳ͍ɾ͋Δͱخ͍͠ॲཧΛ ࠶ར༻Մೳʹͯ͘͠ΕΔͷ͕daemontools • ECSαʔϏεΛσϓϩΠ͢Δ࣌ɺίϯτϩʔϥΛΘͣྃΛ͍ͪͨͱ͔
ͦ͏͍͏ࡉ͔͍ͱ͜Ζʹख͕ಧ͘ͷ͕伱ؒՈ۩Ͱ͋Γfujiwara-ware
·ͱΊ • ܅͚ͩͷΦϦδφϧՈ۩Ͱ࠷ڧͷ෦Λ࡞Ζ͏ • ͨ·ʹCP͕σβΠφʔζϚϯγϣϯΛചΔ͜ͱ͋Δ͚Ͳਖ਼ϐϯΩϦ • ԿΑΓѪண͕༙͘ • ࡞Γ͜Έͷ༨͕ແݶʹ͋ΔͷͰ झຯϓϩάϥϛϯά
(= ຍ) ͷωλͱͯ͠ྑ࣭ • ͍ͭͰʹ࣮༻ੑ͓ͬͯಘ