
新しい技術が「まぶしい」――それはみんな同じ
「みなさん、デブサミとかつらくないですか?」
自己紹介の後、石田氏は会場に向かってこう問いかけた。デブサミはデベロッパーの祭典。心ときめくような最新技術が次々に紹介されるイベントだ。「みんなWeb系ですよね。いまはサービス系と呼ぶのかな。コンテナとか、クーべネティス? 何それ。そう思いませんか?」と笑いを誘いながら、多くのエンジニアが抱える本音を突く。現状の仕事と比べて、最新技術はあまりに遠くてキラキラとまぶし過ぎる。そんな思いを抱えているエンジニアは少なくないのではないだろうか。
「大丈夫です。みなさんひとりぼっちではありません」と、石田氏は続ける。IPAのIT人材白書によると、全てのIT人材の推定数は88万6000人。うち受託開発ソフトウェア業が約61万人。彼らは企業向けのソフトウェア開発を行っている層で、多くがそう簡単に「変われない」。実情としては、キラキラした新技術を使いたくても手が出せないエンジニアがIT人材の中では多数派ということだ。石田氏はそうした「(そう簡単に)変われない」環境でも進化していける方法について、自らの実践を踏まえ紹介した。
石田氏が所属するドリーム・アーツもまた、大企業向けのシステム開発やサービス提供をしている。代表的な製品のひとつが企業向け情報共有のためのポータル・グループウェア「INSUITE(インスイート)」。1997年から提供しているため、使われている技術はPerlやCGI、リレーショナルデータベースなどで、比較的古く、なかなか変われない技術たちだ。「ただし、開発の方法論はGitHubといった新しいものを着実にキャッチアップしている」と石田氏は補足する。
また、同社は2016年からビジネスチャットアプリ「知話輪」を提供している。こちらはFirebaseを基盤に、iOSやAndoroid向けにもアプリを開発。HerokuやAngularも使う。石田氏が「オシャンティーなアーキテクチャ」と話したこれらは、まさにキラキラまぶしい系の技術といったところだろうか。
昨年のデブサミ2017では知話輪のAPIやサーバーレスにした経緯などが詳しく語られた。一方、今年のテーマは「古くて変われないシステムをいかに進化させていくか」だという。
業務システムに新技術を導入することがいかに難しいか
2017年夏、INSUITE Ver.4.0がリリースされた。INSUITEは従来の機能や使い勝手はそのままに、知話輪と連携して自然言語解析やAI技術を取り入れ「コグニティブ・エージェント」へと進化。ベースのアプリケーションは以前のままでありながらも、自然言語解析ができるチャット機能など、新しいユーザー体験を提供できるようになった。
例えば、知話輪に「スケジュールを教えて」と入力すると、自分のスケジュールが表示される。そこで「招集」ボタンをタップすると、会議へ招待できたり、メンバーのためのワークスペースが作られたりする。会議に使われたホワイトボードの画面を添付すれば簡単な議事録になる。
自然言語解析はMicrosoft Azureのコグニティブサービス「LUIS(Language Understanding Intelligent Service)」を利用している。例えば「佐藤さんと明日、会議したい」と入力すれば、LUISが「Who=佐藤さん」「When=明日」「Intent=会議予約」と解析する。現在の解析機能はまだ完全ではないものの、学習を重ねてさらに精度を高めていくという。
近年、AIは飛躍的に進化している。これまで正規表現で苦労していたことを考えると、AIを活用することによって飛躍的に開発効率や作業効率の向上を期待できる。すぐにでも使いたいと思うのがエンジニアとしての本音だろう。
ただし、新技術を採用するには課題がある。特にレガシーな環境では「ITIL」や「ISO27001」「COBIT」などをベースとしたマネジメントシステムに適応していかなくてはならない。これらを順守するにはシステムのどの部分をどのように更新したかを記録し、テストを厳格に行う必要がある。石田氏は「金融や仮想通貨取引所など、お客さまの財産を守るようなところはセキュリティインシデントを防ぐようにしっかりと管理するべきです。管理をないがしろにするつもりはありません」と念を押す。
当然ながらシステム保守はしっかりしなくてはいけない。当然だ。分かっている。分かっていつつも、保守が厳格であればあるほど、新技術採用のハードルを高めることになる。両立はとても難しい。石田氏はロールプレイングゲーム風の地図を提示し、「ITILの洞窟とマイクロサービス城はこんなに遠い」と指し示した。チリ南端とヨーロッパ北端というくらいに真逆で遠い。

