Submit Search
Upload
#recotech_WIZY開発の裏側
•
1 like
•
925 views
recotech
Follow
レコチョクの新サービスWIZYがどのように作られているのかをご紹介します。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 40
Recommended
#recotech_レガシーなシステムから立て直すためにしたこと
#recotech_レガシーなシステムから立て直すためにしたこと
recotech
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
recotech
Git hubenterpriseを導入してみて
Git hubenterpriseを導入してみて
recotech
そうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニア
recotech
Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~
recotech
#reco_tech Cloud searchでレコチョク検索の実現に向けて
#reco_tech Cloud searchでレコチョク検索の実現に向けて
recotech
#reco_tech AWSへ全面移行した今を話ます。
#reco_tech AWSへ全面移行した今を話ます。
recotech
Aws導入時にまず考える〇〇のこと
Aws導入時にまず考える〇〇のこと
recotech
Recommended
#recotech_レガシーなシステムから立て直すためにしたこと
#recotech_レガシーなシステムから立て直すためにしたこと
recotech
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
recotech
Git hubenterpriseを導入してみて
Git hubenterpriseを導入してみて
recotech
そうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニア
recotech
Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~
recotech
#reco_tech Cloud searchでレコチョク検索の実現に向けて
#reco_tech Cloud searchでレコチョク検索の実現に向けて
recotech
#reco_tech AWSへ全面移行した今を話ます。
#reco_tech AWSへ全面移行した今を話ます。
recotech
Aws導入時にまず考える〇〇のこと
Aws導入時にまず考える〇〇のこと
recotech
Swift losf
Swift losf
NorioSuda
Amazon SageMaker の紹介 + デモ
Amazon SageMaker の紹介 + デモ
recotech
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Dai Iwai
Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発
recotech
Amazon Kinesis Streams デモ
Amazon Kinesis Streams デモ
recotech
Oracle も Serverless サービスやっています
Oracle も Serverless サービスやっています
SuguruSugiyama
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
Koichiro Sumi
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
Koichiro Sumi
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
LIFULL Co., Ltd.
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb
Koichiro Sumi
NAPALMで作るネットワークオペレーション自動化への道のり
NAPALMで作るネットワークオペレーション自動化への道のり
Toshiya Mabuchi
Feedlyのススメ
Feedlyのススメ
KazukiHirayama
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習
Masanori Hayashi
LIFULL HOME'Sにおけるサイトの高速化と今後の対応
LIFULL HOME'Sにおけるサイトの高速化と今後の対応
LIFULL Co., Ltd.
25 + 5分で開発速度を上げる時間管理術!ポモドーロテクニックのご紹介
25 + 5分で開発速度を上げる時間管理術!ポモドーロテクニックのご紹介
KazukiHirayama
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について
LIFULL Co., Ltd.
【ITpro EXPO 2014】hinemos を活用した oss ミドルウェアの稼働分析ソリューションのご紹介
【ITpro EXPO 2014】hinemos を活用した oss ミドルウェアの稼働分析ソリューションのご紹介
Hinemos
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
エンジニア 新年の抱負 超Lt会 vol_5_平山
エンジニア 新年の抱負 超Lt会 vol_5_平山
KazukiHirayama
Spring I/O 2015 報告
Spring I/O 2015 報告
Takuya Iwatsuka
WIZY企画の裏側
WIZY企画の裏側
recotech
#recotech_AWS移行してみたけどぶっちゃけどうよ。
#recotech_AWS移行してみたけどぶっちゃけどうよ。
recotech
More Related Content
What's hot
Swift losf
Swift losf
NorioSuda
Amazon SageMaker の紹介 + デモ
Amazon SageMaker の紹介 + デモ
recotech
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Dai Iwai
Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発
recotech
Amazon Kinesis Streams デモ
Amazon Kinesis Streams デモ
recotech
Oracle も Serverless サービスやっています
Oracle も Serverless サービスやっています
SuguruSugiyama
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
Koichiro Sumi
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
Koichiro Sumi
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
LIFULL Co., Ltd.
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb
Koichiro Sumi
NAPALMで作るネットワークオペレーション自動化への道のり
NAPALMで作るネットワークオペレーション自動化への道のり
Toshiya Mabuchi
Feedlyのススメ
Feedlyのススメ
KazukiHirayama
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習
Masanori Hayashi
LIFULL HOME'Sにおけるサイトの高速化と今後の対応
LIFULL HOME'Sにおけるサイトの高速化と今後の対応
LIFULL Co., Ltd.
25 + 5分で開発速度を上げる時間管理術!ポモドーロテクニックのご紹介
25 + 5分で開発速度を上げる時間管理術!ポモドーロテクニックのご紹介
KazukiHirayama
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について
LIFULL Co., Ltd.
【ITpro EXPO 2014】hinemos を活用した oss ミドルウェアの稼働分析ソリューションのご紹介
【ITpro EXPO 2014】hinemos を活用した oss ミドルウェアの稼働分析ソリューションのご紹介
Hinemos
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
エンジニア 新年の抱負 超Lt会 vol_5_平山
エンジニア 新年の抱負 超Lt会 vol_5_平山
KazukiHirayama
Spring I/O 2015 報告
Spring I/O 2015 報告
Takuya Iwatsuka
What's hot
(20)
Swift losf
Swift losf
Amazon SageMaker の紹介 + デモ
Amazon SageMaker の紹介 + デモ
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発
Amazon Kinesis Streams デモ
Amazon Kinesis Streams デモ
Oracle も Serverless サービスやっています
Oracle も Serverless サービスやっています
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb
NAPALMで作るネットワークオペレーション自動化への道のり
NAPALMで作るネットワークオペレーション自動化への道のり
Feedlyのススメ
Feedlyのススメ
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習
LIFULL HOME'Sにおけるサイトの高速化と今後の対応
LIFULL HOME'Sにおけるサイトの高速化と今後の対応
25 + 5分で開発速度を上げる時間管理術!ポモドーロテクニックのご紹介
25 + 5分で開発速度を上げる時間管理術!ポモドーロテクニックのご紹介
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について
【ITpro EXPO 2014】hinemos を活用した oss ミドルウェアの稼働分析ソリューションのご紹介
【ITpro EXPO 2014】hinemos を活用した oss ミドルウェアの稼働分析ソリューションのご紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
エンジニア 新年の抱負 超Lt会 vol_5_平山
エンジニア 新年の抱負 超Lt会 vol_5_平山
Spring I/O 2015 報告
Spring I/O 2015 報告
Viewers also liked
WIZY企画の裏側
WIZY企画の裏側
recotech
#recotech_AWS移行してみたけどぶっちゃけどうよ。
#recotech_AWS移行してみたけどぶっちゃけどうよ。
recotech
Business contest KING 2016 コンテスト概要
Business contest KING 2016 コンテスト概要
悠人 長島
Как увеличить число загрузок приложения? – Анна Ященко, Google
Как увеличить число загрузок приложения? – Анна Ященко, Google
Procontent.Ru Magazine
Single Parent Homes
Single Parent Homes
smartj08
Salvador Dali
Salvador Dali
guest4aca0f
Hajj, Pilgrimage
Hajj, Pilgrimage
guestf8d304
Chinwag Insight: Facebook Marketing - John Tawadros - BLiNQ Media - Facebook ...
Chinwag Insight: Facebook Marketing - John Tawadros - BLiNQ Media - Facebook ...
Chinwag
Keenan Gabby
Keenan Gabby
jzeien66
Columbia bos 4301
Columbia bos 4301
leesa marteen
S Ta R Chart Amboree
S Ta R Chart Amboree
latonyaamboree
Carbon cultures lecture 8 resources
Carbon cultures lecture 8 resources
Stanford University
MODULO V
MODULO V
LizDv
UPDATED CV HSE
UPDATED CV HSE
Godlove Ngala Shey
The Positive Role that Meetings and Events Can Have on an Organization
The Positive Role that Meetings and Events Can Have on an Organization
Esprit Productions
отчет о проведенных работах по благоустройству за 2016 - раменки
отчет о проведенных работах по благоустройству за 2016 - раменки
Олег Иванов
Tecnología Educativa
Tecnología Educativa
carolina gamarra
Роман Медведев, Pliq
Роман Медведев, Pliq
Procontent.Ru Magazine
Politik Inn NYU 2015
Politik Inn NYU 2015
Stanford University
Letters of Recommendation
Letters of Recommendation
jeejman
Viewers also liked
(20)
WIZY企画の裏側
WIZY企画の裏側
#recotech_AWS移行してみたけどぶっちゃけどうよ。
#recotech_AWS移行してみたけどぶっちゃけどうよ。
Business contest KING 2016 コンテスト概要
Business contest KING 2016 コンテスト概要
Как увеличить число загрузок приложения? – Анна Ященко, Google
Как увеличить число загрузок приложения? – Анна Ященко, Google
Single Parent Homes
Single Parent Homes
Salvador Dali
Salvador Dali
Hajj, Pilgrimage
Hajj, Pilgrimage
Chinwag Insight: Facebook Marketing - John Tawadros - BLiNQ Media - Facebook ...
Chinwag Insight: Facebook Marketing - John Tawadros - BLiNQ Media - Facebook ...
Keenan Gabby
Keenan Gabby
Columbia bos 4301
Columbia bos 4301
S Ta R Chart Amboree
S Ta R Chart Amboree
Carbon cultures lecture 8 resources
Carbon cultures lecture 8 resources
MODULO V
MODULO V
UPDATED CV HSE
UPDATED CV HSE
The Positive Role that Meetings and Events Can Have on an Organization
The Positive Role that Meetings and Events Can Have on an Organization
отчет о проведенных работах по благоустройству за 2016 - раменки
отчет о проведенных работах по благоустройству за 2016 - раменки
Tecnología Educativa
Tecnología Educativa
Роман Медведев, Pliq
Роман Медведев, Pliq
Politik Inn NYU 2015
Politik Inn NYU 2015
Letters of Recommendation
Letters of Recommendation
Similar to #recotech_WIZY開発の裏側
Activity Plan of API Lab AIZU@AiCT
Activity Plan of API Lab AIZU@AiCT
Masanobu Takagi
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
WordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリ
アシアル株式会社
20161111 java one2016-feedback
20161111 java one2016-feedback
Takashi Ito
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
アシアル株式会社
【A-4】kintone API、JavaScript APIの実力
【A-4】kintone API、JavaScript APIの実力
Cybozucommunity
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
Akira Nagata
Monacaでつくるハイブリッドアプリ
Monacaでつくるハイブリッドアプリ
Monaca
いまさら聞けない!HTML5超入門
いまさら聞けない!HTML5超入門
Monaca
【Interop Tokyo 2016】 リコーのサービス基盤を支えるジュニパー
【Interop Tokyo 2016】 リコーのサービス基盤を支えるジュニパー
Juniper Networks (日本)
Bitbucket Pipelinesについて
Bitbucket Pipelinesについて
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
ノンコーディング・超高速のApi 開発・運用基盤「cdata api server」のご紹介
ノンコーディング・超高速のApi 開発・運用基盤「cdata api server」のご紹介
CData Software Japan
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
オラクルエンジニア通信
ハイブリッドアプリ開発最前線から見たHtml5の理想と現実
ハイブリッドアプリ開発最前線から見たHtml5の理想と現実
Monaca
ゆるふわAzure Functions
ゆるふわAzure Functions
Keiji Kamebuchi
企画者が押さえておきたいHtml5アプリ開発の要点
企画者が押さえておきたいHtml5アプリ開発の要点
Monaca
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
2018/7/27 SAP on AWS お客様事例セミナー@大阪(BeeX資料2/2)
2018/7/27 SAP on AWS お客様事例セミナー@大阪(BeeX資料2/2)
BeeX.inc
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
Tadashi Miyazato
【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend
史識 川原
Similar to #recotech_WIZY開発の裏側
(20)
Activity Plan of API Lab AIZU@AiCT
Activity Plan of API Lab AIZU@AiCT
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
WordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリ
20161111 java one2016-feedback
20161111 java one2016-feedback
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
【A-4】kintone API、JavaScript APIの実力
【A-4】kintone API、JavaScript APIの実力
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
Monacaでつくるハイブリッドアプリ
Monacaでつくるハイブリッドアプリ
いまさら聞けない!HTML5超入門
いまさら聞けない!HTML5超入門
【Interop Tokyo 2016】 リコーのサービス基盤を支えるジュニパー
【Interop Tokyo 2016】 リコーのサービス基盤を支えるジュニパー
Bitbucket Pipelinesについて
Bitbucket Pipelinesについて
ノンコーディング・超高速のApi 開発・運用基盤「cdata api server」のご紹介
ノンコーディング・超高速のApi 開発・運用基盤「cdata api server」のご紹介
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
ハイブリッドアプリ開発最前線から見たHtml5の理想と現実
ハイブリッドアプリ開発最前線から見たHtml5の理想と現実
ゆるふわAzure Functions
ゆるふわAzure Functions
企画者が押さえておきたいHtml5アプリ開発の要点
企画者が押さえておきたいHtml5アプリ開発の要点
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
2018/7/27 SAP on AWS お客様事例セミナー@大阪(BeeX資料2/2)
2018/7/27 SAP on AWS お客様事例セミナー@大阪(BeeX資料2/2)
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend
More from recotech
RecoChoku tech night #09 -reinvent2018報告会- オープニング
RecoChoku tech night #09 -reinvent2018報告会- オープニング
recotech
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
recotech
業界あるある Music偏
業界あるある Music偏
recotech
レコチョク・ラボが考える人工知能
レコチョク・ラボが考える人工知能
recotech
Oracle racからaurora my sqlへの移行
Oracle racからaurora my sqlへの移行
recotech
レコチョクのサービス群を支えるApiたち
レコチョクのサービス群を支えるApiたち
recotech
More from recotech
(6)
RecoChoku tech night #09 -reinvent2018報告会- オープニング
RecoChoku tech night #09 -reinvent2018報告会- オープニング
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
業界あるある Music偏
業界あるある Music偏
レコチョク・ラボが考える人工知能
レコチョク・ラボが考える人工知能
Oracle racからaurora my sqlへの移行
Oracle racからaurora my sqlへの移行
レコチョクのサービス群を支えるApiたち
レコチョクのサービス群を支えるApiたち
#recotech_WIZY開発の裏側
1.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZY開発の裏側 Yuto Matsuki
2.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 Index 2 1. WIZYの構成 2. WIZYの裏側 1. フロント 2. バックエンド 3. インフラ 3. まとめ
3.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYのシステム構成 3
4.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYのシステム構成 4
5.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYの裏側 5
6.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYを支える技術 6
7.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYのメイン言語 Python 7
8.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 メイン言語にPythonを選択した理由 8 • 環境構築の容易さ(virtualenv/pip) • 環境構築手順がシンプルで面倒くさい事が起きにくい • システム環境を汚さずにインストールできる。不要になれば消すだけ $ python -V Python 2.7.12 $ brew install python3 $ pyvenv-3.5 venv $ source venv/bin/activate $ python -V Python 3.5.2
9.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 メイン言語にPythonを選択した理由 9 • 書きやすい。読みやすい。チーム開発に向いていそう ちょっとしたことがシンプルに書けて嬉しい 括弧の代わりにインデントでブロックを表すことによるメリット • コードが短くなる • 人によって書き方の差が発生しにくい 読みやすいコードを書く文化がある「Readability counts.」 if -1 < item.limit < item_supports: raise Exception(‘在庫切れ’)
10.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 Pythonのバージョンについて 10 AWSのAmazon Linuxは標準で2.7がインストールされているため プロトタイプまではPython2.7で開発していたが この本にPython3系を使うべきと 書いてあったためPython3で書き直しました。 (ほぼ互換性があったためすぐに対応できた)
11.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYのフロントエンド 11
12.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYを支える技術(フロントエンド) 12
13.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYのフロントエンド 13 • Semantic-UI • オープンソースのCSSフレームワーク • 他と比較してHTMLが綺麗に書けるのが特徴 • 見た目だけでなく入力チェックなどの機能も備える • Backbone.js • フロントMVCを実現するJavaScriptフレームワーク • 低機能な分シンプル。AngularJSなどと比べると学習コストが低い • アイテム購入画面をシングルページで作成するために採用
14.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 アイテム購入画面 14 • checkout.html • view.js • validator.js アイテム選択 配送先入力 支払い方法選択 入力確認▶ ▶ ▶ … Backbone.jsのView(普通は画面ごとに分けて作ります) … Semantic-UIの入力チェック定義
15.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 レイアウト部分 Semantic-UI+Backbone.jsで作る購入画面 15 checkout.html (レイアウト部分) ← アイテム選択画面 ← 配送先入力画面 ←支払い方法選択画面 ← 入力確認画面 checkout.html (配送先入力画面) 最初はシンプルだったのでこの方式でも良かったが、 色々と修正しているうちに1000行ほどのHTMLになってしまった。。
16.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 Semantic-UI+Backbone.jsで作る購入画面 16 ビューの切り替え処理 view.js (ビュー定義) view.js (next_pageイベント) class=nextのクリックイベント
17.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 Semantic-UI+Backbone.jsで作る購入画面 17 入力チェック http://semantic-ui.com/behaviors/form.html validator.js (入力チェック定義)
18.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYのバックエンド 18
19.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYを支える技術(バックエンド) 19
20.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYのバックエンド 20 • Swagger • 言語に依存しないAPI仕様記述のための書式 • API仕様からAPIドキュメントを生成できる • 言語ごとのクライアントを生成することも可能 • Redis • APIレスポンスのキャッシュ • DBの負荷軽減/パフォーマンス向上には欠かせない存在 • 安定したパフォーマンスを出すための実装も必要(後述)
21.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYのバックエンド Swagger 21
22.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 swagger-codegen 22 YAMLで仕様を管理。YAMLから生成 https://github.com/swagger-api/swagger-codegen
23.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 Swaggerを導入するメリット 23 複数の言語にも対応しているのでAPIとクライアントを綺麗に分離できる APIドキュメントとソースコードの同期が自動的に保たれる APIの実装APIの仕様クライアントの実装
24.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYのバックエンド Redis 24
25.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 25 WIZYでは更新がほとんど無く参照の割合が非常に高いため APIのレスポンスをRedisにキャッシュしています APIの実装APIの仕様クライアントの実装 キャッシュ実装
26.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 キャッシュ実装 26 • 有効期限を設定してキャッシュする場合 キャッシュがある場合はキャッシュを返す キャッシュにない場合はDBから取得してキャッシュに保存する APIリクエスト キャッシュを更新 有効期限 時間の流れ この期間にアクセスが集中すると パフォーマンスが低下してしまう
27.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 キャッシュ実装 27 • この問題に対応するキャッシュの使い方 キャッシュの更新は最低1人が行えば良いので 誰かがDBを見に行っている間は古い情報を返しておく APIリクエスト キャッシュを更新 有効期限 時間の流れ キャッシュ更新中は古いデータを返す フラグ データ 次来た人が更新しに来ないよう フラグを立ててから更新
28.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYのインフラ 28
29.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYを支える技術(インフラ) 29
30.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZYのインフラ 30 • docker • 仮想化技術/アプリケーションをイメージで配布できる • 画面のテスト/開発環境/デモ環境として利用 • EC2よりも起動が早いので今後は本番サービスでも検討 • Packer • AMI(Amazon Machine Image)の作成に利用 • 各種ミドルウェアのインストールや設定の変更を自動化 • EC2の起動 > AMI作成 > EC2破棄の手順を自動で行える
31.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 開発〜リリースの流れ 31 wizy.jp ステージ環境 検証環境 AWS開発環境 AWS検証環境 AWS本番環境 develop release master
32.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 開発〜リリースの流れ 32 wizy.jp ステージ環境 検証環境 AWS開発環境 AWS検証環境 AWS本番環境 develop release master ソースコードをpush UnitTestが通ったら dockerイメージ作成 作成したイメージを 立ち上げてUIテスト 開発環境 結果を通知 capybara dockerイメージ dockerコンテナ
33.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 開発〜リリースの流れ 33 wizy.jp ステージ環境 検証環境 AWS開発環境 AWS検証環境 AWS本番環境 develop release master Packerのリポジトリ Packerが自動でEC2 を起動しAMIを作成 作成したAMIから EC2を立ち上げる 検証環境 Python用AMI Web/APIサーバ 構成管理のリポジトリ
34.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 開発〜リリースの流れ 34 wizy.jp ステージ環境 検証環境 AWS開発環境 AWS検証環境 AWS本番環境 develop release master v1.0 本番環境(1/5) 本番環境ELB wizy.jp Web/APIサーバ CloudFormation
35.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 開発〜リリースの流れ 35 wizy.jp ステージ環境 検証環境 AWS開発環境 AWS検証環境 AWS本番環境 develop release master v1.0 本番環境(2/5) 本番環境ELB wizy.jp Web/APIサーバ v1.1 ステージ環境ELBWeb/APIサーバ CloudFormation
36.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 開発〜リリースの流れ 36 wizy.jp ステージ環境 検証環境 AWS開発環境 AWS検証環境 AWS本番環境 develop release master v1.0 本番環境(3/5) 本番環境ELB wizy.jp Web/APIサーバ v1.1 ステージ環境ELBWeb/APIサーバ CloudFormation
37.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 開発〜リリースの流れ 37 wizy.jp ステージ環境 検証環境 AWS開発環境 AWS検証環境 AWS本番環境 develop release master v1.0 本番環境(4/5) 本番環境ELB wizy.jp Web/APIサーバ v1.1 ステージ環境ELBWeb/APIサーバ CloudFormation
38.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 開発〜リリースの流れ 38 wizy.jp ステージ環境 検証環境 AWS開発環境 AWS検証環境 AWS本番環境 develop release master本番環境(5/5) 本番環境ELB wizy.jp v1.1 Web/APIサーバ CloudFormation
39.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 WIZY初期開発を振り返って 39 • Semantic-UIの入力チェック機能は便利だが万能ではないので注意 • Swaggerの導入でAPIの仕様管理がしやすくて良かった • キャッシュの実装は最初からそこまでいらなかったかも 今後について • 環境立ち上げ/切り替えが手作業なので慣れたら自動化したい • dockerを検証/本番環境でも利用したい
40.
© Recochoku Co.,Ltd.
Proprietary and Confidential 2016/10/06 40 これからもWIZYを宜しくお願いします! ご静聴ありがとうございました!