Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
WordPress サイト制作における
デプロイメントを考える
Toru Miki (@waviaei)
WordCamp Kansai 2014
∼Git とデプロイメントサービスの活用∼
7 June 2014
Contributed to:

- WordPress Core (inline doc)

- WordPress Japanese package

- WordCamps as a staff / leading organizer

-...
スピーカー | WordCamp Kansai 2014

http://2014.kansai.wordcamp.org/speakers/#wcorg-speaker-miki
What is
Deploy / Deployment?
定義
デプロイとは、主にネットワークを通じて提供されるWeb
アプリケーションなどのシステム開発工程において、システ
ムを利用可能な状態にすることである。
!
デプロイはソフトウェアのリリースやインストールも含んだ
意味の広い言葉であり、開発環境から...
「ウェブサイトをサーバーへアップロードする」
Work With Us — Automattic

http://automattic.com/work-with-us/
Deploy という言葉は元々「配置する」「展開する」

といった意味の英語
U.S. Deploys Troops in Search for Kidnapped Nigerian Girls | TIME

http://time.com/108025/nigeria-chad-boko-haram-american...
Today s Agenda
今日は主に Code Deployment の
話をします。
Code、つまり
テーマやプラグイン、コアなどの
ファイルのデプロイメントです。
これらのファイルは
!
!
で管理できますよね?
今日紹介するのは
!
!
でファイル、つまりコードを管理している
ことが前提のツールやサービスです。
Git でコードを管理している
状況を活かしつつ、
デプロイツールやサービスを活用し、
よりストレスフリーな
デプロイメントに挑戦してみましょう。
Where should I
git init ?
WordPress サイトのどの部分を
Git の管理下におくか?
特定のテーマのみ
cd wp-content/themes/my-theme
git init
特定のプラグインのみ
cd wp-content/plugins/my-plugin
git init
サイト全体
cd path/to/wordpress
git init
!
touch .gitignore
gitignore/WordPress.gitignore

https://github.com/github/gitignore/blob/master/WordPress.gitignore
WordPress のデフォルトのファイル構造
のまま git init すると
こうなりますよね?
サイト全体
しかし、 Git で WordPress サイト
全体を管理するのであれば、
次のようなファイル構造のノウハウも
シェアされています。
サイト全体
WordPress Git サブモジュール
wp-content content
wp-config.php 開発用・本
番用などに分ける
WordPress local dev tips: DB & plugins | Mark on WordPress

http://markjaquith.wordpress.com/2011/06/24/wordpress-local-de...
WP-Skelton

https://github.com/markjaquith/WordPress-Skeleton
Code Deployment
コードのデプロイメントに
特化・対応しているツールやサービスは、
無料・有料を問わず、
既にいろいろあります。
でも、
ソフトウェア業界で用いられている
ツールがほとんど。
設定が難しい。
多機能。
使いこなすのが難しい。
WordPress サイトにはオーバースペック!
でも世界は広い!
シンプルなツールやサービスもありました。
シンプルなものから多機能なものまで
主なツールやサービスを
整理してみました。
Fabric
CI Services

(Jenkins、

Travis CI、など)
CapistranoMina
Dandelion
Strano
Webistrano
Web Service
Tool
シンプル 多機能
Dandelion
機能を限定した
シンプル&お手軽な
Git 連携型のデプロイツールです。
CI Services

(Jenkins、

Travis CI、など)
Fabric
CapistranoMina
Strano
Webistrano
Dandelion
Tool
多機能シンプル
Web Service
Dandelion

http://scttnlsn.github.io/dandelion/
手動デプロイ
Dandelion
Local
Repository
add
commit
Staging Server

(TEST)
Production Server

(LIVE)手動デプロイ
ローカルリポジトリの
HEADをデプロイする
ローカル環境にインストール
Dandelion
gem install dandelion
gem install net-sftp
設定ファイルはYAML
cd path/to/wordpress
git init
touch dandeli...
Dandelion
adapter: ftp
host: example.com
username: user
password: pass
path: path/to/deployment
passive: true
!
exclude:
-...
コマンドは2つ。オプションは4つ。
Dandelion
dandelion status
dandelion deploy
!
dandelion --repo=[REPO]
--config=[CONFIG]
--v
--h
Dandelion
dandelion status
dandelion deploy
Dandelion
ロールバック機能は無いが、
deploy で任意のリビジョン指定が可能。
ステージングへのデプロイ用 config
本番へのデプロイ用 config
Dandelion
1つの YAML ファイル

