WEB制作会社がGIT導入に向けての業務フロー整理をした話
GIT導入にあたり社内の運用ルールを考えてみた
■導入にあたる動機
・ファイルサーバ枯渇問題(画像ファイル、スクリプトファイルなどごった煮状態)
・作業コンフリクトの不明なままきえてしまう
・開発環境の統一化
・Gitいいって聞く
■運用環境条件
・ローカル開発環境 - ファイルサーバ(プロジェクトディレクトリ別)
・ローカル統合開発環境 社内ファイルサーバファイルの操作を行う
・部署ごとで、サーバ、ローカル等の運用がばらばら
・個人作業用はWINDOWS、MAC、VMWARE(CENT OS)の環境あり
・現在はSVNで、作業後コミット、作業前updateの運用ルール
・プロジェクト基本メンバー(プロジェクトの大小によりヘルプスタッフは相互変動)
* デザイナー
主な拡張子 .psd .tiff .ai .jpg .zip
* HTML・フロントエンド
主な拡張子 .js .html .css .scss .psd to .jpg
* サーバ、バックグラウンド、アプリケーションエンジニア
主な拡張子 .pl .ctp .js .php .rb .sql .mwd
■運用前条件
・フロントエンドエンジニアの編集ファイルは、ローカルサーバファイルを直接変種している
■運用案
・PSDなどのでかいバイナリファイルはファイルサーバでバックアップでバージョン管理をしない (別の方法を考える)
・プライベートリモートリポジトリーホスティングサーバ VPSサーバにgitlab構築
・ローカルサーバをdebelopマージ環境にしてローカルサーバで編集作業やめる
・GIT操作環境 ー sourcetree or コマンドライン
■運用フロー(各部署での使い方、GIT知識の共有などは、今後の検討課題)
・ リポジトリ管理者が、リモート、ローカルメインのリポジトリの作成
・ GIT FLOWでの運用形態を真似てみる
http://keijinsonyaban.blogspot.jp/2010/10/successful-git-branching-model.html
・ プロジェクト毎にリポジトリ作成
・ プロジェクト規模により、構築スタイルは柔軟に検討する
・ マージは各々ローカルで作業実施する
・ テスト公開時にdevelopでマージしてチェック
・ 本番環境は原則masterをpullのみ
■移行の課題
GITを使い出すというテーマで一旦考えたのみ ー> メンバーのGITリテラシーを上げていく
■理想、希望
・ローカル端末リポジトリをプロジェクト全員が持ち、ローカルサーバをリポジトリをサブステージ環境とできるような運用形態が理想とは思うが、windowsでの環境統一は現実的でないし、非エンジニアでCENTOSってのも何か違うかなぁ..と思う
→ローカルで確認出来る環境をつくるしかないかなとも思う
・PSD管理もGITに含め、バックアップファイルを極力小さく管理できる方法などは、いかにしたらいんだろうか....
GITへの学習アレルギー、SVNとの今後の展望の違いを理解してもらい浸透を進めていく
メリット ー> 分散管理による、開発環境の管理軽減
ー> データの保全性の向上
デメリット ー> 操作の学習コスト、運用形態の均一化
ー> SVNで慣れている作業に対しての不満
ー> 分散化による管理ルールの再構築
さくらVPS構築日記
サクラVPSで初期構築・設定 基本構築編
新規構築時順序の覚書 CENT OS 6.3での構築
*サーバ目的
WEB公開、フォームの実装、セキュリティ基本設定、メールサーバ、社内サイト構築
基本参考サイト
1.ログインの設定変更SSH接続
ログイン用ユーザーとROOTログイン禁止
http://kazmax.zpp.jp/linux/lin_ssh.html
2.FIREWALL構築
http://tech.hitsug.net/?CentOS/iptables
3.APATCHE構築
HTTP+HTTPS設定
http://kajuhome.com/apache.shtml
各種モジュールインストール
PERL : http://d.hatena.ne.jp/perlcodesample/20120603/1339333786
PHP : http://blog.mizoshiri.com/archives/1379
5.DBサーバ構築(MySQL+PostgreSQL)
MySQL :http://centossrv.com/mysql.shtml
POSGRE :http://lets.postgresql.jp/documents/tutorial/introduction/
http://e-garakuta.net/techinfo/doku.php/linux/postfix-virtual
6.受信メール構築(postfixadmin+dovecot)
http://e-garakuta.net/techinfo/doku.php/linux/postfix-virtual
7.DNS構築
facebook JavaScript SDK 覚書 - 外部からウォールへの投稿
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
if (window.location.hash.length == 0) {
if (window.location.search.length != 0) {
//ログイン拒否時の処理
} else {
var client_id = 'APP_ID';
if (window.location.hash.length == 0) {
var url = 'https://www.facebook.com/dialog/oauth'
+ '?client_id=' + client_id
+ '&redirect_uri=' + window.location
+ '&response_type=token'
+ '&scope=publish_stream,read_stream'
+ '&display=popup';
location.href = url;
}
}
} else {
if (window.location.search.length != 0) {
//アプリケーションからの投稿拒否持の処理
}
}
</script>
</head>
<body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId : 'APP_ID',
status : true,
cookie : true,
xfbml : true
});
function Comment() {
var str = window.location.hash.substring(1);
Data = str.split("&");
atoken = Data[0].replace('access_token=','');
FB.api('me?access_token=' + atoken
, 'get'
, function(response) {
Fsubmit(response.username,atoken);
});
}
function PostMessage(Page_ID,Access_Token) {
var YourMessafes = document.f01.mess.value;
FB.api('/' + Page_ID + '/feed'
, 'post'
, { access_token: Access_Token, message: YourMessages }
, function(response) {
if ( !response || response.error ) {
} else {
//ウォール投稿後の処理
}
});
}
</script>
<form name="f01">
<input type="text" name="mess">
<input type="button" value="comment" onclick="Comment();">
</form>
</body>
</html>