SlideShare a Scribd company logo
https://www.monotaro.com/
https://www.monotaro.com/ 2
https://www.monotaro.com/ 3
https://www.monotaro.com/ 4


https://www.monotaro.com/ 5
•
•
•
• 

• 

•
https://www.monotaro.com/ 6
https://www.monotaro.com/
–
7
https://www.monotaro.com/
–
8
https://www.monotaro.com/ 9


MonotaRO
http://www.slideshare.net/monotaro-itd-pr/monotaro-20150320-devlove
https://www.monotaro.com/ 10
https://www.monotaro.com/ 11




https://www.monotaro.com/ 12


https://www.monotaro.com/ 13
https://www.monotaro.com/ 14
12 API
https://www.monotaro.com/ 15
https://www.monotaro.com/ 16
APIAPIAPI
API
AP
Server
https://www.monotaro.com/ 17
APIAPIAPI
API
AP
Server
https://www.monotaro.com/ 18
https://www.monotaro.com/ 19




https://www.monotaro.com/ 20
https://www.monotaro.com/ 21
https://www.monotaro.com/ 22
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 3.330 3.330 run_web.py:134(application)
1 0.000 0.000 3.330 3.330 (フレームワーク初期化)
1 0.000 0.000 3.249 3.249 (フレームワーク初期化)
1 0.000 0.000 3.180 3.180 (フレームワーク初期化)
1 0.000 0.000 3.180 3.180 (画面実装部分)
19 0.000 0.000 2.991 0.157 (画面実装部分)
19 0.000 0.000 2.920 0.154 (画面実装部分)
10 0.000 0.000 2.865 0.286 (画面実装部分)
7591 2.784 0.000 2.784 0.000 {method 'recv' of '_socket.socket' objects}
19 0.000 0.000 2.275 0.120 liburllib2.py:122(urlopen)
19 0.000 0.000 2.275 0.120 liburllib2.py:373(open)
19 0.000 0.000 2.274 0.120 liburllib2.py:401(_open)
(略)
https://www.monotaro.com/ 23
https://www.monotaro.com/ 24
Boost application performance using asynchronous I/O
http://www.ibm.com/developerworks/library/l-async/
https://www.monotaro.com/ 25
Boost application performance using asynchronous I/O
http://www.ibm.com/developerworks/library/l-async/
https://www.monotaro.com/ 26




https://www.monotaro.com/ 27
https://www.monotaro.com/ 28
# 標準ライブラリにモンキーパッチ
# 必ず標準ライブラリの前に書くこと!
from gevent import monkey

monkey.patch_all()

# urllib2が非同期IO版に置換される
import urllib2
import gevent

https://www.monotaro.com/ 29
def get_json(self, url, params):
response = urllib2.urlopen(url).read()

return json.loads(response)
# 変更前 (urlopenで待たされる)
result = self.get_json(any_url,
any_params)
https://www.monotaro.com/ 30
def get_json(self, url, params):
response = urllib2.urlopen(url).read()

return json.loads(response)
# get_jsonはすぐには実行しない
future = gevent.spawn(self.get_json,
any_url, any_params)
(他の処理を実行できる)
# future.get()実行結果が来るまでブロック
result = future.get()
https://www.monotaro.com/ 31


future1 = gevent.spawn(self.get_json, url1, param1)
future2 = gevent.spawn(self.get_json, url2, param2)
future3 = gevent.spawn(self.get_json, url3, param3)
future4 = gevent.spawn(self.get_json, url4, param4)
future5 = gevent.spawn(self.get_json, url5, param5)
…
https://www.monotaro.com/ 32
from gevent.lock import Semaphore

# セマフォを用いて同時処理数を50に制限
semaphore = Semaphore(50)
def get_json(self, url, params):
# このコンテキスト内には同時に最大50しか入れない

with semaphore:
response = urllib2.urlopen(url).read()
return json.loads(response)
https://www.monotaro.com/ 33
from gevent.pywsgi import WSGIServer

http_server = WSGIServer(('', 5000), app)

http_server.serve_forever()
https://www.monotaro.com/ 34
gevent.spawn
https://www.monotaro.com/ 35
APIAPIAPI
API
AP
Server
https://www.monotaro.com/
API
[ms]
https://www.monotaro.com/ 37
APIAPIAPI
API
AP
Server
https://www.monotaro.com/ 38
https://www.monotaro.com/


