SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
PHPデプロイツールの世界
2015/10/03 PHPカンファンレンス2015
yuuki takezawa / istyle inc
Deploy?
• ソースコードを本番環境などに設置
• ディレクトリなどに実行権限を与える
• キャッシュの削除
• 業務ルールに則った手順など
デプロイ作業
• FTPによる手動アップロード
• リモートサーバ内のファイルを手動で削除
• rsyncなどによるアップロード
デプロイ方法
PEAR -> Composer
ライブラリなどは
プロジェクト毎の管理へ変化
進化するフロントエンド
Grunt, Gulp
etc…
様々な手順が自動化
• Composer、npm、bowerなどによる

依存ライブラリ管理
• フロントエンドタスクツール
• 継続的インテグレーションによる自動テスト
• 自動化によるヒューマンエラー防止
変わったもの
デプロイも自動化
Develop
Testing
Push
Testing
PHPUnit
phpspec
Behat
Codeception
Deploy Server
staging
production
etc
auto
• ライブラリのインストール
• フロントエンドタスク実行
• 複数のリモートサーバへ接続
• ローカルタスクの実行(rsyncなど)
デプロイツール
Capistrano (Ruby)
Fabric (Python)
PHPに統一したい
難しい
etc…
PHP Deploy Tool
• Capistranoのようなデプロイツール

Magallanes、Altax、Rocketeer、Deployer
• リモートサーバタスクツール

Robo、Envoy
PHP Deploy Tool / Task Tool
• 良質なコンポーネント

Symfony Component、

The League of Extraordinary Packages etc…
• 自由に組み合わせてツール、ライブラリ開発
• PHP-FIG
Background
これらを元に作られる
デプロイツールの世界
• コマンドを実行して構築される世界
• 対話型
• 処理の並列化
• 非同期処理
コンソールアプリケーション
3つのツール
• Envoy 

