tanaka's Programming Memo

プログラミングについてのメモ。

サーバ保守のメモ

今後の方針メモ。

サーバのメンテナンス

データのバックアップ

  • 定期的にデータをダウンロードして記録
  • 一定期間保持したら、古いものは破棄
自動化方針
  • cronでデータをバックアップし、FTPでローカルに保存する

プログラムのバージョンアップ

  • PHPUnitSeleniumで自動テスト
  • 開発版ではテスト用のDBを利用
自動化方針
  • プログラムをプッシュする時に自動的にテストを動かす
  • データの削除、登録、チェックを用意

サーバのPHPのバージョンアップ

  • 古いバージョンのプログラムをバックアップ
  • ローカル環境にバージョンアップ環境を構築して、動作テスト。プログラムを対応させる
  • サーバのPHPをバージョンアップ
  • 対応させたプログラムをアップロード
  • テストを実行
  • 失敗した場合は、バージョンを戻してバックアップしたプログラムに戻す
自動化方針
  • サーバ上のプログラムは全てGitで管理
  • バックアップは、Gitの公開版となる
  • ローカル環境でのテストはGitのコミットやプッシュで行う
  • サーバのテストは主導で開始。不要なものはサーバには置かない

サーバのDBのバージョンアップ

  • 古いプログラムとデータベースのバックアップ
  • ローカル環境にバージョンアップ環境を構築して、動作テスト。プログラムを対応させる
  • サーバのDBのバージョンアップ
  • 対応させたプログラムをアップロード
  • プログラムのテストを実行
  • 問題がなければ、データベースのデータを復帰させる
  • 失敗した場合は、バージョンを戻してバックアップしたプログラムとデータに戻す
自動化方針
  • バックアップは日常的に行われているはず
  • データベースのテストは手動呼び出しでよい
    • ローカルのテーブルをクリア
    • テスト用のデータをXMLで準備
    • プログラムの機能を使って、データの登録をテスト
    • データの取得テスト
    • ページ上の動作テストはSeleniumでテスト
    • 画面はSeleniumスクリーンショット

公開方針

最新版、安定版、開発版の3つを用意

  • 最新版
    • ある程度のテストを終えた通常の公開版
    • 古いデータでバグが発生する可能性がある
  • 安定版
    • 十分にテストをしたもの
    • 最新版でエラーが発生した時でも、ユーザーがデータを見れるようにするためのもの
  • 開発版
    • 動作保証なしのバージョン
    • テスト用データベース上で動作