SlideShare a Scribd company logo
© Recochoku Co.,Ltd. Proprietary and Confidential
2017/02/07
レコチョクの
サービス群を支えるAPIたち
〜レコチョクAPIの紹介とこれから〜
株式会社レコチョク
事業システム推進部 システムアーキテクトグループ
山本 耕琢
© Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07
自己紹介
2
山本 耕琢
年齢
• 1984年生まれ (32歳)
担当業務
• レコチョクの楽曲情報の検索や、会員/決済情報、
レコメンド情報などを扱うWebAPIの運用と改善を担当
趣味
• ライブ観戦 / スノーボード
• 国内旅行(主に電車) / 読書 / コーヒー
好きなアーティスト
• ASIAN KUNG-FU GENERATION
• OVER ARM THROW
• LiSA
© Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07
レコチョクAPIとは
3
レコチョクで管理されている様々なデータ及び手続きを提供するAPIになります。
レコチョクで承認した企業に対して、アクセス情報を提供して、
セキュリティを担保して、レコチョクでの各種データや手続きを提供しています。
© Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07
レコチョクAPIの役割 (システム鳥瞰図)
4
© Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07
レコチョクAPIの役割 (システム鳥瞰図/簡略版)
5
(View)
KDDI docomo
API
(Controller)
API
(Model)
(Model)
CMA
DB CloudSearch
Music
Store
DS
Best Hits TV WIZY
フロント層とサービス層の仲介をすることで、新しいサービスの
展開スピードを高めたり仕様変更の影響を最小限に抑えることが出来ます
© Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07
レコチョクAPIの提供する機能
6
カテゴリ 説明
楽曲検索API レコチョクにて管理された楽曲・アーティスト・アルバム・トラック・ランキングなどの情報を検索・閲覧
するための機能を提供します。
決済API レコチョクにて販売されているトラック・アルバムの購入又はウォレットチャージなどの事前購入手続きを
行うため機能を提供します。
会員API レコチョクで管理している会員に関わる情報の、更新及び参照を行う機能を提供します。
ソーシャルAPI 楽曲やアルバムのレビュー情報やMyアーティスト情報の登録・取得を行うための機能を提供します。
ダウンロードAPI 購入したトラック・アルバムをダウンロードするための手続きを行う機能を提供します。
マルチデバイス
ダウンロードAPI
レコチョクにて購入してお預かりしているトラック・アルバムの権利の参照及びダウンロードする為の機能
を提供します。
購入者特典API 購入者特典の申込・ダウンロード手続きを行うための機能を提供します。
カテゴリ 説明
認証機能 レコチョクで管理された情報や手続きを不正に利用されないように認証を行う機能を備えています。
楽曲メタ配信制御
フロント層に返却する情報に楽曲メタ情報を付与します。その時に、公開状態やデバイス情報に基づいて返
却する情報を制御する機能を備えています。
音源配布機能 音源情報が不正に配布されないように、適切に加工された音源を配布する機能を備えています。
© Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07
レコチョクAPIの提供する機能 (楽曲メタ配信機能)
7
ID
1111
2222
3333
4444
5555
サービス層から返却された各IDに、データ層から楽曲メタ情報を取得し、それ
を付与して返却します。それにより、サービス層は、自システムが提供する情
報の管理に集中することが出来ます。また、フロント層に情報を返却する際に、
公開状態のチェックやクライアントに適した情報の絞込を行い、返却をします。
API
DB
( ID) ( ID)
ID
( ID )
API (CloudSearch)
DB
1111 3333 5555
(“ ”) (“ ”)
ID
( ID )
1111 5555
© Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07
レコチョクAPIが抱える問題
8
レコチョクAPIのサービスinから3年以上の月日が経過しており度重なる
機能の追加などで技術的負債が蓄積しています。
また、AWS環境に移行しましたがクラウド環境へ適応がまだ不十分な状態です。
俗にいうレガシーなシステムからの脱却を目指して少しずつシステム改善を進
めたいと考えています。
開発/管理
• インタフェース仕様書はWordで作成してSVNで管理している
• 単体テストが作成されておらずバージョンアップの動作担保に工数がかかる
インフラ運用
• 各クライアントからの利用状況が把握できていない
• サービス層を利用する処理の性能を明確にできていない
• インフラ(AWS)コストが必要なのか過剰であるかが不明瞭である
• サーバのセキュリティ対応の運用が確立していなく不十分だと感じる
• リリース作業が自動化されていない
その他
• 外部向けの公開を推進したい
© Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07
今後の取り組み (インタフェース仕様書/Swaggerの導入)
9
Wordで作成しているインタフェース仕様書をSwaggerに置き換えて、
開発およびAPI利用者向け対応の工数削減を実現したいと考えています。
抱えている問題
• Wordのため変更箇所は履歴管理や差分チェックができない
• バイナリファイルのためGitと相性があまり良くない(現在はSVNを利用)
• API利用者が、テストツールやモックなどを準備する工数が発生する
• 設計書を修正した時に周知また配布する運用が発生する
Swaggerの導入により解決されること
• YAML(またはJSON形式)のテキストファイルのためGitで扱いやすくなり
変更箇所の履歴管理や差分チェックが容易となる
• Swagger Specificationからクライアント側やサーバ側(モック)のソース
コードを生成できるため、利用者側の開発工数を削減することが出来る
© Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07
今後の取り組み (APIの可視化/AWS Athena,X-Rayの導入)
10
レコチョクAPIをAWS環境に移行しているのでAthenaとX-Rayを利用して、
利用状況/ボトルネックがあるAPIを可視化し、リファクタリングや利用者側へ
の利用方法の改善要望などを実現することを考えています。
抱えている問題
• クライアント層からどのAPIをどれくらい利用されているか不明である
• 平均レスポンスタイムのみしか取得ができていない
• サービス層の改修による性能変化を検知することができない
AWS Athena,X-Rayの導入により解決されること
• アクセスログの解析を実施することでクライアント層単位のアクセス状況
を把握し遅延しているAPIを発見できる
• サービス層のシステムの通信状態を可視化して性能変化を検知したい

