新しい技術が「まぶしい」――それはみんな同じ
「みなさん、デブサミとかつらくないですか?」
自己紹介の後、石田氏は会場に向かってこう問いかけた。デブサミはデベロッパーの祭典。心ときめくような最新技術が次々に紹介されるイベントだ。「みんな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で使うリレーショナルデータベースでは新しいバージョンが使えない問題もある。