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

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

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

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

GoogleComputeEngine

GoogleComputeEngineとは、Linux VMをGoogleのデータセンター上で走らせるIaaS (インフラストラクチャ アズ ア サービス)製品で、ビジネス向けクラウドコンピューティング基盤のことです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

468閲覧

開発環境から本番環境(クラウド)へのスムーズなデプロイについて

退会済みユーザー

退会済みユーザー

総合スコア0

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

GoogleComputeEngine

GoogleComputeEngineとは、Linux VMをGoogleのデータセンター上で走らせるIaaS (インフラストラクチャ アズ ア サービス)製品で、ビジネス向けクラウドコンピューティング基盤のことです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2020/02/24 01:55

普段、ローカル環境ではDockerやAnacondaの仮想環境で開発することが多いのですが、そういったコンテナ的なものを(できるだけそのまま)本番環境に持っていくとき、皆様はどのようなサービスを使ってどのような手法でデプロイしているのでしょうか。

ググるとAWSやGCPにDockerをインストールし、Docker Registry経由でイメージをPushしたものをDL→Docker ComposeでBuild、みたいなイメージかと思いますが、その際に、開発環境でアタッチしていたVolume等のデータはどのように移行すればよいのでしょうか。

コンテナの数が多いときはKubernetesマネージドなサービスを使ったほうが手軽なんでしょうか。

また、毎回、上記のようにRegistry経由の少々、面倒な手段を取る必要があるのでしょうか(といっても数年前に比べたら格段にラクになっているとは思いますが)。

本番での開発経験に乏しく、皆様がどのように開発→本番にデプロイしているのか知りたく、質問させていただきました。
Dockerに限らず、Infrastructure as CodeやCI/CDでこんなにスムーズにデプロイできるようになったよ!みたいな話がありましたらお聞かせ願いたいです。

雑談的な質問になってしまい恐縮ですが、最近のちょっとした悩みです。
よろしくお願いいたします。

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

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

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

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

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

yu_1985

2020/02/25 02:24

本番環境をどのように構成すべきか、という話なのか、既に本番環境があってそこにどうやってデプロイするのか、という話なのか、どちらでしょうか。 前者であれば設計の話なのでちょっとここですべき話ではない気がします。(見た感じ前者のような印象を受けますが…)
退会済みユーザー

退会済みユーザー

2020/02/27 00:27

ご指摘ありがとうございます。ピンポイントでこれを聞きたい!というよりは、少々、雑談っぽく皆はどうやってるのかを聞きたいって感じで投稿したら文章がだいぶ横道にそれたような書き味になってしまいました。 申し訳ございません(そもそも、そういった雑談みたいな投稿をしていいのか?という問題もありますが)。 ご指摘いただいた前者か後者かでいえば、どちらかというと後者です。 ただし、ローカル環境で開発していたものをよりスムーズに本番環境に持ち込むために本番環境に手を入れたほうが良いのであれば本番環境にも手が入りますので中間的な感じでしょうか。 少し質問を修正しますのでしばしお待ち下さい。
yu_1985

2020/02/27 00:59

それでしたら本番環境がどのような構成なのかがわからないとなんとも言えないので、まずはその詳細を記載してみてください。 その上で「こういう方法もある」という言い方ならできると思います。 それがないと、それこそ方法が多岐にわたる上にどれが適しているかはケースバイケースなのでなんとも言えません。
退会済みユーザー

退会済みユーザー

2020/03/13 01:55

質問を明確にするのにもう少し時間を要しそうなので、質問が明確になり次第、改めて質問させていただきます。ご指摘いただきどうもありがとうございました。今後ともよろしくお願い致します。
guest

回答1

0

ベストアンサー

私はいろいろ悩んだ結果、けっこう規模の大きいデプロイツールを開発してしまいました。
https://hive-builder.readthedocs.io/ja/latest/

回答としては、正直決め手となるベストプラクティスが存在しない状態だと思います。

本番での開発経験に乏しく、皆様がどのように開発→本番にデプロイしているのか知りたく、

本番環境では冗長化構成にする必要があり、開発環境と共通のコードからデプロイするには、 docker-compose + Dockerfile だけでは厳しいです。ansible などを使って固有のスクリプティングを入れていくしかないかなと思います。

あまり、お役にたてない回答で恐縮です。

投稿2020/02/25 03:01

編集2020/02/25 03:04
mit0223

総合スコア3401

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

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

退会済みユーザー

退会済みユーザー

2020/02/27 00:48

ご回答いただきありがとうございます。 デプロイツールを自作しているとのことで、ドキュメント拝見しましたが素晴らしいですね! なかなか広く一般的に「こーすれば万事解決!」みたいなベストプラクティスってなくって、皆個別の事情を抱えているので、その細々としたニーズを拾っていくには自作しかないのかもしれませんね。 ちなみに、ansibleを使ったことがないのでとんちんかんな質問かもしれませんが、本ツールにおけるansibleの守備範囲?はどこからどこまでになるんでしょうか。dockerでリポジトリサーバからできるだけ設定を共通化したコンテナイメージを取得→デプロイしてから、そのコンテナイメージから個別に差異がある設定をansibleで行っているんでしょうか。
mit0223

2020/02/28 06:56 編集

私の開発したツールでは何でも ansibleです。 - AWS/GCP などの IaaS 上での環境構築 - サーバのインストール - イメージのビルド - コンテナのデプロイ - サービスの初期化 ただ、これもわりとガリガリ感がありまして、すべてにおいて ansible がベストというわけではありません。
退会済みユーザー

退会済みユーザー

2020/03/13 01:56

なるほどですね。私もansibleをしっかり学んでみようと思います。 そのうえでどこまでをdockerで、どこからをansibleで、という自分なりのベストプラクティスを確立できたらいいなと思っています。 どうもありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問