SlideShare a Scribd company logo
1 of 31
Download to read offline
リアルタイム写真共有サービス

ぱふぉしぇ
• BaaS基盤開発 3年 サーバサイド
• 趣味
自己紹介
過去にリリースした子たち
• Dockerfile for personium.io

Dockerfile of personium.io for Docker's automated build.

• gulp-personium

gulp plugin for personium.io client development.

• TwiPresso (src)

TwiPresso brings you news shared from your twitter friends.

This service corrects tweets from your twitter timeline 

which have URL link.
ぱふぉしぇのコンセプト
パーティーに来たみんなが

とってくれた写真を

リアルタイムで共有したい
機能

・写真アップロード

・写真の表示・ダウンロード

・リアルタイムでスクリーンに表示
upload
display
とった写真をアップロードするだけで

会場のモニタに映し出される
リアルタイムスクリーン表示のデモ
ぱふぉしぇの仕組み
development

machine
AWSOAuth Provider
システム構成
Client
development

machine
AWSOAuth Provider
リアルタイムスクリーン表示の仕組み
Client
mobile server
monitor
リアルタイムスクリーン表示の仕組み
ソケット通信を利用して、写真のアップロードイベン
トを通知
queue
写真ID
notify event
emit
pop
development

machine
AWSOAuth Provider
性能のための工夫 その1
Client
画像への
アクセス方法
画像アクセス(当初)
AWS
Client
アップロード中に一覧表示すると10秒もかかる!!

たったの2多重にたえられない!!?
list pictures
upload picture
画像アクセス(改)
AWS
Client
Nodejsはシングルプロセス・シングルスレッド

ノンブロッキングI/Oを採用したイベント駆動モデル

ブロッキング処理をしてしまうとみんな待たされる
静的コンテンツの取得
はNginxにまかせる
development

machine
AWSOAuth Provider
性能のための工夫 その2
Client
写真の
保存方法
写真の保存方法(当初)
ダウンロード用にオリジナルの写真を保持しておきた
かった
が、遅い!!
(当然)
original
写真の保存方法(改)
ダウンロード/拡大表示/サムネイル用のサイズを作
成し、用途に応じて使い分け
small
medium
large
ぱふぉしぇをささえる
ライブラリ
A Javascript library for building user
interfaces
• Virtual DOM
• One-way reactive data flow
• Server side rendering
おすすめ(入門):http://qiita.com/advent-calendar/2014/reactjs
なんでReactにしたか
Flipboard の list view engine
60fps on the mobile web — Flipboard Engineering

by Michael Johnston ∙ February 10, 2015



The DOM is too slow.

It’s not just slow, it’s really slow.

You cannot build a 60fps scrolling list view with DOM.

Flipbord で使ってる Canvas layout engine を React
Components にしたよ
なんでReactにしたか
コンポーネント志向
• HTML上のパーツを動きや見た目を含めてコンポー
ネントとして定義できる
• 同じパーツを使用したいときに複数の箇所に同じ
コードを書かなくてよい(再利用可能)
• さらにみんなでコンポーネントを共有できる

http://react-components.com/

http://react.rocks/
browserify
クライアントサイドの開発で require( module ) メ
ソッドをサポート。browserifyが依存関係をバンドル
してくれる。
• npmモジュールをそのまま使える
• クライアントサイドでもrequire

スタイルで書ける
• 使うの簡単
ぱふぉしぇ開発環境
SCM
CI service
development machine
開発環境
nodemon
• DBやNginxはdockerプロセスで起動→どこでも開発環境が再現可能
• CIにはプライベートでもフリーで利用できるwerckerを採用
保存したら勝手に再起動&リロード
js
js
nodemon
update
watch & build
watch & server restart & notify
reload
詳しい設定方法は こちら

