garbagetown

個人の日記です

Cloud Foundry ワークショップに行ってきた #cfws

04/18 に開催された Cloud Foundry ワークショップに参加してきました。

Open PaaS かつ PlayFramework 対応ということで Ruby で実装されていた頃から名前はよく耳にしていましたが、当時は PaaS をなんとなく制約の多い IaaS くらいにしか捉えておらず、あまり積極的にウォッチしていませんでした。

あれから数年が経って Docker や Spring Boot が登場した現在における PaaS の感触を持っておきたかったことと、なにより Pivotal Japan に行ってみたかったことから、業務をさっさと切り上げて参加してきました。

Introduction

30 分くらいと言いつつ 45 分くらい Cloud Foundry の紹介。

以下、当日のメモから特に印象に残った点。

  • Why PaaS?
    • インフラは PaaS に任せてリソースをアプリ開発に集中する
  • Cloud Foundry
    • OSS
    • エンドユーザ企業や日本企業も Foundation に参加
    • マルチベンダで実装。開発スピードが速い
  • Structure
    • CPI (Cloud Provider Interface) を提供する基盤であればどこでも動く
    • BOSH は超すごいオーケストレーションツール
    • Cloud Foundary はそれらの上で動く Runtime
  • Architecture
    • Go で書かれた REST API ラッパの cf コマンドで操作
    • cf push するとアプリケーションに応じた runtime をくっつけた droplet になって cell にデプロイされる
    • cell では Docker Image も動く
  • Service
    • データベースなどのバックエンドサービスは環境変数を通じてアタッチする
  • HA
    • コンテナ/プロセス/VM/AZ の 4 レベルで高可用性を実現
  • Cloud Foundry of Pivotal
    • PWS (Pivotal Web Services) : AWS 上で動作する web サービス。利用メモリ単位で課金
    • PCF (Pivotal Cloud Foundry) : private/public クラウドで動作する商用パッケージ。リッチな GUI など豊富な付加価値
    • PCF Dev : ローカルに PCF 環境を構築する Vagrant イメージ。メモリ 8GB 以上を推奨

ベンダロックインされない OSS 版 Heroku という印象ですが、自分で構築/運用するのはなかなか手強そう。大人しくフルマネージドな PCF の導入を検討した方が良さそうです。

WorkShop

@making さん恒例のサバイバルワークショップ。ある程度 Spring Boot を触っておかないと dependency をダウンロードしている間に置いていかれますw

お品書きはこちら。

  • Pivotal-Japan/cf-workshop: Cloud Foundry Workshop
    1. 事前準備 / Prerequisite
    2. 簡単なアプリケーションをデプロイ / Deploy hello world
    3. バックエンドサービスの利用 / Use backend service
    4. スケールアウト / Scale out application
    5. ログの転送 / Forward logging
    6. Blue-Greenデプロイ / Blue-Green deployment
    7. PCF Devを用いたローカルCloud Foundry環境

上記 1. は事前に済ますようあらかじめ連絡があり、当日は時間の関係から 2. から 4. まで実際に手を動かし、5. から 7. までは説明とデモでした。

実際に手を動かした部分では、やはり OSS 版 Heroku という印象。Heroku を使ったことがあれば、すんなり触ることができます。Spring または Play アプリケーションでのみ利用できる Auto Reconfigure という仕組みで Redis 接続先が自動的に切り替わるのが便利でした。

Blue-Green デプロイは、知識として知っているのと実際に目にするのとでは随分印象が違って、これぞクラウドという感じでした。オンプレシステムの移行案件で死んだ経験があったりすると涙なしでは見られないと思います。複数台のサーバがじわじわ移行していく Scaleover も面白かったです。

まとめ

12 Factor App を満たすクラウドネイティブなアプリケーション開発は今後ますます重要になっていくことを再確認しました。最近話題のマイクロサービスアーキテクチャと合わせて少しずつエンタープライズの世界にも浸透してくると思われるので、リードアーキテクト的な立場にいるエンジニアは三回目以降が開催されたら参加されることをおすすめします。

ただ、そんなマイクロでクラウドなアプリをどこで動かすかは状況次第かなと思います。大規模サービスをコア業務としているのであれば PCF を導入するメリットが十分にあると思いますが、小中規模の請負開発ではフィットしない場合もありそうです。

PCF がもっと広まると PWS の東京リージョンができて、そこで運用するという道も見えるかもしれません。少しでも興味を持った方は、まずワークショップに参加して、60 日間の試用期間を使い倒してブログを書きましょう!