APIAPIAPI
API
AP
Server
39
https://www.monotaro.com/


40
APIAPIAPI
API
AP
Server
https://www.monotaro.com/ 41
https://www.monotaro.com/ 42
https://www.monotaro.com/ 43
https://www.monotaro.com/ 44
https://www.monotaro.com/ 45
https://www.monotaro.com/ 46
https://www.monotaro.com/ 47

More Related Content

PDF
MonotaROが向かうクラウド活用の今後 2016-04-21 関西スタートアップAWS勉強会
PPTX
MonotaRO TechTalk #1 ごあいさつ
PPTX
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
PDF
モノタロウを支える Solr による商品検索システム
PPTX
尼崎から世界へ!モノタロウの海外展開を支えるDevOps基盤 (デブサミ関西2016)
PDF
モノタロウの商品データ連携について
PPTX
モノタロウが トレジャーデータを使う理由と、 データを活かす企業文化
PPTX
社内勉強会を続けるには(2016.10.07 DevLove 関西)
MonotaROが向かうクラウド活用の今後 2016-04-21 関西スタートアップAWS勉強会
MonotaRO TechTalk #1 ごあいさつ
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
モノタロウを支える Solr による商品検索システム
尼崎から世界へ!モノタロウの海外展開を支えるDevOps基盤 (デブサミ関西2016)
モノタロウの商品データ連携について
モノタロウが トレジャーデータを使う理由と、 データを活かす企業文化
社内勉強会を続けるには(2016.10.07 DevLove 関西)

Viewers also liked (9)

PPTX
エンジニアからCTOへ 2015-06-11 IVS CTO Night & Day
PPTX
MonotaROの基幹システムがこの先生きのこるには 2015.03.20 DevLOVE関西 事業会社の現場を知ろう~モノタロウ編~
PDF
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
PDF
Pyconjp2016 pyftplib
PDF
RaspberryPiで日本の子供たちにプログラミングのパッションを伝えよう!
PDF
Pythonで実現する4コマ漫画の分析・評論
PPTX
Pythonで入門するApache Spark at PyCon2016
PDF
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
PDF
PyConJP2016: 週末サイエンティストのススメ
エンジニアからCTOへ 2015-06-11 IVS CTO Night & Day
MonotaROの基幹システムがこの先生きのこるには 2015.03.20 DevLOVE関西 事業会社の現場を知ろう~モノタロウ編~
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pyconjp2016 pyftplib
RaspberryPiで日本の子供たちにプログラミングのパッションを伝えよう!
Pythonで実現する4コマ漫画の分析・評論
Pythonで入門するApache Spark at PyCon2016
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
PyConJP2016: 週末サイエンティストのススメ
Ad

Similar to マイクロサービスを利用する側のパフォーマンス向上策 (PyCon JP 2016) (20)

PDF
More than 1600 backlinks to Frontware.com
ODT
ping all data health
KEY
お前の芝生は青い
PPTX
Frequently Asked Questions Business Analyst Healthcare IT
PDF
【平成30年5月24日】地域課題解決のための データ活用について 〜スマート京都の推進〜
PDF
Eficiency and Low Cost: Pro Tips for you to save 50% of your money with Googl...
PPTX
Prototípus-fejlesztés 3D nyomtatással (Balássy György és Takács Péter)
PDF
第6回LODチャレンジデー Monaca紹介資料
PDF
Guide to becoming a Personal Trainer by the NAFC 0001-11-30
PDF
Ruby ecosystem applied to agile project
PDF
El.text.shoji
PPTX
11 reasons why you should buy mfp all in one printer
PDF
The Telegraph - Archives
PDF
Website & Mobile App
PDF
I時代的工作術
PDF
Crawling & Indexing: Technical SEO that drives revenue
PPTX
Lt speech 1
More than 1600 backlinks to Frontware.com
ping all data health
お前の芝生は青い
Frequently Asked Questions Business Analyst Healthcare IT
【平成30年5月24日】地域課題解決のための データ活用について 〜スマート京都の推進〜
Eficiency and Low Cost: Pro Tips for you to save 50% of your money with Googl...
Prototípus-fejlesztés 3D nyomtatással (Balássy György és Takács Péter)
第6回LODチャレンジデー Monaca紹介資料
Guide to becoming a Personal Trainer by the NAFC 0001-11-30
Ruby ecosystem applied to agile project
El.text.shoji
11 reasons why you should buy mfp all in one printer
The Telegraph - Archives
Website & Mobile App
I時代的工作術
Crawling & Indexing: Technical SEO that drives revenue
Lt speech 1
Ad

