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
サービス基盤におけるRuby~JSOX編~ / speee_pepabo_ruby
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
550
2025 年私の Terraform に関するふりかえり / ゆるSRE勉強会 #14
takaishi
0
580
スロークエリとの戦いの軌跡2024 / ゆるSRE勉強会 #10
takaishi
1
920
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
takaishi
2
660
どうやればインシデント対応能力を鍛えられるのか? / SRE Kaigi 2025
takaishi
13
13k
Podcastを3年半続ける技術と得た物 / ya8-2024
takaishi
5
2.1k
入門!ClusterAPI 〜 k8s クラスターも k8s API で管理したい 〜 / k8s_meetup_31
takaishi
3
4.8k
CloudNativeへの道 リーダーシップとフォロワーシップ / 201911-cndjp13
takaishi
2
1k
ClusterAPI v1alpha1 → v1alpha2 / k8s_meetup_23
takaishi
1
1.7k
Other Decks in Technology
See All in Technology
ラジオの科学
frievea
0
320
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
330
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
820
私がブラウザを自作したくなった理由
supurazako
1
230
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
850
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
120
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
570
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
5.1k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
280
Forza Horizon 6 のテレメトリ機能で 自動運転に使えそうな学習データを集める話
henjin0
0
180
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Being A Developer After 40
akosma
91
590k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
How GitHub (no longer) Works
holman
316
150k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Scaling GitHub
holman
464
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Optimizing for Happiness
mojombo
378
71k
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