問題タブ [continuous-deployment]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
build-automation - 継続的/自動展開はデスクトップアプリケーションにとって意味がありますか?
私は現在、Humble /FarleyによるContinuosDeliveryの本 を読み始めています。そこにある多くのものは理にかなっていますが、私を悩ませていることが1つあります。
作者は、サーバーベースの(シングルクライアント?)アプリケーション(webappsなど)のみを対象としており、何をすべきかを扱い、wrtを回避しているようです。ビルドプロセス、テスト、展開の自動化。
継続的デプロイのタグが付けられた質問を見ると、この用語はサーバーベースのアプリケーションのコンテキストでのみ使用されているようにも見えます。
それで、私は疑問に思っていました、デスクトップアプリの「セットアップ」(Windowsアプリの話)が作成された後のものを自動化することは意味がありますか?デスクトップアプリの「デプロイ」は常にユーザードライバーであるため、ここで何かを自動化することはどのような意味がありますか。実際、意味のある自動化できるものは何でしょうか。
ああ、ところで。この質問がprogrammers.SEに適しているかどうかは完全にわかりません。そのため、そうなると思われる場合は、遠慮なくそこに移動してください。
windows - Windows Azure - ロール内のインスタンスのサブセットへのデプロイ
Windows Azure を使用した概念実証として、パッケージの展開とステージング <-> 運用の切り替えはすべて問題ありませんが、展開方法にいくつかのスマートさを追加したいと考えています。
基本的に、10 個のインスタンスがある場合、ステージング スロットのすべてにデプロイし、そのうちの 3 つを実稼働に切り替えて、すべてを実稼働に切り替える前に、それら 3 つと他の 7 つの間に統計的エラーの差がないことを確認するために監視します。 、または存在する場合は、これら 3 つを、現在ステージングで実行されている元のプロダクションに戻します。
基本的に、 http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/で説明されているように、シンボリック リンクの切り替えを模倣したいと考えています。
私が見たところ、Azure では、運用とステージングを切り替えるときにオール オア ナッシング アプローチしか許可されていませんか? 2 セットのロールを定義することも考えましたが、問題は、同じエンドポイントを 2 つのロールで使用できないことです (私は思いませんか?)。
これを行う方法を知っている人はいますか?
continuous-integration - スクラムスプリントはどれくらい短くできますか?
このスクラムスプリントの説明に基づくと、スプリントの長さは30日であることがわかっていますが、最短で1週間になることもあります。これは継続的展開にどのように適合しますか。CDを使用すると、統合に合格した直後に完成したストーリーをリリースできます。
2週間のスプリントを行うことは可能ですが、スプリントの最後に完成したストーリーを「配信」する代わりに、すでに配信されていることを示すだけですか?あなたは実際にスプリントを通してそれらをリリースしたかもしれません。
問題は、スプリント全体で統合およびリリースしても、チームがスプリントを計画できないことです。これにより、管理者はチームにリリースリリースのリリース、手抜き、コードのプッシュを促すことができます。
.net - プライベートファイルを使用してTeamCityを構成するにはどうすればよいですか?
継続的インテグレーションと(願わくば)継続的デプロイメントのためにTeamCityをセットアップしています。ビルド手順の一部には、プライベートファイルが含まれます。
- 厳密な名前の.NETアセンブリ用の.snkファイル
- アーティファクトを公開するためのパスワード/トークンファイル(NuGetやCodePlexなど)
これらのファイルにはプライベートデータが含まれているので、(公的にアクセス可能な)ソース管理システムに入れたくありません。
AutoFixture用にhttp://teamcity.codebetter.comを設定しているので、サーバーに物理的にアクセスできません。そのようなファイルをアップロードできる機能を望んでいましたが、そのようなものは見つかりませんでした。
最も適切な解決策は何でしょうか?
maven - Java /SpringWebプロジェクトで継続的にデプロイするための継続的インテグレーションサーバー
私は現在、Mavenを使用して、単体テストを構築、実行し、Java /SpringWebサイトをローカルにデプロイしています。次に、Seleniumの機能テストを実行し、長いスクリプト全体を実行して、本番環境にデプロイし、スキーマを変更します。ボタンを押すだけで、すべてのテストに合格する限り、本番環境が更新されるように、すべてを自動化したいと思います。
したがって、プラグインを介して、または少なくともantプラグインを使用して、Mavenでこれらすべてを実行できるようです。しかし、利用可能な継続的インテグレーションサーバーはたくさんあります...ハドソンについてはよく耳にします。Hudsonのマニュアルには、「Hudsonの主なユースケースの1つは、ApacheMavenを使用してプロジェクトを構築することです」と記載されています。ハドソンは私が必要とするものにとって最良の選択ですか?より良い解決策はありますか?ジェンキンスがハドソンから分岐したことを理解していますが、それはより良いルートですか?
継続的展開を支援するツールやサーバーにお金を払ってもかまいません。
automated-tests - 自動化された受け入れテスト - UI または API?
ここ数日、自動化された受け入れテストについて調査し、BDD と JBehave、FitNesse と Slim、Selenium と WebDriver などについて学びました。
Robert C. Martin によるこのビデオを見たところです。彼は、FitNesse を使用してこのようなテストを作成および維持する方法を示しています。最後に、これらのテストが UI にヒットしたかどうかを尋ねる人がいます。Martin 氏はさらに、UI の変更は頻繁に行われるため、受け入れテストを UI に結合するとコストがかかる可能性があると説明しています。また、そのようなテストは、UI が開発された後にのみ作成できると推測できます。これは、定義上、テスターをスケジュールより遅れさせることになります。
私は尋ねなければなりません:代替手段は何ですか?マーティンは、アプリケーションのビジネス レイヤーを操作する隠しレイヤーにテストがヒットする必要があることをほのめかしているようです。私の理解では、これには追加の作業が必要であり、運用環境で一度保護する必要がある新しい API が公開されることは言うまでもありません。
アプリケーション サービスを介してビジネス層に到達するだけで十分でしょうか?
あなたの経験は何ですか?
共有してくれてありがとう!
deployment - TeamCity を使用して、以前にビルドおよびテストされたビルド実行に対して DEPLOY を手動でトリガーする方法は?
TeamCity 6.5 を使用して、可能であれば、特定のビルド実行の手動デプロイをセットアップする方法を見つけようとしています。
私ができるようにしたいのは、既にビルドおよびテストされた TeamCity の実行 (アーティファクトのみをデプロイする必要があります - これは Web アプリケーションまたはサイトではありません) を実行し、MSBuild ステップを呼び出してアーティファクトを別の場所に公開することです。
database - Flyway を使用したホット フィックスの配信
ホットフィックスに対処するための最良の戦略は何ですか? Flyway FAQ セクションからの質問。この質問では:
- アプリケーション バージョン 7 (および DB バージョン 7) が本番環境にデプロイされています
- アプリ バージョン 8 で作業を開始
- DB バージョン 8 が開発され、受け入れテスト環境にデプロイされます
- バグは本番環境で特定されています
- DB バージョン 7.1 が開発されており、受け入れテストを受ける必要があります
flyway:migrate が受け入れテスト環境に対して呼び出されると、v8 が既に実行されていることがわかるため、v7.1 を実行する必要はありません。
v7.1 は v8 と互換性がない可能性があり、これを分析するのは Flyway の責任ではないため、これは理にかなっています。フェイルファストは完全に理解できます。
一方、v7.1 を受け入れテスト環境にデプロイする唯一の方法は、データベースをクリーンアップし、ターゲット = v7.1 で flyway:migrate を実行して、使用された可能性のあるデータを破棄することです。
このケースを処理する、または clean + migrate.target=v7.1 が唯一のオプションであることに気付いていない機能はありますか?
deployment - Mavenを介して本番環境にデプロイする
Mavenで、JavaWebアプリケーションを本番Tomcat7インスタンスにデプロイするという目標を作成したいと思います。これを行うための最良の方法は何ですか?戦争をSFTPで処理し、Tomcatにリロードするように指示するプラグインがあることを期待しています。このプラグインは、問題が発生した場合のロールバックを処理し、更新された静的ファイルをS3にアップロードし(それらのクラウドフロントキャッシュをリセットし)、場合によってはデータベースの更新を同期する必要があります。
これには、Mavenの外部でスクリプトを実行する必要がありますか?それとも、この自動デプロイ機能はAntで最もよく実行されますか?