LIFULL Creators Blog

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

Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 開催レポート

こんにちは!Ltech運営チームの井上です。今回は2021年12月15日(水)に開催した「Kubernetesを用いたアプリケーション実行基盤の取り組み」についてレポートします。

lifull.connpass.com

Ltechとは

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

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

LIFULLではKubernetesベースのアプリケーション実行基盤を内製しており、KEELと呼んでいます。KEELは社内ですでに3年の本番環境での運用実績があり、LIFULL HOME'Sの大部分はKEEL上で稼働しています。

LIFULL HOME'Sの全トラフィックの約9割がこのKEEL上で稼働しているアプリケーションにより処理されています。

そんなLIFULL内製PaaSであるKEELがなぜ生まれたのか、そしてどのような課題を解決しようとしているのかについてのお話です。

www.slideshare.net

KEELができる以前のLIFULLでは、 マイクロサービス化を推進しており、たくさんのアプリケーションが稼働していました。マイクロサービス化を進めていくことによって開発効率の向上に成功した一方で、監視やデプロイの仕組みの「車輪の再発明」が頻発するなど、新たな課題が顕在化していました。これらの課題を解決するために、インフラストラクチャの中央集権化を決意したのがKEELの始まりでした。

KEELはすでに開発者の負担を軽減する多くの便利な機能を有していますが、更に開発効率の向上を実現する機能を追加するため、KEELチームでは開発者へのヒアリングなども都度行い、追加する機能の選定や優先度付けを行なっています。

私もLIFULLの開発者の1人として、今後の機能追加が楽しみだと改めて感じる発表でした!

Kubernetesセキュリティの歩き方

LIFULLではマルチテナントのKubernetesクラスタを運用しています。様々なアプリケーションが1つのクラスタに混在する中で、OPA GatekeeperやConftest を用いて、セキュアなKubernetesクラスタを実現している方法についてのお話でした。

www.slideshare.net

以前のKEELでは、不適切な設定や悪意のある設定を含むマニフェストがデプロイ可能な状態になっていました。また、マニフェストのチェックを人力で行なっていたため、チェックのコストも少なくありませんし、見落としの可能性をゼロにできていませんでした。

セキュリティについては情報の流れがとても早く、開発者全員が全てを理解することはとても困難ですよね。GitHub Actions で Pull Request ごとにマニフェストのチェックを自動化することで、チェックのコストがほぼ lint の実行時間だけになり、また見落としのリスクをゼロにすることができました。開発者が感じる不安の大部分を解消することができていて、私もLIFULLの開発者の一人としてその恩恵を享受することができています。

Kubernetesクラスタバージョンアップを支える技術

LIFULLのKubernetesクラスタでは、安全にバージョンアップを行うためにKubernetesクラスタ構築とE2Eテストの自動化を行っています。またAdmission Webhookを利用し後方互換を保ちながらバージョンアップを行う仕組みも導入しています。これらの自動化の手法についてのお話でした。

www.slideshare.net

アプリケーション開発において切っても切れないのがバージョンアップ。このような運用作業はミスが許されない為、頻繁に行うことを避けがちになってしまいます。またメンバー入れ替えでの作業手順の引継ぎなどがうまくいかず、苦労するケースは少なくないですよね。

作業手順のスクリプト化によってとにかく手作業をなくし、誰でも低コスト高頻度でバージョンアップ作業ができるようにすることは、安全なアプリケーション運用をしていく中では、Kubernetesクラスタ以外にも必要不可欠なことだと思います。自動テストも含めた自動アップデートの仕組みを作って、健全なサービス運用を更に進めていきたいと感じさせられる発表でした!

まとめ

今回はLIFULLの内製アプリケーション実行基盤であるKEELについて、3名のエンジニアに発表いただきました。KEELについてはチームメンバーが随時 LIFULL Creators Blog にて情報を発信しています。興味を持っていただいた方にはぜひ1度ご覧いただきたい記事ばかりになっています!

www.lifull.blog

Ltechでは、LIFULLのエンジニアが中心になって皆様の技術欲を満たすよう実例を交えた勉強会を開催しています。今後も Ltech を積極的に開催していきますので、ぜひ気になった方は、connpass で LIFULL のメンバー登録をよろしくお願いします!

lifull.connpass.com

また、LIFULLでは今回紹介したアプリケーション実行基盤に関わるものを含め、数多くの職種の仲間を募集しています。 よろしければこちらのページもご覧ください。

hrmos.co

hrmos.co