More from 株式会社MonotaRO Tech Team (20)

PDF
20240522 Findy Event ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
PDF
本番環境でやらかしちゃった選手権_MonotaRO社内LT会利用スライド.pdf
PDF
この技術書がすごい!2023夏(おすすめの技術書をペライチで紹介する選手権) .pdf
PDF
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
PDF
【TECHTRACKJP】私ってデータエンジニアなんですか?気づいたらデータエンジニアと呼ばれるようになった私がこの職種について考えた【20230725】
PDF
【マーケティング・テクノロジーフェア 大阪 2023】 データから正しい意思決定を行うために 〜全社横断で実施したデータ活用プロジェクトの取...
PDF
[ITmedia Cloud Native 2023] モノタロウのクラウドネイティブ.pdf
PDF
datatech-jp Casual Talks #5_データ基盤の立ち位置を考えるのに チームトポロジーの概念を活用した話
PDF
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
PDF
JDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのか
PDF
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
PDF
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
PDF
データ基盤に関わる問い合わせ対応を仕組みで解決する
PDF
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021
PDF
「指標」を支えるエンジニアリング: DataOpsNight #1
PDF
データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)
PDF
MonotaRO のデータ活用と基盤の過去、現在、未来
PDF
全社のデータ活用を一段階上げる取り組み
PDF
データ基盤グループを支えるチームビルディング
PDF
MonotaRO LT - ESLintの仕組み
20240522 Findy Event ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
本番環境でやらかしちゃった選手権_MonotaRO社内LT会利用スライド.pdf
この技術書がすごい!2023夏(おすすめの技術書をペライチで紹介する選手権) .pdf
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
【TECHTRACKJP】私ってデータエンジニアなんですか?気づいたらデータエンジニアと呼ばれるようになった私がこの職種について考えた【20230725】
【マーケティング・テクノロジーフェア 大阪 2023】 データから正しい意思決定を行うために 〜全社横断で実施したデータ活用プロジェクトの取...
[ITmedia Cloud Native 2023] モノタロウのクラウドネイティブ.pdf
datatech-jp Casual Talks #5_データ基盤の立ち位置を考えるのに チームトポロジーの概念を活用した話
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
JDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのか
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
データ基盤に関わる問い合わせ対応を仕組みで解決する
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021
「指標」を支えるエンジニアリング: DataOpsNight #1
データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)
MonotaRO のデータ活用と基盤の過去、現在、未来
全社のデータ活用を一段階上げる取り組み
データ基盤グループを支えるチームビルディング
MonotaRO LT - ESLintの仕組み

Recently uploaded (20)

PDF
medical staffing services at VALiNTRY
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
System and Network Administraation Chapter 3
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Transform Your Business with a Software ERP System
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Introduction to Artificial Intelligence
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
AI in Product Development-omnex systems
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
System and Network Administration Chapter 2
medical staffing services at VALiNTRY
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Odoo Companies in India – Driving Business Transformation.pdf
Design an Analysis of Algorithms I-SECS-1021-03
System and Network Administraation Chapter 3
wealthsignaloriginal-com-DS-text-... (1).pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Transform Your Business with a Software ERP System
Operating system designcfffgfgggggggvggggggggg
Introduction to Artificial Intelligence
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Navsoft: AI-Powered Business Solutions & Custom Software Development
Reimagine Home Health with the Power of Agentic AI​
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
2025 Textile ERP Trends: SAP, Odoo & Oracle
AI in Product Development-omnex systems
How to Choose the Right IT Partner for Your Business in Malaysia
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
CHAPTER 2 - PM Management and IT Context
System and Network Administration Chapter 2

マイクロサービスを利用する側のパフォーマンス向上策 (PyCon JP 2016)