「サンデー」モデルを使用した Food Bank アプリケーションの構築
学習の目的
- CumulusCI の概要と Salesforce とのコラボレーションの関係性について説明する。
- GitHub の概要と Salesforce とのコラボレーションの関係性について説明する。
- CumulusCI の利点について説明する。
- オープンソースアプリケーション開発での CumulusCI の役割を説明する。
より良いフードバンクを作る — CumulusCI の紹介
Tasha は、Compa がすでに行った Salesforce 実装作業の一部を Maddie と共有したいと考えていますが、その方法については確信がありません。Tasha には Advocate Partners でコンサルタントをしている Isabel という友人がいて、最近彼女から CumulusCI というものについて話を聞きました。Tasha は Isabel から説明してもらうために彼女をアイスクリームに誘いました。
Isabel は、Salesforce.org では CumulusCI と呼ばれるコラボレーションツールセットが使用されていると説明します。CumulusCI は Cumulus Continuous Integration (Cumulus 継続的インテグレーション) の略で、Cumulus は積雲を意味します。Salesforce.org が管理パッケージを継続的に構築・配信することから命名されました。CumulusCI は従業員、パートナー、コミュニティのコラボレーターが使用することができ、Salesforce 関連のプロジェクトに取り組んでいる誰でも Salesforce サンデーのレシピを作成できます。
そして、誰でもそのレシピを使って、まったく同じ Salesforce 組織を新しく作成することができます。要するに、Tasha は自分、Isabel、Maddie (さらに他のフードバンクのシステム管理者やスタッフが参加したければ彼らも) が使用できるように CumulusCI で Compa サンデーをコピーできるのです。そのうえ、CumulusCI ではブレインストーミングしたり、新しいフレーバーやトッピングを試したりする別個のスペースを作成できるため、元のサンデーはそのままで変更されません。
大変な作業のようですが、Isabel は CumulusCI の次の重要な概念を理解すればよいと説明します。
- 共有 — CumulusCI はオープンソースとして利用できます。つまり、誰でもどこでも利用できます。また、プロジェクトをすばやく簡単に開始できるように設計された多数のプロセスとワークフローがあらかじめ設定されています。
- 設定とカスタマイズが可能 — CumulusCI は、どのようなプロジェクトにも適応できるように作られており、新しいオートメーションの追加、データの読み込み、メタデータの設定、連動関係の管理が容易です。
- 移植可能なオートメーション — CumulusCI では、プロジェクトのすべてのオートメーションニーズに合わせて再利用可能なレシピを作成できます (毎回同じように組織を構築して設定するなど)。CumulusCI のオートメーションは、プロジェクト内で定義して保存されるので、コンピューター、クラウドを問わず、自分の作業に使用可能でどのコンテキストにも適用されます。
バージョン管理での GitHub の役割
次に、実際のコードとカスタマイズを 1 か所でホストするために、業界標準のバージョン管理ツールである GitHub を使用すると Isabel は説明します。つまり、サンデーのレシピは GitHub に保存されます。そこで変更を追跡したり、参加しているあらゆるコミュニティメンバーのコントリビューションを組み込んだり、他のユーザーの作業が誤って削除されないようにしたりできます。GitHub ではすべてのリビジョンが自動的に管理されているので、適切に設定されてさえいれば、すべてが台無しになることはありません。
ツールの連携
CumulusCI と GitHub は成功する Salesforce オープンソース開発プロジェクト運営の要です。GitHub にはサンデーの盛り付け手順が保存されており、CumulusCI はサンデーの盛り付けを行う工場です。このモデルでは、Salesforce 組織はもはやカスタマイズの情報源ではなく、GitHub リポジトリがプロジェクトの礎となります。使用、開発、またはテストするカスタマイズを GitHub リポジトリから見つけて組織に取り込みます。カスタマイズ管理のために GitHub を使用すると、他にも多くの機能を利用できます。発生した変更をその都度記録するバージョン管理を使用したり、同僚と一緒にレビューしたり、チームメンバーとコラボレーションしたりできます。さらに、カスタマイズを GitHub 1 か所に保存することで、CumulusCI のカスタム Salesfordce 組織のインストールと設定のオートメーション機能を活用できるようになります。
次のステップ
ゆっくりと着実な開発作業が始まります。Tasha と Isabel は、自分たちの業種と Hunger Northeast のような他の団体の役に立つ素晴らしい機会を見いだしました。Maddie にとって何より嬉しいのは、このプロジェクトが Maddie の貴重な時間をそれほど必要としないことです。Maddie のこの分野での専門知識と団体に関する洞察はコントリビューターとして貴重であり、Tasha と Isabel は Salesforce の活用経験をプロジェクトに生かすことができます。
コミュニティプロジェクトに参加することで、Maddie は自分だけでは (多分この新しい友人グループでも) 見つけることができない、Hunger Northeast の組織的な課題のソリューションを見つけます。
Isabel、Tasha、Maddie と一緒に、CumulusCI を使用して Food Bank アプリケーションを開発するステップを確認してください。
- CumulusCI を設定する
- カスタマイズ内容を捕捉する
- デモ用データを使用してアプリケーションのストーリーを作成する
- プロジェクトを管理パッケージに変換する
- ニーズに合わせてユーザーがアプリケーションをさらにカスタマイズするのを手助けする