見出し画像

ネイルブックの開発環境

ネイルブックではプロダクトの改善サイクルを速く回すためにエンジニアたちがこだわって開発環境を整備しています。

様々な工夫をしているのですが、その一部をご紹介します。

開発用サーバ

ボタンひとつで自分だけの開発環境を用意することが可能です。

開発サーバ管理画面

最初

新規作成ボタンで新しい開発環境が立ち上がります。

画像2

デプロイするブランチが選べるので、複数の環境を並行して作業が可能です。

画像3

開発環境はAWSのEC2インスタンスの上にdocker-composeで構築されます。

出来上がった開発環境には後述する開発用データセットも組み込まれていますので、プロダクション環境とほぼ変わらない状態になっています。プロダクションとほぼ同じなので、CSスタッフが仕様確認のために立ち上げることも多いです。

詳細設定画面

インスタンス2

非常に細やかな設定が可能です。

たまに未来の日付にして動作確認したいときがありますが、サーバ時刻の変更もこの画面から可能です。業務終了時にEC2インスタンスの停止忘れがないようにタイマー設定もあります。

画像7

画像8

ログの閲覧やコマンドやSQLの実行もサーバにログインせずに管理画面から行うことが可能です。

とにかく便利!

開発用データセット

開発の品質、速度を速めるために意外に大切なのがデータの用意。ネイルブックでは開発に利用するデータをなるべくプロダクションに近いものにするために、毎晩開発用データセットを作っています。

プロダクション環境のデータベースを参照し、開発環境で扱えるデータボリュームにしぼり、個人情報をダミー生成したものを深夜に作成。これによって毎日フレッシュなデータを使って開発環境をつくることができます。

データベースのデータだけではなく、ElasticsearchやRedis、DynamoDBのデータなども同様です。

開発用アプリ

開発用アプリはFirebaseのApp Distributionを使って配布されます。

配布する際にはslackでコマンドを実行するとCI/CDサービスのBitriseが呼び出され、ビルドから配布まで自動実行です。

画像4

各アプリストアへのバイナリーのアップロードもslackからコマンドで実行できます。

また開発用アプリでは簡単にAPIの接続先を変更することができます。前述した開発サーバ管理画面のデータとも連動しているので、アプリを使った動作確認が簡単です。

画像5


これ以外にも様々な工夫をしているので、また改めてご紹介します!

ネイルブックの採用情報

ネイルブックではいろいろなポジションで人材を募集中です。


この記事が気に入ったらサポートをしてみませんか?