クラウドブースターの支援でモノリシックなつくりから、マイクロサービス化し Google Kubernetes Engine™ 上へ移行

ナレッジスイート株式会社

ナレッジスイート株式会社

  • 技術支援・開発
  • 情報通信・IT


(写真右から)
ナレッジスイート株式会社
・DX ビジネスユニット 先進技術開発部 マイクロサービス 1G 森本 史明 氏
・DX ビジネスユニット 先進技術開発部 マイクロサービス 1G リーダー 内田 貴与 氏
・DX ビジネスユニット 先進技術開発部 マイクロサービス 1G 片桐 諒也 氏
・DX ビジネスユニット 先進技術開発部 マイクロサービス 3G リーダー 船渡 秀一 氏
・取締役 執行役員 技術部門管掌 兼 先進技術開発部 部長 雄川 賢一 氏
・DX ビジネスユニット 先進技術開発部 マイクロサービス 1G 吉新 時生 氏
・DX ビジネスユニット 先進技術開発部 マイクロサービス 2G リーダー 吉村 一宏 氏

「能力をフル活用できる世界へ」を掲げ、クラウドサービスを通じて社員の知識やノウハウを可視化させ、変化し続ける生きた会社情報資産作りを自動化させることを目標に、営業活動における効率化を目的としたクラウドサービスの開発、及び販売を主たる事業とされているナレッジスイート株式会社に、今回、 VCRM と ROBOT ID のサービス開発秘話を伺いました。

プロジェクト概要

(雄川氏)
今回のプロジェクトには、フロントサイド 4 名、サーバーサイド 6 名、インフラ 2 名の計 12 名のエンジニアが参画し、クラウドエースの Google Cloud 構築支援サービスであるクラウドブースターを利用しました。クラウドネイティブな環境でマイクロサービスアーキテクチャを駆使しながら、安定したサービス提供を目指していくといった DX 事業の一環として、今回 VCRM と Robot ID のプロジェクトを進めました。また、2019 年 4 月頃に起きた障害で数日間サービス提供が出来ない状況に陥り「事業拡大には変革が必須である」と強く感じました。
その上で、この苦労して得た教訓を活かし、障害発生時の影響範囲の局所化などをを図りつつ、エンジニアの負担や運用コストを抑えた運用を目指しました。

VCRM について(船渡氏)

VCRM は Web 商談・Web 会議一体型アプリケーションとなっており、一般的な Web ミーティングツールに商談をより進めやすくした機能を追加したサービスです。当サービスの特徴はリモートワーク下であっても、このツールひとつで商談・会議をこなすことが出来、Web 会議室とアカウントを分離することで、作成するアカウント数ではなく会議室単位でご購入頂ける仕様になっているところです。
開発期間は短く、3 ヶ月ほどで要件定義からリリースまでを行いました。
当サービスをリリースしてから 4 ヶ月ほど経ちますが、現在は安定して運用することができており、お客様の声や社内からの意見を取り入れ、日々ブラッシュアップさせています。

Robot ID について(吉村氏)

Robot ID は認証基盤のサービスで、各サービスからシングルサインオン(SSO)を可能にするシステムです。システムはSAML認証を使用しており、これにより SSO 認証を可能にしています。強みとしては、二要素認証と FIDO 認証を擁することで、セキュリティを強化しています。さらにセキュリティのルール設定を可能にすることで、アカウントをグループ化すれば、権限などの一括設定が可能です。
最初にリリースしたのは VCRM で、ID プロバイダを開発し、併用することによって他のサービスも連携できるような仕組みを取っていきたいという狙いがありました。少しずつですが、アプリケーションを Google Cloud 上で動かし、Robot ID を介して連携していくという流れをつくっていきたいと考えています。

Google Cloud 導入経緯

(雄川氏)
実は元々 VCRM は他社から譲渡を受け、当社で運用を開始したサービスですが、開発担当の会社が数社ほど変わったりと複雑な経緯があったので、とにかくメンテナンスがしづらい状況でした。その上に新しい機能を追加するのは難易度が高く、ソースコードを利用しているライブラリなども古いバージョンで、刷新するのにコストがかかるということもあり、検討した結果、新しいサービスをいちから作り直していくことを決断しました。また、コロナ禍での世の中のリモートワークへの移行のニーズにも応えるかたちで、現在の VCRM が出来上がりました。

(吉村氏)
Robot ID のサービス提供は約 2 年前から開始し、当初は構築基盤として Google Compute Engine™ の VM インスタンス上に、アプリケーションをデプロイして運用をしていました。しかし、アプリケーション サーバーに GlassFish の類似サービスを利用していたことなど、開発や保守がしにくいという課題を抱えていました。そこでベンダーロックインを避けるためにも Google Kubernetes Engine (GKE™) を活用した、クラウドネイティブな開発環境にリニューアルすることを決定しました。
ナレッジスイートのリニューアルには GKE の活用が必須であり、上記の課題を解決するにあたっても、GKE との親和性を考えて Google Cloud の採用に舵を切りました。

