図解で、IBMCloud, Code Engine(ソースコード編)
IBM Cloud の Code Engineは、サーバーレスのアプリ実行環境。アプリは、(1)コンテナイメージ、(2)ソースコード、(3)バッチジョブのいずれかから起動できる。AWSならBeanstalk、AzureならWebAppと同じかと思いきや、AWS Fargate, Lambda, Beanstalk そして Azure WebApp, Functions, Batch と同じことを IBM Cloud なら Code Engine ひとつだけで実行できるというので検証してみる。
Code Engine の中身
複数の仮想サーバーや物理サーバー上で稼働している複雑なコンテナ実行環境(Kubernetes + Knative + Istio + Tekton + 他)は、クラウドベンダーが管理・運用するマネージドサービスとして提供されるため、利用者はアプリをデプロイしたらすぐにインターネットからアプリにアクセスできる。アプリをインターネット公開するためのドメイン(URL)、SSLサーバー証明書、通信を暗号化するhttpsも全て備わっており、利用者が準備しなくてよい。
##(1)ソースコードを準備
- Code Engine で実行するアプリは、Docker チュートリアルの ToDoアプリ を使う
- CI/CDにはDockerfileを指定し、ビルドしたコンテナは IBM Container Registry に出力する
- 作成したソースコードは、下記 GitHub リポジトリに保存した
-
https://github.com/IchiroKano/todoapp
(2)IBM Code Engine を準備
IBMCloud 管理ポータルにログインしたら、新しいリソース Code Engine を作成する。
(2)-1. リージョンやプロジェクト名などを決めて Code Engine のプロジェクトを作成する
(2)-2. アプリを作成する(作成したプロジェクトの中に、複数のアプリを作成できる)
(2)-3. アプリの作成は、Github リポジトリのソースコードを選んだ
(3)アプリにアクセスする
はじめてアプリにアクセスするとき、最小インスタンス数がゼロの場合は、アプリ起動に時間がかかります。ブラウザでURLをクリックしたら数秒待ちます。起動後はアプリがサクサク動きますが、しばらく使わないとすぐにインスタンス数がゼロに戻ります。いつでも素早く使うなら料金かかるけど最小インスタンス数を1以上にしないとダメですね。
まとめ
プログラミングするパソコンにはGithubのCLIだけ使えれば、ビルド環境も不要で、ソースコードを変更するだけで、サーバーやOSなどのインフラ知識がなくても IBM Code Engine サービスを使って簡単に素早くWEBアプリを起動できました。近い将来、仮想サーバー(IaaS)やKubernetesコンテナ基盤を構築して運用するインフラ担当の仕事は無くなってしまいそうです。