課題:watchify使えてないので毎回フルコンパイル
実際に使ってもらって
感想
• 披露宴に参加しているみんなが披露宴をつくってく
れている感が楽しかった
• 友達視点ならではの写真・自分たちがいない間の写
真も見れて楽しい
• みんなが自分のアプリ使ってくれてすごく嬉しい
• 動作不具合があった方々 すみませんでしたm(_ _)m
趣味プログラミングの
いいところ
“失敗したら
やり直せばいい”
使ったことないライブラリ/MW/手法

どんどん使える
検証レベルじゃわからない使用感もわかる
“必然的に人のコード
たくさん読む”
書籍学習も大事 人のコード読むのも大事
実運用に必要な知識が得られる
“自分がつくったアプリは
かわいい”
ご清聴
ありがとうございました

More Related Content

What's hot

仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 Hideo Takahashi
 
Azure boards for beginners
Azure boards for beginnersAzure boards for beginners
Azure boards for beginnersKazushi Kamegawa
 
はじめてのCF buildpack
はじめてのCF buildpackはじめてのCF buildpack
はじめてのCF buildpackKazuto Kusama
 
Cloud Foundry Admin UI v2を使ってみた
Cloud Foundry Admin UI v2を使ってみたCloud Foundry Admin UI v2を使ってみた
Cloud Foundry Admin UI v2を使ってみたi_yudai
 
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSBOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSi_yudai
 
コンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundryコンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud FoundryKazuto Kusama
 
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Kazuto Kusama
 
Nifty cloud automationでクラウド構築・運用の自動化
Nifty cloud automationでクラウド構築・運用の自動化Nifty cloud automationでクラウド構築・運用の自動化
Nifty cloud automationでクラウド構築・運用の自動化NIFTY Cloud
 
これからのOpenShiftの話をしよう
これからのOpenShiftの話をしようこれからのOpenShiftの話をしよう
これからのOpenShiftの話をしようKazuto Kusama
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxKazushi Kamegawa
 
GitHub + Circle CI で幸せになろう
GitHub + Circle CI で幸せになろうGitHub + Circle CI で幸せになろう
GitHub + Circle CI で幸せになろうNobuhiro Ueda
 
コンテナ事例 CircleCI, Cucumber-Chef
コンテナ事例 CircleCI, Cucumber-Chefコンテナ事例 CircleCI, Cucumber-Chef
コンテナ事例 CircleCI, Cucumber-ChefYukihiko SAWANOBORI
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話mdome
 
グループ制作注意
グループ制作注意グループ制作注意
グループ制作注意MakotoItoh
 
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity DevelopersUnityTechnologiesJapan002
 

What's hot (20)

Firebase3
Firebase3Firebase3
Firebase3
 
仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法
 
Azure boards for beginners
Azure boards for beginnersAzure boards for beginners
Azure boards for beginners
 
はじめてのCF buildpack
はじめてのCF buildpackはじめてのCF buildpack
はじめてのCF buildpack
 
ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料
 
Cloud Foundry Admin UI v2を使ってみた
Cloud Foundry Admin UI v2を使ってみたCloud Foundry Admin UI v2を使ってみた
Cloud Foundry Admin UI v2を使ってみた
 
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSBOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
 
コンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundryコンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundry
 
Wagby on Cloud Foundry
Wagby on Cloud FoundryWagby on Cloud Foundry
Wagby on Cloud Foundry
 
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
 
What's Azure DevOps
What's Azure DevOpsWhat's Azure DevOps
What's Azure DevOps
 
Nifty cloud automationでクラウド構築・運用の自動化
Nifty cloud automationでクラウド構築・運用の自動化Nifty cloud automationでクラウド構築・運用の自動化
Nifty cloud automationでクラウド構築・運用の自動化
 
これからのOpenShiftの話をしよう
これからのOpenShiftの話をしようこれからのOpenShiftの話をしよう
これからのOpenShiftの話をしよう
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
 
GitHub + Circle CI で幸せになろう
GitHub + Circle CI で幸せになろうGitHub + Circle CI で幸せになろう
GitHub + Circle CI で幸せになろう
 
コンテナ事例 CircleCI, Cucumber-Chef
コンテナ事例 CircleCI, Cucumber-Chefコンテナ事例 CircleCI, Cucumber-Chef
コンテナ事例 CircleCI, Cucumber-Chef
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
 
Amazon ECSとDevOps
Amazon ECSとDevOpsAmazon ECSとDevOps
Amazon ECSとDevOps
 
グループ制作注意
グループ制作注意グループ制作注意
グループ制作注意
 
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
 

Similar to ぱふぉしぇ -リアルタイム写真共有サービス-

プログラミング生放送@プログラミング生放送勉強会 第20回@品川
プログラミング生放送@プログラミング生放送勉強会 第20回@品川プログラミング生放送@プログラミング生放送勉強会 第20回@品川
プログラミング生放送@プログラミング生放送勉強会 第20回@品川jz5 MATSUE
 
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)mganeko
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminarManabu Shimobe
 
App Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデートApp Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデートMicrosoft Azure Japan
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?Daichi Isami
 
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオンAWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオンEiji KOMINAMI
 
Druidとflinkを使った動画広告のリアムタイム集計基盤
Druidとflinkを使った動画広告のリアムタイム集計基盤Druidとflinkを使った動画広告のリアムタイム集計基盤
Druidとflinkを使った動画広告のリアムタイム集計基盤saito_hirokazu
 
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介Eiji Shinohara
 
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話webアプリケーションフレームワークの話
webアプリケーションフレームワークの話Yoshihiro Ura
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoKyosuke Inoue
 
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社Game Tools & Middleware Forum
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるTakeshi Morikawa
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in TokyoKyosuke Inoue
 
DevOps and Compliance and Security
DevOps and Compliance and SecurityDevOps and Compliance and Security
DevOps and Compliance and SecurityKazushi Kamegawa
 
AWSを用いた番組連動Webコンテンツ処理基盤の構築
AWSを用いた番組連動Webコンテンツ処理基盤の構築AWSを用いた番組連動Webコンテンツ処理基盤の構築
AWSを用いた番組連動Webコンテンツ処理基盤の構築Eiji KOMINAMI
 
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜Kensaku Komatsu
 
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へAWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へAmazon Web Services Japan
 
Hands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App InventorHands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App InventorHong Chen
 
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web  ~ Progressive Web Apps の実装と応用 ~進化する Web  ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~Microsoft Azure Japan
 
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化cloudconductor
 

Similar to ぱふぉしぇ -リアルタイム写真共有サービス- (20)

プログラミング生放送@プログラミング生放送勉強会 第20回@品川
プログラミング生放送@プログラミング生放送勉強会 第20回@品川プログラミング生放送@プログラミング生放送勉強会 第20回@品川
プログラミング生放送@プログラミング生放送勉強会 第20回@品川
 
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
 
App Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデートApp Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデート
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?
 
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオンAWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
 
Druidとflinkを使った動画広告のリアムタイム集計基盤
Druidとflinkを使った動画広告のリアムタイム集計基盤Druidとflinkを使った動画広告のリアムタイム集計基盤
Druidとflinkを使った動画広告のリアムタイム集計基盤
 
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
 
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
 
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
 
DevOps and Compliance and Security
DevOps and Compliance and SecurityDevOps and Compliance and Security
DevOps and Compliance and Security
 
AWSを用いた番組連動Webコンテンツ処理基盤の構築
AWSを用いた番組連動Webコンテンツ処理基盤の構築AWSを用いた番組連動Webコンテンツ処理基盤の構築
AWSを用いた番組連動Webコンテンツ処理基盤の構築
 
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
 
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へAWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
 
Hands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App InventorHands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App Inventor
 
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web  ~ Progressive Web Apps の実装と応用 ~進化する Web  ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~
 
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
 

ぱふぉしぇ -リアルタイム写真共有サービス-