とあるStartupに勤めるエンジニアの技術ブログ

Salesforce、テスト関係の技術ブログなどを書く予定

Salesforce Evergreen に夢を見る

今年も技術系アドベントカレンダーの季節がやってまいりました。皆さま元気にお過ごしでしょうか?

先日 Dreamforce が開催され、まだ時差ぼけが治っていない方も多いかもしれませんが、クリスマスまで25日ですので、今日から毎日投稿されるアドベントカレンダーの記事を読んで楽しましょう!


この記事は Salesforce Platform Advent Calendar 2019 - Qiita 第1日目の投稿です。

qiita.com

はじめに

今年は Dreamforce では Developer 向けに大きな発表がありました。

そうです。

Salesforce Evergreen です。

Salesforce Evergreen とは?

Salesforce Developer Blog の記事によると Customer 360 Platform の新しい機能です。また、Salesforce Evergreen はフルマネージドな Kubernetes 上に構築されたサーバレス機能(Functions-as-a-Service)、一般的に利用される高性能なデータストア(マネージドデータストア)を提供します。

Salesforce Evergreen で何が変わるのか?

Salesforce プラットフォームでは苦手としていたことについて、解消されることが期待されます。その苦手なこととは下記のようなものです。

1. 重い処理を実行すること
2. 複雑なアーキテクチャを実装すること
3. 既存資産を活用すること

重い処理を実行する

Salesforce Evergreen では Function-as-a-Service によって機能を実装することができます。Saleasforce プラットフォームではマルチテナントを実現するためにサーバー処理能力を占有するような重い処理を実行することが苦手でした。 

Salesforce Developer の多くを苦しめているガバナ制約などの制限となります。Salesforce プラットフォームでも重い処理は非同期的に実行することで回避できることもありますが、それでも重い処理は Heroku や Amazon EC2 などの外部サービスにオフロードしていました。

今回発表された Salesforce Evergreen では、上記のようにして回避していた課題を Function-as-a-Service として実装することでよりシームレスに開発できるようになります。

 

Low Code で Salesforce 製品の機能を自社にフィッティングするだけであれば、既存の Apex を利用して Salesforce プラットフォームに実装しても大きな問題はありません。

しかし、AppExchange に登録されているような業務システム製品では勤怠計算処理、会計集計処理など計算量が多い機能がありますが、Salesforce プラットフォームの制約のため機能の一部を妥協していることもあります。

Salesforce Evergreen を利用することでより複雑・高負荷な機能を実装できるようになり、より優れた機能を提供できるようになることが期待できます。

複雑なアーキテクチャを実装する

Salesforce プラットフォームはすべてのプログラムを一つのものとして管理してしまいます。Salesforce DX CLI を使ったり、第2世代管理パッケージを利用したりすることで分割して管理できるようになってきていますが、Microservices まで分解して管理することはできませんでした。 

Salesforce Evergreen を利用することで機能を独立的に管理できるようになります。これによって開発するチームの責任分担もやりやすくなります。また、アーキテクチャも自由に設計できるようになるため、複雑な問題に対処するためにリッチなクラス構造を整えることができます。

 

加えて、Apex ではできなかったローカル開発が可能になり、ローカル環境で実行できる自動テストを実行できるようになります。Apex テストではテスト実行に時間がかかってしまっていた処理も継続的インテグレーション環境を構築し、並行実行することで時間短縮も可能になります。自動テスト環境は開発者にとっての基本的人権とも言えるところなので、この部分が大きく改善することは大きな意味があります。 

既存資産を活用する

Salesforce プラットフォームでは開発言語が Apex に制限されるため、Javaなどで開発した既存資産は利用できませんでした。Salesforce プラットフォームに業務システムを寄せようとした場合、必要な業務システムは Salesforce プラットフォーム上にすべて再構築する必要がありました。 

Salesforce Evergreen を利用すると JavaScript / Javaソースコードを実行できるため、既存資産にあるビジネスロジックを流用することができます。 

