オープンロジを支える技術（2018年版）

[OPENLOGI Advent Calendar 2018](https://qiita.com/advent-calendar/2018/openlogi) 最後の投稿です。

[株式会社オープンロジ](https://openlogi.com/corp/)は 2013年12月25日 が創業日で本日がちょうど創業5年目の節目になります。
[オープンロジ](https://openlogi.com/)のサービスリリースが 2014年10月 なのでそれからは4年程になります。
[物流アウトソーシング「オープンロジ」がサービス開始――中小事業者や個人をターゲットに]
(http://jp.techcrunch.com/2014/10/21/jp20141020_openlogi/)

昨年から組織的に取り組み始めたアドベントカレンダーですが、締めくくりの投稿として１年間の技術的なアップデートをまとめておきたいと思います。

昨年のエントリー
[オープンロジを支える技術（2017年版）](https://qiita.com/migrs/items/b1bfd752d3abb0101f59) 

# インフラ

インフラ周りは構成として特に大きな変更なく、成長に伴うスケールアップ・スケールアウトの対応が中心でした。来年はインフラ専任アサインしてさらなる成長に備えたいと思っています。

## Amazon Web Service (AWS)

### 主なアップデート

- [Athena](https://aws.amazon.com/jp/athena/) **New**
  - ログ周りのデータを DB(RDS) で管理していましたが、データも多くなってきたので [fluentd](https://www.fluentd.org/) で S3 に流しつつ、Athena からクエリーする運用に切り替えました
- EC2 OS アップグレード
  - Ubuntu 16.04 LTS → Ubuntu 18.04 LTS

### 近々対応予定のもの

- [Aurora](https://aws.amazon.com/jp/rds/aurora/)
  - [今年 MySQL5.7 対応された](https://aws.amazon.com/jp/blogs/news/amazon-aurora-is-compatible-with-mysql-5-7/)ので年明け移行予定

### 継続的に利用しているもの

- [EC2](https://aws.amazon.com/jp/ec2/)
- [S3](https://aws.amazon.com/jp/s3/)
- [RDS](https://aws.amazon.com/jp/rds/)
- [ElastiCache](https://aws.amazon.com/jp/elasticache/)
- [Elasticsearch Service](https://aws.amazon.com/jp/elasticsearch-service/)
- [API Gateway](https://aws.amazon.com/jp/api-gateway/)
- [Lambda](https://aws.amazon.com/jp/lambda/)
- [Elastic Container Service (ECS)](https://aws.amazon.com/jp/ecs/)
- [Simple Queue Service (SQS)](https://aws.amazon.com/jp/sqs/)
- [Simple Notification Serivce (SNS)](https://aws.amazon.com/jp/sns/)
- [IAM](https://aws.amazon.com/jp/iam/)
- [CloudWatch](https://aws.amazon.com/jp/cloudwatch/)
- [CloudTrail](https://aws.amazon.com/jp/cloudtrail/)
- [CloudFront](https://aws.amazon.com/jp/cloudfront/)
- [CloudFormation](https://aws.amazon.com/jp/cloudformation/)
- [Route 53](https://aws.amazon.com/jp/route53/)
- [Certificate Manager](https://aws.amazon.com/jp/certificate-manager/)

## Google Cloud Platform (GCP)

引き続き実験的に利用していますが、そろそろ [BigQuery](https://cloud.google.com/bigquery/?hl=ja) 中心に活用していくことになりそう。

- [Firebase](https://firebase.google.com/?hl=ja)

## 外部サービス

- [Pusher](https://pusher.com/) Pub/Sub メッセージング
- [mandrill](https://www.mandrill.com/) メール配信
- [mailchimp](https://mailchimp.com/) メルマガ

# アプリケーション

Ubuntu OS のアップグレードに伴い、言語とフレームワークのアップデートも実施しました。足回りは技術的負債になりやすいところなのでコンスタントに解消していきます。

## サーバサイド

リリース後に不具合発覚するなどいくつか問題もありましたが、なんとかアップデート対応できました。

- [PHP](http://php.net/) 7.0 → 7.2
- [Laravel](https://laravel.com/) 5.2 → 5.3 → 5.5 LTS
- ~~[Node.js](https://nodejs.org/)~~ プロジェクト終了に伴い利用終了
- ~~[koa](http://koajs.com/)~~ プロジェクト終了に伴い利用終了

## フロントエンド

メインはまだまだ React.js ですが、新規プロジェクトは Vue.js/Nuxt.js ベースで実装しています。Nuxt.js を v2.3 系にバージョンアップしたことでビルドがかなり速くなりました。デザイナーも直接 Vue ファイルを編集しコミットしてもらうことで協業しやすくなっています。言語は TypeScript がメインになってきました。

今年11月に開催された[Vue Fes Japan](https://vuefes.jp/)では会社としては初めてスポンサーとして協賛させていただきました。

- [React.js](https://reactjs.org/)
- [Redux](https://redux.js.org/)
- [Vue.js](https://jp.vuejs.org/)
- [Nuxt.js](https://ja.nuxtjs.org/)
- [TypeScript](https://www.typescriptlang.org/)
- [ES2015](http://www.ecma-international.org/ecma-262/6.0/index.html)

### デザイン

- [Stylus](http://stylus-lang.com/)
- [Bulma](https://bulma.io/)

# 運用

運用周りはリソースモニタリングツールとして [mackerel](https://mackerel.io/ja/) の活用し始めたくらいで大きなアップデートはありません。

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

- [GitHub](https://github.com/) メイン
- [GitLab](https://gitlab.com/) サブ

## デプロイ

- [capistrano](http://capistranorb.com/)

## 開発環境

- [docker](https://www.docker.com/)
- [docker-compose](https://docs.docker.com/compose/)

## CI

- [CircleCI](https://circleci.com/) メイン
- [Wercker](http://www.wercker.com/) サブ

## BI

- [Redash](https://redash.io/)

## モニタリング

- [NewRelic](https://newrelic.com)
  - [APM](https://newrelic.com/application-monitoring) アプリケーション監視
  - [Browser](https://newrelic.com/browser-monitoring) ブラウザ監視
  - ~~[Infrastructure](https://newrelic.com/infrastructure) サーバ監視~~
- [Papertrail](https://papertrailapp.com/) ログ監視
- [mackerel](https://mackerel.io/ja/) **New** リソース監視

## アクセス解析

- [Google Analytics](https://analytics.google.com/)
- [MixPanel](https://mixpanel.com/)

## 自動化

- [Zapier](https://zapier.com/) **New**
  - Slack の投稿からスタンプ経由で自動的に起票したり、運用まわりの業務改善に活用しています。

# 情報ツール

情報共有ツールを [esa](https://esa.io/) から [GROWI](https://growi.org/) に移行しました。
GROWI は crowi-plus 時代から利用していますが、非常に精力的に開発されており、日々進化していてオススメのツールのひとつです。

## チャット

- [Slack](https://slack.com/)
  - パブリックチャンネル数が昨年末時点で 146 だったのが、現時点で 535 まで増えてました

## ドキュメント

- [GROWI](https://growi.org/) メイン
  - [CodiMD](https://github.com/hackmdio/codimd) リアルタイムコラボレーション
- [Google Docs](https://www.google.com/intl/ja_jp/docs/about/) テキストで表現できない資料や権限管理が必要なもの

## プロジェクト管理

Redmine じゃない何かを探し求めていたのですが、適当なものが見つからず無難なところで選択しました。

- [Redmine](https://www.redmine.org/) **New**
  - [Redmine Agile Plugin](https://www.redmineup.com/pages/ja/plugins/agile) アジャイル対応プラグイン
- ~~[waffle.io](https://waffle.io/)~~
- ~~[Planio](https://plan.io/)~~

# コーポレート・オフィス関連

ここ1年で社員数が40名程度から90名程度まで増えたこともあり、管理業務コストも高くなってきたので様々な SaaS の導入で効率化を進めています。

- [AKASHI](https://ak4.jp/) 勤怠管理
- [SalesForce](https://www.salesforce.com/jp/) 顧客管理(CRM) / 営業管理(SFA)
  - [Pardot](https://www.salesforce.com/jp/products/pardot/overview/) マーケティングオートメーション
- [MiiTel](https://miitel.jp/) クラウドIP電話
- [HERP](https://herp.cloud/) 採用管理システム(ATS)
- [formrun](https://form.run/ja) メールフォーム
- [ジョブカンワークフロー](https://wf.jobcan.ne.jp/)
- [ジョブカン経理精算](https://ex.jobcan.ne.jp)

## インターネット回線

今までフレッツ光を利用していましたが、[NURO光](https://www.nuro.jp/) を導入し回線の冗長化と速度向上を実現しました。

## Wi-Fi

AirMac Extreme 2台体制だったのですが、捌ききれなくなってきたため [Aruba AP-345](https://www.arubanetworks.com/ja/products/networking/access-points/340-series/) を2台導入し、社内ネットワーク環境を改善しました。

# チーム

最後にチームとしての体制の変更点についても記述しておきたいと思います。

- DevOps の取り組み
  - 今までは明示的に分けてなかったのですが、運用チームを発足し、開発と運用がそれぞれフォーカスし問題発見・解決できるようにしました
- QA チームの発足
  - お客様の業務に直結するミッションクリティカルなサービスということもあり、チームとしてQAに取り組む体制を構築しました
- デザイナーの取り組み
  - デザイナーが各プロダクトにアサインされたことにより、よりユーザ目線でUI/UXを意識したプロダクト作りに取り組めるようになってきました

# まとめ

サービスとして拡大フェーズに入りつつありますが、まだまだプロダクトとして磨き上げる必要があり、来年もスタートアップとして我々にしかできない我々だからできるプロダクト作りを進めていきます。

[オープンロジでは一緒に物流の未来を動かす仲間を募集しています](https://www.openlogi.com/corp/recruit/engineer/index.html)ので興味ある方は気軽にご連絡ください！