DigitalOcean App Platformについて
DigitalOceanはクラウドプロバイダーの1つで、マネージドKubernetesやDroplets(AWSで言うEC2)などを中心に、簡単に使えるクラウド環境を提供してくれるサービスです。
個人の検証用途では非常にお世話になっていて、PaaSが出たという以下のブログを見かけて使用感を試してみました。
このブログ記事では、このプラットフォームがKubernetes上で作られていることが示されており、オープンな技術でこのようなマネージドサービスが実現できるというのは良いことだなと個人的には考えています。
やってみる
https://cloud.digitalocean.com/appsにアクセスしてからLaunch Your Appを選択するとGitHubのアカウント紐付けを求められるので紐付けます。
今回はたまたま作ったこのToDoアプリのAPIサーバーがあるのでこれを選んでみましょう。
リポジトリを選択したらプランを選ぶ画面になりました。どうやら、Node、Python、Go、Ruby、PHPなどが選べるようになっているようです。Buildpackが裏側で動いてるのかもしれません。
とりあえずは一番小さなインスタンスで起動してみます。ログの一部を見ると、ビルドが始まって勝手にコンテナレジストリへのPushまで行われていることがわかります。
ログに以下のような記述があったので、やっぱりBuildpackが動いてるような気がします(予想)
go-todo | 03:20:55 Adding layer 'launcher' go-todo | 03:20:55 Adding layer 'heroku/go:profile' go-todo | 03:20:55 Adding 1/1 app layer(s) go-todo | 03:20:55 Adding layer 'config'
あとはほっといたら勝手にURLが払い出されて、実際にサービスにアクセスすることができました。
一つ気になったのが、Web画面からコンソールにアクセスできるみたいですね。触ってみた感じコンテナの中でシェルを立ち上げているようでした。便利なのなかんなのか、現時点ではまだよくわかりませんが、検証するときにはよさそう。本番では逆につけたくない機能ですね。。。
全体的には以下の点が良さそうでした
- Dockerfileがなくても勝手にビルドされてKubernetes上でアプリが立ち上がり、パブリックなエンドポイントまで用意してくれる。コンテナレジストリなどの心配もいらない
- ポート番号などは自動識別じゃないっぽい(初期値は8080固定?)
- git pushなどのトリガーに合わせて勝手に再デプロイしてくれそう
- コンソールに直接入って作業できるので検証が便利そう
- ログやメトリクスなど最低限のものは見れそう
- DBの連携もできそう
Cloud Runと比べるとDBの連携ができそうなのは便利ですが、シェルに入れるのは良いことなのか悪いことなのか、現時点ではちょっと判断が難しいですね。
全体的には便利そうでとても良いと思います!!