クールで見るアニメの本数がガクッと減っていることに気づいて最近は無力を感じています。やっていく宣言*1」が公開されたことは記憶に新しいと思います。関わる取り組みも行っています。追求する」取り組みについて、背景や現状も含めて紹介します。つのアプリケーション上に実装されたモノリシックアーキテクチャが一般的でした。その後サービスという単位で機能を切り出して別アプリケーションとして実装するサービス指向アーキテクチャを経て、オーナーシップを持って速度をもった開発を行うといった組織論の意味合いも含めたマイクロサービスアーキテクチャに変遷し今に至ることはもはや前提として良いでしょう。詳しく書かれています。サービスにおける障害の質も変化しました。モノリシックアーキテクチャでは、データベースの接続に失敗するなどアプリケーションで致命的なエラーが発生した場合、当然ながらアプリケーションのすべての機能は利用できなくなります。一方で、マイクロサービスアーキテクチャでは、あるサービスが何らかの原因で利用できなくなった場合でも、別のサービスは正常に利用できることが起こりうります。サービスは正常に動作しているのか?」という疑問に答えられる必要があります。ここで重要なことは、「あるサービスが障害になっても、サービス全体の機能が停止しない」というフォールトトレランスの考え方です。するなどの手法により、ユーザは依然として目的のサービスを利用できる可能性があります。サービスにおいてそのビジネスのために最も重要なことは、ユーザが快適にサービスを利用できているかどうかです。システムの裏側の内部がどうなっているかということはユーザにとって関心がありません。ゆえにシステムの内的な状態ではなく、ユーザの体験という外的な状態をもってシステムが正常であるかを判断できる必要があります。変化が見られないという仮説を検証します。よって判断し、システムの回復性に自信を持つ、または未知だったシステムの弱点を修正することが目的です。確保されつつあります。高めていく必要がある段階であると意識し始めました。仮説検証も進めていくことにしました。アプリケーションでは重要だと私は考えています。通していくつかの別サービスと通信しているのが現状です。定義することが先決という結論を出しました。つに決まっているものではないことは少し考えただけで想像できました。サービスと違う点として、課金していないユーザもレシピサービスを利用できる点が挙げられます。ストリーミングサービスとクックパッドのレシピサービスの異なる点として、課金モデルが挙げられます。課金しているユーザだけがストリーミングサービスを利用できますが、クックパッドでは課金していないユーザも一部機能を制限されながらレシピサービスを利用できます。クックパッドのレシピサービスは、課金ユーザだけでなく多くの課金していないユーザからも利用されている事実があります。対象とするユーザは課金ユーザだけに絞るべきかもしれません。万人が利用する*8、日本の家庭に根付いたものであるということができ、「顧客」は必ずしも課金ユーザに限定すべきではないと私は考えました。その裏側には、課金体系は月額のサブスクリプションのため、試しにプレミアムサービスを利用する障壁は低く、非課金ユーザのレシピサービスの体験が新たな課金ユーザの獲得、ひいてはレシピサービスの存続に関わる重要なものであるのではないかという思いがあります。この考えが適切かどうかに対する回答は未だ持っていません。考え始めるにあたって、対象とするユーザは「レシピサービスを利用するすべての人」という前提を置くことにしました。なりうるメトリクスを選択し検証した結果を述べます。目は、レシピサービスのコア機能という観点です。レシピサービスの性質上そう単純にうまくいかないことが分かりました。目の観点としたのがユーザの定常な行動パターンです。目の観点より妥当であることが分かりました。レシピサービスにおけるコア機能から考えるクックパッドのレシピサービスは、基本的にクックパッド側でレシピを追加するのではなく、レシピを投稿するユーザがいることによって成り立っており、レシピ投稿者は無くてはならない重要な存在といえます。一方で、レシピが投稿される数とレシピが閲覧される数を比較すると、圧倒的にレシピが閲覧される数のほうが多いです。ゆえに、ユーザにとってサービスが定常かどうかを考える上でユーザの体験に影響が現れやすいと考えられるレシピ閲覧にまず着目しました。障害が発生した場合でも、レシピ閲覧に紐付いていると考えられるものはレシピ閲覧数に影響を与えるはずと考え、記録するメトリクスはひとまずレシピ閲覧数だけで十分としました。グラフが以下の図になります。集計はリバースプロキシ層のアクセスログをもとに行っています。先週の値と今週の値を比較できるように表示しています。レシピが閲覧されるのは夕方で、晩ごはんの献立を考えるためであることが推測できます。先週と今週の値にあまり変化がなく、定常といえる日が多い一方で、先週と比較して大きく値が変動している期間があります。この期間で障害とみなせる事象は発生していませんでした。実は、先週のこの期間は本州に台風が来ており、その影響で外食を控え家で自炊するケースが増えてこのような結果になったのだと推測しています。レシピサービスという性質上、台風だけでなく天候に大きく影響されることは事実です。ユーザ側の視点で定常かどうかを表現するべきものであることを考慮すると、単純なレシピ閲覧数というメトリクスは適切ではないことが分かりました。比較そこで、関連性のある複数の値の関係を相対値として表すことで、ユーザ視点とシステム視点の定常の差を縮めることを考えました。レシピサービスにおいては、天候などの外的要因に影響されて利用者数が増減したとしても、「レシピサービスを使う大半の人の行動パターン」に影響は無いのではないかという仮説を立てました。社内ブログでこの取り組みの共有をしたところ、予想より多くの人からリアクションがありました。サービス開発チームからはよりユーザに近い立場の目線のフィードバックをもらえたり、機械学習グループからは異常検知についてのコメントをもらうことができ、良い方向に進められている手応えを感じました。取り組みは、全社的に導入するためにその必要性を広く周知していく必要があると考えており、以降も定期的な発信を積極的に行う予定です。いえるものが「レシピ検索」です。手元にある食材を把握するクックパッドで食材名をもとにレシピ検索いくつかレシピを見た上で料理するレシピを決めるといえるのではないでしょうか。この例では、レシピ検索とレシピ閲覧は密接に紐付いています*9。これを踏まえて、前回の仮説から次のようにアップデートしました。する、という仮説です。して使えないかを検討します。これは、台風が来てアクセスが増えた場合でもユーザの行動パターンは変化しないのではないかという考えに基づきます。雑談していたときに生まれたものです。レシピ閲覧数と検索数の比を検討するにあたり、まず本番のデータからこの値を抽出・表示するのではなく、今回は過去のデータを使って妥当性を判断することにしました。抽出することができます。して記録する文化が根付いており、過去の障害とその影響も容易に検索することができるため、データ基盤の活用と合わせることでユーザの体験に影響を与えた実際の障害が発生していた区間のメトリクスを検証できます。表せるようなメトリクスを検討する際は、そのメトリクスを取るために必要な労力のバランスを取る必要があると書かれていますが、過去のデータを元に検証する労力は、本番環境で新しくメトリクスを採取して時間経過をおいてから検証することに比べてはるかに低いことは明らかです。数の比を示したものです。(1)オレンジ色で値が明らかに跳ねている期間で、実際にレシピサービスを使うユーザに影響があった障害が発生していました。青色で値が突出している部分は、テレビ放映によりアクセス数が増加した時間帯でした。週間の図に表れています。前の図と同じクエリ・スケールです。このうち、実は大型の台風が来ていた期間があります。レシピ閲覧数は増加していますが、それに伴ってレシピ検索数も同じように増加しているため、値には大きな変化が表れていないと考えられます。枚目の図に近いスケールで値が跳ねていました。ところで、年間を通してクックパッドで最もアクセスの多い期間はバレンタイン周辺です。週間について同様に描画したグラフが以下の図です。(3)バレンタインの周辺は、相対的に全体の値が下にシフトしていました。障害の時ほど明らかな外れ値は見られません。表せていることが分かりました。そこで、現在ではレシピ閲覧数とレシピ検索数の比を遅延高々数十秒で記録・表示しています。観測できていませんが、過去の事例を使った検証結果より、この値を記録していくことには意味があると考えています。追求する取り組みについて紹介しました。関する情報はあまり見当たらないため、参考になれば幸いです。考える過程で、以下に挙げるいくつかの学びがありました。検証を効率的に行う助けとなるクックパッドのレシピサービスは、ユーザの生活と密接に関係しており、ユーザの体験を損ねないことが重要です。さらなる向上を目指していきたいと考えています。技術部のヨシオリです。〜クックパッドにおける研究開発のサービ...こんにちは!人事部の冨永です。使ったセキュリティログ検索基盤の構築サービス特性にあった検索システムの設計戦略クックパッド採用説明会「クックパッドはサービスの作り手を採用したいんです。/*}*/スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。