はじめに

私が所属している事業部のミッションは、デジタルPMOとしてお客様の課題を抽出し、それに対するベストプラクティスを提供し、お客様のDX推進を支援していくことです。
DXを推進していくにあたり、従来のシステム開発のように要件を厳密に決め切ってから開発、テストを進めるウォーターフォール型の手法を取るより、要件を柔軟に見直しながら進められる、アジャイル型の手法が好まれることが多いように感じます。

そして、DXを推進する企業が増えていく中で、CRM(顧客関係管理)市場においてSFDC(セールスフォース・ドットコム)は世界No.1のシェア(※1)を誇ります。

今回はDX推進プロジェクトの開発において、アジャイル型手法に向くPaaS(Platform as a Service)製品のひとつで、PaaSの基本的なサービスを備え、クイックな開発と、Salesforceとのデータ連携を得意とする「Heroku」について簡単な概要と、Salesforceとの連携を実現するHeroku Connectについて紹介します。

※1
https://www.salesforce.com/jp/company/news-press/press-releases/2021/04/2104281/

目次

  • Herokuとは
  • Heroku Connectでできること
  • Herokuの導入を検討するべきポイント
  • まとめ

1. Herokuとは

Salesforce製品のひとつであり、PaaSと呼ばれるアプリケーションを実行するためのプラットフォームを提供するサービスです。
PaaSは、インフラ・DB・開発ツールが提供されているので、すぐにアプリケーション開発を行えることが特徴です。
また、Herokuの特徴のひとつである、アドオン機能のHeroku Connectを使用することで、簡単にSalesforceとのデータ連携を実装することができます。

【Herokuの主な特徴的な機能】

  • 有名なプログラミング言語を公式サポート (Java、Ruby、PHP、Python、Go等)
  • アドオン (アプリケーションの拡張、強化、管理機能を提供する)
  • Heroku Connect (アドオンとして提供するSalesforceとのデータ連携機能)
  • Heroku Runtime (実行しているアプリケーションの設定、負荷分散、フェイルオーバー、ログ収集などを管理)
  • GitHubとの連携
  • Heroku Shield (高いコンプライアンスを求めるアプリケーションに対し、高いセキュリティ機能を提供)

…etc

2. Heroku Connectで行えること

Heroku Connectでは、Heroku上に作成したDB(Heroku Postgres)にSalesforceのデータを同期することができます。(一方向または双方向)※一方向の場合、SalesforceからHerokuへのみ行えます。
DBに同期を行うので、SQLを使用してのデータ操作を行えるため、Heroku上で実行しているWEBアプリケーションから同期したSalesforceのデータを、参照・登録・更新・削除を行うことができます。

また、WEBのUI上からHerokuの管理画面を操作して、データ連携の設定を行うことができます。

3. Herokuの採用ポイント

プロトタイプや、お客様へのプレゼン用の簡単なアプリケーションであれば、無料プランを利用することですぐに作成を始めることができます。

小規模な社内プロジェクトや、スクラム開発など最小限の機能から実装するプロジェクトの場合にも、まずは無料プランから始め、必要に応じてスケールアウトを行うことができます。

アドオンを利用することで、メール配信、SSL、タスクスケジューラ機能など、アーキテクチャの検討構築を簡単に行うことができます。

【HerokuとHeroku Connectの活用例】

  • 年金関係組織において、Heroku上の顧客向けアプリと、バックエンドで使用しているSFDC間でのデータ連携
  • 非営利団体において、SFDC上の数百万のデータを、SFDCから移行予定のHeroku上の独自の管理コンソールへシームレスに同期

4. まとめ

Salesforceを導入しているお客様の新しい試みや、業務課題が発生した場合に、Herokuのアドオンによるログ管理(Papertrail)や、パフォーマンス監視(New Relic APM)等を活用することで課題解決や、新しい課題の早期発見を行うことができると考えています。
また、今後DXやスクラム開発といった、スピード感が求められるケースにおいて、ご紹介した機能を活用することで、早い段階から開発に着手することが可能となり、開発作業のスピード化につながると思います。