2011-12-18 8 views
2

私がPythonを使用していたのなら、おそらくpipを素晴らしいリポジトリ統合とスクリプト機能を備えた継続的な配布用の素晴らしいインストーラとして使用したいと考えています。
私はjavaに似た何かを持っていますが、私は継続的な展開で役に立ちますか?彼らはJavaで完全な連続展開を行う方法私はjavaで継続的に配信するために構築できるものは何ですか?

は、誰かが私をお勧めしますか?

私は複雑な構成の複数のサーバーと、データベースを持つ巨大な複数のクラスタを持つつもりです.NOSQL(いくつかのプロジェクトにはmavenを使用していますが、その他はダウンロードしたpacakgesなど)などです。誰でもその?

再び私は、誰もがubuntu jujuと多分経験を持って、ピップは非常にいいインストーラだと思うと私を助けることができますか?しかし

私はUbuntuのに基づいて、サーバやないのCentOSを使用する必要がありますを意味しますUbuntuのジュジュを使用している場合。

+1

多分http://jenkins-ci.org/ – oers

+0

カスタムスクリプトかcapistrano/fabricのようなものと一緒にCIサーバーが役立つはずです。 [この質問](http://stackoverflow.com/q/183091/922954)を参照してください。 – aishwarya

答えて

3

私が何ピップ完全に明確ではないんだけど、ここでは、ビルドツール必要CI/CD

のための私のツールチェーンです:

  • Mavenのは、(ダウンロード依存関係を含め、多くのものを行いますそして
  • )狂気あなたを駆動ANT(あなたはXMLブラケットで死ぬまであなたを突くだろう)
  • のGradleなど(ANT使用を含むほとんどすべての人/リポジトリから依存関係をダウンロードするためのアイビーを使用することができます)

あなたは

  • ジェンキンス
  • 市販の各種オプション(チームシティー、竹...)あなたがアプリを展開するために何かを必要とする展開の部分については

をCIサーバを必要としています。 これは実際に使用するビルドツールに依存します(デプロイメントを実行できるはずです)。 Mavenにはこのアフリカのためのいくつかのプラグインがありますが、私はあなたのアプリケーションサーバーとビルドツールのために、あなたの特定の必要性のための解決策を見つけるためにgoogleする必要があると思います。

+0

ありがとう、あなたはgradle対buildrを精巧にすることができますか? – Jas

+0

申し訳ありませんが、それはstackoverflow.comのための大きな質問になる –

5

のJavaアプリのビルドおよびJavaアプリケーションの配備間の輝線のようなものがあります。 JavaでのCIの構築は、ビルドスクリプト(Ant、Maven、Gradleなど)、継続ビルド(Jenkins、Go、Anthillなど)、リポジトリ(Nexus、Artifactoryなど)のさまざまなツールを使用して簡単に行うことができます。図書館の依存関係管理はJavaのためのヘアボールなので、MavenやIvyを使ってください。

デプロイメントは非常に荒く、成熟していない世界です。環境は潜在的にはるかに複雑であり、しばしばリレーショナルデータベースのような乱雑なJava以外のものも含まれます。スクリプトを手書きしたり、ControlTierやCapistranoなどを使うこともできます。

2

おそらくあなたが探しているのは、展開パイプラインを構築することです。ビデオの例をここで確認してください:http://www.youtube.com/watch?v=6CEQOuHM86Y これを達成するには複数の方法があります。病気が私に好まれるものを教えてくれます。

あなたが必要となりますコンポーネント:

  • VCSサーバ(SVN、Gitは)
  • CIサーバー(ジェンキンス、ハドソン、チームシティー)
  • ビルドツール(Mavenの、アリ、のGradle)
  • アーティファクトリポジトリ(Artifactory、Nexus)
  • 展開ツール(Rundeck、Puppet、Deployinator、Capistrano)
  • ターゲット環境(Tomcat 、JBossの)

ワークフロー:変更

2用

1)CIサーバーをポーリングのVCSサーバ)の変化が検出された(すなわち、コミット)、(アーティファクトを取得し、ジョブの実行を開始しますCIサーバーはテストをコンパイルして実行します)。 CI Serverは内部的にMavenのようなビルドツールを使用します。

3)CIサーバーのアップロードアーティファクトアーティファクトリポジトリ

4)展開ツールは、アーティファクトリポジトリを読み込み、展開されるアーチファクトのリストを提供し、加えてデベロッパー/オプスの組み合わせを選択することができるターゲット環境のリスト選択したサーバーに案件を展開します。

ツールを選ぶ瞬間のいくつかの基準を考慮してください。あなたが(200以上のターゲット環境のような)非常に大きなインフラストラクチャを持っている場合、人形劇のような堅牢なソリューションが理にかなっています。あなたが適度なものを持っているなら(10個のターゲット環境を考えましょう)、Rundeckで十分でしょう。また、リストされたツールのいくつかは無料ではないことを考慮してください(たとえば、Puppet Enterpriseは10ノードを超えて無料ではありません)。

関連する問題