
- ライター:由原 亮太
- 新卒入社後、主にCisco製ルータ担当として技術調査、検証評価、提案および導入支援に従事。
現在は担当領域の拡大に伴い、無線や認証、仮想化など幅広く対応中。
目次
はじめに
ネットワンシステムズ 応用技術部の由原(よしはら)です。
私たちネットワンシステムズの応用技術部に所属するシステムエンジニアは、ネットワンシステムズが取り扱う製品に関する社内における技術担当として業務にあたっています。
私であれば主にCisco Systems社製のエンタープライズネットワーク製品に関する技術担当をしています。
応用技術部の主な役割として担当製品の機能や性能に関する検証やレポート化からネットワーク設計の支援、新製品が出た際には社内に対して製品紹介やトレーニングの実施を行っていますが、昨今であればネットワン独自のサービス開発なども行っており、業務は多岐に渡っています。このような業務以外にもいわゆる定型業務と呼ばれる内容も様々存在しています。
場合によっては定型業務の量が増加してしまい、メインの業務に注力する時間を捻出することが難しくなることもゼロではありません。
今回は注力業務への時間確保を行うために行った定型業務の自動化検討の活動についてご紹介します。
定型業務の自動化
今回、私が自動化を行った対象業務は、ネットワンが取り扱っているメーカ製品の重大な不具合や脆弱性に対する、マーケニュース(社内への通知記事)の作成を行うという業務になります。
私を含めて弊社の製品/技術担当SEは社内に向けて技術的な支援を行うだけでなく、弊社が取り扱う製品に重大な不具合や脆弱性が存在しないかを随時チェックし、社内基準に従ってマーケニュースという形で社内へ通知、営業からお客様へお伝えする業務の一旦を担っています。
現在この業務は大きく分けて3つのステップで成り立っています。
Step1:担当製品に対して重大な不具合や脆弱性がメーカから新しく報告されているかを確認する
Step2:メーカから報告された重大な不具合や脆弱性情報の詳細内容、回避策および解決策について、内容の簡潔化および翻訳を実施してマーケニュース原案を作成する
Step3:管理職がマーケニュースの承認を行い社内へ発行する
自動化を行うにあたり、Step1の動作がシステムの起動トリガーとなる部分であり、ここが正確に検知できない場合、システムが正常稼働しなくなってしまいます。
現在このタスクに関する手順は担当者に一任されており、担当者ごとの確認方法がありますが、都度メーカページにアクセスし、目視確認を行わなければならないケースも存在しています。
そのため、自動化を行うにあたって、まず初めにこの部分に対して、メーカからの情報のアップデートを確認するためのフローを定義する必要がありました。
情報のアップデート先であるメーカページがRSSに対応している場合はRSSを利用し、RSSに対応していない場合はWebページのソースコード内の特定領域を確認することによって、情報のアップデートを確認する方法を検討しました。
結果として意図した動作を行うスクリプトが用意でき、アップデート情報の確認手法を確立することができました。
起動トリガーが出来上がった後は、メーカページからアップデート情報が記載されているソースコードを取得し、マーケニュース作成に必要な情報を抜き出して自動翻訳を行うシステム部分を開発します。
情報の抜き出しに関しては、PythonであればSeleniumやBeautiful Soupのライブラリを利用することで、比較的容易に実現することが可能です。その抜き出したデータを翻訳APIにかけて、必要な要素を抜き出すという動作で実装を行いました。
自動翻訳に関してはすでにサービスとして展開されているGoogle TranslateやMicrosoft Translatorといった翻訳サービスのAPIを利用することで、精度の高い日本語訳が行うことが可能であり、語学があまり得意ではない人間でも短時間でマーケニュースの作成できるような手助けとなります。
このシステムの注意点として、企業のポリシーなどでデータの取り扱いに制約がある場合には、翻訳データをサービス側で保管しないような取り扱いを行うことができる翻訳サービスを選定する必要があります。
自動化施策での気づき
業務において様々なシステムが利用されており、全ての定型業務が自動化の対象となるわけではありません。
業務の自動化検討対象の利用システムが、外部のソフトウェア経由で操作ができるのか、操作できたとしても企業の運用ポリシー的に問題はないのかなど、事前に把握しておく必要があります。把握せずに自動化システムの構築を始めてしまうと、結果として途中で中止せざるを得ない場合もあり得ます。
仮にシステム側が全自動化に対応していたとしても、自動化を行った結果、業務上のトラブルに繋がる可能性がある場合、技術的には自動化が可能でも、企業としての導入はNGとなる可能性が高くなります。
このような結果になってしまわないよう、事前に対象業務の手順を明確化し、成果物が企業のシステムとして稼働可能なセキュリティポリシーを満たせるか、社内プロダクション環境にシステムを構築する際にかかる予算を捻出可能か、API廃止やWebページのソースコードの変更などが発生した際の対応体制の維持が可能かなど、事前に自動化を推進して良いかのチェックが重要です。
最後に
私が行った業務自動化の施策について紹介させていただきました。
今回の開発で業務開始の起点である情報入手漏れの防止、必要情報の抜き出しと自動翻訳による業務時間の短縮を実現することができ、日々の業務を一部でも手放せたことで、主たる業務に対して注力する時間が捻出でき始めているように感じられています。
引き続きタスク管理ツールと連携させるなど、自身のタスクだけではなく、業務全体をより円滑に進められるように拡充を図っていきたいと思います。
私自身プログラミングの経験が深いわけではありませんが、こういった取り組みを通して自身のスキルアップにも繋げていければと思います。
※本記事の内容は執筆者個人の見解であり、所属する組織の見解を代表するものではありません。