たたみかけるように石田氏は「ITILの洞窟が(新しいWebサービス導入にとって)いかに高難易度か」と指摘。「不具合や障害調査がオンサイト」「ログの取得に申請と説得が必要」「スケールアップまたはスケールアウトができない」「モノリシック構造でビッグリリース」などが課題として挙げられる。モダンな技術であればBlue-Green Deploymentや段階的リリースといった手法が使えるが、ITILが想定しているようなレガシーなシステムではWebサービスの存在が前提にない。そのため、そうした手法が使えない。なんとも惜しい。
実際、INSUITEと知話輪の連携ではどうか。INSUITEはオンプレミスの企業内ネットワーク上でPerlやCGIによって実装され、データはリレーショナルデータベースに蓄積されている。知話輪はサーバーレスのためWebサービスで稼働している。LUISはMicrosoft Azureにある。これらを連携するには、いくつかの壁が存在する。
まず、知話輪がINSUITEにアクセスしようとすると、ファイヤウォールを超えられない問題にぶつかる。自然言語解析のLUISがINSUITEのスケジュールデータにアクセスするには、APIトークンという壁が存在する。さらにINSUITEで使うリレーショナルデータベースでは新しいバージョンが使えない問題もある。

機能の一部をクラウド上に放出する、名付けて「ナマコ作戦」!
そこで石田氏が参考にしたのは、モバイルセキュアブラウザなどで採用されているアーキテクチャだ。企業のファイヤウォールの外にアクセスポイントを置き、外部から安全に企業内サーバーへアクセスできるようにする。高い安全性を確保するためのソリューションではあるが、「End-to-Endの暗号化はできず、HTTP/HTML的な脆弱性はそのまま露出されてしまう」といった懸念はある。それでもいいヒントを得られたという。
そして、石田氏は「ホルモン放出 ナマコ作戦」を考えた。ナマコは人間にもまれるなどの刺激を受けると、内臓を吐き出す。そこから名付けられた作戦だ。
具体的には、オンプレミス上にあるシステムの一部機能を外、つまりクラウドに出すということ。なぜそうするのかというと、新機能をオンプレミス側(ナマコでいう内臓以外の本体)に追加するのは難しく、マイクロサービスにした上で、外部からオンプレミス側と連携できるようにしたほうが都合がいいからだ。マイクロサービス化すれば、今後のリファクタリングもしやすくなる。このようにINSUITEはオンプレミスとクラウドで機能を分割し、必要に応じてやりとりをしている。

通信には「RabbitMQ」「Apache ActiveMQ」「Apache Kafka」などのメッセージ指向ミドルウェアを使いたい。しかしOSや可用性、バックアップなどを考えるとハードルが高い。そこで石田氏は「そうだ。SQLiteがある」と思いつく。
「SQLiteであれば、どんな環境にもなぜか入っている」と石田氏が話すと会場は笑いに包まれた。重要なのはライブラリであるということ。データベースではあるが、ファイルを開く感覚で使用できる。これで受け取ったメッセージをキューイングし、性能を損なわないように順繰りに実行することができる。
「巨大でモノリシックなシステムを一気にマイクロサービスに変換するには時間もパワーも必要。にもかかわらずユーザー体験はそれほど変わらない。それなら、新機能からマイクロサービスにしていけばいい。少しずつ工夫すれば徐々に機能を外部に出していける」
このアーキテクチャで思い浮かぶ懸念事項について、石田氏は次の通り補足する。まずはセキュリティ監査が通るのか。現時点ではクラウドの上の機能がデータを持たないことでクリアしている。単に通信しているだけ、ということだ。しかし今後、機械学習の導入などでオンプレミスのリソースが不足することになれば、外でデータ処理を行うことも検討しなければならない。その際、顧客のポリシーに違反しないかどうか、検討する必要が出てくる。
コストはどうか。現状クラウドサービスを使う費用は保守費用から捻出し、持ち出しとなっている。石田氏は「不具合修正パッチの適用コストと比べたら問題ない」と話す。新たにかかるコストよりも、これまでかかっていたコストを削減できる効果が大きいから割に合う。さらにクラウドサービスなのでスケールも容易だ。
強いて問題を挙げるとするとパフォーマンスだ。知話輪に入力してから自然言語解析し、INSUITEからスケジュールデータを引っ張ってくるまで、およそ2~3秒かかる。原因には、LUISのサーバーが海外にあるなど、さまざまな要素が絡んでいるようだ。しかし、知話輪が非同期動作のチャットボットであるため、そこまで大きな問題にはなっていない。
いくつかの課題はありつつも、「変えられない」環境で機能の一部をクラウドに移行し、マイクロサービス化して得たメリットは大きい。これがブレイクスルーの足がかりとなりそうだ。石田氏は「これでコンテナやサーバーレスなどのビッグウェーブに乗れます」と意気揚々と話す。
最後に、石田氏は新しい技術を取り入れることで開発者の生産性向上につながることを強調。古い技術を厳密に保守管理していると、なかなか生産性を上げられない。「みんなで苦労の連鎖を断ち切ろう。そして明日のエンプラ業界を変えていこう」と、石田氏は聴衆に呼びかけてセッションを締めくくった。
お問い合わせ
株式会社ドリーム・アーツ