LIFULL Creators Blog

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

LIFULLの新卒エンジニア研修 in 2020

こんにちは。LIFULLでエンジニアをしている中村優太です。 2020年4月に新卒で入社して、早くも4ヶ月、配属されて2ヶ月が経過致しました。 この記事では、配属までのLIFULL新卒エンジニア研修についてご紹介したいと思います。

  • はじめに
  • 研修スケジュール
  • プログラミングの基礎
  • 個人開発演習
  • その他トピック
  • 最後に

はじめに

LIFULLのエンジニアは2ヶ月間の新卒研修があります。 最初の2週間は全職種合同で会社のビジョンの理解や社会人の心構え、ビジネス基礎を学び、残りの1.5ヶ月間はエンジニア研修になります。

続きを読む

9 年を超えて開発が続く LIFULL HOME'S の Web フロントエンド開発環境の改善

技術開発部の相馬です。好きな UI フレームワークは Svelte です。

私が現在所属しているグループでは、弊社のメイン事業である LIFULL HOME'S における開発効率の改善などを行っています。

今回は、LIFULL HOME'S の Web フロントエンド(以降はフロントエンドと表記します)開発環境を、Node.js の資産を用いて近代化した話(以降は近代化と表記します)をご紹介したいと思います。

続きを読む

LIFULL HOME'Sでのフロントエンド刷新・リファクタリングの歩み

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

本稿(連載)ではLIFULL HOME'Sにおけるフロントエンド技術スタックの刷新やリファクタリングの取り組みについて発信していこうと思います。

歴史

LIFULL HOME'SではバックエンドをSymfony2(php) + SinatraベースのBFF(ruby)、フロントエンドをjQueryといくつかのマイクロライブラリによって構築しています。

LIFULL HOME'Sの現在稼働しているサイトの歴史はPJ規模に対して存外古く、2010年末に開発をスタートして現在に至ります。

当時、フロントエンド側のフレームワークは今に比べると随分未成熟だった(初版のbackboneがリリースされたのがこの頃)こともあり、フレームワークの利用を採択するには至りませんでした。

とはいえ、多少の秩序がないことにはLIFULL HOME'S程度の規模感のサイトでも破綻は容易に想像できたため、いくつかの小さな設計とそれを補助するライブラリを組み込みました。

  • class-likeなオブジェクト設計とネームスペースを提供するJavaScript OOPライブラリ(joo)の導入
    • 今でいうclass syntaxの機構を提供するもの
  • UIパーツごとのViewオブジェクトの生成
    • Backbone.Viewに当たるもの
  • Viewオブジェクトのイベントバインディング機構のルール化
    • Backbone.Viewの@eventsに当たるもの
  • Viewオブジェクト間の相互作用を疎に実現するためのメディエイターライブラリ(pubsub.js)の導入
    • グローバル放出したBackbone.Eventsインスタンスのようなもの

初期設計時は特にBackboneを意識したつもりはありませんでしたが、結果としてこれらはBackboneの基礎的な設計と酷似したものとなりました。

続きを読む

The Way to OSS: Test Automation Framework "Bucky"

Hi there, my name is Jye Ruey. I'm a Software Engineer in Test (SET) from LIFULL. This article is a translation of 自動システムテストツール「Bucky」OSS化までの道のり - LIFULL Creators Blog, which is written in Japanese by Rikiya Hikimochi.


Introduction

We SET group publish a test framework "Bucky" as an Open Source Software (OSS).

https://raw.githubusercontent.com/lifull-dev/bucky-management/master/app/assets/images/logo.png

github.com github.com

Bucky was a internal tool, which was used for the automation testing. There are a lot of difficulties on the way to OSS.

This article will share these difficulties and also share the knowledge we gain on the way.

続きを読む

LIFULLを支えるKubernetesエコシステムまとめ 2020年版

技術開発部の相原です。

以前にブログで書きましたが、LIFULLでは主要サービスのほぼ全てがKubernetesで稼働しています。

www.lifull.blog

Kubernetesをアプリケーション実行基盤として本番運用するためにはデプロイやモニタリング・ログ、セキュリティなど考えることが多くどこから手を付ければよいか困ることがあるでしょう。

そこで今回は既に数年の運用実績のあるLIFULLのアプリケーション実行基盤で利用しているKubernetesエコシステムについて紹介します。 全て書くと数が膨大になるので今回はクラスタ周りを中心に、必要とするソフトウェアの数が多いモニタリング・ログまでとします。(それでも大作になりそうですが...)

  • kubernetes/kops
  • projectcalico/calico
  • coredns/coredns
  • node-local-dns
  • kubernetes-sigs/aws-iam-authenticator
  • kubernetes/autoscaler
  • kubernetes-sigs/descheduler
  • istio/istio
  • prometheus/prometheus
  • prometheus/alertmanager
  • knative
  • thanos-io/thanos
  • grafana/grafana
  • tricksterproxy/trickster
  • DirectXMan12/k8s-prometheus-adapter
  • kubernetes-sigs/metrics-server
  • kubernetes/kube-state-metrics
  • kubernetes/node-problem-detector
  • prometheus/node_exporter
  • kubecost/cost-model
  • kaidotdev/kube-trivy-exporter
  • fluent/fluentd
  • kaidotdev/events-logger
  • 最後に
続きを読む

オンラインでの社内勉強会を真剣に考えた話

こんにちは。エンジニアの松尾です。普段はLIFULL HOME'Sの売買領域でエンジニアチームのマネジメントを担当しています。

私が所属している部署では定期的に登壇スタイルでの社内勉強会を開催しています。 直近の会を「社内勉強会をオンラインでいい感じに開催する」という点を念頭に開催したため、その構想からふりかえりまでをまとめます。

これからオンラインで勉強会を開催したいという方の参考になれば幸いです。

続きを読む

GitHub Actions Self-hosted runners on Kubernetesによる自動化

技術開発部の相原です。

今回は、2019年末にリリースされたGitHub ActionsのSelf-hosted runnersをKubernetes上で動かして自動化に取り組んでいる事例を紹介します。

背景

LIFULLではプライベートネットワーク上に存在するRDBMSなどのリソースを利用したアプリケーションのテストを実行するといった用途で、古くからJenkinsが運用され続けてきています。

こういったテストの実行などはプライベートネットワークに疎通できないCircleCIやGitHub Actionsでは実行することができず、プライベートネットワーク上に構築されたJenkinsなどのサーバがリポジトリの更新を検知して実行する必要があります。

そのためLIFULLでもJenkinsを運用し続けてきたわけですが、ご多分に漏れずこれまでにバージョンアップやJenkins職人問題・スケーラビリティの問題に悩まされてきました。

そこで、我々はこれらの問題を解決すべくGitHub Actions Self-hosted runnersに着目しました。 GitHub Actions Self-hosted runnersとは、GitHub ActionsをGitHub hostedな環境ではなく自分たちのインフラで動かすための2019年末にリリースされたランタイムです。

これを利用してプライベートネットワーク上でGitHub Actionsを動かすことで前述のテストをJenkinsから移行することができ、Jenkinsサーバを撤廃できるのではないかと考えました。

続きを読む