Azure Spring Cloudでブルーグリーンデプロイメントする
ブルーグリーンデプロイメントの話は勉強会で何回も聴いたことがあるのですが、実際に自分で手を動かして試したことはありませんでした。設定が大変そうだよなぁ、と思っていたのですが、Azure Spring Cloudでめちゃくちゃ簡単にできてびっくりしました。
手順はほぼこちらのドキュメントどおりです。
まずはAzure Spring Cloudインスタンスを作成します。画面でポチポチと作りました。間違えてBasicレベルを選択してしまったのですが、ブルーグリーンデプロイメントを試すにはStandardレベルが必要なのでご注意ください。(後から変えることは可能です)
インスタンスの準備はこれだけです。
続いてデプロイするアプリケーションを作成します。環境はDocker上のDebianで作りました。Azure CLIのAzure Spring Cloud 拡張機能が必要なため、以下の3行目で追加しています。
FROM maven:3.8.1-openjdk-11
RUN curl -sL https://aka.ms/InstallAzureCLIDeb | bash
RUN az extension add --name spring-cloud
VSCodeの拡張機能「Spring Initializr Java Support」でspring-boot-starter-webだけ追加したプロジェクトを作ります。
helloを表示するだけの簡単なアプリケーションです。
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.GetMapping;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/hello")
public String hello() {
return "hello";
}
}
ビルドします。
mvn clean packge -DskipTests
Azureにログインします。
az login
インスタンス上にdemoというアプリ(の雛形?)を作ります。
az spring-cloud app create -n demo -g springcloudrg -s kikutarospringcloud --assign-endpoint
デプロイします。
az spring-cloud app deploy -n demo -g springcloudrg -s kikutarospringcloud --jar-path target\demo-0.0.1-SNAPSHOT.jar
アプリのURLが表示されているので、末尾に /hello をつけてアクセスします。
helloが表示されました。
続いて、更新したアプリケーション(グリーン)を作成してデプロイします。コードは「hello」を「hello new release!」に変えただけです。
@GetMapping("/hello")
public String hello() {
return "hello new release!";
}
ビルドします。
mvn clean packge -DskipTests
グリーンデプロイ(と呼ぶらしい)します。
az spring-cloud app deployment create -n green --app demo -g springcloudrg -s kikutarospringcloud --jar-path target\demo-0.0.1-SNAPSHOT.jar
私は最初以下のエラーになりました。
Basic sku only allows 1 deployment under one app.
これは最初に書いた通り、プランがBasicでブルーグリーンデプロイメントに対応していないためです。画面からStandardプランにアップグレードして、再度デプロイしたら成功しました。
デプロイメニューを見ると、defaultとgreenの2つが並んでいます。
あとはgreenの方のメニューから「運用環境として設定」を選べば、こちらに切り替わります。
切り替えて再度アクセスすると、ちゃんと「new release!」がついた新しいアプリケーションに切り替わっています。
こんなに簡単にブルーグリーンデプロイメントができるんだ...!と地味に感動しました。(すごい今更ですが...)
Spring Cloudの話はかなり前にJJUGの勉強会で聴いていましたが、当時はなんとなく敷居が高そうだなぁ...と思って触っていませんでした。
今回、Azure Spring Cloudを触ってみましたが、すごく簡単でした。Spring Cloudについて改めて勉強したいなーと思いました。
Author And Source
この問題について(Azure Spring Cloudでブルーグリーンデプロイメントする), 我々は、より多くの情報をここで見つけました https://qiita.com/kikutaro/items/ac6cc3a3ab38cb5061ff著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .