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
サービス基盤におけるRuby~JSOX編~ / speee_pepabo_ruby
Search
Ryo Takaishi
January 18, 2017
Technology
5k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サービス基盤におけるRuby~JSOX編~ / speee_pepabo_ruby
Ryo Takaishi
January 18, 2017
More Decks by Ryo Takaishi
See All by Ryo Takaishi
通知再考 ~ 最高のアラート通知を今改めて考える ~
takaishi
0
580
2025 年私の Terraform に関するふりかえり / ゆるSRE勉強会 #14
takaishi
0
890
スロークエリとの戦いの軌跡2024 / ゆるSRE勉強会 #10
takaishi
1
940
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
takaishi
2
680
どうやればインシデント対応能力を鍛えられるのか? / SRE Kaigi 2025
takaishi
13
13k
Podcastを3年半続ける技術と得た物 / ya8-2024
takaishi
5
2.1k
入門!ClusterAPI 〜 k8s クラスターも k8s API で管理したい 〜 / k8s_meetup_31
takaishi
3
4.9k
CloudNativeへの道 リーダーシップとフォロワーシップ / 201911-cndjp13
takaishi
2
1k
ClusterAPI v1alpha1 → v1alpha2 / k8s_meetup_23
takaishi
1
1.7k
Other Decks in Technology
See All in Technology
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
350
10分で知る最近のOmarchy
komagata
0
350
バイブコーディング時代のWebアプリ開発入門~Cloud Runで学ぶセキュアなビルドとデプロイ
waiwai2111
1
130
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
3k
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
510
ソフトウェアDNAとクラウドエージェントのススメ
cloudace
0
110
人間はどの意思決定を手放せるのか
kawasima
14
7k
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
9
960
2026_devsumi_ozono.pdf
o3
3
510
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
150
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
160
事業課題から技術的負債に向き合う
sansantech
PRO
2
1.9k
Featured
See All Featured
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
Rails Girls Zürich Keynote
gr2m
96
14k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
840
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Speed Design
sergeychernyshev
33
2.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
A Soul's Torment
seathinner
8
3.6k
Transcript
ʙ+409ฤʙ ∁ੴྒ(.01FQBCP *OD 3VCZΤϯδχΞ͕ޠΔɺͷৼΓฦΓͱ͜Ε͔Β αʔϏεج൫ʹ͓͚Δ3VCZ
ιϑτΣΞΤϯδχΞ ∁ੴྒ!S@UBLBJTIJ (.01FQBCP *ODNJOOFج൫νʔϜ
ΩʔϘʔυপ w ڈɿࣗΩʔϘʔυϦϓϨʔε͍ͨ͠ʜ w ڈ݄ɿ&SHP%PY&; w ڈ݄ɿ)BQQZ)BDLJOH,FZCPBSE1SP+1 w ڈ݄ɿ,JOFTJT'SFF4UZMF w
ࠓ݄ɿ)BQQZ)BDLJOH,FZCPBSE1SPࠓ͜͜ w ࠓޙɿࣗ࡞͔ʜʂʁ
None
ࠓͷ
ఆظδϣϒͷϩάΛ 4MBDLʹఴ͢Δ
ͳͥͬͨͷ͔
ͳͥͬͨͷ͔ w +409ͷࠪͰඞཁʹͳͬͨ w +409 w ࣾΛͪΌΜͱίϯτϩʔϧ͠·͠ΐ͏ɺͱ͍͏͜ͱ ࡶ
w ͨͱ͑ʜ w ݖݶΛ࣋ͭϢʔβͷΈγεςϜʹΞΫηεͰ͖Δ͔ʁ w γεςϜมߋͷཤྺ͕ཧ͞Ε͍ͯΔ͔ʁ
ͱ͍͑ w ࠪʹؔͳ͓ͬͯ͘͘ͱศར w αʔϏε্Ͱಈ͘ఆظδϣϒͷ࣋ͭ՝ ͪΌΜͱఆظతʹಈ͍͍ͯΔͷ͔ͳʁ ϩάͲ͜ʹ͋ΔΜͩΖ͏ʁ ͦͷϩάɺͲͷδϣϒͷͷͩΖ͏ʁ
ղܾࡦɿՄࢹԽ ͪΌΜͱఆظతʹಈ͍͍ͯΔͷ͔ͳʁ w ಈ͍͍ͯΔͷ͕ݟ͑Δ͜ͱ ϩάͲ͜ʹ͋ΔΜͩΖ͏ʁ w ࣦഊͨ࣌͠ɺ͙͢ʹΘ͔Δ͜ͱ ͦͷϩάɺͲͷδϣϒͷͷͩΖ͏ʁ w ϩάͱδϣϒ͕ؔ࿈͚ͮΒΕ͍ͯΔ͜ͱ
+409ؔͳ͘ศར
Ͳ͏ՄࢹԽ͢Δ͔
Ͳ͔͜Λݟʹ͍͘ͷ ݁ߏΊΜͲ͏ʜ
ීஈ͔Β͍Δॴ͕͍͍
ීஈ͔Β͍Δॴʜ
ͩʂ
4MBDLʹͦ͏
λεΫ͕ࣦഊͨ࣌͠0,
Ͳ͏Δ͔
Ͳ͏Δ͔ Batch Tempfile ǎǽǬῘƵ๙ᆩ ㊗ǎǽǬປਔƵ๙ᆩ ၂ℭǫƷƺȁƎℼŰ䴘Ƣ ǎǽǬƑȃdžƵเڱ ǎǽǬƵ⻎ྛ
Ͳ͏Δ͔
Ͳ͏Δ͔ ࣮ߦલޙʹ4MBDLʹ௨ ࣮ࡁΈ䠼ʢNJ[P3SBLF@OPUJpDBUJPOʣ ࣮ߦޙʹ4MBDLʹϩάΛఴ ະ࣮䠼 ͜ΕΛ࣮ݱ͢Εཁ݅Λຬͨ͢ʂ
λεΫͷϩάΛ 4MBDLʹఴ͢Δ
λεΫͷϩάΛ4MBDLʹఴ͢Δ λεΫͷϩάɾඪ४ग़ྗΛऔಘ औಘͨ͠ϩάΛ4MBDLʹఴ
λεΫͷϩάɾඪ४ग़ྗ Λऔಘ͢Δ
λεΫͷϩάɾඪ४ग़ྗΛऔಘ͢Δ w ϩάɾඪ४ग़ྗͷ͖ઌΛҰ࣌ϑΝΠϧʹ͢Δ w ϩάɿ"DUJWF4VQQPSU-PHHFSCSPBEDBTU w ඪ४ग़ྗɿ.VMUJ*0
"DUJWF4VQQPSU-PHHFSCSPBEDBTU
"DUJWF4VQQPSU-PHHFSCSPBEDBTU w ϩάΛෳͷ-PHHFSʹૹΔͨΊͷϝιου w ྫʣඪ४ग़ྗ ϑΝΠϧ w ྫʣϑΝΠϧ ϑΝΠϧ new_logger
= ActiveSupport::Logger.new(logdev) multiple_loggers = ActiveSupport::Logger.broadcast(new_logger) @logger.extend(multiple_loggers)
.VMUJ*0
.VMUJ*0 w ෳͷ*0ʹର͠ॲཧΛߦ͏ͨΊͷΫϥε w TUEPVUDMBTT*0 w ྫʣ45%065 ϑΝΠϧ class MultiIO
# @param [Array<IO>] io_list def initialize(io_list) @io_list = io_list end [snip] def write(str) @io_list.each do |io| io.write(str) io.flush end end [snip] end
ϩάΛ4MBDLʹఴ͢Δ
ϩάΛ4MBDLʹఴ͢Δ w "1*Λͬͯ4MBDLʹϑΝΠϧΛఴͰ͖Δ pMFTVQMPBE w XSBQQFSMJCSBSZΛ༻ MJOZPXTCSFBDBO def send_log_slack(task,
tmplog) Breacan.access_token = '#{SLACK_ACCESS_TOKEN}' arg = { channels: ENV['RAKE_NOTIFY_TO'] || '#minne_dev', file: Faraday::UploadIO.new(tmplog.path, 'text/plain'), filename: "#{File.basename(task.name)}_#{Time.now.strftime('%Y%m%d%H%M%S')}.log" } Breacan.files_upload(arg) end
pMFTVQMPBEͷ᠘ w ௨ৗͷߘ༻"1*ͩͱΞΠίϯ໊લΛมߋͰ͖Δ w pMFTVQMPBEෆՄ w ʮͱΓ͋͑ͣࣗͷτʔΫϯΛ͠Β͘͏ʯͱ͔Δͱʜ
pMFTVQMPBEͷ᠘ w ௨ৗͷߘ༻"1*ͩͱΞΠίϯ໊લΛมߋͰ͖Δ w pMFTVQMPBEෆՄ w ʮͱΓ͋͑ͣࣗͷτʔΫϯΛ͠Β͘͏ʯͱ͔Δͱʜ
͓ΘΓʹ
͓ΘΓʹ w 3BLFλεΫͷ࣮ߦલޙͰ4MBDLʹ௨ʢ࣮ࡁΈʣ w 3BLFλεΫ࣮ߦޙɺϩάΛ4MBDLʹఴʢ࣮ࡁΈʣ
Ͳ͏Δ͔
͓ΘΓʹ wϩά͕4MBDLʹ͋Δ wˠδϣϒ͕ࣦഊ͙ͨ࣌͢͠ݟΒΕΔʂศརʂ wج൫νʔϜͰɺ3VCZͰαʔϏεΛΑ͍ͯͧ͘͘͠
܅ϖύϘͰಇ͔ͳ͍͔ʁ ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU