26 May 2019, 17:30

[基礎] ElasticSerachなどの外部コンポーネントがあるときのテスト

お久しぶりです。@mosuke5です。
新しい会社に入って1ヶ月ほど経ちましたが生きています。 今回は、ElasticSearchを題材にしますが外部コンポーネントを利用しているアプリケーションのテストについてです。 すごく初歩的なところですが、いくつか考えなければいけないポイントもあったのでまとめました。

はじめに

今回の題材は非常にシンプルな検索機能をもったアプリケーションです。 構成はアプリケーションはRailsで、検索エンジンを担うのがElastiCsearchという前提です。

アプリケーションがもつmethodは3つで以下としています。

  1. GET ‘/’ => ‘Hello’を返す
  2. GET ‘/search’ => GETパラメータ’q’のキーワードで検索した結果をjsonで返す
  3. POST ‘/update’ => 所定のjsonファイルをPOSTするとbulkでinsertされ、その結果をjsonで返す

02 May 2018, 23:14

Docker Compose上でのRailsアプリケーションの開発フロー

早いものGWも終わり一週間が経ってしまいました。
長期の連休になるとだいたい自分は趣味のアプリケーション開発をよくすすめています(ふだんからやりたいけどなかなかできない)。今年のGWも趣味アプリケーションの開発をしてました。

いま作っているアプリケーションは自分の英語学習用のサービスなのですが(サービスについては別途どこかでご紹介したい)、新しい技術を実際に試す場としても利用しています。自分はいつも趣味アプリケーションで新しいことを試してみて、よかったらそれを職場にもっていくことが多いです。

アプリケーションはRailsで書いているのですが、Railsの他にMySQLやNginx、ElasticSearch、Kibanaなど関連するコンポーネントが多いです。 そのため、Docker Composeを利用して動かすことにしています。Dockerは以前から使っていたのですが、実際にアプリケーションのせてとして開発・運用してみると、いろいろ問題があり試行錯誤することになりました。

GWはその部分と主に格闘していて、最終的にそこそこ良い開発フローを整えることができました。今日はそのご紹介です。
※もちろん、現時点でのやり方であり、改善しているので現状と異なることも多いと思います。

28 Mar 2016, 18:16

HerokuをRailsアプリのステージング環境として使う
趣味で作っているアプリ(Rails)があるのだが、はじめHerokuで運用しようと検討していたが、 データ量が多いためすぐにHobbyプランで