Upgrade to Pro — share decks privately, control downloads, hide ads and more …

airClosetを支える技術

 airClosetを支える技術

airClosetのリポジトリの紹介や、商用で使っているnode_modulesの紹介など。

Ryosuke Tsuji

March 02, 2016
Tweet

More Decks by Ryosuke Tsuji

Other Decks in Programming

Transcript

  1. 15 ⾃⼰紹介 執⾏役員CTO 元Sier && 元楽天 JavaScript(Node.js含む) / ruby /

    Python / SQL / Java / PHP ランニングプログラマー フルマラソン3時間19分 辻亮佑 @thujikun
  2. AWS構成図 16 virtual private cloud Availability Zone 1 Availability Zone

    2 ・・・ ・・・ Web/App Server Web/App Server Replication(Multi-AZ) Replication(Multi-AZ) ElastiChache ElastiCache User CloudWatch Log Stream Developer APM Service Metricks Alarm Monitoring Static Contents S3 bucket RDS(Master) RDS(Slave)
  3. システム情報 19 A) 3 B) 7 C) 11 D) 17

    ヒント1:サービスインした頃(昨年の今頃)はひとつ。 ヒント2:平均エンジニア数は3名程度。
  4. お客様向けWeb 環境:rails DB:mySql, mongoDB cache: memcache 本番環境:nginx -> unicorn ->

    rails お客さま向けに公開しているWebサイト。 オフショアで作った経緯があり、ちょっとこおばし い。 24
  5. お客様向けWebの静的ページ 環境:nunjucks / stylus / javascript 本番環境:nginx -> s3 その他:gulp,

    webpack お客様向けWebサイトのうち静的なページは別プロ ジェクトで管理しs3で公開。 簡単に更新可能なのと、railsと切り離したかった。 26
  6. 内部向け管理Web 環境:node / express / java / stylus / angular

    DB:mySql, mongoDB cache: redis 本番環境:nginx -> forever その他:grunt, webpack スタイリスト、調達、CS、オペレーターが使う管理 画⾯。 最初スタイリスト向けにつくっていたものを徐々に 拡張してきていて、どこかで分けたいと思案中。 30
  7. APIサーバ 環境:node / koa DB:mySql, mongoDB cache: redis その他:gulp, babel,

    swagger ⽬下開発中のiOSアプリ⽤のAPIサーバ。 Webもこちらをベースにreplace予定。 swaggerコメントを使って、APIの実⾏環境だけで なく、validationも実⾏できるようにしている。 40
  8. 解析サーバ 環境:python / pyramid DB:mySql, mongoDB cache: redis その他:mecab /

    openCV ユーザの書いたフィードバックの解析や、画像の⾊ 判定など。 今後はフィードバックからの感情分析や、アイテム 画像からの⾃動ラベリング等を実装していきたい。 42
  9. New ユーザWeb 環境:nunjucks / stylus / React 本番環境:nginx -> s3

    その他:gulp, babel, webpack 前述したとおりAPIサーバを⽤いて、ユーザ側もリ ニューアル予定。 シングルページアプリケーションをReact、React Router等を⽤いてつくる予定。 49
  10. Swagger 76 • swagger-jsdoc • swagger-injector • swagger-ui • swagger-validate

    Nodeでswaggerを使う場合、下記3つ+1を組み合わせると楽。
  11. その他 86 • co-supertest -> APIテスト⽤ • babel -> ES

    Next先取り • babel-plugin-module-alias -> importのpathのalias • koa-bearer-token -> oAuth標 準の認証に準拠するのに使う