古いソフトウェアやソースを今でも活用していることが少なくない制御業界だからこそ、自社製の古いシステムからでもデータを取り出せるSplunkの恩恵を受けています。変化が難しい業界でも最新のテクノロジ一を使えるというところが大きな魅力
プラント関連設備の分散制御システムを中心とした制御分野のリーディングカンパニーとして業界をけん引する横河電機株式会社。新たにビジネスコンセプト「Synaptic Business Automation」を策定した制御事業では、長年培ってきた制御技術やソリューション、コンサルティングなどを融合させ、お客様の事業変革を強力に支援。制御事業だけでなく、計測機器を提供する計測事業や航空計器などの事業も展開しており、石油やガス、電力をはじめ、電気、電子、自動車産業の発展を支えています。
そんな同社では、プラントのライフサイクル全般で最適な操作・エンジニアリング環境を提供する統合生産制御システム「CENTUMシリーズ」などを展開していますが、各種ソフトウェアの開発プロセスに取り入れたDevOpsにおけるプラクティスの1つ“見える化・共有化”を実現する基盤にSplunk Enterpriseを採用しています。数年前からDevOpsに取り組んできたIA-SS システム開発センター システムソフトウェア技術部 チームリーダ 藤原 匠氏は「長年にわたってインフラの構築やビルド、デプロイなどの自動化を積極的に行ってきました。自動化がひと段落したいま、データを可視化してさらなる打ち手につなげていくための仕組みが必要だと考えたのです。Splunk Enterpriseにて可視化するだけで、新たな気づきが得られるようになりました」と評価します。
自動化を実現したDevOpsをさらに加速させるための可視化・共有化を目指す
そもそも同社がDevOpsに取り組んだのは、DevOps関連ツールとして著名な構成管理ツール「Chef」との出会いがきっかけでした。このChefを活用してソフトウェア開発基盤の整備にかかるプロセス改善を目指すなかでDevOpsを知り、その後テストプロセスやビルド時の操作を自動化する「Jenkins」などを自社のソフトウェア開発プロセスの一部に採用。このDevOpsによるアプローチが功を奏し、結果として自動化を大幅に進展させることに成功しました。そして、自動化のなかで得られた情報を可視化・共有化し、さらなる品質向上に向けて取り組んでいくことになったのです。特に、現在取り組んでいる継続的インテグレーションを実施する中で、情報をリアルタイムに可視化し、常にフィードバックを得る方法が課題となっていました。
過去にはプロセス可視化の仕組みを複数試した経験があったものの、なかなか現場に根付くものではなかったと藤原氏は振り返ります。「ツールが使いづらく、取得したログの有効な活用方法が不明瞭だったり、そもそも時間と手間がかかってしまったりなど、なかなか組織に根付いていかない状況が続いていたのです」。もちろん分析のためのデータ取得は可能ですが、開発者に依頼してExcelなどにログをエクスポートしてもらったり、管理しているソースコードに対して静的解析ツールをあてたうえでその結果を報告してもらったりといった、手作業で情報を収集する必要が出てきます。「我々のようなソフトウェア開発の成果物を管理する部署のために、定期的にデータを出すことに負担を感じる開発者が出てくるのは当然です。しかし、そうなってしまうと、開発者個人にしかデータが残らず、結果として属人化してしまう」と語るのは、同部 グループリーダ 多田 哲氏です。
そんな折、社内の情報システム部門から紹介を受けたのがSplunk Enterpriseでした。そのきっかけは関連部署を交えて開催された社内勉強会でしたが、実はDevOpsがテーマの勉強会ではなかったこともあり、すぐに役立つかどうかは当初は未知数だったと語ります。それでも、現状の自動化プロセスにおけるワークフロー内に組み込むことで、手作業でなくとも情報収集できることを高く評価した藤原氏。「Splunk Enterpriseを最終的なデータの格納庫として位置付けることで、自動化されたソフトウェア開発のプロセスにSplunk Enterpriseへのデータ投入プロセスを組み込むことができる。開発者に負担をかけずに情報収集できることが分かったのです」。
また、うまく活用できると実感したのは、実際にデータを投入したときでした。「ソフトウェア開発時に管理する変更履歴DBに関する活動ログをSplunk Enterpriseに投入したところ、平均を大きく超えて変更が行われた週が明らかになったり、忙しかったはずの週にあまり登録が行われていなかったりといった、これまで意識していなかった状況が明らかになったのです。単にデータがグラフになるだけで、新たな仮説づくりにも役立つことが理解できました。これは面白いと考えたのです」と藤原氏は評価します。
現在は、AWS上の仮想マシンインスタンス上にSplunk Enterpriseが展開され、AWS上のストレージにデータを格納するだけで自動的にSplunk Enterpriseへデータが取り込まれるようになっています。データソースとしては、アプリケーション開発基盤を静的に解析するツールの結果情報をはじめ、開発者の活動ログ、バージョン管理における変更ログ、DevOps系と呼ばれる各種ツールのログ、障害ログなどがその中心です。
Splunkの魅力については、新たな気づきを与えてくれることだと同部 課長 船木 陽氏は言及します。「ビジュアル化するだけでもこれまで見えていなかったものが見えてきますし、複数のソースをかけ合わせて多角的に見ることができるのも大きな価値の1つ。まさにデータ活用のプラットフォームとして、データを価値ある情報に変えてくれることに大きな期待を寄せています」。
藤原氏も、ソフトウェア開発に関連した複数のデータを投入してつなぎ合わせることで、容易に構造が想像できるようになることが大きな魅力だと語ります。「通常のDBであれば使い方を決めて構造設計を行いますが、Splunkであれば自由に取り込めるだけでなく、後から意味づけできるためとても便利です」。たとえ品質指標に関する新たな論文が発表された場合でも、データがそろっていて計算する方法が明らかであれば、すぐにSplunkで計算できます。「お仕着せの静的解析ソフトではなく、自分たちのオーダーメイドなソフトとして活用できるため、圧倒的に使いやすい」と藤原氏は高く評価します。
またサーチ言語であるSPLの表現力が高く、統計にさほど詳しくなくとも試行錯誤が容易だと評価します。障害情報と開発者の変更履歴を活用した例では、どのファイルを修正した後に障害が発生したのか把握できるのはもちろん、どのファイルが障害につながりやすいのか、ファイルを軸に可視化できるようになったと藤原氏。「新たな視点で分析できることで、これまで以上に有効なレビューが可能となりました」。既存データから価値あるデータが作り出せるため、ソフトウェア開発者として“楽して得する”ことにつながると語ります。他にも、Webブラウザ上で加工まで含めて処理できる使い勝手の面でも評価の声が上がっており「Webインターフェースはもちろん、Pythonなど他言語とのインターフェースを持っているのは、我々ソフトウェア開発者からするとありがたい」と藤原氏。
さらに、従来は出荷判定時など大きなイベントのタイミングでしか品質指標が確認できなかったものの、今では必要に応じて動的に指標が確認できるのは大きいと指摘します。「開発中のダイナミックデータといえば、これまでは進捗データがその中心でした。今では品質や難易度などさまざまな指標が可視化できるようになっています。また、出荷時に品質担保のために作成していたエビデンス資料も、今はSplunkからレポートを出すだけ。工数削減も含めたさまざまな効果が得られています」と多田氏。
今後については、複数ある社内の開発部署とも連携していきながら、開発の最適化を図っていきたいと藤原氏は力説します。「センサーなどへの組み込み開発を行う部署への展開など、アジャイル開発的なアプローチを社内に広げていく流れができつつあります。Splunkをきっかけに社内の開発者コミュニティ的な環境も広がり始めていますので、開発全体を最適化していけるよう、ハブとなる情報システム部門とも連携していきたい」。特に近年ではソフトウェアの難易度が上がっており、テスト工数も莫大なものになっています。「ソースコードの行数やサイズだけで判断するような昔ながらのメトリクスから脱却し、難易度や開発工数などから適切なテストプロセスを算出するような、まさに開発の最適化を目指していきます」と多田氏は力説します。
また、Splunkで分析した後にダッシュボードを活用してアラート表示を行うなど、業務ログも含めたデータ活用はもちろん、Splunk Machine Learning ToolkitなどAI技術の活用や、後段の処理につなげていくためのデータの置き場所としてのSplunk活用についても、今後検討して取り組んでいきたいと藤原氏は最後に締めくくりました。