それ以上に既存資産として有効活用できるものとして、インターネット上に多く公開されているライブラリやフレームワークです。Salesforce プラットフォームではライブラリを一元管理する仕組みがなく、個別に再実装したり、ソースコードをコピーして利用していました。

パッケージ管理ツールで利用しているパッケージをインポートして利用できるようになれば、余計なソースコードの管理が削減できることは開発生産性にも効果的です。

Apex は生き残るのか?

さて、皆さん気になっていることではないでしょうか?

Evergreen の登場によって、Apex がオワコンになる可能性が高まってきますが、将来的には必要なくなってしまうのでしょうか?

 

私の答えは「なくならない」です。

 

なぜか?

それは、Microservices が通常の開発ではオーバースペックだからです。ちょっとインテグレーションしたい場合にそこまでやってしまうと構築コストが跳ね上がってしまいます。"No Code" では実現しきれなかった処理で、"Low Code" で実現するスクリプト言語としてはなくならないと思います。

 

では、その構築コストに見合う開発を行なっている人たちは誰か?

SIer の一部もそれに見合う人たちもいると思いますが、一番活用するのは AppExchange にプロダクトを公開している ISV/OEM パートナーです。彼らは Salesforce プラットフォーム上に巨大な業務システムを構築しています。一枚岩のシステムは巨大になると管理コストが負担になってきたり、複数の開発チームで分担しにくくなってきます。

それらの問題を解決するための手段として、Microservices が発明され、大きなプロダクトを持つ企業を中心に広まってきています。そういった意味では、Salesforce Evergreen は ISV/OEM パートナーに向けた機能追加と言えるかもしれません。

しかし、ISV/OEM パートナーもすでに Apex で記述した大量の既存資産を抱えているため、Salesforce Evergreen に容易にはトランスフォームできません。このトランスフォームをうまく成し遂げた、または新たに参入して Salesforce Evergreen を使いこなした企業が大きく成長するのかもしれません。

おわりに

Dreamforce で Salesforce Evergreen が発表されたことを受けて、どういった影響がありそうか考えてみました。ISV/OEM パートナーとして開発しているものとしては新しい挑戦ができる楽しみ、と、やらなければ生き残れないのでは?という焦燥感を抱きました。

2020年2月には Developer Preview として実際に触れる環境が提供され始めます。まだまだこれから情報が増えていく段階ではあるので、楽しみにして待ちたいと思います。

 

最後に、アドベントカレンダーSalesforce Evergreen について何かを書こうと思っていた矢先に、stomita (id:shinichitomita) さんによるガチ分析なブログが公開されました。非常に鋭く面白い内容ですので、ぜひそちらもどうぞ。

 

Enjoy Advent Calendar!

Salesforce Webinar 「Salesforce DX の始め方とパートナー様成功事例」にゲスト出演しました

こんにちは。

1ヶ月も経っていまさらな感じですが、2019年8月30日に開催されたセールスフォース・ドットコム社主催のウェビナーにゲスト出演しました。

 

今回のウェビナーでは、SalesforceDX の活用事例を2社、co-meeting木村さんと私から話しました。こちらから資料と動画を見ることができますので、よろしければご覧ください。

developer.salesforce.com

www.slideshare.net

続きを読む

JSTQB ALTM に合格したぞい

8月25日にJSTQB認定テスト技術者資格 Advanced Level <テストマネージャー>を受験しました。

そして、10月に合格発表が…。
www.juse.or.jp

まったく合格できる気がしていなかったのですが、なんと合格できました!
よかったー。
昨日、合格証書も届き、ちゃんと合格したんだなぁ、と実感が湧きました。

「Full Advanced Level Professional:テスト技術者資格 Advanced Level 完全上級テスト技術者」の称号を得るためにはあとテクニカルテストアナリスト(ALTTA)が必要なのですが、日本語で出題されるJSTQBではまだ受験できません。

うーん、英語が身につくのが先か、日本で受験できるようになるのが先か…。

Enjoy Testing!

「難しい」という言葉

「難しい」というのは思考停止だ、という人が結構いる。
本当にそうなのだろうか?

メンタリティが違うような気がする。

