SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2018】セッションレポート(AD)

業務システムでも最新技術を使いたい! ITILの壁を乗り越えるため、機能の一部をマイクロサービス化してクラウドに移行【デブサミ2018】

【15-C-6】サービスを成長させつづけるアーキテクチャ戦略 - サーバーレス・マイクロサービスハイブリッド手法

  • X ポスト
  • このエントリーをはてなブックマークに追加

機能の一部をクラウド上に放出する、名付けて「ナマコ作戦」!

 そこで石田氏が参考にしたのは、モバイルセキュアブラウザなどで採用されているアーキテクチャだ。企業のファイヤウォールの外にアクセスポイントを置き、外部から安全に企業内サーバーへアクセスできるようにする。高い安全性を確保するためのソリューションではあるが、「End-to-Endの暗号化はできず、HTTP/HTML的な脆弱性はそのまま露出されてしまう」といった懸念はある。それでもいいヒントを得られたという。

 そして、石田氏は「ホルモン放出 ナマコ作戦」を考えた。ナマコは人間にもまれるなどの刺激を受けると、内臓を吐き出す。そこから名付けられた作戦だ。

 具体的には、オンプレミス上にあるシステムの一部機能を外、つまりクラウドに出すということ。なぜそうするのかというと、新機能をオンプレミス側(ナマコでいう内臓以外の本体)に追加するのは難しく、マイクロサービスにした上で、外部からオンプレミス側と連携できるようにしたほうが都合がいいからだ。マイクロサービス化すれば、今後のリファクタリングもしやすくなる。このようにINSUITEはオンプレミスとクラウドで機能を分割し、必要に応じてやりとりをしている。

一部機能をクラウドに放出したINSUITEのアーキテクチャ
一部機能をクラウドに放出したINSUITEのアーキテクチャ

 通信には「RabbitMQ」「Apache ActiveMQ」「Apache Kafka」などのメッセージ指向ミドルウェアを使いたい。しかしOSや可用性、バックアップなどを考えるとハードルが高い。そこで石田氏は「そうだ。SQLiteがある」と思いつく。

 「SQLiteであれば、どんな環境にもなぜか入っている」と石田氏が話すと会場は笑いに包まれた。重要なのはライブラリであるということ。データベースではあるが、ファイルを開く感覚で使用できる。これで受け取ったメッセージをキューイングし、性能を損なわないように順繰りに実行することができる。

 「巨大でモノリシックなシステムを一気にマイクロサービスに変換するには時間もパワーも必要。にもかかわらずユーザー体験はそれほど変わらない。それなら、新機能からマイクロサービスにしていけばいい。少しずつ工夫すれば徐々に機能を外部に出していける」

 このアーキテクチャで思い浮かぶ懸念事項について、石田氏は次の通り補足する。まずはセキュリティ監査が通るのか。現時点ではクラウドの上の機能がデータを持たないことでクリアしている。単に通信しているだけ、ということだ。しかし今後、機械学習の導入などでオンプレミスのリソースが不足することになれば、外でデータ処理を行うことも検討しなければならない。その際、顧客のポリシーに違反しないかどうか、検討する必要が出てくる。

 コストはどうか。現状クラウドサービスを使う費用は保守費用から捻出し、持ち出しとなっている。石田氏は「不具合修正パッチの適用コストと比べたら問題ない」と話す。新たにかかるコストよりも、これまでかかっていたコストを削減できる効果が大きいから割に合う。さらにクラウドサービスなのでスケールも容易だ。

 強いて問題を挙げるとするとパフォーマンスだ。知話輪に入力してから自然言語解析し、INSUITEからスケジュールデータを引っ張ってくるまで、およそ2~3秒かかる。原因には、LUISのサーバーが海外にあるなど、さまざまな要素が絡んでいるようだ。しかし、知話輪が非同期動作のチャットボットであるため、そこまで大きな問題にはなっていない。

 いくつかの課題はありつつも、「変えられない」環境で機能の一部をクラウドに移行し、マイクロサービス化して得たメリットは大きい。これがブレイクスルーの足がかりとなりそうだ。石田氏は「これでコンテナやサーバーレスなどのビッグウェーブに乗れます」と意気揚々と話す。

 最後に、石田氏は新しい技術を取り入れることで開発者の生産性向上につながることを強調。古い技術を厳密に保守管理していると、なかなか生産性を上げられない。「みんなで苦労の連鎖を断ち切ろう。そして明日のエンプラ業界を変えていこう」と、石田氏は聴衆に呼びかけてセッションを締めくくった。

お問い合わせ

 株式会社ドリーム・アーツ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【デブサミ2018】セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10692 2018/03/07 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング