私たちはDjangoを使用してWebアプリを開発しており、3〜4人のプログラマーからなる小さなチームです。UIやバックエンドを行う人もいます。ヒントとここの人々からの提案これは私たちの現在の設定です:
virtualenv
を使用していますzc.buildout
構築用これは私が頭のてっぺんから考えることができるものです。他の提案/ヒントは大歓迎です。かなり良いセットアップができていると思いますが、もっとできると確信しています。
基本的に、個人的にもチーム環境でも、Django/Pythonワークフローの最適化に関する小さな本を書くことができます。簡単なポイントをいくつかリストアップしてみます。
bootstrap.sh
を呼び出すsetup.py
スクリプトをプロジェクトに保持します。これにより、プロジェクト全体がきちんとパッケージ化され、新しいサーバーへのインストールが非常に簡単になります。master
ブランチへの変更をチェックし、ビルドする時期が来たことをJenkinsに通知できます。 (または、Jenkinsに中央のgitリポジトリを毎分ポーリングさせるなど)。fab prod deploy
と入力するだけで、私が所有するすべての本番マシンは、私のサイトの最新バージョンに完全に自動的に更新されます。それは始めるのに良い場所であるはずです。さらにアドバイスが必要な場合は、Disqus(世界で最大のDjangoアプリ))で開発者から提供されたプレゼンテーションを調べることを強くお勧めします。彼らはおそらくワークフローの最適化とスケーリングについてより多くのことを知っています。私が出会った他の誰か。
この プレゼンテーション は、python/Djangoチーム:
- 自動テスト(Django組み込み)
- 継続的インテグレーション(Jenkins、Django-jenkins)
- すべてのものを測定します(歩哨、statsd +グラファイト、新しい遺物)
- スクリプトデータベース(南)
- スクリプト展開(ファブリック)
- 構成管理(puppet/chef)
- 仮想化開発(Vagrant)
- テスト分離(テストデコレータ、テストランナーのカスタマイズ)
これに私は追加します:
実際、私は 分岐モデル がGitでの作業にそれほど適しているとは確信していません。以前に使用したもの(CVSNT)に似ていたので、私はかつて分岐モデルに興奮していました。しかし、それは(一種の)Gitのアイデアに反します。それは物事を必要以上に複雑にします。 コミットポイントは、ブランチよりもGitで重要です。 branchを、ブランチの最後のコミットポイントへのポインタと考えると、より明確になります。
しかし、それはあなたの意見ではないかもしれません。とにかく、いつでも分岐モデルを導入または終了できるので、選択したモデルから始めることができ、何も失うことはほとんどありません。
スコット・チャコンの Pro Git の本、第3章GitBranchingを読むことをお勧めします。