More Related Content

What's hot

【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
 
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようCloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
Eiji KOMINAMI
 
STAC2023 テストケースの自動生成に生成AI導入を検討してみた STAC2023
STAC2023 テストケースの自動生成に生成AI導入を検討してみた STAC2023STAC2023 テストケースの自動生成に生成AI導入を検討してみた STAC2023
STAC2023 テストケースの自動生成に生成AI導入を検討してみた STAC2023
Satoshi Sakashita
 
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
NTT DATA Technology & Innovation
 
Re-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decadeRe-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decade
Yasuharu Nishi
 
アジャイルベンダーの未来
アジャイルベンダーの未来アジャイルベンダーの未来
アジャイルベンダーの未来
Yukio Okajima
 
「PdMと考えるQAとプロダクトマネジメント」
「PdMと考えるQAとプロダクトマネジメント」「PdMと考えるQAとプロダクトマネジメント」
「PdMと考えるQAとプロダクトマネジメント」
大貴 蜂須賀
 
車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれから車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれから
Yasuharu Nishi
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
 
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
Recruit Technologies
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
Hironori Washizaki
 
What is quality engineer? Is it something tasty?
What is quality engineer? Is it something tasty?What is quality engineer? Is it something tasty?
What is quality engineer? Is it something tasty?
Yasuharu Nishi
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTT DATA Technology & Innovation
 
テスト分析.pptx
テスト分析.pptxテスト分析.pptx
テスト分析.pptx
kauji0522
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
 
