SlideShare a Scribd company logo
1 of 15
ota42y
2018/04/25
Shinjuku.rb #60
bootsnapは
どれくらい早くなるのか
• ota42y
• サーバサイドエンジニア
• rubyとかrustとかgoとかC++とか
• Twitter、github → ota42y
• 技術書典4でマイクロサービス本を出した
– https://ota42y.com/blog/2018/04/10/mi
croservices_yorozu_book/
自己紹介
bootsnap
• Shopify/bootsnap
– https://github.com/Shopify/bootsnap
• Railsアプリの高速化をしてくれるgem
– 入れるだけで早くなる
– 起動が50%早くなるとの話
– Rails 5.2から標準で入る
– Rails 4.2でも動く
bootsnap
• Gemfileに以下を記述
– gem 'bootsnap', require: false
• config/boot.rbを変更
– bundlerのrequire後にbootsnapを読む
– require 'bootsnap/setup'
インストール
• Path Pre-Scanning
– ファイルを読み込む際の検索をキャッシュ
– ActiveSupportのautoloadも対象
• Compilation caching
– YAMLのロード結果をキャッシュする
• MessagePackか、ダメならMarshal stream
Bootsnapの機能
Path Pre-Scanning
Path Pre-Scanning
• $LOAD_PATHの中身をキャッシュする
– requireのたびに全部調べるの遅い
– bootsnapで中身をキャッシュする
– Kernel#requireとか#loadとかをフックする
• よくわかる解説(図がわかりやすい)
– https://github.com/Shopify/bootsnap#pa
th-pre-scanning
Compilation caching
Compilation caching
• YAMLの評価結果をキャッシュする
– 結果のbytecodeを保存する
• RubyVM::InstructionSequenceを使ってる
– 保存形式はMessagePack
• 表現できない構造の場合はMarshal stream
• よくわかる解説(図は無い)
– https://github.com/Shopify/bootsnap/tre
e/86b8b285520299fec913c5f1d63dda4f1
3dbfa25#compilation-caching
どれくらい早いのか
起動時間計測
• Rails runnerで起動して即終了を10回
– Bundle exec rails runner “puts Rails.env”
• スクリプトは以下
ruby -rbenchmark -e "ret =
Benchmark.measure{ 10.times{ system('DISAB
LE_SPRING=1 bundle exec rails runner "puts
Rails.env"') } }; puts Benchmark::CAPTION;
puts ret"
(Springは止めてます)
計測結果
app Gem数 normal
(秒)
bootsnap
(秒)
速度向上率
(秒)
Rails 4.2 242 21.17 9.6 45.35
Rails 5.0 その1 220 19.61 9.2 46.99
Rails 5.0 その2 369 68.90 44.1 64.13
Rails 5.1 184 16.95 8.4 49.62
Rails 5.2 147 14.74 6.7 45.45
計測結果
app Gem数 normal
(秒)
bootsnap
(秒)
速度向上率
(秒)
Rails 4.2 242 21.17 9.6 45.35
Rails 5.0 その1 220 19.61 9.2 46.99
Rails 5.0 その2 369 68.90 44.1 64.13
Rails 5.1 184 16.95 8.4 49.62
Rails 5.2 147 14.74 6.7 45.45
• だいたい50%早くなってる
• 元が遅いと向上率が高い?
• Gemが多いと早くなるわけではない
– 4.2と5.2で向上率は同じ gemは100個違う
– YAMLのせい?
• Bootsnapは色々キャッシュして早くする
– LOAD_PATHやYAMLのパース結果
• だいたい50%早くなる
– 便利( ゚∀゚)o彡゚
• インストールは簡単
– どれもハマらずに入れられた
• キャッシュによる不具合は未知数
– まだ使い込んでないので…
まとめ

More Related Content

What's hot

Minio on Raspberry Pi
Minio on Raspberry PiMinio on Raspberry Pi
Minio on Raspberry PiMasafumi Ohta
 
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソースクローズドソースから始めるオープンソース
クローズドソースから始めるオープンソースTakafumi ONAKA
 
Raspberry pi最新情報アップデート&いろいろ比較
Raspberry pi最新情報アップデート&いろいろ比較Raspberry pi最新情報アップデート&いろいろ比較
Raspberry pi最新情報アップデート&いろいろ比較Masafumi Ohta
 
Golang, make and robotics #gocon
Golang, make and robotics #goconGolang, make and robotics #gocon
Golang, make and robotics #goconHideyuki TAKEI
 
SwiftのWebフレームワークVaporを触ってみる
SwiftのWebフレームワークVaporを触ってみるSwiftのWebフレームワークVaporを触ってみる
SwiftのWebフレームワークVaporを触ってみるYuya Oka
 
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うことKazuhiro Serizawa
 
mod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipmmod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipm鉄次 尾形
 
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントSphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントIosif Takakura
 
はじめよう!MovableType.net ハンズオン
はじめよう!MovableType.net ハンズオンはじめよう!MovableType.net ハンズオン
はじめよう!MovableType.net ハンズオンHajime Fujimoto
 
第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情Kazuhiro Serizawa
 
さわってみよう Couchbase Lite
さわってみよう Couchbase Liteさわってみよう Couchbase Lite
さわってみよう Couchbase Litessd kfk
 
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjpHideyuki TAKEI
 
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpAPIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpTakeshi Komiya
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発Takafumi ONAKA
 
Sphinxで社内勉強会(Git)の
資料を作ってみた
Sphinxで社内勉強会(Git)の
資料を作ってみたSphinxで社内勉強会(Git)の
資料を作ってみた
Sphinxで社内勉強会(Git)の
資料を作ってみたTaku SHIMIZU
 
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったことPHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったことksimoji
 
Sphinxを使って本を書こう #pyconjp 2012
Sphinxを使って本を書こう #pyconjp 2012Sphinxを使って本を書こう #pyconjp 2012
Sphinxを使って本を書こう #pyconjp 2012Takayuki Shimizukawa
 
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjpSphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjpTakeshi Komiya
 
How to spread reST and Sphinx
How to spread reST and SphinxHow to spread reST and Sphinx
How to spread reST and SphinxTakanori Suzuki
 

What's hot (20)

Minio on Raspberry Pi
Minio on Raspberry PiMinio on Raspberry Pi
Minio on Raspberry Pi
 
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソースクローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
 
Raspberry pi最新情報アップデート&いろいろ比較
Raspberry pi最新情報アップデート&いろいろ比較Raspberry pi最新情報アップデート&いろいろ比較
Raspberry pi最新情報アップデート&いろいろ比較
 
Golang, make and robotics #gocon
Golang, make and robotics #goconGolang, make and robotics #gocon
Golang, make and robotics #gocon
 
SwiftのWebフレームワークVaporを触ってみる
SwiftのWebフレームワークVaporを触ってみるSwiftのWebフレームワークVaporを触ってみる
SwiftのWebフレームワークVaporを触ってみる
 
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
 
mod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipmmod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipm
 
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントSphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメント
 
はじめよう!MovableType.net ハンズオン
はじめよう!MovableType.net ハンズオンはじめよう!MovableType.net ハンズオン
はじめよう!MovableType.net ハンズオン
 
第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情
 
社内発表会20120328
社内発表会20120328社内発表会20120328
社内発表会20120328
 
さわってみよう Couchbase Lite
さわってみよう Couchbase Liteさわってみよう Couchbase Lite
さわってみよう Couchbase Lite
 
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpAPIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
 
Sphinxで社内勉強会(Git)の
資料を作ってみた
Sphinxで社内勉強会(Git)の
資料を作ってみたSphinxで社内勉強会(Git)の
資料を作ってみた
Sphinxで社内勉強会(Git)の
資料を作ってみた
 
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったことPHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
 
Sphinxを使って本を書こう #pyconjp 2012
Sphinxを使って本を書こう #pyconjp 2012Sphinxを使って本を書こう #pyconjp 2012
Sphinxを使って本を書こう #pyconjp 2012
 
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjpSphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
 
How to spread reST and Sphinx
How to spread reST and SphinxHow to spread reST and Sphinx
How to spread reST and Sphinx
 

Similar to bootsnapはどれくらい早くなるのか

Web技術勉強会 20120609
Web技術勉強会 20120609Web技術勉強会 20120609
Web技術勉強会 20120609龍一 田中
 
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎schoowebcampus
 
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OSMasami Yabushita
 
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話R S
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例Naoto Koshikawa
 
ruby、sinatraで作るfacebookアプリ
ruby、sinatraで作るfacebookアプリruby、sinatraで作るfacebookアプリ
ruby、sinatraで作るfacebookアプリToshiya Kurishima
 
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎schoowebcampus
 
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutoFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutTsuubito Ishii
 
Chef+serverspec+werckerでインフラCIする話
Chef+serverspec+werckerでインフラCIする話Chef+serverspec+werckerでインフラCIする話
Chef+serverspec+werckerでインフラCIする話Masayuki Morita
 
マイクロサービスにおける 非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャマイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける 非同期アーキテクチャota42y
 
Hatena blogdevelopmentflow
Hatena blogdevelopmentflowHatena blogdevelopmentflow
Hatena blogdevelopmentflowYasuhiro Onishi
 
WebAppDev勉強会 #4
WebAppDev勉強会 #4WebAppDev勉強会 #4
WebAppDev勉強会 #4Kohei Noda
 
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerRubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerTakuro Sasaki
 
HerokuでRailsアプリ運用の パフォーマンス、SEO対策
HerokuでRailsアプリ運用の パフォーマンス、SEO対策HerokuでRailsアプリ運用の パフォーマンス、SEO対策
HerokuでRailsアプリ運用の パフォーマンス、SEO対策Salesforce Developers Japan
 
Skinny Framework で始めた Scala
Skinny Framework で始めた ScalaSkinny Framework で始めた Scala
Skinny Framework で始めた ScalaRyuji Yamashita
 
大規模プロダクト Webpack やっていく気持ち
大規模プロダクト Webpack やっていく気持ち大規模プロダクト Webpack やっていく気持ち
大規模プロダクト Webpack やっていく気持ちTakumi Ohashi
 
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築Junichi Noda
 
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)Junichi Noda
 

Similar to bootsnapはどれくらい早くなるのか (20)

Web技術勉強会 20120609
Web技術勉強会 20120609Web技術勉強会 20120609
Web技術勉強会 20120609
 
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎
 
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
 
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
 
ruby、sinatraで作るfacebookアプリ
ruby、sinatraで作るfacebookアプリruby、sinatraで作るfacebookアプリ
ruby、sinatraで作るfacebookアプリ
 
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎
 
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutoFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer Workout
 
Chef+serverspec+werckerでインフラCIする話
Chef+serverspec+werckerでインフラCIする話Chef+serverspec+werckerでインフラCIする話
Chef+serverspec+werckerでインフラCIする話
 
2015 12-19-ruby rails
2015 12-19-ruby rails2015 12-19-ruby rails
2015 12-19-ruby rails
 
マイクロサービスにおける 非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャマイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける 非同期アーキテクチャ
 
Application Bootstrap
Application BootstrapApplication Bootstrap
Application Bootstrap
 
Hatena blogdevelopmentflow
Hatena blogdevelopmentflowHatena blogdevelopmentflow
Hatena blogdevelopmentflow
 
WebAppDev勉強会 #4
WebAppDev勉強会 #4WebAppDev勉強会 #4
WebAppDev勉強会 #4
 
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerRubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
 
HerokuでRailsアプリ運用の パフォーマンス、SEO対策
HerokuでRailsアプリ運用の パフォーマンス、SEO対策HerokuでRailsアプリ運用の パフォーマンス、SEO対策
HerokuでRailsアプリ運用の パフォーマンス、SEO対策
 
Skinny Framework で始めた Scala
Skinny Framework で始めた ScalaSkinny Framework で始めた Scala
Skinny Framework で始めた Scala
 
大規模プロダクト Webpack やっていく気持ち
大規模プロダクト Webpack やっていく気持ち大規模プロダクト Webpack やっていく気持ち
大規模プロダクト Webpack やっていく気持ち
 
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
 
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
 

More from ota42y

ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説ota42y
 
FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方ota42y
 
CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説ota42y
 
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話ota42y
 
身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守るota42y
 
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究HCI分野の紹介と最新研究
HCI分野の紹介と最新研究ota42y
 

More from ota42y (6)

ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
 
FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方
 
CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説
 
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話
 
身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る
 
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究HCI分野の紹介と最新研究
HCI分野の紹介と最新研究
 

bootsnapはどれくらい早くなるのか

Editor's Notes

  1. この中に、マイクロサービスアーキテクチャを知ってる人どれくらいいますか? ありがとうございます、以外と少なくて資料作った会がありました…
  2. 何故我々はマイクロサービスを採用しているのか?という点です
  3. 一番大きな恩恵として、サービス事に別々のサイクルで回せるというのがあります。 例えば課金系といった仕様が複雑で長いQAが必要な機能と、フロントといったユーザの反応を見てどんどん修正を書けていくような機能は、 別々の開発速度で回していきたいわけです。 例えば1つの巨大なシステムであれば、リリースサイクルは1つになり、フロントの変更であっても課金系への影響を考えていかなければなりません。 一方でそれらが別々のマイクロサービスで構成されているのであれば、フロントは小さい変更でどんどんリリースできますし、 課金系はQA期間をしっかり取って開発できます また、影響を局所かできるというのも利点の1つです さっきの例であればユーザが大量に押し寄せてフロント側が重くなっても、 課金系は別のサーバなのでその処理に困る事はないですし、課金系が落ちてても、関係しない機能をそのまま使い続ける…といった事ができます。 その他色々ありますが、詳しくはオライリーのマイクロサービスアーキテクチャという本を読んでください。
  4. 何故我々はマイクロサービスを採用しているのか?という点です
  5. 一番大きな恩恵として、サービス事に別々のサイクルで回せるというのがあります。 例えば課金系といった仕様が複雑で長いQAが必要な機能と、フロントといったユーザの反応を見てどんどん修正を書けていくような機能は、 別々の開発速度で回していきたいわけです。 例えば1つの巨大なシステムであれば、リリースサイクルは1つになり、フロントの変更であっても課金系への影響を考えていかなければなりません。 一方でそれらが別々のマイクロサービスで構成されているのであれば、フロントは小さい変更でどんどんリリースできますし、 課金系はQA期間をしっかり取って開発できます また、影響を局所かできるというのも利点の1つです さっきの例であればユーザが大量に押し寄せてフロント側が重くなっても、 課金系は別のサーバなのでその処理に困る事はないですし、課金系が落ちてても、関係しない機能をそのまま使い続ける…といった事ができます。 その他色々ありますが、詳しくはオライリーのマイクロサービスアーキテクチャという本を読んでください。
  6. 何故我々はマイクロサービスを採用しているのか?という点です
  7. 一番大きな恩恵として、サービス事に別々のサイクルで回せるというのがあります。 例えば課金系といった仕様が複雑で長いQAが必要な機能と、フロントといったユーザの反応を見てどんどん修正を書けていくような機能は、 別々の開発速度で回していきたいわけです。 例えば1つの巨大なシステムであれば、リリースサイクルは1つになり、フロントの変更であっても課金系への影響を考えていかなければなりません。 一方でそれらが別々のマイクロサービスで構成されているのであれば、フロントは小さい変更でどんどんリリースできますし、 課金系はQA期間をしっかり取って開発できます また、影響を局所かできるというのも利点の1つです さっきの例であればユーザが大量に押し寄せてフロント側が重くなっても、 課金系は別のサーバなのでその処理に困る事はないですし、課金系が落ちてても、関係しない機能をそのまま使い続ける…といった事ができます。 その他色々ありますが、詳しくはオライリーのマイクロサービスアーキテクチャという本を読んでください。