クラウドエースとの出会いとクラウドブースターを利用してみて

(雄川氏)
2019 年 12 月に メンバーがクラウドエースの GKE トレーニングを受講させて頂いた際に、Google Cloud への移行を相談させて頂いたことがきっかけでした。
当初抱えていた課題が広範囲にわたっていたので、何からどう依頼すれば良いのか不透明だったのですが、営業担当の石塚さんよりクラウドブースターを提案頂いたことがきっかけで、利用することにしました。
2020 年 2 月から 5 月にかけて、社内でのナレッジを蓄積するために実際にクラウドエースのエンジニアにプロジェクトに加わって頂き、同年の 6 月から 9 月にかけては Slack 等を利用し、都度躓いたら相談をさせて頂くかたちでサポートをお願いしました。

(森本氏)GKE の設定自体が分からなかった際は、設定ファイルの実物を一緒に見て頂くなど踏み込んだサポートをしていただきました。躓いた部分を相談してアドバイスを頂き、その翌週に進捗をお見せして、作業中に生じた躓きに対してまたアドバイスをして頂くというサイクルを繰り返して、サービスのリリース日を迎えたかたちになります。
自分たちだけで開発していると客観的な視点が持てなくなり、落とし穴があっても気づかないことなどがあるので、そういった面も含めてサポートして頂けたのはこのサービスを利用した大きな利点だと思っています。

(吉新氏)GKE に関して知見がまったくない状況でのスタートだったので、実際に想定している構成や、セキュリティがしっかり担保できているのかなど、不安な点が多かったのですが、クラウドエースのサポートのおかげでひとつひとつ、自信と安心感を持って進めることが出来ました。小さなことでも、 気軽に Slackなどでご相談することが出来ましたし、毎週ミーティングをさせて頂くことで、課題を都度クリアにすることができたので、とても助かりました。また、サポートをしていただいた方々がとてもフレンドリーで、親身になってくださり、相談しやすい環境をつくってくださったのがとてもありがたかったです。
リリース直前にひとりで疑問を抱え込んでいた時も、すぐにレスポンスをしてくださり、一緒に開発を進める「仲間」のように接して下さったのが心強かったです。

1.システム構成について

(内田氏)Robot IDと VCRM では構成も使用プロダクトもおおよそ同じですが、サービスの種類と流用方法が異なり、VCRMは全部で 19 サービスと細分化されています。一方で Robot ID は 4 つとなり、サービスの粒度は異なっています。
双方ともコアとなるサービスはすべて GKE 上にあり、データベースは Cloud SQL の PostgreSQL を採用しています。また、各種セッション情報に関しては Memorystore の Redis に格納しています。一部、たとえば夜間バッヂだとか、ユーザー側の操作を元に監査ログを記録する部分については、リアルタイム性を必要としない情報なので、すべて Cloud Pub/Sub 経由で Cloud Functions を動かしています。こうして力量の調節をすることでコストを抑えることを可能にしています。
フロントサイドにおいてはセキュリティ機能に Cloud Armor を、負荷分散に Cloud Load Balancing を利用しています。

2.成果と気づき

(雄川氏)従来のシステムでは一箇所に負荷がかかったときに、そこに合わせるかたちでスケールアップしていくしか対処方法がない状況でした。この部分を解消していかなければ今後サービスのニーズが増えた際に対応できなくなるのでは、という危惧がありました。そこでモノリシックなつくりから、マイクロサービス化し GKE に載せ替えることにしました。負荷がかかってきた際に、オートスケールするという GKE の機能を活かすため、役割ごとにサービスを分けて配置するよう作り替えました。

(内田氏)GKEについて、高い処理能力が必要なところは能力の高いインスタンスを割り当てることができるなど、個別のサービス設定が可能なので、全体がひとつのサービスにまとまっているよりも、柔軟にカスタマイズが出来るところが扱いやすいと感じています。また、Cloud Identity でアカウントも一元管理し、簡単にセキュアな環境でドキュメントの共有が出来たので大変助かりました。

3.今後の展望

(雄川氏)VCRM については、社内外にヒアリングを行うなどして商談に特化した機能という特徴を更に進化させていきたいと考えております。また、新しいサービスを開発する際は分散データベース Spannerの採用 も視野に入れて検討しています。コネクションプール数の制約を受けにくい分散データベースの活用は、マイクロサービスアーキテクチャと親和性が高いと考えているので、検証を進めて有効であれば採用していきたい考えです。
将来的には、 開発した製品間や他サービス間を連携し利便性の向上を図っていきたいと考えています。

*この事例は Google Cloud Japan 公式ブログに掲載されております。
是非そちらもあわせてご覧ください。

ナレッジスイート株式会社:DX 化への加速と、障害時の影響範囲 局所化を狙い Google Cloud を採用
https://cloud.google.com/blog/ja/topics/customers/ksj-dx