可用性の高い構成で、安心して眠れるシステム構築♪〜VASILY DEVELOPERS BLOGが公開されました〜

こんにちは、広報の坂井です。

本日1月23日(火)、VASILY DEVELOPERS BLOGが公開されました!

今回のタイトルは “検索システムだって高可用性にしたい!SolrCloudを用いた高可用性構成の紹介” 、担当はバックエンドテックリードの塩崎です。

f:id:vasilyjp:20180122185143j:plain

tech.vasily.jp

さっそくインタビューです。

ー 今回の記事はどのような内容なのでしょうか?

検索システムにおけるSolrCloudを用いた高可用性構成の紹介です。

まず、SolrCloudについてです。Solrとは、検索機能を提供するミドルウェアのことです。

例えば、IQONで「スカート」と検索した時に、該当するアイテムを表示してくれる機能はSolrによって提供されています。このミドルウェアでは、複雑な絞り込み、例えば「スカート」でチェック柄、膝丈、緑、5000円以内、など細かな条件を追加した時の検索にも使うことができます。

高可用性とは「可用性が高い」つまり、システムなどにおいて、サービス提供が出来なくなる事態の発生頻度が少ないことを指します。たとえば、一部分が壊れてもシステム全体はサービスを動かすことができる状態のことなどです。

f:id:vasilyjp:20180122185439j:plain

ー なるほど。その、SolrCloudを使った検索システムは、もしどこか壊れてしまっても問題なく動き続けるということですね?

はい、Solrの構成例は大きく以下の3つに分けられます。
ここからはDEVELOPERS BLOGで紹介している図を用いて説明していきます。

ー まず1つ目は?

1つ目は、スタンドアローン構成というもので、3つの構成例の中で最もシンプルな構成です。
サーバーは1台のみで、その1台がclientからのデータの更新や返答など全てのリクエストを受け付けます。

この構成では、もしSolrサーバーが壊れた場合、全てのリクエストが処理できない状態、つまり全ての検索機能が止まってしまう状態になってしまいます。

f:id:vasilyjp:20180121190746p:plain

ー それはちょっと不安ですね…。2つ目は?

master slave構成というものです。これは、clientからのデータ更新のリクエストの処理と、参照のリクエストの処理を別々の場所で行う構成です。データは別の場所に指示をしてコピーすることで、万が一コピーの1つが壊れても問題なく動くことができます。

f:id:vasilyjp:20180121190800p:plain

しかし、もし指示元であるメインのサーバーが壊れてしまうと、全てのデータ更新リクエストが行えなくなってしまいます。IQONで例えると、最新のセール情報などがユーザーに届けられなくなってしまう状態です。

ー これでもまだ不安ということですね…?

はい、そこで構築したのが、3つ目のSolrCloud構成です。基本的には2つ目のmaster slave構成と同じですが、より可用性が上がった構成です。

f:id:vasilyjp:20180121190814p:plain

master slave構成との大きな違いは、もしメインのサーバーであるleader node(master node)が壊れてしまった時、その代わりにコピーを保存していたサーバーがメインのサーバーとして機能してくれる点です。しかも、この機能は人間による操作が一切必要なく、完全に自動的に行われるという点も大きな違いです。これにより、もしどれか1つが壊れてしまっても検索システムは正常に作動することができます。

ー これは安心!!

はい、開発現場には「SPOF(Single Point Of Failure)」という言葉があります。

SPOFとは、その機能が壊れるとシステム全体が使えなくなるような部分のことなのですが、SolrCloudにすると、これがなくなります。
これはいわゆる弱点になるので、なければ無いほど嬉しい部分ですよね。

ー その通りですね!

このSolrCloud構成にはサーバー台数が多く必要なのでその点を検討する必要はありますが、検索サーバーが落ちたことによる緊急メンテナンスが辛かった経験のある方は是非検討してみてほしいシステムです!

ー ありがとうございます!!

おまけ

撮影しているとちょうど代表の金山が通りがかり、写っていきました(笑)
撮影が苦手だという塩崎がリラックスしてくれたので良かったです♡

f:id:vasilyjp:20180122185612j:plain

最後に…

VASILYでは、現状に満足せず常に新しい技術も取り入れながら挑戦したいエンジニアを大募集中です!

【お問い合わせ】
株式会社VASILY 広報担当
press@vasily.jp