XP祭り2019 B-6 アジャイルソフトウェア開発への統計的品質管理の応用
XP祭り2019 B-6 アジャイルソフトウェア開発への統計的品質管理の応用XP祭り2019 B-6 アジャイルソフトウェア開発への統計的品質管理の応用
XP祭り2019 B-6 アジャイルソフトウェア開発への統計的品質管理の応用
Akinori SAKATA
 
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
Nobuhiro Yoshitake
 
クラウドのためのアーキテクチャ設計 - ベストプラクティス -
クラウドのためのアーキテクチャ設計 - ベストプラクティス - クラウドのためのアーキテクチャ設計 - ベストプラクティス -
クラウドのためのアーキテクチャ設計 - ベストプラクティス -
SORACOM, INC
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
 
スクラムパタン入門
スクラムパタン入門スクラムパタン入門
スクラムパタン入門
Kiro Harada
 

What's hot (20)

【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
 
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようCloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
 
STAC2023 テストケースの自動生成に生成AI導入を検討してみた STAC2023
STAC2023 テストケースの自動生成に生成AI導入を検討してみた STAC2023STAC2023 テストケースの自動生成に生成AI導入を検討してみた STAC2023
STAC2023 テストケースの自動生成に生成AI導入を検討してみた STAC2023
 
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
 
Re-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decadeRe-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decade
 
アジャイルベンダーの未来
アジャイルベンダーの未来アジャイルベンダーの未来
アジャイルベンダーの未来
 
「PdMと考えるQAとプロダクトマネジメント」
「PdMと考えるQAとプロダクトマネジメント」「PdMと考えるQAとプロダクトマネジメント」
「PdMと考えるQAとプロダクトマネジメント」
 
車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれから車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれから
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
 
What is quality engineer? Is it something tasty?
What is quality engineer? Is it something tasty?What is quality engineer? Is it something tasty?
What is quality engineer? Is it something tasty?
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 
テスト分析.pptx
テスト分析.pptxテスト分析.pptx
テスト分析.pptx
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
XP祭り2019 B-6 アジャイルソフトウェア開発への統計的品質管理の応用
XP祭り2019 B-6 アジャイルソフトウェア開発への統計的品質管理の応用XP祭り2019 B-6 アジャイルソフトウェア開発への統計的品質管理の応用
XP祭り2019 B-6 アジャイルソフトウェア開発への統計的品質管理の応用
 
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
 
クラウドのためのアーキテクチャ設計 - ベストプラクティス -
クラウドのためのアーキテクチャ設計 - ベストプラクティス - クラウドのためのアーキテクチャ設計 - ベストプラクティス -
クラウドのためのアーキテクチャ設計 - ベストプラクティス -
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
 
スクラムパタン入門
スクラムパタン入門スクラムパタン入門
スクラムパタン入門
 

Similar to レコチョクのサービス群を支えるApiたち

業界あるある Music偏
 業界あるある Music偏 業界あるある Music偏
業界あるある Music偏
recotech
 
20170420 if up2017-ssg-kyushu
20170420 if up2017-ssg-kyushu20170420 if up2017-ssg-kyushu
20170420 if up2017-ssg-kyushu
Yasuo KUTSUNA
 
Calendar Plus JavaScript APIをいじってみた
Calendar Plus JavaScript APIをいじってみたCalendar Plus JavaScript APIをいじってみた
Calendar Plus JavaScript APIをいじってみた
Sakae Saito
 
kintoneの基礎知識とここ1年の主要アップデート情報
kintoneの基礎知識とここ1年の主要アップデート情報kintoneの基礎知識とここ1年の主要アップデート情報
kintoneの基礎知識とここ1年の主要アップデート情報
Sakae Saito
 
kintoneが織りなす新しいSIの世界
kintoneが織りなす新しいSIの世界kintoneが織りなす新しいSIの世界
kintoneが織りなす新しいSIの世界
Sakae Saito
 
そうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニアそうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニア
recotech
 
