SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
MicroServiceなんて最初から
やるもんじゃなかった
Akira Miki
Repro Inc.
shinjuku.rb #27@metaps
July 22, 2015
Akira Miki
CTO / Repro
@treetreeslight
定量分析では分からない原因を
動画から推察して改善するツール
プッシュもできるようになったよ!
At the first of Repro
Reproがやりたいこと
情報を送って 変換して 分析する受け取って
責務を分けてスケーラビリティ
を担保したい
マーティンファウラー御大曰く
> The term "Microservice Architecture" has
sprung up over the last few years to
describe a particular way of designing
software applications as suites of
independently deployable services.
http://martinfowler.com/articles/microservices.html
時代はマイクロサービシス
キタコレ
Reproがやりたいこと
とりま分けて作っちゃおう!!!
情報を送って 変換して 分析する受け取って
好きな言語でガンガンいこう!
情報を送って 変換して 分析する受け取って
あれ、、、、
スキーマ変更やら型変更すると。。。
情報を送って 変換して 分析する受け取って
フォーマット
チェック

直して
DBが
食えるように
パースして
ユーザーへの

見せ方かえて
送るフォーマット

合わせて
れ出す修正漏れ
膨れ上がる管理コスト
monolithic
結局
情報を送って 変換して 分析する受け取って
• モノリシックにするソリューション
• ビジネスロジックのズレをなくす
教訓その1
• 変化に強いアーキテクチャは、激しく変化
に強いのとは意味が違う
• 変更が頻発する時期はモノリシックじゃな
いとつらい
• ビジネスロジックが同じなら使い回すべき
余談・変更の激しさ
ここ1年で11万行書いて8万行消しました…
After alpha release of Repro
リクエストどうにかしたい
情報を送って 変換して 分析する受け取って
フォーマット
チェック
再びサービス分割へ
情報を送って 変換して 分析する受け取って
フォーマット
チェック
失敗したのにまたやるの?
ビジネスロジックの依存を捨てる
情報を送って 変換して 分析する受け取って
フォーマット
チェック
• 簡易なチェック(JSONフォーマットとキーとなる値)だ
けにする
• キー値の妥当性チェックはAPIで他のサーバーに聞きに行く
後工程で賄える事は後工程へ
情報を送って 変換して 分析する受け取って
フォーマット
チェック
• 簡易なチェック(JSONフォーマットとキーとなる値)だ
けにする
• キー値の妥当性チェックはAPIで他のサーバーに聞きに行く
教訓その2
• 単一の責務に集中させる
• 後工程のコスト下げたいとか欲を出さない
• もし、責務から外れる行為をやりたいとき
はAPI作って叩きに行く
And now
リクエストに合わせた工夫をする
• あまりに多いリクエストをさばくにはRails
がつらい。
• キャッシュにヒットしない分析データはリ
クエストに時間がかかる=unicorn向かない
まとめ
• 最初はモノリシックに、そこからサービス
を分ける方が責務が明確になる。
• リクエスト数や状況に応じて、単一の責務
に特化したサービスに分割する。欲を出さ
ない

Mais conteúdo relacionado

Mais procurados

Creating Mashup service in Yamaguchi
Creating Mashup service in YamaguchiCreating Mashup service in Yamaguchi
Creating Mashup service in Yamaguchi
Ohishi Mikage
 

Mais procurados (17)

20151204 遺伝子&健康アプリサービスの提案
20151204 遺伝子&健康アプリサービスの提案20151204 遺伝子&健康アプリサービスの提案
20151204 遺伝子&健康アプリサービスの提案
 
RHEL8 on Alibaba Cloud
RHEL8 on Alibaba CloudRHEL8 on Alibaba Cloud
RHEL8 on Alibaba Cloud
 
Microsoft learnご紹介vol2
Microsoft learnご紹介vol2Microsoft learnご紹介vol2
Microsoft learnご紹介vol2
 
20160526 kintone hive Vol.3 Tokyo
20160526 kintone hive Vol.3 Tokyo20160526 kintone hive Vol.3 Tokyo
20160526 kintone hive Vol.3 Tokyo
 
Riotでサーバレスにした話
Riotでサーバレスにした話Riotでサーバレスにした話
Riotでサーバレスにした話
 
kintone hive vol.3 大阪
kintone hive vol.3 大阪kintone hive vol.3 大阪
kintone hive vol.3 大阪
 
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
 
Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方
 
Mobingi ALM Hands-on
Mobingi ALM Hands-onMobingi ALM Hands-on
Mobingi ALM Hands-on
 
【kintone café松江#1】kintoneの可能性
【kintone café松江#1】kintoneの可能性【kintone café松江#1】kintoneの可能性
【kintone café松江#1】kintoneの可能性
 
ノンコーディングでサーバーレス体験。Azure Logic Apps のすゝめ
ノンコーディングでサーバーレス体験。Azure Logic Apps のすゝめノンコーディングでサーバーレス体験。Azure Logic Apps のすゝめ
ノンコーディングでサーバーレス体験。Azure Logic Apps のすゝめ
 
既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話
 
Creating Mashup service in Yamaguchi
Creating Mashup service in YamaguchiCreating Mashup service in Yamaguchi
Creating Mashup service in Yamaguchi
 
20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング
 
ノーコーディングでAIサービスを使ってみた話
ノーコーディングでAIサービスを使ってみた話ノーコーディングでAIサービスを使ってみた話
ノーコーディングでAIサービスを使ってみた話
 
Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2
 
ウェルネスAiとグラフDB
ウェルネスAiとグラフDBウェルネスAiとグラフDB
ウェルネスAiとグラフDB
 

