10

私は最終的に、スキルを向上させ、ビジネスを成長させるために、ソフトウェア設計プロセスを正しく学ぶことに専念しました. これは、バージョン管理 (git) を採用し、開発 - ステージング - 運用環境をセットアップし、これらの環境を可能な限り同様に構成することを意味します。

サーバー設定を自動化して同期するためのソリューションを選択するという最後のステップに本当に追いついています。Chef、Puppet、Fabric について調べてみましたが、私の目的からすると、どれも複雑すぎるように思えます。私は:

  • 単一サーバーでの小さな Web アプリの開発
  • 中程度の PHP と UNIX のスキルを備えた LAMP 環境での開発
  • 環境変数を大幅に変更することはありません (主に php.ini、Apache 構成)

複雑な Chef 環境をマスターしたり、Fabric を使用するために Python を学習したりするよりも簡単に実装できるソリューションに関する推奨事項をいただければ幸いです。必要に応じてこれを行うことができますが、非常に単純なニーズを考えると、より基本的でエレガントなソリューションがあることを願っています。

4

4 に答える 4

8

私が働いている会社では、多かれ少なかれ同じニーズがあり、bashスクリプトをいくつか設定するだけです。

基本的には、gitリポジトリ(ローカルおよび遠隔ベア)をセットアップし、apache2とPHP5(およびいくつかのphp拡張機能)をインストールし、apacheのvhost、php.iniを構成し、必要に応じてフレームワークとブートストラッププロジェクトをインストールします(私たちにとってはsymfonyです)。

EC2インスタンスを起動し、前述のスクリプトを実行し、テストスイートを起動して、これらのスクリプトのレポートをダウンロードする別のスクリプトがあります。

Chef&Puppetはうまく機能しますが、同時に実行するプロジェクトが多数ない限り、少しやり過ぎです。

編集 :

コミット/プッシュ後にスクリプトを実行する場合(ステージング/プリプロダクションサーバーへのデプロイ、継続的インテグレーションビルドの起動など)、gitcallを使用してこれを行う方法があります。Gitプッシュを使用してプロジェクトをデプロイするをpost-hook参照してください。

于 2011-07-28T09:03:15.973 に答える
5

この目的のために、 Ansibleを検討することを強くお勧めします。

これは完全なソリューションです。つまり、構成管理、展開などを処理できます。ただし、私の経験では、基本的なシェル コマンドの実行から始めて、そこから先に進むことができるため、Chef や Puppet よりも習得がはるかに簡単です。

新しい言語を学ぶ必要はありません。構成と仕様はすべて構造化テキストである YAML で行われます。

全体として、Ansible は Chef または Puppet があなたのレベルで提供するものの多くを提供し、より簡単に使い始めることができることを願っています。

于 2013-08-12T11:16:01.420 に答える
4

プロの Web 開発に真剣に取り組んでいる場合は、Chef をもう一度検討することを強くお勧めします。それは私たち(私と私の同僚)にとって本当にうまくいきます。やり過ぎのように思えるかもしれませんが、私の意見では、利点は学習曲線をはるかに上回ります. さまざまなサーバー環境 (および同僚間のローカル開発環境) を維持しようとすると、さらに多くの作業が必要になります。さらに、Chef を使用すると、すでにクックブックやレシピが提供されているため、Apache、PHP、および MySQL を非常に簡単にインストールできます。

また、必ずVagrantをチェックしてください。Chef およびVirtualBoxと連携するため、ローカル開発環境のセットアップが非常に簡単になります。

また、Zend Framework プロジェクトに取り組んでいる場合は、Vagrant を使用するオールインワン LAMP 開発環境であるZend Framework Boilerplate プロジェクトに興味があるかもしれません。

于 2011-10-04T15:23:01.313 に答える
1

Simple LAMP Developmentも必要ないからです。単純な開発を自動化できないわけではありません。単純な開発では、(Python でさえも) いくつかのスクリプトを自分で作成するだけで通常 (より簡単かつ迅速に) 十分だからです。

カスタム スクリプトの保守が難しい、または不十分であることに気付いた場合は、Fabric (シェル コマンドの自動化) や Chef/Puppet (サーバー構成管理) などのツールを使用する準備ができています。彼らが管理しているシステムの相互接続は単純ではないため、学習するのは簡単ではありません (明らかにあなたの場合ではありません)。

単一のサーバーの場合、構成、ソース、およびサーバーのセットアップを管理するには、README + Mercurial (GitHub が必要な場合は Git) といくつかのシンボリック リンクで十分です。自動化と展開のために、サイトを FTP/SSH にアップロードし、サーバーを再起動し、テストを実行するスクリプトを作成するだけです。それはSimple Deployment for Simple Developmentです。そのための PHP を書くことを避け、シェルを知らない場合は、Fabric を使用すると時間を節約できます。

スクリプトの準備ができたら、問題はすでにわかっています。Chef/Puppet をバックグラウンドで学習して、環境を複雑にする価値があるかどうかを確認できます。

Chef を試すことを選択した場合 - Chef Solo から始めないでください - これはスターターにとって有毒なスナックです - Hosted Chef + Client を使用してください - セットアップは無料です。Puppet については何も言えません。シェフを選んだのは、母が料理の仕方を知る必要があると言っていたからです。

于 2012-06-22T17:10:46.760 に答える