1

ec2 プラットフォームにデプロイして実行したい (単純なスプリング ブート) Java アプリケーションがあります。(カスタム EC2 ソリューションとは別に) OpsWorks と Beanstalkがありますが、OpsWorks の方が拡張しやすいので適していると思います。

ユーザー コードと ec2 プラットフォームとの間のギャップを埋めるのに最適なツールはどれですか? したい:

  • アプリケーションを適切に起動およびシャットダウンできるようにする。つまり、アプリケーションの再起動/停止/シャットダウン時に通常の終了フックを実行したい
  • アプリケーションの起動に失敗した場合に注意してください。(デプロイは成功としてマークされるべきではなく、アプリケーションは正常ではありません)。この部分はユーザー コードで準備が必要だと思います。セットアップが成功すると、コンテナーまたは実行スクリプトに通知できるようになります。

OpsWorks のデフォルトの Java 構成は、Tomcat の前に追加の apache httpd を追加します。この追加コンポーネントは好きではありません。エラーが発生した場合にデバッグする必要がある追加の部分 (タイムアウト構成など) が導入されるからです。

では、war または jar ソリューションをお勧めしますか? OpsWorks を使用しますか? また、OpsWorks を使用している場合、展開を管理するために追加のレイヤー/ツールを使用していますか? デプロイはコマンド ラインで実行できる必要があります (そのため、jenkins を使用してアルファ デプロイを自動化できます)。Maven 統合は便利ですが、必須ではありません。

4

1 に答える 1

0

AWS で Java または Spring Boot アプリを簡単にデプロイしたい場合は、Boxfuseを使用してください。

Spring Boot アプリケーションの場合、文字通り実行するだけで済みます。

boxfuse run my-springboot-app-1.0.jar -env=prod

この意志

  1. アプリケーションを起動できる状態で AMI を作成する
  2. Spring Boot 構成で定義されているヘルスチェック URL を使用して、Elastic IP または ELB を作成します。
  3. Spring Boot 構成で定義されたポートを使用してセキュリティ グループを作成します。
  4. 自動スケーリング グループを作成する
  5. インスタンスを起動します

以降の更新は、ゼロ ダウンタイムの Blue/Green 展開として行われます。

すべてのデプロイは、新しいインスタンスにトラフィックを送信して古いバージョンをオフラインにする前に、ヘルスチェックに合格することを自動的に確認します。

詳細: https://boxfuse.com/getstarted/springboot

免責事項: 私は Boxfuse の創設者兼 CEO です。

于 2015-11-13T14:49:44.437 に答える