(http://laravel.com/docs/5.1/envoy)
• Deployer 

(http://deployer.org/)
• Rocketeer 

(http://rocketeer.autopergamene.eu/)
Envoy
• リモートサーバタスクツール
• リモートサーバで実行するコマンドを記述
• Laravelのマニュアルに記述されていますが、

親和性はありません
• デフォルトで利用できるタスクは用意されていないため、

利用するタスクを記述します
• 並列実行をサポート
Deployer
• リモートサーバタスクツール
• リモートサーバで実行するコマンドを記述
• PHPの主なフレームワークに対応したタスクが

あらかじめ用意されています
• PHPに親しんでいる方であれば簡単に利用できます
• 足りないタスクは自由に追加できます
Rocketeer
• Capistranoスタイルで高機能
• デプロイタスクが用意されています
• composerやnpmコマンドなどデフォルトで対応
• Laravelのパッケージとしても利用されるため

サービスロケータを多用しているため、少し複雑
• Capistranoのようにある程度学習する必要が有ります
Task実行までのアプローチ
• タスクを記述したファイルを

コンパイル(通常のPHPコードへ変換)
• タスク毎にリモートサーバへ
• symfony/processによる接続
• コマンドを実行
Envoyのアプローチ
Console boot
Envoy.blade.php
Compile
Envoy.php (array)
connect
Task
• タスクを記述したファイルを読み込む
• タスク毎にリモートサーバへ接続
• phpseclib/phpseclibによる接続
• コールバックでコマンドを実行
Deployerのアプローチ
Console boot
deploy.php(default)
collection
connect
Task
• サービスをコンテナへ登録し、

タスクを記述したファイルを読み込む
• サービスロケータを介して、

タスク毎にリモートサーバへ接続
• phpseclib/phpseclibによる接続
• コマンドを実行
• 複雑
Rocketeerのアプローチ
Console boot
Service Register
connect
Task Queue
Tasks
Configure
Task
Parallel / 並列のアプローチ
• symfony/processによるproc_open
• それぞれのプロセスがタスク実行
• それ以外は通常の実行と全く同じ
• シンプルな並列処理
Envoyの並列アプローチ
Command
process
connect
Task
process
connect
Task
• ReactPHPを利用した非同期
• proc_openを利用し、

各プロセスがタスクを実行
• socketsエクステンションが必須
• elfet/pure(PHP製Key Value Storage)
Deployerの並列アプローチ
Command
process
connect
Task
process
connect
Task
ReactPHP
Task
• pcntl_forkによるプロセスのフォーク
• 各プロセスがタスクを実行
• pcntlエクステンションが必須
Rocketeerの並列アプローチ
Taskのアプローチ
• 記述したタスクのみを実行
• タスクの前後に処理を行うなどの

仕組みはない
• ローカルタスクはタスクごとに記述
Envoyのタスク
• タスク前後の処理は簡単に記述
• Rocketeerはローカルタスクはタスクごとに
• Deployerはローカルタスクをリモートタスク
内で実行可能
Deployer,Rocketeerのタスク
同じコンポーネントを
利用しながらも、
アプローチはそれぞれ

異なります
• プロジェクトや運用ルールに合致するものを利
用する
• 並列で利用する場合は、依存ライブラリや、

エクステンションを調べる
• 独自タスクの追加方法や、メンテナンスなど
• オリジナルのデプロイツールを開発しても良い
ツールを知ること

Mais conteúdo relacionado

Mais procurados

基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统Dong Lin
 
PDOでデータベース接続と SQLインジェクション対策
PDOでデータベース接続と SQLインジェクション対策PDOでデータベース接続と SQLインジェクション対策
PDOでデータベース接続と SQLインジェクション対策iPride Co., Ltd.
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Tokuhiro Matsuno
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCdisc99_
 
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかなぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかYoichi Toyota
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステムSEGADevTech
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版Masahiro Nagano
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~SEGADevTech
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?Teppei Sato
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門Shiqiao Du
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術Kiyokuni Kawachiya
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知るShuhei Fujita
 
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理Norishige Fukushima
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースHajime Yanagawa
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話Daisuke Ikeda
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング佑哉 廣岡
 

Mais procurados (20)

基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统
 
PDOでデータベース接続と SQLインジェクション対策
PDOでデータベース接続と SQLインジェクション対策PDOでデータベース接続と SQLインジェクション対策
PDOでデータベース接続と SQLインジェクション対策
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
 
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかなぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
 
入門!Jenkins
入門!Jenkins入門!Jenkins
入門!Jenkins
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
 
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
 
MapReduce入門
MapReduce入門MapReduce入門
MapReduce入門
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
 

Semelhante a PHPデプロイツールの世界

Re: WebServer BenchMarking
Re: WebServer BenchMarkingRe: WebServer BenchMarking
Re: WebServer BenchMarkingRyo Tomidokoro
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplibShinya Okano
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践Shumpei Shiraishi
 
たのしいNode.js
たのしいNode.jsたのしいNode.js
たのしいNode.jsishiki-takai
 
PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作ったPHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作ったHironobu Saitoh
 
誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築Hiroshi Yamato
 
SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理ina job
 
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法Rui Hirokawa
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12Ryuji Yamashita
 
behatエクステンションの作り方
behatエクステンションの作り方behatエクステンションの作り方
behatエクステンションの作り方Ryo Tomidokoro
 
PHP 5.4のビルトインウェブサーバー
PHP 5.4のビルトインウェブサーバーPHP 5.4のビルトインウェブサーバー
PHP 5.4のビルトインウェブサーバーAtsushi Matsuo
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングKazuki Takai
 
5分でわかる静的解析入門
5分でわかる静的解析入門5分でわかる静的解析入門
5分でわかる静的解析入門Kenta USAMI
 

Semelhante a PHPデプロイツールの世界 (20)

Re: WebServer BenchMarking
Re: WebServer BenchMarkingRe: WebServer BenchMarking
Re: WebServer BenchMarking
 
HTML5最新動向
HTML5最新動向HTML5最新動向
HTML5最新動向
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践
 
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
 
たのしいNode.js
たのしいNode.jsたのしいNode.js
たのしいNode.js
 
PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作ったPHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作った
 
誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築
 
SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理
 
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
 
20080524
2008052420080524
20080524
 
HTML5&API総まくり
HTML5&API総まくりHTML5&API総まくり
HTML5&API総まくり
 
behatエクステンションの作り方
behatエクステンションの作り方behatエクステンションの作り方
behatエクステンションの作り方
 
PHP 5.4のビルトインウェブサーバー
PHP 5.4のビルトインウェブサーバーPHP 5.4のビルトインウェブサーバー
PHP 5.4のビルトインウェブサーバー
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
 
5分でわかる静的解析入門
5分でわかる静的解析入門5分でわかる静的解析入門
5分でわかる静的解析入門
 
ComSys 2012 Yabusame Talk
ComSys 2012 Yabusame TalkComSys 2012 Yabusame Talk
ComSys 2012 Yabusame Talk
 

Mais de Yuuki Takezawa

zend-expressiveを触ってみよう
zend-expressiveを触ってみようzend-expressiveを触ってみよう
zend-expressiveを触ってみようYuuki Takezawa
 
LaravelとMVCの先へ
LaravelとMVCの先へLaravelとMVCの先へ
LaravelとMVCの先へYuuki Takezawa
 
phpspecで始めるBDD
phpspecで始めるBDDphpspecで始めるBDD
phpspecで始めるBDDYuuki Takezawa
 
Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩Yuuki Takezawa
 
php開発で使うタスクランナー gulp
php開発で使うタスクランナー gulpphp開発で使うタスクランナー gulp
php開発で使うタスクランナー gulpYuuki Takezawa
 
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014Yuuki Takezawa
 
PHP&NewSQLで考える次世代アプリケーション
PHP&NewSQLで考える次世代アプリケーションPHP&NewSQLで考える次世代アプリケーション
PHP&NewSQLで考える次世代アプリケーションYuuki Takezawa
 
Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )Yuuki Takezawa
 
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014Yuuki Takezawa
 
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]Yuuki Takezawa
 

Mais de Yuuki Takezawa (11)

zend-expressiveを触ってみよう
zend-expressiveを触ってみようzend-expressiveを触ってみよう
zend-expressiveを触ってみよう
 
LaravelとMVCの先へ
LaravelとMVCの先へLaravelとMVCの先へ
LaravelとMVCの先へ
 
phpspecで始めるBDD
phpspecで始めるBDDphpspecで始めるBDD
phpspecで始めるBDD
 
Laravel5.1 Release
Laravel5.1 ReleaseLaravel5.1 Release
Laravel5.1 Release
 
Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩
 
php開発で使うタスクランナー gulp
php開発で使うタスクランナー gulpphp開発で使うタスクランナー gulp
php開発で使うタスクランナー gulp
 
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014
 
PHP&NewSQLで考える次世代アプリケーション
PHP&NewSQLで考える次世代アプリケーションPHP&NewSQLで考える次世代アプリケーション
PHP&NewSQLで考える次世代アプリケーション
 
Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )
 
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014
 
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
 

PHPデプロイツールの世界