研究者やエンジニアにとって難しい問題はむしろ好物だったりする。
難しい問題は解決していく対象である。
本質的な解法がないとしても近似解を求めようとする。
なんとか問題を解こうとして何年でも取り組んでいく。

そして、エンジニアは難しい問題を解くための技術を持っている。
代表的なものは、「分割統治法(Divide and Conquer Method)」がある。

分割統治法 - Wikipedia

そのままでは解決できない大きな問題を小さな問題に分割し、その全てを解決することで、最終的に最初の問題全体を解決する、という問題解決の手法である。

この手法は、大学時代に卒業研究するときに教授から学んだ。
「ロジック・ツリー」といったほうが馴染みがあるかもしれない。

難しいからといって、諦めるとか、思考停止するとかする必要なんてない。
難しいことを認識して、正しい問題を設定、および分割する。
その上でトライ・アンド・エラーしながら、ひとつずつ解決していく。

それだけだ。

ぼくらはエンジニアなのだから。

Salesforce パートナーオフィスアワーにゲスト出演

AWS Summit Tokyo の期間中のとある2018年5月31日(木)にひっそりと開催されたパートナーオフィスアワー(構築力)Webinarにゲスト出演させていただきました。

あらすじ

テーマは

株式会社セールスフォース・ドットコムの川畑さんから頭出しとして米国で発表された資料をもとに概要を説明、株式会社フレクトの齋藤さんが実際に Salesforce DX を実戦投入したときの話を共有していく進行でした。
私は昨年の Salesforce World Tour Tokyo で発表させてもらった流れで合いの手を入れる係(発表ネタ、準備できなくてごめんなさい)。

続きを読む

JSTQB ALTA に合格したっぽい

2月10日にJSTQB認定テスト技術者資格 Advanced Level <テストアナリスト>を受験しました。

a-kura.hatenablog.jp

そして、3月末にその試験結果が発表されました。。。

www.juse.or.jp

なんと

受験番号的には合格しているっぽいです

よかったー

Enjoy Testing!

Developers Summit 2018 でパネリストしてきた

はじめに

2018年2月15日に翔泳社主催「Developers Summit 2018」のSalesforce特別トラックでパネルディスカッションしてきました。

【15-F-2】徹底討論!!Salesforceはエンジニアを幸せにするか?Powered By Tokyo Salesforce Developer Group

 徹底討論!!

タイトルとしては「徹底討論!!」ですが、30分に対してパネラーが5名もいたので「徹底討論」にならず、インタビューに近い形式になってしまいました(汗)。

さて、今回の登壇者は、

  • お客様のSalesforce組織をカスタマイズするSIer
  • お客様のSalesforce組織にインストールするアプリケーションを開発・販売しているISV
  • Salesforce Platform上にSaaSアプリケーションを開発・提供しているOEM
  • SalesforceとHerokuを連携したSaaSアプリケーションを開発・提供している事業会社

など幅広くメンバーが集っていたため、各メンバーの立ち位置がわかりにくかったかもしれません。

 

各者各様の立場から話しましたが、共通していたメッセージとしては、

Platformとしての機能が揃っており、少人数で開発できる

 ということだと思います。

ビジネス価値を多く速く提供するための手段として Salesforce を選択しており、ITをツールとして課題解決に重点を置く人にとって良いプラットフォームということでしょう。

まとめ

詳しい内容は、Salesforce MVP の讃岐さんがまとめてくれているので、そちらを見てください!(雑)

最後の質問コーナーでは質問が出てこないのに気を使って、灰色の服の方Salesforce MVP で Tokyo Salesforce Developer Group の現会長の米井さんが質問してくれました。

さすがの質問力でエンジニアが聴きたいと思っていることをずばり表現してもらったように思います。こちらも讃岐さんのレポートに詳しく書いてあるのでぜひどうぞ。

base.terrasky.co.jp

おまけ

Tokyo Salesforce Developer Group の Web サイトにSalesforce特別トラックのレポートはこちらです。

sfdg.tokyo

Enjoy Salesforce!