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
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
570
2025 年私の Terraform に関するふりかえり / ゆるSRE勉強会 #14
takaishi
0
760
スロークエリとの戦いの軌跡2024 / ゆるSRE勉強会 #10
takaishi
1
930
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
Does an AI Watermark Survive Translation?
machinetranslation
0
520
KAEN Company Deck
kaen
PRO
0
240
Oracle AI Databaseデータベース・サービス: BaseDB/ExaDB-Dの可用性
oracle4engineer
PRO
1
1.1k
bet_ai_day_2026_session02
agenticsec
1
680
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
2
1.4k
Azure App Service / Container Apps の組み込み認証
kuniteru
0
130
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.3k
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
0
110
全社に広がるMCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏
mtpooh
3
240
[RSJ26] AnoleVLA: Lightweight Vision-Language-Action Model with Deep State Space Models for Mobile Manipulation
keio_smilab
PRO
0
100
VPCでもFloatingIPを使いたいんだ
y_kotani
1
140
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
580
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
260
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
The Invisible Side of Design
smashingmag
301
52k
So, you think you're a good person
axbom
PRO
2
2.1k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
360
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
300
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Un-Boring Meetings
codingconduct
0
400
Git: the NoSQL Database
bkeepers
PRO
432
67k
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