= 

1つのデプロイ先の設定
dandelion deploy
dandelion --config=live.yml ...
Deploy
&
Dploy
デプロイに特化したウェブサービスを
2つ紹介します。
Fabric
CapistranoMina
Strano
Webistrano
CI Services

(Jenkins、

Travis CI、など)
Dandelion
Tool
多機能シンプル
Web Service
Deploy

https://www.deployhq.com/
dploy

http://dploy.io/
push
dploy / Deploy
Local
Repository
Staging Server

(TEST)
Production Server

(LIVE)
手動・自動デプロイRemote

Repository
手動・自動デプロ...
push
Local
Repository
add
commit
Staging Server

(TEST)
Production Server

(LIVE)
手動・自動デプロイRemote

Repository
手動・自動デプロイ
(h...
push
Local
Repository
add
commit
Staging Server

(TEST)
Production Server

(LIVE)
手動・自動デプロイRemote

Repository
手動・自動デプロイ St...
(http://dploy.io)
(http://dploy.io)
(http://dploy.io)
(http://dploy.io)
Deploy と Dploy の2つを紹介しましたが、
同様のサービスは
他にもいろいろあります。
FTPLOY

http://ftploy.com/
deploydo

https://www.deploy.do/
wercker

http://wercker.com/
Bamboo

https://www.atlassian.com/software/bamboo/
など…
全て似たようなサービスですが、
仕様が若干違います。
Beanstalk
&
Codebase
プライベート Git リポジトリ
に
デプロイ機能
が付いてくるウェブサービス。
Fabric
CapistranoMina
Strano
Webistrano
CI Services

(Jenkins、

Travis CI、など)
Dandelion
Tool
多機能シンプル
Web Service
Beanstalk

http://beanstalkapp.com/+
Developing and Deploying WordPress  •  Beanstalk Guide

http://guides.beanstalkapp.com/deployments/deploying-wordpress.html
Codebase

http://codebasehq.com/
他にも
Springloops

http://www.springloops.io/
Assembla

https://www.assembla.com/
など…
Code Deployment
Patterns
紹介したツールやサービスを、
想定できるケースに
当てはめてみます。
個人ブログ、テーマのみ
Local
Repository
Production Server

(LIVE)
Dandelion を使って、

自作テーマやプラグインを

手動デプロイ。
Dandelion
$ cd /my-theme
$ g...
個人プロジェクト
Local
Repository
Production Server

(LIVE)
Dandelion
Remote

Repository
Staging Server

(TEST)
- SFTP

- 手動デプロイ
-...
Local
Repository
Staging Server

(TEST)
Production Server

(LIVE)
Remote

Repository
- SFTP

- 自動デプロイ
- FTP

- 手動デプロイ
会社で契...
Staging Server

(TEST)
Production Server

(LIVE)
- staging 用ブランチ

- 手動・自動デプロイ
- production 用ブランチ

- 手動・自動デプロイ
ブランチを作って開発
R...
…という感じで、
想定されるいろいろな使い方に
適用させることが可能です。
Dandelion は無料のツール。
デプロイサービスの多くはフリーミアム。
Notes*
Git の管理下・管理外におくファイル
デプロイする・しないファイル
Git で管理する Git で管理しない
(.gitignore)
デプロイする (その他のコアファイル)
wp-config.php ?
test-config.php ?
デプロイしない
local-config.php ?
wp-config.p...
ファイルのパーミッションと所有者
ファイルのパーミッションと所有者
wp-config.php の
パーミッションとか
chown apache
chown nginx
日本のレンタルサーバーは、
日本国外IPアドレスからのアクセスを
制限していることがある。
国外IPアドレスフィルタ|さくらのレンタルサーバ"
http://support.sakura.ad.jp/manual/rs/others/ipfilter.html
例:さくらのレンタルサーバ
セキュリティ・ポリシー
セキュリティ・ポリシー
クライアントのコードをサードパー
ティーのウェブサービスにアップして問題
ないか?
クライアントのサーバー情報を

サードパーティのウェブサービスに設定して問題
ないか?
情報セキュリティマネジメントシステム
ISO 2...
Contents
Deployment
「これっ!」
と言った決め手がありません。
Scripts
Scripts
URLを適切に置換してくれるスクリプト等と

組み合わせる。
mysqldump -u user -ppass wp_db > db.sql
!
scp
rsync
WordPress のDB上のサイトURLを一気に変換

http://dogmap.jp/2012/09/20/wordpress-replace-siteurl/
https://gist.github.com/wokamoto/36279...
WordPress Serialized PHP Search Replace Tool

https://interconnectit.com/products/search-and-replace-for-wordpress-databas...
WP-CLI
WP-CLI

http://wp-cli.org/commands/db/
http://wp-cli.org/commands/search-replace/
wp db export
wp db import
!
wp search-re...
Plugins
Contents deployment
プラグインはあまり無い。
+ 結構いいお値段…
WP Migrate DB

http://wordpress.org/plugins/wp-migrate-db/
WP Migrate DB Pro

https://deliciousbrains.com/wp-migrate-db-pro/
WP Migrate DB Pro

https://deliciousbrains.com/wp-migrate-db-pro/pricing/
https://deliciousbrains.com/wp-migrate-db-pro/vi...
Ramp

http://crowdfavorite.com/ramp/
機能を「同期」ではなく、
サーバーからサーバーへの
「引っ越し」に絞ると、
便利なプラグインが幾つかあります。
WordPress Duplicator

http://wordpress.org/plugins/duplicator/
公開時は引っ越しプラグインを用いて
Code と Contents をデプロイ。
!
公開後は必要時にのみ、
Contents を同期する。
(簡単なバグ修正であれば同期せずに行う。)
More Advanced
Deployment Tools
Capistrano
Ruby
Mina
PHP
Fabric
Python
WordPress 界隈で
よく目にする
この中では比較的シンプル…
Capistrano ほど多機能では…
An Introduction To Deploying WordPress with Mina - Tuts

http://code.tutsplus.com/articles/an-introduction-to-deploying-wo...
https://twitter.com/tekapo/status/465656275418619905
http://wp.tekapo.com/2014/03/01/help-me-out-to-translate-fabric-docs/
Towards a Full Stack
WordPress
Development Tool
最後に、Git を前提としたファイル構造の
デプロイメントの話から
さらに大きい枠の話をします。
Git based WordPress setup
WP-Skelton
Git + WordPress
WP-Stack

https://github.com/markjaquith/WP-Stack
Git based WordPress setup
WP-Skelton
Git + WordPress
Toolkit for WordPress Deployment
WP-Stack
+ Code Deployment
wp-deploy

https://github.com/Mixd/wp-deploy
Git based WordPress setup
WP-Skelton
Git + WordPress
Toolkit for WordPress Deployment
WP-Stack
+ Code Deployment
Framework...
Genesis Skelton

https://github.com/genesis/wordpress
Bedrock

http://roots.io/wordpress-stack/
Git based WordPress setup
WP-Skelton
Git + WordPress
Toolkit for WordPress Deployment
WP-Stack
+ Code Deployment
Framework...
PHPUnit Test
Staging Server

(TEST)
Production Server

(LIVE)
Remote

Repository
PHPUnit Testing & Automation
Local
Reposi...
+ Continuous Integration (CI)

Services
Jenkins
Travis CI
PHPUnit Test
Staging Server

(TEST)
Production Server

(LIVE)
Re...
BuddyPress + Grunt + Travis CI
BuddyPress Development Trunk to Adopt a Grunt-Powered Build System

http://wptavern.com/bud...
ちなみに、
Git 管理を活かしたデプロイメント
ではありませんが、
こういうのもあります…
Managed
WordPress 

Hosting
いま海外で勢いがある
WordPress 専用ホスティングサーバー。
!
無料でステージング環境を提供し、
アピールポイントにしている
サーバーもあります。
Media Temple WordPress Hosting

http://mediatemple.net/webhosting/wordpress/
プロダクションサーバーへは1クリックで
ファイルとDBをデプロイ。済んだら削除。
Media Temple WordPress Managed Hosting Reviewed : WP Mayor

http://www.wpmayor.co...
他にも…
WP Engine

http://wpengine.com/
Flywheel

http://getflywheel.com/
ホスティングサーバーに
デプロイメント機能もお任せする
…
プロジェクトによっては、
最良の選択肢かもしれません。
Message
何はともあれ
Ⅰ.
よりストレスフリーなデプロイメントを目指して、
デプロイメントのツールやサービスを使ってみよう。
(車輪の再発明はしない)
Ⅱ.
Ⅲ.
Full Stack 方向を意識しつつ、
情報のアンテナを張り、
手を動かしてみる。
Ⅲ.
Full Stack 方向を意識しつつ、
情報のアンテナを張り、
手を動かしてみる。
使わなくても、難しくても、
手を動かしておくことで、
理解が深まる、
頭の片隅に記憶しておける!
Thank you!
http://waviaei.com!
@waviaei!
waviaei@gmail.com!
http://b.hatena.ne.jp/waviaei/wordpress/
That’s All…
Photo by Takeshi Kouno
https://www.flickr.com/photos/kounotakeshi/13460591725/
https://www.flickr.com/photos/dvids/609369216...
Upcoming SlideShare
Loading in …5
×

of

WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 1 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 2 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 3 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 4 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 5 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 6 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 7 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 8 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 9 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 10 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 11 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 12 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 13 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 14 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 15 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 16 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 17 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 18 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 19 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 20 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 21 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 22 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 23 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 24 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 25 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 26 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 27 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 28 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 29 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 30 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 31 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 32 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 33 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 34 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 35 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 36 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 37 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 38 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 39 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 40 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 41 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 42 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 43 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 44 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 45 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 46 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 47 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 48 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 49 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 50 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 51 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 52 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 53 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 54 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 55 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 56 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 57 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 58 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 59 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 60 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 61 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 62 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 63 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 64 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 65 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 66 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 67 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 68 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 69 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 70 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 71 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 72 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 73 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 74 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 75 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 76 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 77 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 78 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 79 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 80 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 81 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 82 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 83 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 84 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 85 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 86 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 87 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 88 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 89 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 90 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 91 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 92 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 93 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 94 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 95 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 96 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 97 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 98 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 99 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 100 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 101 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 102 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 103 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 104 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 105 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 106 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 107 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 108 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 109 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 110 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 111 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 112 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 113 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 114 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 115 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 116 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 117 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 118 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 119 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 120 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 121 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 122 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 123 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 124 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 125 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 126 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 127 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 128 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 129 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 130 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 131 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 132 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 133 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 134 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 135 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 136 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 137 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 138 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 139 WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~ Slide 140
Upcoming SlideShare
WordPressサイトのバージョン管理
Next

105 Likes

Share

WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~

WordCamp Kansai 2014 登壇スライド。
コードのGit管理を前提とし、それを活かしたよりストレスフリーなデプロイメントを紹介しました。紹介したのはツール、サービス、そして最近海外では話題になりつつあるフルスタック系のツールキット。

Slide from my presentation at WordCamp Kansai 2014 (7 June 2014), titled "Considering WordPress Site Deployment - utilizing Git and Deployment Services-"

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~

  1. 1. WordPress サイト制作における デプロイメントを考える Toru Miki (@waviaei) WordCamp Kansai 2014 ∼Git とデプロイメントサービスの活用∼ 7 June 2014
  2. 2. Contributed to:
 - WordPress Core (inline doc)
 - WordPress Japanese package
 - WordCamps as a staff / leading organizer
 - Japanese translations plugins and Codex I have shared through:
 - Blog articles
 - Book 『WordPress 逆引きデザイン辞典PLUS』 Webmaster @ テンプル大学ジャパンキャンパス Toru Miki Toru / @waviaei http://profiles.wordpress.org/Toru
  3. 3. スピーカー | WordCamp Kansai 2014
 http://2014.kansai.wordcamp.org/speakers/#wcorg-speaker-miki
  4. 4. What is Deploy / Deployment?
  5. 5. 定義
  6. 6. デプロイとは、主にネットワークを通じて提供されるWeb アプリケーションなどのシステム開発工程において、システ ムを利用可能な状態にすることである。 ! デプロイはソフトウェアのリリースやインストールも含んだ 意味の広い言葉であり、開発環境からステージング環境へシ ステムを反映させることも、ステージング環境から本番環境 へ反映させることも、「デプロイする」と表現できる。 deployとは - IT用語辞典 Weblio辞書
 http://www.weblio.jp/content/deploy
  7. 7. 「ウェブサイトをサーバーへアップロードする」
  8. 8. Work With Us — Automattic
 http://automattic.com/work-with-us/
  9. 9. Deploy という言葉は元々「配置する」「展開する」
 といった意味の英語
  10. 10. U.S. Deploys Troops in Search for Kidnapped Nigerian Girls | TIME
 http://time.com/108025/nigeria-chad-boko-haram-american-troops-obama/
  11. 11. Today s Agenda
  12. 12. 今日は主に Code Deployment の 話をします。
  13. 13. Code、つまり テーマやプラグイン、コアなどの ファイルのデプロイメントです。
  14. 14. これらのファイルは ! ! で管理できますよね?
  15. 15. 今日紹介するのは ! ! でファイル、つまりコードを管理している ことが前提のツールやサービスです。
  16. 16. Git でコードを管理している 状況を活かしつつ、 デプロイツールやサービスを活用し、 よりストレスフリーな デプロイメントに挑戦してみましょう。
  17. 17. Where should I git init ?
  18. 18. WordPress サイトのどの部分を Git の管理下におくか?
  19. 19. 特定のテーマのみ cd wp-content/themes/my-theme git init
  20. 20. 特定のプラグインのみ cd wp-content/plugins/my-plugin git init
  21. 21. サイト全体 cd path/to/wordpress git init ! touch .gitignore
  22. 22. gitignore/WordPress.gitignore
 https://github.com/github/gitignore/blob/master/WordPress.gitignore
  23. 23. WordPress のデフォルトのファイル構造 のまま git init すると こうなりますよね?
  24. 24. サイト全体
  25. 25. しかし、 Git で WordPress サイト 全体を管理するのであれば、 次のようなファイル構造のノウハウも シェアされています。
  26. 26. サイト全体 WordPress Git サブモジュール wp-content content wp-config.php 開発用・本 番用などに分ける
  27. 27. WordPress local dev tips: DB & plugins | Mark on WordPress
 http://markjaquith.wordpress.com/2011/06/24/wordpress-local-dev-tips/
  28. 28. WP-Skelton
 https://github.com/markjaquith/WordPress-Skeleton
  29. 29. Code Deployment
  30. 30. コードのデプロイメントに 特化・対応しているツールやサービスは、 無料・有料を問わず、 既にいろいろあります。
  31. 31. でも、 ソフトウェア業界で用いられている ツールがほとんど。
  32. 32. 設定が難しい。 多機能。 使いこなすのが難しい。 WordPress サイトにはオーバースペック!
  33. 33. でも世界は広い! シンプルなツールやサービスもありました。 シンプルなものから多機能なものまで 主なツールやサービスを 整理してみました。
  34. 34. Fabric CI Services
 (Jenkins、
 Travis CI、など) CapistranoMina Dandelion Strano Webistrano Web Service Tool シンプル 多機能
  35. 35. Dandelion
  36. 36. 機能を限定した シンプル&お手軽な Git 連携型のデプロイツールです。
  37. 37. CI Services
 (Jenkins、
 Travis CI、など) Fabric CapistranoMina Strano Webistrano Dandelion Tool 多機能シンプル Web Service
  38. 38. Dandelion
 http://scttnlsn.github.io/dandelion/
  39. 39. 手動デプロイ Dandelion Local Repository add commit Staging Server
 (TEST) Production Server
 (LIVE)手動デプロイ ローカルリポジトリの HEADをデプロイする
  40. 40. ローカル環境にインストール Dandelion gem install dandelion gem install net-sftp 設定ファイルはYAML cd path/to/wordpress git init touch dandelion.yml
  41. 41. Dandelion adapter: ftp host: example.com username: user password: pass path: path/to/deployment passive: true ! exclude: - .gitignore - dandelion.yml dandelion.yml FTP SFTP Amazon S3 E.g. さくらのスタンダード
 (デフォルトは false) Dandelion
 http://scttnlsn.github.io/dandelion/ その他の設定可能項目には Docs や Issues を参照
  42. 42. コマンドは2つ。オプションは4つ。 Dandelion dandelion status dandelion deploy ! dandelion --repo=[REPO] --config=[CONFIG] --v --h
  43. 43. Dandelion dandelion status dandelion deploy
  44. 44. Dandelion ロールバック機能は無いが、 deploy で任意のリビジョン指定が可能。
  45. 45. ステージングへのデプロイ用 config 本番へのデプロイ用 config Dandelion 1つの YAML ファイル
 = 
 1つのデプロイ先の設定 dandelion deploy dandelion --config=live.yml deploy
  46. 46. Deploy & Dploy
  47. 47. デプロイに特化したウェブサービスを 2つ紹介します。
  48. 48. Fabric CapistranoMina Strano Webistrano CI Services
 (Jenkins、
 Travis CI、など) Dandelion Tool 多機能シンプル Web Service
  49. 49. Deploy
 https://www.deployhq.com/
  50. 50. dploy
 http://dploy.io/
  51. 51. push dploy / Deploy Local Repository Staging Server
 (TEST) Production Server
 (LIVE) 手動・自動デプロイRemote
 Repository 手動・自動デプロイ add commit
  52. 52. push Local Repository add commit Staging Server
 (TEST) Production Server
 (LIVE) 手動・自動デプロイRemote
 Repository 手動・自動デプロイ (http://dploy.io) SVN Remote
 Repository
  53. 53. push Local Repository add commit Staging Server
 (TEST) Production Server
 (LIVE) 手動・自動デプロイRemote
 Repository 手動・自動デプロイ Staging Server
 (TEST) Production Server
 (LIVE) (http://dploy.io)
  54. 54. (http://dploy.io)
  55. 55. (http://dploy.io)
  56. 56. (http://dploy.io)
  57. 57. (http://dploy.io)
  58. 58. Deploy と Dploy の2つを紹介しましたが、 同様のサービスは 他にもいろいろあります。
  59. 59. FTPLOY
 http://ftploy.com/
  60. 60. deploydo
 https://www.deploy.do/
  61. 61. wercker
 http://wercker.com/
  62. 62. Bamboo
 https://www.atlassian.com/software/bamboo/
  63. 63. など… 全て似たようなサービスですが、 仕様が若干違います。
  64. 64. Beanstalk & Codebase
  65. 65. プライベート Git リポジトリ に デプロイ機能 が付いてくるウェブサービス。
  66. 66. Fabric CapistranoMina Strano Webistrano CI Services
 (Jenkins、
 Travis CI、など) Dandelion Tool 多機能シンプル Web Service
  67. 67. Beanstalk
 http://beanstalkapp.com/+
  68. 68. Developing and Deploying WordPress  •  Beanstalk Guide
 http://guides.beanstalkapp.com/deployments/deploying-wordpress.html
  69. 69. Codebase
 http://codebasehq.com/
  70. 70. 他にも
  71. 71. Springloops
 http://www.springloops.io/
  72. 72. Assembla
 https://www.assembla.com/
  73. 73. など…
  74. 74. Code Deployment Patterns
  75. 75. 紹介したツールやサービスを、 想定できるケースに 当てはめてみます。
  76. 76. 個人ブログ、テーマのみ Local Repository Production Server
 (LIVE) Dandelion を使って、
 自作テーマやプラグインを
 手動デプロイ。 Dandelion $ cd /my-theme $ git init $ dandelion deploy
  77. 77. 個人プロジェクト Local Repository Production Server
 (LIVE) Dandelion Remote
 Repository Staging Server
 (TEST) - SFTP
 - 手動デプロイ - SFTP
 - 手動デプロイ
  78. 78. Local Repository Staging Server
 (TEST) Production Server
 (LIVE) Remote
 Repository - SFTP
 - 自動デプロイ - FTP
 - 手動デプロイ 会社で契約しているVPS クライアントが
 契約している
 レンタルサーバー チームで開発 デプロイサービス
  79. 79. Staging Server
 (TEST) Production Server
 (LIVE) - staging 用ブランチ
 - 手動・自動デプロイ - production 用ブランチ
 - 手動・自動デプロイ ブランチを作って開発 Remote
 Repository Local Repository OR
  80. 80. …という感じで、 想定されるいろいろな使い方に 適用させることが可能です。
  81. 81. Dandelion は無料のツール。 デプロイサービスの多くはフリーミアム。
  82. 82. Notes*
  83. 83. Git の管理下・管理外におくファイル デプロイする・しないファイル
  84. 84. Git で管理する Git で管理しない (.gitignore) デプロイする (その他のコアファイル) wp-config.php ? test-config.php ? デプロイしない local-config.php ? wp-config.php ? dandelion.yml ? dandelion.yml ? .htaccess? wp-config.php
  85. 85. ファイルのパーミッションと所有者
  86. 86. ファイルのパーミッションと所有者 wp-config.php の パーミッションとか chown apache chown nginx
  87. 87. 日本のレンタルサーバーは、 日本国外IPアドレスからのアクセスを 制限していることがある。
  88. 88. 国外IPアドレスフィルタ|さくらのレンタルサーバ" http://support.sakura.ad.jp/manual/rs/others/ipfilter.html 例:さくらのレンタルサーバ
  89. 89. セキュリティ・ポリシー
  90. 90. セキュリティ・ポリシー クライアントのコードをサードパー ティーのウェブサービスにアップして問題 ないか? クライアントのサーバー情報を
 サードパーティのウェブサービスに設定して問題 ないか? 情報セキュリティマネジメントシステム ISO 27001 プライバシーマーク
  91. 91. Contents Deployment
  92. 92. 「これっ!」 と言った決め手がありません。
  93. 93. Scripts
  94. 94. Scripts URLを適切に置換してくれるスクリプト等と
 組み合わせる。 mysqldump -u user -ppass wp_db > db.sql ! scp rsync
  95. 95. WordPress のDB上のサイトURLを一気に変換
 http://dogmap.jp/2012/09/20/wordpress-replace-siteurl/ https://gist.github.com/wokamoto/3627972
  96. 96. WordPress Serialized PHP Search Replace Tool
 https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
  97. 97. WP-CLI
  98. 98. WP-CLI
 http://wp-cli.org/commands/db/ http://wp-cli.org/commands/search-replace/ wp db export wp db import ! wp search-replace 'http://local.dev' 'http://mysite.com' WP-CLIの機能を使う
  99. 99. Plugins
  100. 100. Contents deployment プラグインはあまり無い。 + 結構いいお値段…
  101. 101. WP Migrate DB
 http://wordpress.org/plugins/wp-migrate-db/
  102. 102. WP Migrate DB Pro
 https://deliciousbrains.com/wp-migrate-db-pro/
  103. 103. WP Migrate DB Pro
 https://deliciousbrains.com/wp-migrate-db-pro/pricing/ https://deliciousbrains.com/wp-migrate-db-pro/videos/
  104. 104. Ramp
 http://crowdfavorite.com/ramp/
  105. 105. 機能を「同期」ではなく、 サーバーからサーバーへの 「引っ越し」に絞ると、 便利なプラグインが幾つかあります。
  106. 106. WordPress Duplicator
 http://wordpress.org/plugins/duplicator/
  107. 107. 公開時は引っ越しプラグインを用いて Code と Contents をデプロイ。 ! 公開後は必要時にのみ、 Contents を同期する。 (簡単なバグ修正であれば同期せずに行う。)
  108. 108. More Advanced Deployment Tools
  109. 109. Capistrano Ruby Mina PHP Fabric Python WordPress 界隈で よく目にする この中では比較的シンプル… Capistrano ほど多機能では…
  110. 110. An Introduction To Deploying WordPress with Mina - Tuts
 http://code.tutsplus.com/articles/an-introduction-to-deploying-wordpress-with-mina--wp-34776
  111. 111. https://twitter.com/tekapo/status/465656275418619905 http://wp.tekapo.com/2014/03/01/help-me-out-to-translate-fabric-docs/
  112. 112. Towards a Full Stack WordPress Development Tool
  113. 113. 最後に、Git を前提としたファイル構造の デプロイメントの話から さらに大きい枠の話をします。
  114. 114. Git based WordPress setup WP-Skelton Git + WordPress
  115. 115. WP-Stack
 https://github.com/markjaquith/WP-Stack
  116. 116. Git based WordPress setup WP-Skelton Git + WordPress Toolkit for WordPress Deployment WP-Stack + Code Deployment
  117. 117. wp-deploy
 https://github.com/Mixd/wp-deploy
  118. 118. Git based WordPress setup WP-Skelton Git + WordPress Toolkit for WordPress Deployment WP-Stack + Code Deployment Framework for deploying WP site using Capistrano 3 wp-deploy + Contents Deployment
  119. 119. Genesis Skelton
 https://github.com/genesis/wordpress
  120. 120. Bedrock
 http://roots.io/wordpress-stack/
  121. 121. Git based WordPress setup WP-Skelton Git + WordPress Toolkit for WordPress Deployment WP-Stack + Code Deployment Framework for deploying WP site using Capistrano 3 we-deploy + Contents Deployment Rapidly create, develop & deploy WP across multi environment Genesis Skelton + Local Dev Environment WordPress Stack Bedrock
  122. 122. PHPUnit Test Staging Server
 (TEST) Production Server
 (LIVE) Remote
 Repository PHPUnit Testing & Automation Local Repository 自動デプロイ push
  123. 123. + Continuous Integration (CI)
 Services Jenkins Travis CI PHPUnit Test Staging Server
 (TEST) Production Server
 (LIVE) Remote
 Repository PHPUnit Testing & Automation Local Repository 自動デプロイ pull request
  124. 124. BuddyPress + Grunt + Travis CI BuddyPress Development Trunk to Adopt a Grunt-Powered Build System
 http://wptavern.com/buddypress-development-trunk-to-adopt-a-grunt-powered-build-system
  125. 125. ちなみに、 Git 管理を活かしたデプロイメント ではありませんが、 こういうのもあります…
  126. 126. Managed WordPress 
 Hosting
  127. 127. いま海外で勢いがある WordPress 専用ホスティングサーバー。 ! 無料でステージング環境を提供し、 アピールポイントにしている サーバーもあります。
  128. 128. Media Temple WordPress Hosting
 http://mediatemple.net/webhosting/wordpress/
  129. 129. プロダクションサーバーへは1クリックで ファイルとDBをデプロイ。済んだら削除。 Media Temple WordPress Managed Hosting Reviewed : WP Mayor
 http://www.wpmayor.com/media-temple-wordpress-managed-hosting-reviewed/
  130. 130. 他にも…
  131. 131. WP Engine
 http://wpengine.com/
  132. 132. Flywheel
 http://getflywheel.com/
  133. 133. ホスティングサーバーに デプロイメント機能もお任せする … プロジェクトによっては、 最良の選択肢かもしれません。
  134. 134. Message
  135. 135. 何はともあれ Ⅰ.
  136. 136. よりストレスフリーなデプロイメントを目指して、 デプロイメントのツールやサービスを使ってみよう。 (車輪の再発明はしない) Ⅱ.
  137. 137. Ⅲ. Full Stack 方向を意識しつつ、 情報のアンテナを張り、 手を動かしてみる。
  138. 138. Ⅲ. Full Stack 方向を意識しつつ、 情報のアンテナを張り、 手を動かしてみる。 使わなくても、難しくても、 手を動かしておくことで、 理解が深まる、 頭の片隅に記憶しておける!
  139. 139. Thank you! http://waviaei.com! @waviaei! waviaei@gmail.com! http://b.hatena.ne.jp/waviaei/wordpress/ That’s All…
  140. 140. Photo by Takeshi Kouno https://www.flickr.com/photos/kounotakeshi/13460591725/ https://www.flickr.com/photos/dvids/6093692164p9 p1 cropped & resized Photo by DVIDSHUB cropped & resized Photo Credits
  • fumikony

    Aug. 22, 2019
  • achuro

    Nov. 27, 2018
  • oohiratakeharu

    Apr. 3, 2018
  • setaka

    Feb. 16, 2017
  • ssuserc29360

    Nov. 17, 2016
  • hydrangea56

    Aug. 22, 2016
  • TakumaYamanaka

    Jul. 29, 2016
  • moritag

    Jul. 12, 2016
  • HiroyukiKuroda

    Feb. 17, 2016
  • TomohiroKomiya

    Feb. 15, 2016
  • dekogawa

    Jan. 31, 2016
  • syuichitsuji

    Jan. 21, 2016
  • arthur_m

    Dec. 26, 2015
  • anemone1925

    Oct. 8, 2015
  • nikaidohitoshi

    Aug. 25, 2015
  • mimosafa

    Jul. 8, 2015
  • ohtacky

    Jun. 30, 2015
  • KenichiTakahashi1

    May. 29, 2015
  • SatoshiHocchi

    May. 18, 2015
  • y188ra

    May. 18, 2015

WordCamp Kansai 2014 登壇スライド。 コードのGit管理を前提とし、それを活かしたよりストレスフリーなデプロイメントを紹介しました。紹介したのはツール、サービス、そして最近海外では話題になりつつあるフルスタック系のツールキット。 Slide from my presentation at WordCamp Kansai 2014 (7 June 2014), titled "Considering WordPress Site Deployment - utilizing Git and Deployment Services-"

Views

Total views

28,387

On Slideshare

0

From embeds

0

Number of embeds

7,306

Actions

Downloads

12

Shares

0

Comments

0

Likes

105

×