質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

2回答

2431閲覧

本番環境と開発環境をどうやって合わせればよいのか?

faea

総合スコア18

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

2クリップ

投稿2014/08/27 06:19

現在、WebシステムをMacで開発しています。
その過程で、本番環境と開発環境のずれが気になり始めましたが、どうやって解決するのがスタンダードなのかわからず質問させていただきました。

具体的にいうと、現在つくっているWebサービスにMemcacheを使った機能を導入しようとしています。
そこで、MacにBrewでmemcacheを色々苦労してインストールしたのですが、本番環境はUbuntuなので今度はapt-getでmemcacheを入れなければなりません。

このような状況を解決するのは何が一般的な方法なのでしょうか?ご回答いただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

最近は、Chefのように、「特定の環境に依存せず、環境構築をコード化する」ようなツールがあります。

とりわけ、AWSを動的に増減させるとか、日に何度もデプロイが回るような環境では必須となるでしょう。

投稿2014/08/27 06:22

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

faea

2014/08/27 06:51

Chefを使った事がないので、追加で質問させてください。 すごく失礼なのですが、「特定の環境に依存せず」というのが少し懐疑的なのですが本当なのでしょうか? といいますのも、例えば今回のmemcacheの場合、Macではbrew install して、その後自動起動するようにlaunchctlに登録しなければいけません。 Ubuntuではapt-get でインストールして、serviceに登録しなければいけません。 またおそらく途中で依存関係にあるライブラリの不足、バージョン違い等で、ごたごたしそうな気がします。 この辺りもChefはサポートしれてくれるのですか?
maisumakun

2014/08/27 07:01

環境依存の部分は「Recipe」という形にまとめられ、メジャーなソフトウェアとメジャーな環境の組み合わせであれば既存のものも多く存在します。その「Recipe」を使って、どのように最終形を組み上げるかを「Cookbook」として記述します。 環境構築である以上、環境に依存する部分もありますが、それはrecipeに閉じ込めて、全体像を作るCookbookでは抽象化されたRecipeの組み合わせで表現できるということです([参考URL](http://www.atmarkit.co.jp/ait/articles/1305/24/news003.html))。
faea

2014/08/27 07:22

何度もおつきあいありがとうございます。 ChefはこのようにCookbookを落とす、ないしは書くことで環境依存を解消できるツールなのですね。勉強になりました、ありがとうございます。 ただ、私の質問の仕方が悪くおそらく誤解を生んでしまっているのではないかと思い、かかせていただくのですが、 私が一番問題にしたいのは、MacとUbuntuで環境構築を二度しなければいけないことによる「手間」なのです。 その点で言うと、[memcached cookbookの検索結果トップ](https://github.com/opscode-cookbooks/memcached)のページにMacのサポートは入っておらず、Ubuntuのバージョンも違います。なので、MacとUbuntuで二度環境構築をする手間を解消する手段としては少し難しい気がします。 自分の考えでは、VitrualBoxに同じバージョンのUbuntuを入れて、macのエディタはそのVturlboxの中のUbuntuの中の、Webサービスのソースコードを参照させるようにする。 そして、Webサービス自体はVitrualBox内のUbuntu環境で動いていて、ブラウザからそれを参照するようにする。 そして、そのこのVirtualBox内での環境構築はChefを使う(参考にさせていただきました)。 そして、本番環境ではこのChefのCookBookで同期させる。 のように自分の中では考えたのですが、今までの経験上、自分オリジナルの考えより、一般的なやり方の方が遥かに効率がよい、という経験があります。 ここで再度質問なのですが、上記のような問題を解決するスタンダードな方法はなにがありますか?
guest

0

質問に対する直接な回答では有りませんが、本番機と同一レビジョンの検証環境(または開発環境)を用意するのが一般的かと思います。MacではIDEでは無くテキストエディタを利用されている前提ですが。

1.本番機と同環境の検証機を用意する
2.検証環境に必要なサービスをセットアップ(今回はMemcachedでしょうか)
3.Macでコーディングしたソースを検証環境にコピーして動作確認・デバック

以上の手順であればMacに環境構築する手順が省けます。また、サービスのセットアップを本番機で実施する前に手順を検証できるというメリットも有ります。これはかなり重要です。
Mac単体で実行検証はできないデメリットと、検証用ハードウェアを用意する必要が有りますのでトレードオフで判断下さい。

投稿2014/08/28 03:42

BlueMoon

総合スコア1339

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

faea

2014/08/28 08:55

ご回答ありがとうございます。たしかに複数の環境を用意するのも1つの選択肢ですよね。参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問