実践!JavaScriptカスタマイズ
実践!JavaScriptカスタマイズ実践!JavaScriptカスタマイズ
実践!JavaScriptカスタマイズ
Sakae Saito
 
Lifebear beernight 1_for_share
Lifebear beernight 1_for_shareLifebear beernight 1_for_share
Lifebear beernight 1_for_share
Yasuhiro Mashiyama
 
kintone JSコーディングの玄人化を目指して - kintone evaCamp 2017
kintone JSコーディングの玄人化を目指して - kintone evaCamp 2017kintone JSコーディングの玄人化を目指して - kintone evaCamp 2017
kintone JSコーディングの玄人化を目指して - kintone evaCamp 2017
Ryu Yamashita
 
Eight×kintone 【Eightの名刺データをkintoneで活用してみよう!】
Eight×kintone 【Eightの名刺データをkintoneで活用してみよう!】Eight×kintone 【Eightの名刺データをkintoneで活用してみよう!】
Eight×kintone 【Eightの名刺データをkintoneで活用してみよう!】
Sakae Saito
 
個人事業者でも活用できるkintone
個人事業者でも活用できるkintone個人事業者でも活用できるkintone
個人事業者でも活用できるkintone
Sakae Saito
 

Similar to レコチョクのサービス群を支えるApiたち (11)

業界あるある Music偏
 業界あるある Music偏 業界あるある Music偏
業界あるある Music偏
 
20170420 if up2017-ssg-kyushu
20170420 if up2017-ssg-kyushu20170420 if up2017-ssg-kyushu
20170420 if up2017-ssg-kyushu
 
Calendar Plus JavaScript APIをいじってみた
Calendar Plus JavaScript APIをいじってみたCalendar Plus JavaScript APIをいじってみた
Calendar Plus JavaScript APIをいじってみた
 
kintoneの基礎知識とここ1年の主要アップデート情報
kintoneの基礎知識とここ1年の主要アップデート情報kintoneの基礎知識とここ1年の主要アップデート情報
kintoneの基礎知識とここ1年の主要アップデート情報
 
kintoneが織りなす新しいSIの世界
kintoneが織りなす新しいSIの世界kintoneが織りなす新しいSIの世界
kintoneが織りなす新しいSIの世界
 
そうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニアそうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニア
 
実践!JavaScriptカスタマイズ
実践!JavaScriptカスタマイズ実践!JavaScriptカスタマイズ
実践!JavaScriptカスタマイズ
 
Lifebear beernight 1_for_share
Lifebear beernight 1_for_shareLifebear beernight 1_for_share
Lifebear beernight 1_for_share
 
kintone JSコーディングの玄人化を目指して - kintone evaCamp 2017
kintone JSコーディングの玄人化を目指して - kintone evaCamp 2017kintone JSコーディングの玄人化を目指して - kintone evaCamp 2017
kintone JSコーディングの玄人化を目指して - kintone evaCamp 2017
 
Eight×kintone 【Eightの名刺データをkintoneで活用してみよう!】
Eight×kintone 【Eightの名刺データをkintoneで活用してみよう!】Eight×kintone 【Eightの名刺データをkintoneで活用してみよう!】
Eight×kintone 【Eightの名刺データをkintoneで活用してみよう!】
 
個人事業者でも活用できるkintone
個人事業者でも活用できるkintone個人事業者でも活用できるkintone
個人事業者でも活用できるkintone
 

More from recotech

RecoChoku tech night #09 -reinvent2018報告会- オープニング
RecoChoku tech night #09 -reinvent2018報告会-  オープニングRecoChoku tech night #09 -reinvent2018報告会-  オープニング
RecoChoku tech night #09 -reinvent2018報告会- オープニング
recotech
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
recotech
 
Amazon Kinesis Streams デモ
Amazon Kinesis Streams デモAmazon Kinesis Streams デモ
Amazon Kinesis Streams デモ
recotech
 
