SlideShare a Scribd company logo
Rubyで作った“mission critical” システムについて 江森 真由美
PROFILE Mayumi Emori   (@emorima) KCS Carrot Corp. Asakusarb
PROFILE 2004
PROFILE Ruby
PROFILE 2004
PROFILE CGIKit
PROFILE 2005
PROFILE Ruby  on Rails
PROFILE Ruby歴 7years First RubyKaigi for me (超初心者)
Today’s point  not webservice (framework)
Today’s point mission critical
Today’s point daemonprocess
Today’s point Ruby
Today’s point mission critical ?
mission critical 24時間365日、止まらないことを要求される基幹業務、あるいは、そのような業務遂行のために使用されるコンピュータシステムのこと。(中略) このような業務に使用されるシステムには、極めて高い信頼性や耐障害性、障害発生時に被害を最小に食い止める様々な機能、万全のサポート体制などが必要となる。          (IT用語辞典 e-Wordsより)
mission critical 24 hours 365 days cannot stop!
mission critical high reliability (高信頼性)
mission critical
mission critical なにこれ?
mission critical 困
what system?
100 threads What system?
100 processes What system?
10,000 threads What system?
UDP Socket What system?
what for?
collect data from sensors on realtime What for?
Last night, You were protected  by Ruby
始まり beginning
Beginning 2004 Prototype  Ruby 1.6.8
Beginning 10,000 threads ちゃんと 起動しなかった cannot execute
Beginning Why?
Beginning ディスクリプタ上限を 超えていた Over filedescriptor limit
Beginning timeout 10,000 TimeoutError もっさり slow in action
Beginning Thread いつの間にか?刺さる thread stuck
Beginning 何とか しなければ ならない (must resolve the problem)
classThreadWatch definitialize(timer)     @update_time = nil @alive_timer = timer @mutex       = Mutex.new end defupdate @mutex.synchronizedo @update_time = Time.now end end def valid? @mutex.synchronizedo returnfalseif!@update_time.nil? &&              (Time.now - @update_time) > @alive_timer)    end true end end
defself.thread_main(idx, watch) loop do watch.update #スレッド処理 end end defself.main(argv) th_infos = Hash.new foriin0…100 w  = ThreadWatch.new(600) th = Thread.new(i, w) do |idx, watch| thread_main(idx, watch) end th_infos[i] =[th, w]  end check_threads(th_infos) end
defself.check_threads(th_infos) loop do th_infos.eachdo |i, info| th, w = info f_restart = false caseth.status when“run”, “sleep” f_restart = true unless w.valid? else f_restart = true end iff_restart th.kill th.join th = Thread.new(i, w) do |idx, watch| thread_main(idx, watch) end th_infos[i] = [th, w]       end end  end end
Beginning Over file descriptor limit root user  timeout select() thread stuck own monitoring function.
本番 renewal
renewal 2009
renewal speed 大量データの計算処理 性能要件を満たすため C言語で開発
renewal process count
renewal over 230 processes
Ifyou developed in C
fun inRuby
“Rubyすげぇ” (Great! Ruby)
Benefits of           developing in Ruby Yes! This is Ruby(1) 直観的 (intuitive) 容易(easy) Thread UDP/TCP Socket etc.
Benefits of           developing in Ruby Yes! This is Ruby(2) useful methods yield instance_eval etc.
Benefits of           developing in Ruby Test is fun.  (テストは楽に楽しく) UDP/TCP Socket 無限Loop
think about...
コード量が少なく、 変更も容易 異常ケースもテストで 余裕でカバー ThreadもSocket通信も簡単に実装
Ruby for  大規模システム
But...
Expectations or Hope in Ruby speed (速度)
Expectations or Hope in Ruby high reliability (高信頼性)
まとめ (summary)
Today’s Summary Web Service 以外でも Ruby活躍!
Thank you  for your attention. ご清聴ありがとうございました
Thank you  for your attention. ご清聴ありがとうございました
Rubyで作った“mission critical” システムについて 江森 真由美

More Related Content

What's hot

What's hot (18)

Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発   takusuta tech conf #1Riot.jsを用いたweb開発   takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
 
第一回REST勉強会_鈴木商店の開発環境
第一回REST勉強会_鈴木商店の開発環境第一回REST勉強会_鈴木商店の開発環境
第一回REST勉強会_鈴木商店の開発環境
 
自動構築と自動テスト〜インフラのコード化とクラウドの優位性
自動構築と自動テスト〜インフラのコード化とクラウドの優位性自動構築と自動テスト〜インフラのコード化とクラウドの優位性
自動構築と自動テスト〜インフラのコード化とクラウドの優位性
 
