シンクロ・フードの大久保です。当社でもエンジニアブログを始めてみました。
まずは弊社サービスのご紹介と、システム構成を簡単にお伝えしたいと思っています。
サービスと組織
シンクロ・フードは、「飲食店.COM」や「求人@飲食店.COM」など、飲食店向けのWebサイトを6つ運営しており、ユーザーは主に飲食店をこれから開業しようと思っている方や、飲食店を運営している方となります。
http://www.inshokuten.com/
http://job.inshokuten.com/
主サービスとなる「飲食店.COM」は2003年9月にリリースしたサイトなので、サービス提供から13年経っており、かなり古いサイトです。
飲食店を運営する方にはそれなりに認知されているサービスですが、一般の人はほとんど知らない、ちょっとマイナーなB2Bサイト、という感じですね。
サイトの規模でいうと、小~中規模にカテゴライズされるかと思います。このWebサービスを、9名のエンジニア+インターン6名で開発しています。
言語とフレームワーク
プログラミング言語は、Javaがメインで、WebサービスはすべてJavaで開発しています。バージョンはJava8ですが、昨年末にバージョンを上げたばかりですので、Java8らしいコードはまだ少ないです。
Webアプリケーションフレームワークは、Seasar2というフレームワークを使っています。Seasar2はかなり古いフレームワークですので、移行について検討を進めており、現在、新サービスはRubyOnRailsで開発、旧サービスはSpringBootに載せ替え、という方向で検討・開発を進めています。
ただ、Seasar2はとても素晴らしいフレームワークで、使い方を色々と工夫することで、かなりの生産性を出すことができました。個人的にも愛着のあるソフトウェアで、Seasarコミュニティの方々には非常に感謝しております。
インフラ
サーバはAWSで運用しています。こちらは2015年3月に移行しました。
Webサーバは、Apache2.2+Tomcat7で運用しています。DBサーバはMySQL5.6です。
Apache、Tomcat、MySQLという組み合わせは13年前から同じで、ずっとこの構成で運用しています。
ApacheはNginx、TomcatはJettyなど、新しいサーバへの切り替えも都度検討に挙がるのですが、自社内での運用実績が無いことが理由で、切り替えに至っていません。
(Nginxはリバースプロキシで使っていることもあり、徐々に運用実績が溜まってきましたが…)
MySQLはRDSではなく、EC2インスタンスにMySQLサーバをインストールして使っています。
今のところサーバの台数は10~15台くらいの中で収まっており、冗長構成を維持しつつ、できるだけ台数を増やさないように工夫しています。
最後に
以上、かなりざっくりですが、シンクロ・フードのシステム構成です。
大きなトラフィックを捌いているわけではありませんが、弊社のような小~中規模のWebサービスを運営している方は沢山いらっしゃると思いますので、その参考になれば良いと思い、ご紹介してみました。
直近2年は、長期間運用しているサービスにありがちな技術的負債の返却や、レガシー環境のモダン化などを進めていましたので、その課程なども、このブログでご紹介していきたいと思います。
最後に、シンクロ・フードではエンジニアを募集しています。少しでも興味があれば、気軽にお話しする場を設けますので、以下よりご応募ください。