Amazon SageMaker の紹介 + デモ
Amazon SageMaker の紹介 + デモ Amazon SageMaker の紹介 + デモ
Amazon SageMaker の紹介 + デモ
recotech
 
Aws導入時にまず考える〇〇のこと
Aws導入時にまず考える〇〇のことAws導入時にまず考える〇〇のこと
Aws導入時にまず考える〇〇のこと
recotech
 
レコチョク・ラボが考える人工知能
レコチョク・ラボが考える人工知能レコチョク・ラボが考える人工知能
レコチョク・ラボが考える人工知能
recotech
 
Oracle racからaurora my sqlへの移行
Oracle racからaurora my sqlへの移行Oracle racからaurora my sqlへの移行
Oracle racからaurora my sqlへの移行
recotech
 
Git hubenterpriseを導入してみて
Git hubenterpriseを導入してみてGit hubenterpriseを導入してみて
Git hubenterpriseを導入してみて
recotech
 
Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発
recotech
 
Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~
recotech
 
#reco_tech Cloud searchでレコチョク検索の実現に向けて
#reco_tech   Cloud searchでレコチョク検索の実現に向けて#reco_tech   Cloud searchでレコチョク検索の実現に向けて
#reco_tech Cloud searchでレコチョク検索の実現に向けて
recotech
 
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech   OracleからAuroraへ feat. 開発しかやってこなかったエンジニア#reco_tech   OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
recotech
 
#reco_tech AWSへ全面移行した今を話ます。
#reco_tech   AWSへ全面移行した今を話ます。#reco_tech   AWSへ全面移行した今を話ます。
#reco_tech AWSへ全面移行した今を話ます。
recotech
 
WIZY企画の裏側
WIZY企画の裏側WIZY企画の裏側
WIZY企画の裏側
recotech
 
#recotech_AWS移行してみたけどぶっちゃけどうよ。
#recotech_AWS移行してみたけどぶっちゃけどうよ。#recotech_AWS移行してみたけどぶっちゃけどうよ。
#recotech_AWS移行してみたけどぶっちゃけどうよ。
recotech
 
#recotech_WIZY開発の裏側
#recotech_WIZY開発の裏側#recotech_WIZY開発の裏側
#recotech_WIZY開発の裏側
recotech
 
#recotech_レガシーなシステムから立て直すためにしたこと
#recotech_レガシーなシステムから立て直すためにしたこと#recotech_レガシーなシステムから立て直すためにしたこと
#recotech_レガシーなシステムから立て直すためにしたこと
recotech
 

More from recotech (17)

RecoChoku tech night #09 -reinvent2018報告会- オープニング
RecoChoku tech night #09 -reinvent2018報告会-  オープニングRecoChoku tech night #09 -reinvent2018報告会-  オープニング
RecoChoku tech night #09 -reinvent2018報告会- オープニング
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
 
Amazon Kinesis Streams デモ
Amazon Kinesis Streams デモAmazon Kinesis Streams デモ
Amazon Kinesis Streams デモ
 
Amazon SageMaker の紹介 + デモ
Amazon SageMaker の紹介 + デモ Amazon SageMaker の紹介 + デモ
Amazon SageMaker の紹介 + デモ
 
Aws導入時にまず考える〇〇のこと
Aws導入時にまず考える〇〇のことAws導入時にまず考える〇〇のこと
Aws導入時にまず考える〇〇のこと
 
レコチョク・ラボが考える人工知能
レコチョク・ラボが考える人工知能レコチョク・ラボが考える人工知能
レコチョク・ラボが考える人工知能
 
Oracle racからaurora my sqlへの移行
Oracle racからaurora my sqlへの移行Oracle racからaurora my sqlへの移行
Oracle racからaurora my sqlへの移行
 
Git hubenterpriseを導入してみて
Git hubenterpriseを導入してみてGit hubenterpriseを導入してみて
Git hubenterpriseを導入してみて
 
Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発
 
Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~
 
