LIFULL Creators Blog

「株式会社LIFULL(ライフル)」の社員によるブログです。

LIFULLの全社アプリケーション実行基盤 KEEL について

技術開発部改めKEELチームの相原です。

今回はLIFULLの全社アプリケーション実行基盤 KEEL について紹介いたします。

全社アプリケーション実行基盤 KEEL とは

KEELとはLIFULLグループ全体で利用することを目的としたKubernetesベースのアプリケーション実行基盤です。

f:id:LIFULL-aiharak:20201130100656p:plain

keel は船の竜骨を意味する英単語で、 spinnaker/keelkeel-hq/keel と名前が被ってしまっていますが、LIFULLという船を支える屋台骨となるため2018年初頭から開発・運用を続けている内製のプロジェクトです。

マルチテナントなシングルクラスタで、

  • コンテナオーケストレーション
  • ネットワーク
  • サービスメッシュ
  • デプロイ
  • メトリクス
  • ログ
  • 分散トレーシング
  • セキュリティ
  • ワークフローエンジン

をはじめとしてアプリケーションの運用で必要になる多くのものを責任範囲として提供しています。

その他にも各種マニフェスト生成ツールや認証基盤の開発にProxySQLやRedis, memcachedクラスタの提供、アプリケーションフレームワークの提供とKEELへのアプリケーション受け入れなど広範的に開発者を支援しています。

既にLIFULLのアプリケーションの大部分がこのKEEL上で稼働しており、新規開発のアプリケーションの多くもこのKEELに載せることを前提に開発されてきました。

背景

LIFULL HOME'S サービス開始から20年以上が経ち、コードベースも次第に巨大になってきました。 そしてコードベースが巨大になるにつれて、デプロイ速度の鈍化やメンテナンス性の低下が目立つようになり、開発速度が低下していきました。

そうした変化を受けて LIFULL では、数年前のオンプレミスからの AWS 移行を契機にマイクロサービス化に踏み切ります。 サービスを適切な単位で切り分けてデプロイを独立化し、開発チームに権限を移譲することで分業化に成功しました。

しかし、年月が経ち新たな課題が見え始めました。 それはマイクロサービス化による車輪の再発明と分散システムとしての難しさです。

それぞれのチームがロギング・監視基盤やデプロイフローを個別に構築したり、各アプリケーションごとに Retrying や Timeout を実装することにより、従来の体制と比較して重複する機能が多くなってしまいました。

加えて、下流のサービスに巻き込まれる形での障害も目立つようになり、分散したアプリケーションをうまく運用するという難しさにも直面することになったのです。

そこで我々は、統一されたアプリケーション実行基盤を開発して分散システムの難しさを解決すると同時に車輪の再発明を防ぐことを狙うことにしました。

結果として開発者がアプリケーションをローンチするまでの負荷が大きく下がり、効率を落とすことなくシステムの分離度を適切に保つことができるようになりました。

KEELチームとこれまでのアウトプット

もともとは私一人で開始したこのプロジェクトも今では4人のメンバーがジョインして大きくなってきました。

我々のミッションは「LIFULLのものづくりを加速させるアプリケーション実行基盤を実現する」ことです。

LIFULLのものづくりを加速させることで、LIFULLの目指す「あらゆるLIFEを、FULLに。」という世界観実現にアプリケーション実行基盤というスケーラブルなアプローチで貢献します。

KEELチームにはその実現にあたって必要なスペシャリティを持ったメンバーが集まっていて、今後チームからのアウトプットを増やしていくためその紹介としてこのエントリを書くことにしました。

これまでは以下のようなエントリを書いてきました。

www.lifull.blog

www.lifull.blog

www.lifull.blog

www.lifull.blog

www.lifull.blog

まとめ

LIFULLにはKEELという全社アプリケーション実行基盤があり、アプリケーションの運用に必要な多くのものを提供しながら広範的に開発者を支援しています。

今後我々KEELチームからのアウトプットを増やしていきますのでご期待いただけると幸いです。

カジュアル面談もやっていますので、一緒に「LIFULLのものづくりを加速させるアプリケーション実行基盤を実現する」、ひいてはLIFULLが目指している「あらゆるLIFEを、FULLに。」することに興味がある方は是非お話しましょう!

hrmos.co