はじめまして!KitchHikeでエンジニアをしている小川です。 KitchHikeでは最近エンジニアの募集を始めましたが、会社選びにあたってエンジニアのみなさんが気にされるポイントのひとつは、その会社がどのようなツールを使ったり、開発フローを採用しているかではないでしょうか。
そこで今回は簡単にではありますが、KitchHikeの技術スタックを紹介させていただきたいと思います。
アプリケーションの構成
- 開発言語
- Ruby, JavaScript
- サーバーサイド
- Ruby on Rails
- クライアントサイド
- Backbone.js
- DB
- MongoDB
- アプリケーションサーバ
- Unicorn
- Webサーバ
- Nginx
- テスト、静的解析
- Rspec,Capybara,Rubocop
KitchHikeでは主にRuby,Railsを使って開発をしています。
今年前半にRubyとRailsのバージョンをアップグレードして、Rubyは2.3、Railsは4.2系を使用しています。Rails5にも、もう少ししたらアップグレードする予定です。
アプリケーションサーバとWebサーバはUnicornとnginxの定番の組み合わせですね。
DBはMongoDBです。弊社CTOの藤崎はMarunouchi.mongoを主催していたMongoDBのエキスパートなので、いざとなればソースコードレベルでの対応ができる、というのが選定の理由です。
開発周りのツール、サービス
- ソースコード管理
- GitHub
- 進捗管理
- ZenHub
- CI
- Wercker
- カバレッジ
- Coveralls
- コミュニケーション
- Slack,Chatwork
- インフラ
- AWS
- 監視
- NewRelic
開発はGitHub上で行っています。GitHub単体だと進捗管理周りが少し弱いのでZenHubを併用し、2週間ごとにマイルストーンを切り、Boardを見ながら進捗を管理しています。
ブランチの運用フローはGitFlowに近いモデルです(GitFlowほどカッチリではありません)。アサインされたissueごとにブランチを切り、issue分の開発が完了したらPullRequestを作成し、レビューをしてもらいます。レビューがOKであればdevelopブランチにマージします。大体1〜2日に1回程度の頻度でmasterにマージし、本番環境にリリースをしています。
コミュニケーションツールは主にSlackを使用しています。以前はChatWorkを使用していましたが、API連携のしやすさからSlackに移行しました。現在はアプリケーションからの通知やNewRelicからの監視アラートなど諸々の通知はなるべくSlackに集約するようにしています。
インフラはAWSです。KitchHikeのインフラはシンプルな構成なので、EC2やS3など定番サービスがメインです。目新しいところでは、AmazonInspectorでインスタンスのセキュリティチェックをしています。また、インフラ監視にはNewRelicを使用しています。
以上現在のKitchHikeの技術スタックの紹介でした。
だいぶ駆け足になってしまったので、個々の詳細はこれから別の記事で改めて紹介できればと思います。
KitchHikeは現在急成長中で、規模に合わせて技術スタックもこれからどんどん変わっていくでしょう。開発メンバーもまだまだやりたいことがたくさんあります。
そんな私たちと一緒にKitchHikeの開発文化を作りたい!という方はぜひぜひ以下から応募してみてくださいね。
美味しいものに敏感なWebデザイナー(フロントエンド)募集中!