#reco_tech Cloud searchでレコチョク検索の実現に向けて
#reco_tech   Cloud searchでレコチョク検索の実現に向けて#reco_tech   Cloud searchでレコチョク検索の実現に向けて
#reco_tech Cloud searchでレコチョク検索の実現に向けて
 
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech   OracleからAuroraへ feat. 開発しかやってこなかったエンジニア#reco_tech   OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
 
#reco_tech AWSへ全面移行した今を話ます。
#reco_tech   AWSへ全面移行した今を話ます。#reco_tech   AWSへ全面移行した今を話ます。
#reco_tech AWSへ全面移行した今を話ます。
 
WIZY企画の裏側
WIZY企画の裏側WIZY企画の裏側
WIZY企画の裏側
 
#recotech_AWS移行してみたけどぶっちゃけどうよ。
#recotech_AWS移行してみたけどぶっちゃけどうよ。#recotech_AWS移行してみたけどぶっちゃけどうよ。
#recotech_AWS移行してみたけどぶっちゃけどうよ。
 
#recotech_WIZY開発の裏側
#recotech_WIZY開発の裏側#recotech_WIZY開発の裏側
#recotech_WIZY開発の裏側
 
#recotech_レガシーなシステムから立て直すためにしたこと
#recotech_レガシーなシステムから立て直すためにしたこと#recotech_レガシーなシステムから立て直すためにしたこと
#recotech_レガシーなシステムから立て直すためにしたこと
 

Recently uploaded

キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 

Recently uploaded (10)

キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 

