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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
900
スロークエリとの戦いの軌跡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
Oracle Cloud Network Path Analyzerを試してみた/I Tried Out Oracle Cloud Network Path Analyzer
masakiokuda
1
110
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
540
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
10
5.9k
あけおめLINE 傾向とその対策
nasa9084
0
270
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
5
1.9k
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.6k
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
2.8k
Kiro Meetup #8 Kiro アップデート (2026/3/21〜2026/9/24)
katzueno
1
130
ScotSecure West 2026 - Glasgow
raybugg
0
150
AgentCore Runtime上にAgentic Coding基盤を構築・展開する際の設計ポイントと限界点 / Design considerations and limitations when building an agentic coding platform on AgentCore Runtime
har1101
5
680
Genieを崇めよ
kameitomohiro
0
170
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
25
17k
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
My Coaching Mixtape
mlcsv
0
320
The untapped power of vector embeddings
frankvandijk
2
1.9k
A better future with KSS
kneath
240
18k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
310
Prompt Engineering for Job Search
mfonobong
0
460
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
700
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
580
Ruling the World: When Life Gets Gamed
codingconduct
0
350
Automating Front-end Workflow
addyosmani
1369
210k
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