WAFって言いたいだけちゃうんか
WAFって言いたいだけちゃうんかWAFって言いたいだけちゃうんか
WAFって言いたいだけちゃうんか
 
Azure FunctionsでPowerShellを使ってみた
Azure FunctionsでPowerShellを使ってみたAzure FunctionsでPowerShellを使ってみた
Azure FunctionsでPowerShellを使ってみた
 
第一回Rest勉強会 ワークショップ
第一回Rest勉強会 ワークショップ第一回Rest勉強会 ワークショップ
第一回Rest勉強会 ワークショップ
 
TFSUG 20151126
TFSUG 20151126TFSUG 20151126
TFSUG 20151126
 
障害を防ぎ、サービスを守るために #gotandapm
障害を防ぎ、サービスを守るために #gotandapm障害を防ぎ、サービスを守るために #gotandapm
障害を防ぎ、サービスを守るために #gotandapm
 
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
 
Climbどこでもセミナー「物理・仮想・クラウド保護の最適解は?環境に合わせたバックアップの選び方」
Climbどこでもセミナー「物理・仮想・クラウド保護の最適解は?環境に合わせたバックアップの選び方」Climbどこでもセミナー「物理・仮想・クラウド保護の最適解は?環境に合わせたバックアップの選び方」
Climbどこでもセミナー「物理・仮想・クラウド保護の最適解は?環境に合わせたバックアップの選び方」
 
Zabbix Conference Japan 2013 VMware monitoring
Zabbix Conference Japan 2013 VMware monitoringZabbix Conference Japan 2013 VMware monitoring
Zabbix Conference Japan 2013 VMware monitoring
 
20130518 大規模mt環境の実装on aws
20130518 大規模mt環境の実装on aws20130518 大規模mt環境の実装on aws
20130518 大規模mt環境の実装on aws
 
20130831 JAWS Chiba
20130831 JAWS Chiba 20130831 JAWS Chiba
20130831 JAWS Chiba
 
ファイルサーバを高速バックアップ!Veeam NASバックアップのここがスゴイ!
ファイルサーバを高速バックアップ!Veeam NASバックアップのここがスゴイ!ファイルサーバを高速バックアップ!Veeam NASバックアップのここがスゴイ!
ファイルサーバを高速バックアップ!Veeam NASバックアップのここがスゴイ!
 
new AWS WAF update 概要と AMRの選び方でも足りないこと
new AWS WAF update 概要と AMRの選び方でも足りないことnew AWS WAF update 概要と AMRの選び方でも足りないこと
new AWS WAF update 概要と AMRの選び方でも足りないこと
 
Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~
 

Viewers also liked

Balanced Scorecards DJA
Balanced Scorecards   DJABalanced Scorecards   DJA
Balanced Scorecards DJA
djallinson
 
Сувенирная продукция в Digital
Сувенирная продукция в DigitalСувенирная продукция в Digital
Сувенирная продукция в Digital
Ivan Shestakov
 
Rakuten Technology Conference 2013 Lightning Talks
Rakuten Technology Conference 2013 Lightning TalksRakuten Technology Conference 2013 Lightning Talks
Rakuten Technology Conference 2013 Lightning Talks
Mayumi Emori
 

Viewers also liked (15)

María montessori. el nino. el secreto de la infancia
María montessori. el nino. el secreto de la infanciaMaría montessori. el nino. el secreto de la infancia
María montessori. el nino. el secreto de la infancia
 
20150328 humansociria
20150328 humansociria20150328 humansociria
20150328 humansociria
 
María montessori. la formacion del hombre
María montessori. la formacion del hombreMaría montessori. la formacion del hombre
María montessori. la formacion del hombre
 
Costa Rica
Costa RicaCosta Rica
Costa Rica
 
Balanced Scorecards DJA
Balanced Scorecards   DJABalanced Scorecards   DJA
Balanced Scorecards DJA
 
Nicaragua
NicaraguaNicaragua
Nicaragua
 
Кросс-платформенные коммуникации
Кросс-платформенные коммуникацииКросс-платформенные коммуникации
Кросс-платформенные коммуникации
 
Сувенирная продукция в Digital
Сувенирная продукция в DigitalСувенирная продукция в Digital
Сувенирная продукция в Digital
 
大江戸Ruby会議01 "mission critical"なシステムでも使えるThreadの作り方
大江戸Ruby会議01 "mission critical"なシステムでも使えるThreadの作り方大江戸Ruby会議01 "mission critical"なシステムでも使えるThreadの作り方
大江戸Ruby会議01 "mission critical"なシステムでも使えるThreadの作り方
 
Coolness
CoolnessCoolness
Coolness
 