レコチョクのサービス群を支えるApiたち

  • 1. © Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07 レコチョクの サービス群を支えるAPIたち 〜レコチョクAPIの紹介とこれから〜 株式会社レコチョク 事業システム推進部 システムアーキテクトグループ 山本 耕琢
  • 2. © Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07 自己紹介 2 山本 耕琢 年齢 • 1984年生まれ (32歳) 担当業務 • レコチョクの楽曲情報の検索や、会員/決済情報、 レコメンド情報などを扱うWebAPIの運用と改善を担当 趣味 • ライブ観戦 / スノーボード • 国内旅行(主に電車) / 読書 / コーヒー 好きなアーティスト • ASIAN KUNG-FU GENERATION • OVER ARM THROW • LiSA
  • 3. © Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07 レコチョクAPIとは 3 レコチョクで管理されている様々なデータ及び手続きを提供するAPIになります。 レコチョクで承認した企業に対して、アクセス情報を提供して、 セキュリティを担保して、レコチョクでの各種データや手続きを提供しています。
  • 4. © Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07 レコチョクAPIの役割 (システム鳥瞰図) 4
  • 5. © Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07 レコチョクAPIの役割 (システム鳥瞰図/簡略版) 5 (View) KDDI docomo API (Controller) API (Model) (Model) CMA DB CloudSearch Music Store DS Best Hits TV WIZY フロント層とサービス層の仲介をすることで、新しいサービスの 展開スピードを高めたり仕様変更の影響を最小限に抑えることが出来ます
  • 6. © Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07 レコチョクAPIの提供する機能 6 カテゴリ 説明 楽曲検索API レコチョクにて管理された楽曲・アーティスト・アルバム・トラック・ランキングなどの情報を検索・閲覧 するための機能を提供します。 決済API レコチョクにて販売されているトラック・アルバムの購入又はウォレットチャージなどの事前購入手続きを 行うため機能を提供します。 会員API レコチョクで管理している会員に関わる情報の、更新及び参照を行う機能を提供します。 ソーシャルAPI 楽曲やアルバムのレビュー情報やMyアーティスト情報の登録・取得を行うための機能を提供します。 ダウンロードAPI 購入したトラック・アルバムをダウンロードするための手続きを行う機能を提供します。 マルチデバイス ダウンロードAPI レコチョクにて購入してお預かりしているトラック・アルバムの権利の参照及びダウンロードする為の機能 を提供します。 購入者特典API 購入者特典の申込・ダウンロード手続きを行うための機能を提供します。 カテゴリ 説明 認証機能 レコチョクで管理された情報や手続きを不正に利用されないように認証を行う機能を備えています。 楽曲メタ配信制御 フロント層に返却する情報に楽曲メタ情報を付与します。その時に、公開状態やデバイス情報に基づいて返 却する情報を制御する機能を備えています。 音源配布機能 音源情報が不正に配布されないように、適切に加工された音源を配布する機能を備えています。
  • 7. © Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07 レコチョクAPIの提供する機能 (楽曲メタ配信機能) 7 ID 1111 2222 3333 4444 5555 サービス層から返却された各IDに、データ層から楽曲メタ情報を取得し、それ を付与して返却します。それにより、サービス層は、自システムが提供する情 報の管理に集中することが出来ます。また、フロント層に情報を返却する際に、 公開状態のチェックやクライアントに適した情報の絞込を行い、返却をします。 API DB ( ID) ( ID) ID ( ID ) API (CloudSearch) DB 1111 3333 5555 (“ ”) (“ ”) ID ( ID ) 1111 5555
  • 8. © Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07 レコチョクAPIが抱える問題 8 レコチョクAPIのサービスinから3年以上の月日が経過しており度重なる 機能の追加などで技術的負債が蓄積しています。 また、AWS環境に移行しましたがクラウド環境へ適応がまだ不十分な状態です。 俗にいうレガシーなシステムからの脱却を目指して少しずつシステム改善を進 めたいと考えています。 開発/管理 • インタフェース仕様書はWordで作成してSVNで管理している • 単体テストが作成されておらずバージョンアップの動作担保に工数がかかる インフラ運用 • 各クライアントからの利用状況が把握できていない • サービス層を利用する処理の性能を明確にできていない • インフラ(AWS)コストが必要なのか過剰であるかが不明瞭である • サーバのセキュリティ対応の運用が確立していなく不十分だと感じる • リリース作業が自動化されていない その他 • 外部向けの公開を推進したい
  • 9. © Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07 今後の取り組み (インタフェース仕様書/Swaggerの導入) 9 Wordで作成しているインタフェース仕様書をSwaggerに置き換えて、 開発およびAPI利用者向け対応の工数削減を実現したいと考えています。 抱えている問題 • Wordのため変更箇所は履歴管理や差分チェックができない • バイナリファイルのためGitと相性があまり良くない(現在はSVNを利用) • API利用者が、テストツールやモックなどを準備する工数が発生する • 設計書を修正した時に周知また配布する運用が発生する Swaggerの導入により解決されること • YAML(またはJSON形式)のテキストファイルのためGitで扱いやすくなり 変更箇所の履歴管理や差分チェックが容易となる • Swagger Specificationからクライアント側やサーバ側(モック)のソース コードを生成できるため、利用者側の開発工数を削減することが出来る
  • 10. © Recochoku Co.,Ltd. Proprietary and Confidential 2017/02/07 今後の取り組み (APIの可視化/AWS Athena,X-Rayの導入) 10 レコチョクAPIをAWS環境に移行しているのでAthenaとX-Rayを利用して、 利用状況/ボトルネックがあるAPIを可視化し、リファクタリングや利用者側へ の利用方法の改善要望などを実現することを考えています。 抱えている問題 • クライアント層からどのAPIをどれくらい利用されているか不明である • 平均レスポンスタイムのみしか取得ができていない • サービス層の改修による性能変化を検知することができない AWS Athena,X-Rayの導入により解決されること • アクセスログの解析を実施することでクライアント層単位のアクセス状況 を把握し遅延しているAPIを発見できる • サービス層のシステムの通信状態を可視化して性能変化を検知したい