​ ​
001.jpg

Farmnoteの基本アーキテクチャご紹介

こんにちは。今日が仕事納めの方々も多いと思います。今年も大変おつかれさまでした!そんな納会な雰囲気の中、ファームノートからの一発目のエントリは、札幌からソフトウェアエンジニアの田名辺(@dateofrock)がお送りいたしますw

まずはファームノートについて

farmnote_fb_thumb.png 株式会社ファームノートは酪農・畜産向けクラウドサービスに特化したITベンチャーです。本拠地は、北海道十勝地方の中核都市、帯広市にあります。その十勝地方は日本有数の食料生産基地でもありまして、食料自給率はなんと1,100パーセント!食材は地場産が普通ですので、安いし新鮮。クオリティが高くて当たり前なのです。その他、温泉に恵まれているとか、色々書きたい事はあるのですが、それはまた別の機会という事で(笑)

そんな十勝地方を拠点とするファームノートですが、2014年12月より、札幌にも開発拠点を設けております。

ヒトは食べなければ生きて行けません。その食べ物を作る農業はとても重要な産業です。酪農、畜産業界の経営効率化に貢献することで、その食を守る手助けが少しでも出来れば、という思いで、日々開発を行っています。

そんな思いにちょっとでも共感しちゃったエンジニアのみなさま、ぜひこちらまでどうぞw

でも・・そんな簡単にジョブチェンジは出来ないと思いますので、まずはざっくり話を聞きたい、という方も大歓迎です。その場合は私に直接連絡くださいw 3月にはJAWS DAYS 2015で東京方面にも行きますので、その時にでもリアルにお会い出来る方、大歓迎です。

Farmnoteの基本アーキテクチャご紹介

前置きが長くてアレですが、ファームノートのサービスの実際、特に技術的側面に関しては、一般になかなか伝わりにくいと思っています。なにせ、酪農畜産業界向けのサービスですので、そもそも業界以外の人が使う機会がありません。ですので、このDevelopersNoteでの最初のエントリでは、先日AWS Cloud Roadshowで登壇させていただいた内容をご紹介する形で、Farmnoteの基本的なアーキテクチャをご紹介したいと思います。

フロントエンド

ファームノートの基本アーキテクチャは、クライアントとサーバーがキレイに分かれた作りになっています。 001.jpg クライアント側はSingle Page Applicationで、Backbone.jsをベースにした独自フレームワーク上に構築しています。テンプレートエンジン、データバインディングなどの機能をもち、デザイナーとプログラマーの分業がやりやすくなっています。また、TypeScriptで記述できるという特徴もあります。この独自フレームワークですが、開発した張本人がそのうちこのブログに書いてくれると思いますので、ご期待ください(笑)

フロントエンドはJavaScriptとHTMLの固まりですので、全て静的ファイルになっています。ですので、アプリケーションの配信は迷わずS3です。S3の良い所は言わずもがなですが、アプリケーションをS3にデプロイ(というか、単なるコピー)したらそれでおしまいで、配信に関する面倒は一切かかりません。通常のWebサーバーを自前で立てるのであれば、そのサーバーメンテナンスなどのコストがかかりますが、S3の場合は転送料とストレージ料金だけなので、こういったSPAの配信にはもってこいのサービスです。また、iOSやAndroidのネイティブアプリもありますが、こちらは各社のストアからの配信になりますので、特に問題ないですね。

バックエンド

では、実際にデータを処理したり貯めたりするバックエンド側はどうなっているでしょう?こちらは、SPAにAPIを提供するサーバーとして実装してます。基盤技術はRuby on Railsです。Railsはそもそもスケールアウトしやすいアーキテクチャですので、スモールスタートしやすいですし、AWSでの運用を考えた場合、Elastic Beanstalkを用いれば、サーバー構築も一発で出来ます。 002.jpg

また、gitとの相性が抜群で、デプロイも非常に楽です。 003.jpg Elastic Beanstalkの活用に関しては、また機会を改めてエントリしますね。

AWSを選ぶ理由

弊社のようなスタートアップにありがちな話ですけど、サーバーの運用コストなどはなるべく減らして、開発に集中したい訳です。さらに、スモールスタートで小さく始めて、規模が大きくなっても耐えうるインフラにしなければなりません。そうなってくると、もう選択肢はクラウドしかなく、さらに言うと、S3やRDSなどのメンテナンス不要なデータストレージ、Elastic Beanstalkのようなアプリケーションコンテナサービス、そして、そもそも私が使い慣れている(;´Д`)、AWSでの構築は自然の流れです。

というわけで、ご挨拶がてら、Farmnoteのアーキテクチャに関して簡単にご説明してみました。

追伸

ちなみに年明け早々、LOCAL DEVELOPER DAY '15 Winterに、ファームノートのエンジニアである北村氏が「一次産業 x IT」というセッションでディスカッションします。あと、クラウド女子会小室 文さんも福岡からいらっしゃるという事で、これは非常に楽しいイベントになると思います。こちらもぜひ!

このエントリーをはてなブックマークに追加