Kai Aihara
略歴
2015年4月に新卒で株式会社LIFULLへ入社。
Platform Engineering, Site Reliability Engineering領域でIndividual
Contributorとして活動する傍ら、唯一のシニアプリンシパルエンジニアとして技術戦略の立案や全社のシステムアーキテクト・PSIRTも務める。
2018年にKubernetesベースの内製PaaSのチームを立ち上げ、現在に至る。
職務経歴
株式会社LIFULL
| シニアプリンシパルエンジニア |
Tokyo, Japan |
Apr. 2015 - Now |
コーポレートメッセージである「あらゆるLIFEを、FULLに。」実現にスケーラブルに影響力を発揮すべく、一貫してPlatform
Engineering領域に携わってきました。
2015年の新卒入社直後からMicroservices化に伴うAWS移行のチームにアサインされ、多くのWebサーバ・データストアの無停止での移行、事業の中核を成す全文検索エンジンであるSolrのアーキテクチャ刷新を歴任。
その中でMicroservices化による車輪の再発明を問題視し、かねてより趣味で開発していたKubernetesベースのPaaSの採用を進言して2018年にチーム立ち上げ、現在に至るまでKubernetesの枠にとどまらないプラットフォームとして成長させてきました。
- 内製PaaSチームの立ち上げ及び育成・テクニカルマネジメント
- 2018年のチーム立ち上げから現在に至るまで、テックリードとして開発だけでなくメンバーの育成やチームビルディングなども兼務し、人事評価といったピープルマネジメント以外の一切に従事
- 2020年からは札幌の開発拠点からメンバーを受け入れ、東京との多拠点のチームとしてリモートワークの環境を整備
- 関連するアウトプット
- Kubernetesベースの内製PaaSであるKEELの開発・運用
- リソース集約によるコスト最適化を狙ったマルチテナント・シングルクラスタのKubernetesをベースに、Istio
0.2.0の頃からサービスメッシュを採用し、Knativeでサーバレスワークロードにも対応
- Prometheus, Thanos, Grafana Loki, Fluentd, Grafana Tempo,
Pyroscopeによる可観測性基盤も備え、デプロイにはSpinnakerを採用
- 関連するアウトプット
- プロダクトへの組み込みやLLMOpsを見据えた汎用AIエージェント実装の開発
- gpt-3.5-turboのリリースタイミングで、今後のプロダクトへの組み込みやプラットフォームとしてのLLMOpsを見据えて現在で言うところのAgent
Loopを実装した汎用AIエージェントを先行して開発
- それを利用した社内の汎用チャットボットも同時にリリースし、グループ会社への展開とともに2024年10月時点で単体で社員82%の利用率、42,000時間の業務時間削減を達成
- Rate
Limitや堅牢なエラーハンドリング・充実した可観測性からプロダクトからも広く利用
- 関連するアウトプット
- PaaS体験を実現するためのコードジェネレータの開発
- Custom Resource
Definitionの必要な項目を入力して実行すると、Kubernetes
Manifestだけでなく運用ドキュメントや各種GitHub
Actionsのほかに監視設定・ダッシュボード・J-SOX法対応のContent
Trustを含むデプロイ設定などアプリケーションの開発サイクルに必要なものがすべて自動で生成
- コードジェネレータであるためKubernetesを利用しないリポジトリにオプトインも可能で、Content
Trustの仕組みや各種GitHub
Actionsを流用すべく開発がアクティブな社内の全てのリポジトリに導入され、セルフアップデート機能によって全てのリポジトリを常に健全な状態に維持
- 関連するアウトプット
- CloudNativeなWebアプリケーションを開発するためのボイラープレートの開発
- Go, TypeScript, PythonそれぞれでOpenTelemetry, Graceful
Shutdownや構造化ログ・プロファイリング・最適なDockerfileなどを備えたボイラープレートを提供し、プラットフォームの利用者を支援
- 前述のコードジェネレータと組み合わせることで、ボイラープレートを利用することで5分で
- 新規開発のリポジトリの9割以上がこれらのボイラープレートを利用
- フルマネージドなKafka/Redis/memcached/Qdrantクラスタの提供
- アプリケーションからの利用頻度が高いデータストアをKubernetesクラスタ内でSaaSとして提供し、利用者は前述のコードジェネレータに設定を数行追加するだけでこれらのデータストアが払い出し可能
- 一部クラウドプロバイダの提供する
- 関連するアウトプット
- Kubernetes Operator, Prometheus Exporter,
proxy-wasmやミドルウェア開発によるプラットフォームの機能拡充
- 所謂Preview Environmentを実現するためのKubernetes
Operatorといった定番の機能のほかに、proxy-wasmでの認可の仕組みやeBPFでのLinuxカーネルレイヤのメトリクス取得などあらゆるソフトウェアを実装して開発者のニーズに先回りして提供
- 経路最適化のためのTCP
Proxyの開発によるKubernetesクラスタ外への通信料の削減など、Kubernetes内にとどまらず広くプラットフォームとしての機能を拡充
- 関連するアウトプット
- 縮退予定を除くアプリケーション全ての内製PaaSへの移行及び移行支援