IBM Cloud(PaaS)を使いこなそう!


始めに

この投稿内容は7/4に開催されたbmxug.tokyo これから始めるPaaS開発相談会(connpass)の内容です。
今まで、IBM Cloudを何となく触ってきたのですが、Bluemix User Groupの力をお借りして、今抱いているモヤモヤしたことへの解決策や、なるほど!というポイントをたくさん共有して頂けました。

当日の資料

@tokidaさんのPaaSに関する発表資料:こちら
@ssakaigawaさんのDevOpsに関する発表資料:こちら
私の発表(というか質問)スライド:こちら

この投稿では、私がCloud Foundryに対して勉強会前に抱いていた質問とそれに対するAnswerをメモしておきたいと思います。

質問1:接続って何ですか?

ダッシュボードの左側にある、「接続」。これやったら、何か良い事あるんですか?

Answer

この接続をする事で、環境変数(VCAP_SERVICES)に接続情報が設定されます。
こうする事で、連携するAPI等の資格情報をアプリケーションでハードコーディングする必要がなくなります。
また、接続するインスタンス(本番とテスト)等を切替るだけで、アプリケーションには一切の変更なく呼び出すAPIを変更することができたりします。

※下記は、Watson Assistantを連携させた時に作られる環境変数の例です。

    "conversation": [
        {
            "credentials": {
                "url": "https://gateway.watsonplatform.net/assistant/api",
                "username": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
                "password": "XXXXXXXXXXXX"
            },
            "syslog_drain_url": null,
            "volume_mounts": [],
            "label": "conversation",
            "provider": null,
            "plan": "free",
            "name": "Conversation",
            "tags": [
                "eu_access",
                "ibm_created",
                "ibm_dedicated_public",
                "lite",
                "watson"
            ]
        }
    ],

質問2:継続的デリバリー

GithubにPushしたら自動でデプロイまでしてくれる素敵なツール(Delivery Pipeline)が無料で使えますよね。

他に使える便利な機能はありませんか??

Answer

Pipelineでシェルを組んで、デプロイ前のテストの自動化をしたりできる。ただ、残念なところとしては、デプロイ前に承認プロセスを付けられないところ。(Pipelineが走ったら、そのまま本番までデプロイされてしまうPipelineをデプロイ前に中止する等の工夫をする事で対応はできるが、課題を感じる部分ではあります。)
他におススメの機能としては、Devops Insights。これは連携しているソース管理ツール(この場合は、Github)のリポジトリを自動でマイニングして、コミットされたタイミングやテストの状況を視覚化してくれます

質問3:可用性モニター

どんな使い道がありますか?

Answer

単純なpingを使った死活監視だけでなく、Seleniumを使った自動操作テストも出来ます。
その為、ログインして複数のページを遷移する等のテストが可能です。

質問4:アプリケーションログを簡単に見る方法は無いか?

現在、SSH接続して直接、ログが吐かれているディレクトリを参照しています。これを簡単にする方法は無いでしょうか?

Answer

標準出力されたアプリケーションログは、画面左側のログからKibanaを起動するとログを見る事が出来ます。
その中のsource_id_strに出力されるようになるので、ここを見ると良いです。
裏を返すと、ファイルにログをはいている場合は標準出力するように、アプリケーションを改修しましょうw
ちなみに、Laravelでのやり方(参考)はこちら

質問5:Kubernetesってどうですか?

今まではcf一本で開発をしてきましたが、やっぱり気になるKubernetes。ぶっちゃけてどうですか??

Answer

Kubernetesは、様々なコンテナを管理できるのが魅力です。例えば、アプリケーションからアクセスするDB環境をコンテナとして管理する方法等が考えられます。インフラやミドルからの視点では開発が楽になる技術だと思います。(資金があれば、DBをClear DB
ただ、Kubernetesに100の機能があったとしても、エンタープライズで利用する用途としては1か2程度かもしれませんが…

次回は2018/8/1に勉強会を実施する予定です!
LaravelやNode等、いろんな言語をデプロイできるIBM Cloudに少しでも興味がわいた方はぜひ!

関連リンク

IBM CloudにLaravelをデプロイする方法
IBM Cloudのツールチェーンを使って快適なDevOpsを実現する。(Laravel)