モバイル、ソーシャル、IoT…。デジタルを中心として、ビジネス環境が劇的に変化しています。そのような中で、顧客の変化に気付き、ニーズを汲む姿勢が企業に求められています。
今までのように、全ての要件をかため、長い開発期間をかけてシステム開発を行う「ウォーターフォール」型手法では、この変化の流れに対応することが出来ません。このような状況下で、情報システム部門には、短い期間で繰り返し開発やテストを進める、「アジャイル開発」型でのプロジェクト進行が求められています。
そのような社会の急激な変化・開発期間の単位が短くなる傾向から、昨今注目されているソフトウェアのアーキテクチャが「マイクロサービス」です。米国の著名なソフトウェアエンジニアである、マーチン・ファウラー氏らが2014年に公開した「Microservices」という記事が、このアーキテクチャが大きく知られる切欠となったと言われています。
マイクロサービスとは何か?また Salesforce Platform を利用したマイクロサービス的な開発手法についてご紹介します。
「マイクロサービス」は、海外ではAmazonなどeCommerce企業や、NetFlixなど新興オンライン企業で多く採用されており、日本でもLINEやクックパッド、Gunosyなどの人気サービスを抱えている企業がすでに取り入れています。
従来は、ある目的に対して、モノリシック(一枚板)なアーキテクチャでサービスを提供していました。対して、マイクロサービスは、個別に開発された小さなサービスを組み合わせて、一つのサービスを提供するというものです。
例えば、ユーザーがオンラインショッピングを行おうとする場合、オンラインショッピング全体がひとつの大きなサービスとします。
この大きなサービスを実行させるにあたって、マイクロサービスでは次のような小さいサービスを開発して、Web APIを通じて、各サービスを呼び出し連携させます。
こうすることによって、マイクロサービスでは、次のような利点が得られます。
つまり、用途・目的ごとに小さな(マイクロな)サービスを作っておくことで、「変化に強くて柔軟性の高い、アプリケーション開発を行おう」というのがマイクロサービスなのです。
このようにマイクロサービスは素晴らしい概念なのですが、そうは言っても、多くの企業が既にモノリシックなアーキテクチャでシステムを開発させているため、今更システムを分割させるのが難しいという声も良く聞きます。
そこで今後柔軟で迅速なシステム開発をする上で、Salesforce Platformという選択肢もあります。セールスフォース・ドットコムのSalesforce Platformでは、作成する機能やアプリケーションを標準でWeb API化することができるので、マイクロサービスとしても利用することが出来ます。
例えば、Salesforce PlatformのForce.comではロジックをGUIで簡単に生成するフロー機能がありますが、作成したロジックは、REST APIですぐに呼び出せます。またスキーマビルダーによって作成されたDBテーブルも、Web APIで登録や検索が可能です。
将来的により良いシステム開発を目指す上でも、出来るところからマイクロサービス的な考え方で開発してみるという姿勢で取り組むのはいかがでしょうか。さらにマイクロサービスについて知りたい方は、下記のマイクロサービス入門ガイドをご覧ください。
マイクロサービスとは何か?また Salesforce Platform を利用したマイクロサービス的な開発手法についてご紹介します。