Enviar pesquisa
Carregar
PHPデプロイツールの世界
•
32 gostaram
•
32,229 visualizações
Yuuki Takezawa
Seguir
PHPデプロイツールがどういう動作でタスクを処理するのか、 それぞれのデプロイツールがどんな並列処理を行うかにフォーカスを当てたスライドです。
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 42
Baixar agora
Baixar para ler offline
Recomendados
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
CODE BLUE
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
Kazuhito Miura
DeepLearning 輪読会 第1章 はじめに
DeepLearning 輪読会 第1章 はじめに
Deep Learning JP
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Shingo Kitayama
Recomendados
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
CODE BLUE
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
Kazuhito Miura
DeepLearning 輪読会 第1章 はじめに
DeepLearning 輪読会 第1章 はじめに
Deep Learning JP
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Shingo Kitayama
基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统
Dong Lin
PDOでデータベース接続と SQLインジェクション対策
PDOでデータベース接続と SQLインジェクション対策
iPride Co., Ltd.
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
SEGADevTech
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
Masahiro Nagano
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
SEGADevTech
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
Shiqiao Du
入門!Jenkins
入門!Jenkins
Shuntaro Saiba
Java仮想マシンの実装技術
Java仮想マシンの実装技術
Kiyokuni Kawachiya
イベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
マルチコアを用いた画像処理
マルチコアを用いた画像処理
Norishige Fukushima
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
Daisuke Ikeda
MapReduce入門
MapReduce入門
Satoshi Noto
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
Re: WebServer BenchMarking
Re: WebServer BenchMarking
Ryo Tomidokoro
HTML5最新動向
HTML5最新動向
Shumpei Shiraishi
Mais conteúdo relacionado
Mais procurados
基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统
Dong Lin
PDOでデータベース接続と SQLインジェクション対策
PDOでデータベース接続と SQLインジェクション対策
iPride Co., Ltd.
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
SEGADevTech
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
Masahiro Nagano
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
SEGADevTech
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
Shiqiao Du
入門!Jenkins
入門!Jenkins
Shuntaro Saiba
Java仮想マシンの実装技術
Java仮想マシンの実装技術
Kiyokuni Kawachiya
イベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
マルチコアを用いた画像処理
マルチコアを用いた画像処理
Norishige Fukushima
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
Daisuke Ikeda
MapReduce入門
MapReduce入門
Satoshi Noto
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
Mais procurados
(20)
基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统
PDOでデータベース接続と SQLインジェクション対策
PDOでデータベース接続と SQLインジェクション対策
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
入門!Jenkins
入門!Jenkins
Java仮想マシンの実装技術
Java仮想マシンの実装技術
イベント・ソーシングを知る
イベント・ソーシングを知る
マルチコアを用いた画像処理
マルチコアを用いた画像処理
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
MapReduce入門
MapReduce入門
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
Semelhante a PHPデプロイツールの世界
Re: WebServer BenchMarking
Re: WebServer BenchMarking
Ryo Tomidokoro
HTML5最新動向
HTML5最新動向
Shumpei Shiraishi
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
オフラインファーストの思想と実践
オフラインファーストの思想と実践
Shumpei Shiraishi
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
日本ヒューレット・パッカード株式会社
たのしいNode.js
たのしいNode.js
ishiki-takai
PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作った
Hironobu Saitoh
誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築
Hiroshi Yamato
SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理
ina job
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法
Rui Hirokawa
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
Ryuji Yamashita
20080524
20080524
小野 修司
HTML5&API総まくり
HTML5&API総まくり
Shumpei Shiraishi
behatエクステンションの作り方
behatエクステンションの作り方
Ryo Tomidokoro
PHP 5.4のビルトインウェブサーバー
PHP 5.4のビルトインウェブサーバー
Atsushi Matsuo
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
Kazuki Takai
5分でわかる静的解析入門
5分でわかる静的解析入門
Kenta USAMI
ComSys 2012 Yabusame Talk
ComSys 2012 Yabusame Talk
Takahiro Hirofuchi
Semelhante a PHPデプロイツールの世界
(20)
Re: WebServer BenchMarking
Re: WebServer BenchMarking
HTML5最新動向
HTML5最新動向
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
オフラインファーストの思想と実践
オフラインファーストの思想と実践
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
たのしいNode.js
たのしいNode.js
PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作った
誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築
SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
20080524
20080524
HTML5&API総まくり
HTML5&API総まくり
behatエクステンションの作り方
behatエクステンションの作り方
PHP 5.4のビルトインウェブサーバー
PHP 5.4のビルトインウェブサーバー
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
5分でわかる静的解析入門
5分でわかる静的解析入門
ComSys 2012 Yabusame Talk
ComSys 2012 Yabusame Talk
Mais de Yuuki Takezawa
zend-expressiveを触ってみよう
zend-expressiveを触ってみよう
Yuuki Takezawa
LaravelとMVCの先へ
LaravelとMVCの先へ
Yuuki Takezawa
phpspecで始めるBDD
phpspecで始めるBDD
Yuuki Takezawa
Laravel5.1 Release
Laravel5.1 Release
Yuuki Takezawa
Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩
Yuuki Takezawa
php開発で使うタスクランナー gulp
php開発で使うタスクランナー gulp
Yuuki Takezawa
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014
Yuuki Takezawa
PHP&NewSQLで考える次世代アプリケーション
PHP&NewSQLで考える次世代アプリケーション
Yuuki Takezawa
Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )
Yuuki Takezawa
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Yuuki Takezawa
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を触ってみよう
LaravelとMVCの先へ
LaravelとMVCの先へ
phpspecで始めるBDD
phpspecで始めるBDD
Laravel5.1 Release
Laravel5.1 Release
Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩
php開発で使うタスクランナー gulp
php開発で使うタスクランナー gulp
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP&NewSQLで考える次世代アプリケーション
PHP&NewSQLで考える次世代アプリケーション
Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
PHPデプロイツールの世界
1.
PHPデプロイツールの世界 2015/10/03 PHPカンファンレンス2015 yuuki takezawa
/ istyle inc
2.
Deploy?
3.
• ソースコードを本番環境などに設置 • ディレクトリなどに実行権限を与える •
キャッシュの削除 • 業務ルールに則った手順など デプロイ作業
4.
• FTPによる手動アップロード • リモートサーバ内のファイルを手動で削除 •
rsyncなどによるアップロード デプロイ方法
5.
PEAR -> Composer
6.
ライブラリなどは プロジェクト毎の管理へ変化
7.
進化するフロントエンド Grunt, Gulp
8.
etc…
9.
様々な手順が自動化
10.
• Composer、npm、bowerなどによる 依存ライブラリ管理 • フロントエンドタスクツール •
継続的インテグレーションによる自動テスト • 自動化によるヒューマンエラー防止 変わったもの
11.
デプロイも自動化
12.
Develop Testing Push Testing PHPUnit phpspec Behat Codeception Deploy Server staging production etc auto
13.
• ライブラリのインストール • フロントエンドタスク実行 •
複数のリモートサーバへ接続 • ローカルタスクの実行(rsyncなど) デプロイツール
14.
Capistrano (Ruby) Fabric (Python)
15.
PHPに統一したい 難しい etc…
16.
PHP Deploy Tool
17.
• Capistranoのようなデプロイツール Magallanes、Altax、Rocketeer、Deployer • リモートサーバタスクツール Robo、Envoy PHP
Deploy Tool / Task Tool
18.
• 良質なコンポーネント Symfony Component、 The
League of Extraordinary Packages etc… • 自由に組み合わせてツール、ライブラリ開発 • PHP-FIG Background
19.
これらを元に作られる デプロイツールの世界
20.
• コマンドを実行して構築される世界 • 対話型 •
処理の並列化 • 非同期処理 コンソールアプリケーション
21.
3つのツール • Envoy (http://laravel.com/docs/5.1/envoy) •
Deployer (http://deployer.org/) • Rocketeer (http://rocketeer.autopergamene.eu/)
22.
Envoy • リモートサーバタスクツール • リモートサーバで実行するコマンドを記述 •
Laravelのマニュアルに記述されていますが、 親和性はありません • デフォルトで利用できるタスクは用意されていないため、 利用するタスクを記述します • 並列実行をサポート
23.
Deployer • リモートサーバタスクツール • リモートサーバで実行するコマンドを記述 •
PHPの主なフレームワークに対応したタスクが あらかじめ用意されています • PHPに親しんでいる方であれば簡単に利用できます • 足りないタスクは自由に追加できます
24.
Rocketeer • Capistranoスタイルで高機能 • デプロイタスクが用意されています •
composerやnpmコマンドなどデフォルトで対応 • Laravelのパッケージとしても利用されるため サービスロケータを多用しているため、少し複雑 • Capistranoのようにある程度学習する必要が有ります
25.
Task実行までのアプローチ
26.
• タスクを記述したファイルを コンパイル(通常のPHPコードへ変換) • タスク毎にリモートサーバへ •
symfony/processによる接続 • コマンドを実行 Envoyのアプローチ
27.
Console boot Envoy.blade.php Compile Envoy.php (array) connect Task
28.
• タスクを記述したファイルを読み込む • タスク毎にリモートサーバへ接続 •
phpseclib/phpseclibによる接続 • コールバックでコマンドを実行 Deployerのアプローチ
29.
Console boot deploy.php(default) collection connect Task
30.
• サービスをコンテナへ登録し、 タスクを記述したファイルを読み込む • サービスロケータを介して、 タスク毎にリモートサーバへ接続 •
phpseclib/phpseclibによる接続 • コマンドを実行 • 複雑 Rocketeerのアプローチ
31.
Console boot Service Register connect Task
Queue Tasks Configure Task
32.
Parallel / 並列のアプローチ
33.
• symfony/processによるproc_open • それぞれのプロセスがタスク実行 •
それ以外は通常の実行と全く同じ • シンプルな並列処理 Envoyの並列アプローチ
34.
Command process connect Task process connect Task
35.
• ReactPHPを利用した非同期 • proc_openを利用し、 各プロセスがタスクを実行 •
socketsエクステンションが必須 • elfet/pure(PHP製Key Value Storage) Deployerの並列アプローチ
36.
Command process connect Task process connect Task ReactPHP Task
37.
• pcntl_forkによるプロセスのフォーク • 各プロセスがタスクを実行 •
pcntlエクステンションが必須 Rocketeerの並列アプローチ
38.
Taskのアプローチ
39.
• 記述したタスクのみを実行 • タスクの前後に処理を行うなどの 仕組みはない •
ローカルタスクはタスクごとに記述 Envoyのタスク
40.
• タスク前後の処理は簡単に記述 • Rocketeerはローカルタスクはタスクごとに •
Deployerはローカルタスクをリモートタスク 内で実行可能 Deployer,Rocketeerのタスク
41.
同じコンポーネントを 利用しながらも、 アプローチはそれぞれ 異なります
42.
• プロジェクトや運用ルールに合致するものを利 用する • 並列で利用する場合は、依存ライブラリや、 エクステンションを調べる •
独自タスクの追加方法や、メンテナンスなど • オリジナルのデプロイツールを開発しても良い ツールを知ること
Baixar agora