LoginSignup
17
10

More than 5 years have passed since last update.

オープンロジを支える技術(2017年版)

Last updated at Posted at 2017-12-25

OPENLOGI Advent Calendar 2017 最後の投稿です。

株式会社オープンロジは 2013年12月25日 が創業日で本日がちょうど創業4年目の節目になります。
オープンロジのサービスリリースが 2014年10月 なのでそれからは3年程になります。
物流アウトソーシング「オープンロジ」がサービス開始――中小事業者や個人をターゲットに

お陰様でユーザは徐々に増え今年の夏にはシリーズBラウンドをむかえ事業規模も大きくなってきました。

こんなサービスを3年間支えてきた技術や逆に使わなくなってしまった技術を振り返りながら整理したいと思います。

インフラ

何はともあれサービスを運用するにはサーバーが必要ですがAWSなどクラウドインフラのおかげで誰でも簡単にサービスを立ち上げられる世の中になりました。
オープンロジも誰でも簡単に物流サービスを提供したいという思いがあり、物流のAWSと説明させていただくことがあります。

我々は幸い VC から AWS Activate を提供いただいていたため2年間は無料でインフラを提供できていました。

Amazon Web Service (AWS)

ずっと使ってるもの

比較的最近導入したもの

利用やめたもの

  • OpsWorks
    • デプロイが遅すぎてツラかった

Google Cloud Platform (GCP)

AWS Activate の利用期間が切れてしまったので、 極力ロックインされた環境は回避するためにも AWS 以外の選択肢も検討して行きたい。

  • Firebase
    • 一部の社内プロジェクトで利用

外部サービス

  • Pusher

    • イベント通知サービス
    • Websocket でサーバサイドのイベントをクライアントに伝える
    • サーバサイドの処理は非同期ジョブとして実行されているものが多い
  • mailchimp

    • マーケティングメール送信
  • mandrill

    • トランザクションメール送信

アプリケーション

サーバサイド

  • PHP 7.0

    • 長らく PHP は避けて生きてきたのだが、一回りして悪くない言語に思えるようなってきている
    • 柔軟すぎない言語仕様が逆に良いのかもしれない
  • Laravel 5.x

    • もともと CakePHP 2.x で実装されていたサービスを早い段階で Laravel に移行
    • Laravel が好きだから PHP を使っていると言っても過言ではない
    • ミュータブルな処理は全てジョブとして実装しコントローラーなどからはジョブを dispatch するだけのアーキテクチャにしている
  • Node.js

  • koa

    • 一部の社内プロジェクトでは、サーバサイドも JavaScript ベースで実装している
    • フロントもサーバも同じ言語で実装すると幸せになるのかの実験

フロントエンド

  • React.js
  • Redux
  • ES2015
    • Laravel に移行したタイミングでフロントも全て React.js / Redux ベースの SPA 実装に切り替え
  • Vue.js
  • Nuxt.js
  • TypeScript
    • いつくかの新規プロジェクトは Vue.js / Nuxt.js ベースで書かれており、当面の標準構成として検討している
    • 型がある世界にロマンを求め始めている

デザイン

  • Stylus
    • CSS 記述言語
  • Bulma
    • CSS フレームワーク。Bootstrap 等と違いピュアな CSS のみで構成されているのが良いのだが対応ブラウザーはモダンなものに限られる。

運用

ソースコードホスティング

  • GitHub
  • GitLab
    • 一部のプロジェクトは GitLab で管理
    • 今でもメインは GitHub だが GitLab での利用を検討中

デプロイ

開発環境

CI

  • Wercker
  • CircleCI
    • 初めは Docker 対応していたということで Wercker を利用していたが、 CircleCI 2.0 で Docker ベースでになったので今は両方稼働中。

BI

  • Redash
    • 試しに導入したら、非エンジニア中心にどんどん使われるようになった
    • DBの変更に追従させるのがなかなか大変

モニタリング

アクセス解析

情報ツール

チャット

  • slack
    • 暫くエンジニア中心に利用していたのだが全社的にchatworkから移行した

ドキュメント

プロジェクト管理

  • waffle.io
    • GitHub で完結させるため利用していたが、機能を求めるようになりプロジェクト管理ツールを導入する方向に
  • Planio
    • Redmine ベースのホスティングサービス
    • カスタマイズ性が低く Markdown でかけないのが辛い
    • Redmine に移行するかもしれないが、 Redmine もなんだか古めかしくて気が進まない
    • 良いのないかな〜

まとめ

利用している技術・サービスを列挙しただけですが、成長・変化を知るためにも年末に棚卸しするのは悪くないかもしれない。
来年はもっとデータ解析・分析の方に力を入れていきたい。
オープンロジでは一緒に物流の未来を動かす仲間を募集していますので興味ある方は気軽にご連絡ください!

17
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
10