Destaque

エンタープライズITでのOpenID Connect利用ガイドライン
エンタープライズITでのOpenID Connect利用ガイドラインエンタープライズITでのOpenID Connect利用ガイドライン
エンタープライズITでのOpenID Connect利用ガイドライン
Tatsuo Kudo
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Nov Matake
 

Destaque (16)

OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
 
OpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンスOpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンス
 
WebAPIのこれまでとこれから
WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれから
 
Beginning Java EE 6 勉強会(6) #bje_study
Beginning Java EE 6 勉強会(6) #bje_studyBeginning Java EE 6 勉強会(6) #bje_study
Beginning Java EE 6 勉強会(6) #bje_study
 
サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜
サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜
サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜
 
REST 入門
REST 入門REST 入門
REST 入門
 
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
 
今更聞けないOAuth2.0
今更聞けないOAuth2.0今更聞けないOAuth2.0
今更聞けないOAuth2.0
 
Office365のIdentity管理
Office365のIdentity管理Office365のIdentity管理
Office365のIdentity管理
 
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
 
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のことSpring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
 
エンタープライズITでのOpenID Connect利用ガイドライン
エンタープライズITでのOpenID Connect利用ガイドラインエンタープライズITでのOpenID Connect利用ガイドライン
エンタープライズITでのOpenID Connect利用ガイドライン
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
 
Uberご紹介(髙橋正巳)
Uberご紹介(髙橋正巳)Uberご紹介(髙橋正巳)
Uberご紹介(髙橋正巳)
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
 

Semelhante a Microserviceなんて最初からやるもんじゃ無かった

「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
Kyosuke Inoue
 

Semelhante a Microserviceなんて最初からやるもんじゃ無かった (20)

Istio, Kubernetes and Cloud Foundry (修正版)
Istio, Kubernetes and Cloud Foundry (修正版)Istio, Kubernetes and Cloud Foundry (修正版)
Istio, Kubernetes and Cloud Foundry (修正版)
 
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
 
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
 
拡散する画像生成.pdf
拡散する画像生成.pdf拡散する画像生成.pdf
拡散する画像生成.pdf
 
.NET Micro Framework で IoT
.NET Micro Framework で IoT.NET Micro Framework で IoT
.NET Micro Framework で IoT
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
 
Webシステムプログラミング概要20150630
Webシステムプログラミング概要20150630Webシステムプログラミング概要20150630
Webシステムプログラミング概要20150630
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
【Interop tokyo 2014】 クラウド時代のインフラマネジメント~Cisco ACI とUCS Director
【Interop tokyo 2014】 クラウド時代のインフラマネジメント~Cisco ACI とUCS Director【Interop tokyo 2014】 クラウド時代のインフラマネジメント~Cisco ACI とUCS Director
【Interop tokyo 2014】 クラウド時代のインフラマネジメント~Cisco ACI とUCS Director
 
マイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャーマイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャー
 
Kinect2で未来をつかむ
Kinect2で未来をつかむKinect2で未来をつかむ
Kinect2で未来をつかむ
 
ロボットサービス開発の現場から
ロボットサービス開発の現場からロボットサービス開発の現場から
ロボットサービス開発の現場から
 
Elasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリElasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリ
 
1分で分かる SoftLayer 監視入門
1分で分かる SoftLayer 監視入門1分で分かる SoftLayer 監視入門
1分で分かる SoftLayer 監視入門
 
アクセシビリティを考えたalt属性を自動生成してみよう!
アクセシビリティを考えたalt属性を自動生成してみよう!アクセシビリティを考えたalt属性を自動生成してみよう!
アクセシビリティを考えたalt属性を自動生成してみよう!
 
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
 
Whats service mesh & istio ?
Whats service mesh & istio ?Whats service mesh & istio ?
Whats service mesh & istio ?
 
Building Software Reliability through Distributed Tracing.pdf
Building Software Reliability through Distributed Tracing.pdfBuilding Software Reliability through Distributed Tracing.pdf
Building Software Reliability through Distributed Tracing.pdf
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
 

Mais de Akira Miki (11)

performance hack 101
performance hack 101performance hack 101
performance hack 101
 
The bottleneck is you
The bottleneck is youThe bottleneck is you
The bottleneck is you
 
QA teamを組成した話
QA teamを組成した話QA teamを組成した話
QA teamを組成した話
 
Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話
 
background jobで
気をつけないといかんところ
background jobで
気をつけないといかんところbackground jobで
気をつけないといかんところ
background jobで
気をつけないといかんところ
 
今だから言えるやらないほうが良かったこと
今だから言えるやらないほうが良かったこと今だから言えるやらないほうが良かったこと
今だから言えるやらないほうが良かったこと
 
AWS Auroraよもやま話
AWS Auroraよもやま話AWS Auroraよもやま話
AWS Auroraよもやま話
 
1秒でも早くAutoScale
1秒でも早くAutoScale1秒でも早くAutoScale
1秒でも早くAutoScale
 
決済って悩むことが多い
決済って悩むことが多い決済って悩むことが多い
決済って悩むことが多い
 
rails + serverengineで
お手軽daemon
rails + serverengineで
お手軽daemonrails + serverengineで
お手軽daemon
rails + serverengineで
お手軽daemon
 
what is_the_best_way_of_method_swizzling
what is_the_best_way_of_method_swizzlingwhat is_the_best_way_of_method_swizzling
what is_the_best_way_of_method_swizzling
 

Último

Último (7)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

Microserviceなんて最初からやるもんじゃ無かった