LIFULL Creators Blog

LIFULL Creators Blogとは、株式会社LIFULLの社員が記事を共有するブログです。自分の役立つ経験や知識を広めることで世界をもっとFULLにしていきます。

検索エンジン、スポットインスタンスで動きます。

こんにちは。検索エンジンチームの宮崎です。

皆さんご存じの通り、LIFULL HOME'Sのメイン機能は物件の検索です。
LIFULL HOME'Sでは、 検索機能の大部分を全文検索エンジンSolrで賄っています。

以下のような機能を検索エンジンで実現しています。

  • こだわり条件検索(ガスコンロ3口、2階以上、など詳細な条件での検索)
  • 駅・エリアでの絞り込み
  • 地図検索
  • タグによる物件検索
  • 検索結果の件数
  • 並び順
  • 建物や戸ごとのグルーピング

これらの機能を実現している検索エンジンは、
アプリケーション実行基盤やDBに並んでサービス継続のために必要な重要コンポーネントです。

しかし検索エンジンはその特性上、ステートフルなソフトウェアです。
HDFSやその他ストレージと組み合わせることでステートレスにすることもできるかもしれませんが、多くの場合ステートフルなアプリケーションとして運用していることが多いと思います。

今回はステートフルなアプリケーションである検索エンジンを一部スポットインスタンス化することでランニングコストを削減したので、構成や進め方について紹介しようと思います。

続きを読む

E2Eテストをクラウド移行したお話

LIFULLで売却査定サイトの開発をしています、北島です。
このたびTestCafeというE2Eテストを、awsのリソースを使ってクラウド移行しましたので、簡単に振り返りたいと思います。

前提

売却査定のサービスは本番を含めて4つの環境が用意されています。

  • prod環境(本番)
  • pool環境(開発環境)
  • dev環境(開発環境)
  • unit環境(開発者各々の環境)

これらのうちunit環境以外の3環境に関して、デプロイをトリガーにE2Eテストを行うような仕組みを実現しました。

構成図

CodeBuild上でTestCafeを実行することで実現を試みました。
テストに関する構成図を下に示します。

構成図
構成図

CodeDeploy(既存)のデプロイ成功時にSNSメッセージを発行し、LambdaFunctionからCodeBuildを実行します。
CodeBuildでのテスト実行終了時に、テスト結果を含むSNSメッセージを発行し、notificationで実行結果を通知します。
構成図内の"env"は、実際にはdev/pool/prodと環境ごとに別々のリソースに分かれています。

awsリソースのメインとなるのはtestcafe_kickerのリポジトリで、テストに関するawsリソース全般に関して扱っています。
実際に使用されるテストコードに関してはcodebuild-testcafeのリポジトリで管理しています。

続きを読む

エンジニアのためのチームビルディング!コードで語れ 頭を使って 謎を解け

こんにちは。プロダクトエンジニアリング部の渡邉です。

今回は先日私が所属するプロダクトエンジニアリング部にてオンラインで実施でき、チーム形成とエンジニアが楽しむことができるチームビルディングを開催しましたので、そちらの内容について紹介させていただきたいと思います。

チームビルディングとは

チームビルディングとは、組織を単なる「グループ(人の集まり)」で終わらせずに、成果を上げる『チーム』に組成するための一連の手法です。

新しいチームを組成する際には、チームのビジョンや戦略を共有し、所属メンバー一人一人がそれらを自分のものにしなければなりません。

LIFULLでは、期初に各グループに対してチームビルディング予算が割り当てられ、メンバーが自分達で考えたさまざまなチームビルディングが行われています。 そして今回は私たちプロダクトエンジニアリング部2ユニット(※以下ユニット)で行われたチームビルディングについて紹介します。

続きを読む

Clean Architectureを採用したBackend For Frontendの開発とこれまでの所感

こんにちは。テクノロジー本部のyoshikawaです。好きなLinux DistributionはManjaro Linuxです。

今回はレガシー化が進むLIFULLのメインサービスの開発効率の向上とコードベースの健全性の確保をすべく、Clean Architectureを採用しバックエンドを刷新している取り組みについて紹介させていただきます。

なお、Clean Architecture自体の説明および解説は本記事では行いません。

続きを読む

LighthouseでLIFULL HOME'Sを計測し可視化した話

はじめまして

テクノロジー本部 基盤運用ユニット 基盤グループの久保田です。

より良いサービスを提供していくために必要なことは色々あり、また答えがあるものではないと思っていますが

どういったアプローチを行うにせよ、それを検討していくためにはまずは

「自分たちが置かれている状況を把握すること」が必要と考えています。

そこで以前、自社サービスであるLIFULL HOME'Sを検証のためサイト運営で利用しているツール以外で計測し可視化したときの話をしようと思います。

続きを読む

Ltech#14 「LIFULL HOME'S」のフロントエンドについて語り尽くします! 開催レポート

こんにちは。Ltech運営チームの井上です。 今回は、2021年3月2日(火)に開催した『Ltech#14 「LIFULL HOME'S」のフロントエンドについて語り尽くします!』についてレポートします。

事前に共有させていただいていたウェビナーのURLに誤りがあり入室できないというトラブルもありましたが、参加者の方の温かいフォローもあり、最終的には120名を超える方にご参加いただき会は大盛況で閉会することができました。ご参加いただいた皆様本当にありがとうございました!

lifull.connpass.com

Ltechとは

Ltech(エルテック)とは、LIFULLがお送りする、技術欲をFULLにするイベントです。特定の技術に偏らず、様々な技術の話を展開しています。

「LIFULL HOME'S」のフロントエンドについて語り尽くしました

今回の Ltech のテーマはLIFULL HOME'Sのフロントエンドについてです!

日本最大級の不動産・住宅情報サイト「LIFULL HOME'S(ライフル ホームズ)」の大部分は約10年前に開発を開始したアプリケーション上で構成されています。10年前から現在まで、周知の通りフロントエンド技術の進歩の勢いは速く、当初は素晴らしかった設計や技術スタックも今の技術情勢に照らし合わせるとレガシー化している現状がありました

そこで今回登壇したメンバーを中心に、開発を担当するフロントエンドエンジニアが、 数々の技術負債解消や、フロントエンドアーキテクチャの刷新、アクセシビリティ改善などの課題に対して、「いかに速く」「ユーザーに最高のユーザー体験をもたらすにはどうしたら良いか」という観点から行なった(そして、現在も行なっている)取り組みについて発表しました

続きを読む

HTML Centricで行きたい私たち

LIFULLの中島です。

近頃、LIFULL HOME'Sのフロントエンド(ここではJavaScriptのみを焦点とします)もようやく進む道を見出し、そろそろ設計方針を一新しようと試みています。

今回はそれについて話したいと思います。

現在の私たちの課題感

私たちの管理する多くのレガシーコードはDOM操作ライブラリとしてjQueryを、UI設計の格子としてBackbone.Viewのような設計方式を導入しています。 (もちろんそうでないマイクロサービスも多くありますが)

続きを読む