Qiita Night 足場固めからやるマイクロサービス

Software Developer at Kakaku.com, Inc.
Jul. 29, 2022
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
1 of 17

More Related Content

What's hot

AWSでDockerを扱うためのベストプラクティスAWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAmazon Web Services Japan
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsYoshiyasu SAEKI
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
C34 ニッチだけど、社会インフラを支えるデータベース、HiRDB ~HiRDBを選ぶ人、選ばない人、その選択基準とは~ by Taichi IshikawaC34 ニッチだけど、社会インフラを支えるデータベース、HiRDB ~HiRDBを選ぶ人、選ばない人、その選択基準とは~ by Taichi Ishikawa
C34 ニッチだけど、社会インフラを支えるデータベース、HiRDB ~HiRDBを選ぶ人、選ばない人、その選択基準とは~ by Taichi IshikawaInsight Technology, Inc.

What's hot(20)

Similar to Qiita Night 足場固めからやるマイクロサービス

[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonightAmazon Web Services Japan
Microsoft MVP から見たクラウド サービスの現状と今後についてMicrosoft MVP から見たクラウド サービスの現状と今後について
Microsoft MVP から見たクラウド サービスの現状と今後についてIIJ
KubeFlow MeetUp #1 Katibよもやま話KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話Yuji Oshima
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとはKoto Shigeru
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みリクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みRecruit Technologies
インフラチームの歴史とこれからインフラチームの歴史とこれから
インフラチームの歴史とこれからbitbank, Inc. Tokyo, Japan

Similar to Qiita Night 足場固めからやるマイクロサービス(20)

Recently uploaded

ハイエンド〜ローエンドまで、「Enlighten」による効率的リアルタイムグローバルイルミネーション|CEDEC2023ハイエンド〜ローエンドまで、「Enlighten」による効率的リアルタイムグローバルイルミネーション|CEDEC2023
ハイエンド〜ローエンドまで、「Enlighten」による効率的リアルタイムグローバルイルミネーション|CEDEC2023Silicon Studio Corporation
DockerでCoq インストールDockerでCoq インストール
DockerでCoq インストールYoshihiro Mizoguchi
LTは検証の場.pptxLTは検証の場.pptx
LTは検証の場.pptxssuserfcafd1
【JSTQB_ALTM】シラバス第3章【JSTQB_ALTM】シラバス第3章
【JSTQB_ALTM】シラバス第3章ssusercd6d02
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdfソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf耕二 阿部
Ansible入門.pptxAnsible入門.pptx
Ansible入門.pptx洵貴 佐川

Qiita Night 足場固めからやるマイクロサービス

Editor's Notes

  1. 株式会社カカクコムの栗山です。 よろしくお願いします。
  2. サクッと私の自己紹介です。 Qiita では id: weakboson として活動してます。 2019年からマイクロサービス化チームでやってます。 最近のお仕事は一部Qiitaで公開しています。 本日は個々の技術情報は触りの説明になるので、詳細にご興味ある方はQiita記事の方をご覧ください。
  3. 本日のお品書きでございます。 食べログの紹介、マイクロサービス化の変遷をお話した後、大規模なレガシーシステムを段階的改善する取り組みについて紹介します。 <目次の後半は食べログの独自ボキャブラリなので、この時点では話さない>
  4. 最初に食べログの紹介をさせてください。 食べログは日本最大級のレストラン検索・予約サイトで、レストランの口コミや予約の他に、現在は飲食店DX、モバイルオーダーや食材の仕入、それにお取り寄せECの食べログモールもやっておりまして、外食産業のインフラ、エコシステムのようなサービスになってきています。 飲食店DXはIoTもあったりして技術的にもサービス的にもおもしろいので、別の機会に紹介できたらなと思います。
  5. 食べログは2019年以前にシステム分割を試みたのですが、いわゆる「分散されたモノリス」アンチパターンに陥りまして、この路線で継続すると過渡期が辛いという理解に至りました。 各所でさんざん言われてますし、そうならないように気をつけてはいましたが、結果的にはマイクロサービス化を目的として取り違えていたのだと思います。 敢えて名付けるならマイクロサービス化に振り回され期でしょうか。 そこで2019年から方針転換しまして、マイクロサービス化は手段であると悟り、現状に至ります。
  6. 分散されたモノリスはドメインを整理する前にシステムを分割すると陥りやすいアンチパターンです。 <スライドのテキストそのまま話す>
  7. <スライドそのまま>
  8. <スライド内容そのまま>
  9. そんなわけでここからは食べログの現在のシステム改善の取り組み方、戦略のお話になります。 これ食べログシステム本部長の京和が2020年のアドベントカレンダーに投稿してなかなか好評を博した記事からの抜粋なんですが、 まずSTEP1、システムの変更容易性、変更安全性を高める、システムがアジリティを備えた状態にするというのが第一ですね。 アジャイル開発、アジャイルな計画と言われますが、レガシーなアプリケーションに対しては適用しづらいので、まずはシステム基盤をアジャイルにする戦略です。 例えばカナリアリリース、Blue/Greenデプロイができると障害があったときに影響を小さく短時間にできるので、調査しきれない未知のリスクに対してリスクテイクするという選択肢がとれます。 これが切り替えは全システム同時だとか、リバートに30分かかるとかだと、リスクをテイクするって選択肢はないわーということになっちゃいますよね。
  10. STEP1を詳しくいきますね。 レガシーな当時のシステムAs Is に対して目指す姿 To Be を定義し、解決する手段 How を考え、各チームがミッションとして遂行していきます。 イミュータブルインフラ、メトリクス監視・可視化といったところは弊社ではSREが、基盤技術の刷新についてはマイクロサービス化チームが担当しています。
  11. システム基盤の刷新をどうやって進めてきたかなんですが、 最初に必要そうな基盤をリストアップしてカタログ化するところからはじめました。 書籍マイクロサービスアーキテクチャとか他社事例、現状の課題から、必要な基盤技術の設計図を描き、それをリスト化してカタログにします。 右が2020年1月の、まずリストアップした状態です。
  12. そして小さく検証・運用をはじめて、うまくいったら導入を拡大していく。 左が2021年3月の状態でまだ PoC や運用前が多いのですが、右の2022年3月になるとかなり運用中が増えてきてます。 その中で導入プロダクトも変わったものもあります。導入してみたけれど合わないときには、PoC や導入箇所が少ないうちに最適な別のものに変えます。 これが小さく失敗するということですかね。
  13. システム基盤としてかなりうまくいった事例の一つとしてデータ同期基盤を少しだけ深堀りして紹介します。 この改善の前、食べログのデータ同期基盤のパフォーマンスが悪くて、全件更新に概算で16日かかる問題がありました。 更新を駆動する仕組みもレガシーで15分間隔でスケジュールされたcronバッチでした。 たとえば食べログは昔口コミを200文字以上書かないとレビュアーページ以外に表示されなくて、 検索にもヒットしない仕様だったんですが、短い口コミも掲載したい、検索したいという企画が出てきても、なかなか「できます」と言いづらい状況でした。
  14. で、実際どういうアプローチをとったかというと、 DBの差分を低レイテンシ・低負荷で抽出できる Change Data Capture という技術で差分検出時間を短縮して、 イベント駆動にして Consumer の並列数を上げてスループットを向上させました。
  15. <スライド内容そのまま>
  16. これも弊社の京和が去年のアドベントカレンダーに投稿した記事からの抜粋なのですが、 技術部が武器として基盤技術を提供して、開発エンジニアが実際の改善を行う座組のことを、「冒険者と武器屋型モデル」と呼んでいます。 実際社内でもきちんと浸透してる概念で、マイクロサービス化チームはよく「武器屋の人」とか言われてます。
  17. というわけで締めなんですが、このLTのタイトル「足場固めからやるマイクロサービス」とは何か?というと、 いまの食べログシステム改善戦略のSTEP1、「システム全体をモダンなインフラ基盤に刷新することで、変更安全性と変更容易性を高める」ことからはじめるシステム改善ってことになります。