Dreamforce2015 Day2: HerokuとSalesforce

Dreamforce2015 2日目のレポートとなります。

本稿のテーマは「HerokuとSalesforce それに関わるエンジニアとして」です。

皆さんご存知の通り、Herokuは2010年12月にsalesforce.com社が買収しました。Dreamforceでもそれほど多くはありませんが、Herokuのセッションが幾つか開催されています。Herokuはsalesforce.com社が買収後も様々な拡張を実施することにより、次々に色々な機能が追加されています。その中には当然ですがSalesforceと連携する機能もあり、現在ではSalesforceを中心とした業務システムを構築する際の選択肢として、Herokuもごく普通にその中に含まれてきています。

Dreamforce 2日目に開催されたHerokuのセッションのうち、本日は以下の2つに参加を致しました。

  • Cloud Platform for Developers:A Heroku Feature Tour
  • Secure Salesforce: Heroku Best Practicies

それでは、それぞれの内容について簡単ではありますがご紹介を致します。

Cloud Platform for Developers:A Heroku Feature Tour

前半は、セッション内でGitHubからHerokuにデプロイを行い、スピーディにアプリケーションを構築出来る事をアピールしていました。何度かデプロイ失敗していたのですが、場が和んでちょうど良かった...かもしれません。

デプロイ成功後は、Heroku Connect を使用して、Heroku上のアプリケーションとSalesforceを連携させていました。Heroku Connect はGAになってから1年ほど経ちますが、まだまだ実際の業務で使用するにはしっかりと動作確認や検証を行ってからの方が良いでしょう。しかし、Heroku Connect を使ってSalesforceとの連携が比較的容易に実現出来るのは大きなメリットになると思います。Heroku上に構築するアプリケーションは、Force.com上に構築するよりも遥かに制約事項が少なく、より自由度の高いアプリケーションの構築が可能になります。

HerokuとForce.com、それぞれの特性を把握し、長所を活かして短所を補うことによって、今まで以上により良いシステムを構築する事が可能だと思います。

Secure Salesforce: Heroku Best Practices

Herokuを使ってアプリケーションを構築する際に押さえるべきポイントを、BestPracticesとして紹介していました。

  • 2-Factor Authentication
  • Configuration Variables
  • Heroku Add-ons
  • Heroku Postgres
  • Heroku Redis
  • Adding a Data Service
  • Data Service Buildpacks
  • Rotating Add-on Credentials
  • Rolling Back

また、以下についてはPlatformの改善点として挙げていました。

  • Identify Federation
  • Pipelines

そして、目玉の一つである Heroku Private Spaces についても触れていました。以下はその構成要素となります。

  • Managed private cloud
  • Dyno Networking( Dyno-to-dyno communication )
  • Secure Data Services
  • Secure Enterpise Service Connectivity

詳細までは把握できなかったのですが、どんどん改善していってますよ!と言う、とても強い情熱が伝わってきました。

エンジニアとしてどう向き合うべきか

Salesforceだけで構築するよりも、Herokuを組合せて構築する事で、より柔軟に、より自由度の高いシステムが構築出来るのは何と無くご理解いただけたのでは無いかと思います。しかしながら、スピードと品質を両立させた状態でシステムの提案・構築を行うには、Salesforceの知識だけではなく、当然ですがHerokuの知識も必須となってきます。

Herokuのパフォーマンスを引き出すには、最低でも以下の技術や知識が必要になるでしょう。

  • git( GitHub )
  • 認証( SSOなど )
  • Postgres( 一般的なRDBMSの仕組み、SQL )
  • Redis( KVS、NoSQL )
  • CLIに対する慣れ

どれも一般的なエンジニアであれば、恐らくは問題ないと思います。例え上記の中で名前は聞いた事があるけど、実際に触ったことは無い物があったとしても、キャッチアップはそこまで難しくは無いでしょう。

しかし、SalesforceNative( IT業界の入り口がSalesforceである開発者達と定義します )のエンジニアだと話は別です。恐らくこの方々はこれらの項目に関してほぼ何も知識が無く、更に普段は意識しない部分であるため習得も容易ではありません。ですが、裏を返せばSalesforceのエンジニアでも、これらの知識や技術に触れる事が必要となってきた...と言うのは、エンジニアとしてはとても喜ばしいことだと思います。

Salesforceは優れたPlatformである事は間違いありません。しかし、その能力を引き出すにはSalesforce以外の知識や技術は絶対に必要となります。そして、他を知る事でSalesforceの良さを更に深く理解出来るはずです。

最後に

本稿では詳細に触れませんが、先日発表されたばかりのプラットフォーム Saleforce App Cloud は Force.com、Heroku Enterprise、Lightning、Trailhead、AppExchange などを統合的に扱うもので Salesforce1 の進化版と言われています。Salesforceは多種多様なサービスとの統合や接続を特に強く意識して、お客様に対して本当に素晴らしい価値を提供しようとしている様に思えます。

Salesforceの進化するスピードは早く、また App Cloude で様々なプラットフォームやサービスとの親和性もますます高くなってきています。Dreamforceの規模も年々拡大しており、ビジネスチャンスはどんどんと広がっていくでしょう。そのビジネスチャンスを逃す事の無いように、SalesforceやHerokuだけでなく、エンジニアとして必要な技術や知識はしっかりとキャッチアップしていきたいですね。

もちろん、技術や知識の習得は手段であって目的ではありません。技術と知識を得て、
エンジニアとして成長し、その力を活かしてお客様のビジネスを成功に導く...それが目的です。とても楽しく、そしてやり甲斐があると思います。

それでは、次のBlogをお楽しみに!