2010 Redwood Volunteer Groups
2010 Redwood Volunteer Groups2010 Redwood Volunteer Groups
2010 Redwood Volunteer Groups
 
columbia TS
columbia TScolumbia TS
columbia TS
 
Student loans for living expenses
Student loans for living expensesStudent loans for living expenses
Student loans for living expenses
 
Girl MeetS Rails 世界は変わる ~Railsと出会ったGirlsの物語~
Girl MeetS Rails 世界は変わる ~Railsと出会ったGirlsの物語~Girl MeetS Rails 世界は変わる ~Railsと出会ったGirlsの物語~
Girl MeetS Rails 世界は変わる ~Railsと出会ったGirlsの物語~
 
Rakuten Technology Conference 2013 Lightning Talks
Rakuten Technology Conference 2013 Lightning TalksRakuten Technology Conference 2013 Lightning Talks
Rakuten Technology Conference 2013 Lightning Talks
 

Similar to Rubyで作った"mission critical"システムについて

A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
Insight Technology, Inc.
 
Oss事例紹介資料20141111 明日の認証会議 掲載用
Oss事例紹介資料20141111 明日の認証会議 掲載用Oss事例紹介資料20141111 明日の認証会議 掲載用
Oss事例紹介資料20141111 明日の認証会議 掲載用
マジセミ by (株)オープンソース活用研究所
 
守る - cybozu.com 運用の裏側
守る - cybozu.com 運用の裏側守る - cybozu.com 運用の裏側
守る - cybozu.com 運用の裏側
Cybozucommunity
 
オイシックスのフレームワーク
オイシックスのフレームワークオイシックスのフレームワーク
オイシックスのフレームワーク
oistudy
 

Similar to Rubyで作った"mission critical"システムについて (20)

経営のスピードと変化に応えるシステム基盤をつくる 桑原里恵
経営のスピードと変化に応えるシステム基盤をつくる 桑原里恵経営のスピードと変化に応えるシステム基盤をつくる 桑原里恵
経営のスピードと変化に応えるシステム基盤をつくる 桑原里恵
 
くま(Kuma)でメッシュなマイクロサービス
くま(Kuma)でメッシュなマイクロサービスくま(Kuma)でメッシュなマイクロサービス
くま(Kuma)でメッシュなマイクロサービス
 
クラウド時代を生き残る経営戦略策定のススメ「クラウドは敵か?味方か?」(山口・岡山)
クラウド時代を生き残る経営戦略策定のススメ「クラウドは敵か?味方か?」(山口・岡山)クラウド時代を生き残る経営戦略策定のススメ「クラウドは敵か?味方か?」(山口・岡山)
クラウド時代を生き残る経営戦略策定のススメ「クラウドは敵か?味方か?」(山口・岡山)
 
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
 
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
 
アセットビルドパイプラインについて考えてみる
アセットビルドパイプラインについて考えてみるアセットビルドパイプラインについて考えてみる
アセットビルドパイプラインについて考えてみる
 
Oss事例紹介資料20141111 明日の認証会議 掲載用
Oss事例紹介資料20141111 明日の認証会議 掲載用Oss事例紹介資料20141111 明日の認証会議 掲載用
Oss事例紹介資料20141111 明日の認証会議 掲載用
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
 
クライムどこでもセミナー:『どこから調査する?』の悩みを解消!失敗しない仮想化DB監視術
クライムどこでもセミナー:『どこから調査する?』の悩みを解消!失敗しない仮想化DB監視術クライムどこでもセミナー:『どこから調査する?』の悩みを解消!失敗しない仮想化DB監視術
クライムどこでもセミナー:『どこから調査する?』の悩みを解消!失敗しない仮想化DB監視術
 
守る - cybozu.com 運用の裏側
守る - cybozu.com 運用の裏側守る - cybozu.com 運用の裏側
守る - cybozu.com 運用の裏側
 
SIerにおくる、アジャイルプロセスの実践
SIerにおくる、アジャイルプロセスの実践SIerにおくる、アジャイルプロセスの実践
SIerにおくる、アジャイルプロセスの実践
 
[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
 
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とはたった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイル
 
ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報
 
ServerlessとMicroserviceの難しさに立ち向かう
ServerlessとMicroserviceの難しさに立ち向かうServerlessとMicroserviceの難しさに立ち向かう
ServerlessとMicroserviceの難しさに立ち向かう
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要
 
オイシックスのフレームワーク
オイシックスのフレームワークオイシックスのフレームワーク
オイシックスのフレームワーク
 
Sr econt
Sr econtSr econt
Sr econt
 

Recently uploaded

FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (14)

論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 

Rubyで作った"mission critical"システムについて