WEB制作会社がGIT導入に向けての業務フロー整理をした話

GIT導入にあたり社内の運用ルールを考えてみた

■導入にあたる動機

・ファイルサーバ枯渇問題(画像ファイル、スクリプトファイルなどごった煮状態)

・作業コンフリクトの不明なままきえてしまう

・開発環境の統一化

・Gitいいって聞く

■運用環境条件

・ローカル開発環境 - ファイルサーバ(プロジェクトディレクトリ別)

・ローカル統合開発環境 社内ファイルサーバファイルの操作を行う

・部署ごとで、サーバ、ローカル等の運用がばらばら

・個人作業用はWINDOWSMACVMWARE(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 コマンドライン

 http://www.sourcetreeapp.com/

 

■運用フロー(各部署での使い方、GIT知識の共有などは、今後の検討課題)

・ リポジトリ管理者が、リモート、ローカルメインのリポジトリの作成

・ GIT FLOWでの運用形態を真似てみる

http://keijinsonyaban.blogspot.jp/2010/10/successful-git-branching-model.html

・ プロジェクト毎にリポジトリ作成

・ プロジェクト規模により、構築スタイルは柔軟に検討する

・ マージは各々ローカルで作業実施する

・ テスト公開時にdevelopでマージしてチェック

・ 本番環境は原則masterをpullのみ

 

■移行の課題

GITを使い出すというテーマで一旦考えたのみ ー> メンバーのGITリテラシーを上げていく

SVNから、GIT移行時に発生するツールの差分

 

■理想、希望  

・ローカル端末リポジトリをプロジェクト全員が持ち、ローカルサーバをリポジトリをサブステージ環境とできるような運用形態が理想とは思うが、windowsでの環境統一は現実的でないし、非エンジニアでCENTOSってのも何か違うかなぁ..と思う

 →ローカルで確認出来る環境をつくるしかないかなとも思う

・PSD管理もGITに含め、バックアップファイルを極力小さく管理できる方法などは、いかにしたらいんだろうか....

 

GITへの学習アレルギー、SVNとの今後の展望の違いを理解してもらい浸透を進めていく 

メリット  ー> 分散管理による、開発環境の管理軽減

      ー> データの保全性の向上

      

デメリット ー> 操作の学習コスト、運用形態の均一化

      ー> SVNで慣れている作業に対しての不満

      ー> 分散化による管理ルールの再構築

 

さくらVPS構築日記

サクラVPSで初期構築・設定 基本構築編

新規構築時順序の覚書 CENT OS 6.3での構築

*サーバ目的

WEB公開、フォームの実装、セキュリティ基本設定、メールサーバ、社内サイト構築

 

基本参考サイト

http://centossrv.com/

 

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

4.プログラム言語インストール(PERLPHP

 各種モジュールインストール

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/

5.送信メールSMTPサーバ構築(postfix

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>