【運用自動化コラム】第2回 

失敗しない自動化とは

谷川 晋悟

前回のおさらい

前回のコラムでは、運用自動化の進め方について触れました。運用自動化を行うとき、その基礎となる資料は手順書ですが、実際に自動化を始めてみると、手順書に隠れている様々な人間の判断や処理のあいまいさが浮かび上がってきます。

▼前回のコラムはこちら
運用自動化コラム 第1回 今から始める自動化

自動化」が抱くイメージ―

ところで、私たちが「自動化」という言葉を想像するとき、どのようなものをイメージするでしょうか。映画に出てくるような賢いロボットのように、すべての業務を処理し、障害が発生した時も、自律的な回復や要点を押さえた連絡を行うような完全なプログラムを「自動化」だとイメージするのではないでしょうか。

プログラムを「自動化」

このような「完全・かつ自律的な自動化」の理想のもと、「手順書に隠れていた、あいまいな処理や判断」が合わさると、どうなるでしょうか。完全な自動化を目指すあまり、あいまいな処理や判断を一つずつ、すべて確定していく作業が増えれば、技術的に実現できるかの検証も増えます。また前回のコラムで述べたとおり、問題発生時の自律的な対処も「どのような障害が起きたら、どう対処する」という、膨大なパターンの検証が発生します。その結果、自動化の道のりは非常に遠くけわしい、困難なものになってしまう……それら様々な困難を乗り越え、完璧に動作する自動化フローが出来上がったとしても、かかる時間と費用を考えると、割に合わないものになっているのではないでしょうか。 自動化を導入しても効果が出ない、高価なツールを導入したのに誰も使わない、割に合わない……というのは、ひとえに「自動化に対する完璧さの追究」にあると思われます。実はこれこそが、自動化が失敗する大きな原因です。

自動化を難しく考えないようにしましょう。ボタン一つですべてを行ってくれる人型のロボットのような、「人間の代わり」というイメージでとらえるのでなく、単なる道具、手足の延長としてとらえましょう。工場などにある、決まった部品を組み立てるだけの、動く場所が限られた、腕の代わりの機械をイメージしましょう。

機械イメージ

部分的、段階的な自動化の実装こそが成功の鍵です。今回は自動化の持つイメージを少し変えて、いま自動化を検討されている方のために、「失敗しない自動化」と題し、いくつかお話をさせていただきます。

失敗しない自動化:その1.手順書にかかわるデータを集めてみる

まずは部分的に自動化をするために欠かせないのは、手順書の再確認です。 手順書に書かれた作業をさらに細分化し、次のような観点で仕分けていきます。

・面倒な部分(感覚的、主観的でも大丈夫です。実際に担当されているオペレータとブレーンストーミングなどで話し合うのが良いでしょう)
・時間のかかる部分(具体的な時間などが集められればなお良いでしょう)
・オペレーションのミスが発生しやすい部分

面倒な部分というのは、手順に書かれていない判断や考え事、危険な操作が隠れている、という仮説をもって確認していきましょう。たとえばエラーかどうかを判断するのが面倒(エラーの基準がない、基準があっても数が多く、照合していくのが大変)、コマンドを間違えると重大なので緊張する(コマンドひとつが長文なのでチェックに時間がかかる)など、「面倒」には、様々な示唆が隠れています。

失敗しない自動化:その2.何が問題かを考え、自動化できるかを考える

このようにして集めたデータから、それぞれ何が問題なのかを考えます。そしてその問題に対して、自動化で解決できるか、できるならどういうステップで行うのが最適かを考えます。たとえば「面倒」なところについては、あいまいな判断や操作はさらにルールを細分化してからでなければ、自動化は難しいでしょう。その他、自動化だけにこだわらず、手順書の不備やコミュニケーションの悪さ、ツールの使い勝手や承認の複雑さなど、より多角的に確認してくことが大事です。

ここまで出来たら「その手順の中で一番自動化したいところはなんですか?」という問いを持って、それぞれの手順の中にある判断や操作をみてください。判断を自動化したいのか、操作を自動化したいのかを明らかにして、順番をつけていけば、自動化までに必要なルールの取り決めや、そのためのステップも大まかに見えていることでしょう。

失敗しない自動化:その3.難しい判断は「粗く絞って人にゆだねる」が効果的

複雑な判断を自動化する場合は、これも分解して、シンプルに判断できる部分から優先的に自動化していきましょう。 たとえば、「ある出来事に対して、A、B、Cという条件に合致するかを判断する」といった、いくつもの条件に照らし合わせないといけない場合、実装が容易なAの条件判断の自動化を先に実装し、それ以外のB、Cの条件判断は難しいようなら急いで自動化せず、「何かの出来事に対して、Aという条件に合致するか、それ以外かを判断する(自動的に判断が難しいB、Cについては、処理を一時停止して人に判断を求める)」というような、シンプルな二択にすることを検討してみましょう。

運用自動化イメージ

失敗しない自動化:その4.設計は大まかに、実装はトライ&エラーで

自動化ツールの良い点は、「プログラミングより開発・修正がしやすい」ことにあります。 操作を自動化するためのパーツはあらかじめたくさん用意されていますし、パーツを処理順に並べていくのはマウスで直感的に操作できます。さらにはこれらパーツの動作を確認するデバッグツールも非常に強力なものを各社が提供しています。 このように開発・修正が容易にできるものですので、事前に入念な設計書を作成して内容を確定させていくより、設計レベルで大まかな動作を取り決めたら、すぐにパーツの順序と動作をトライ&エラーで試行錯誤しながら実装し、特に合意が必要なポイントがあれば、その部分だけ細分化したドキュメントを作成し合意する方法のほうが、より効率が良くなります。

失敗しない自動化:その5.出来た順からリリースし、また設計へ

出来上がった自動化フローは動作確認を経たら段階的にリリースしていきましょう。 ひとつひとつは小さな自動化ですが、いち早く効率化の恩恵を実感できます。また、効果が薄い、難しいと感じたらすぐに別の業務の自動化に移る、といった柔軟な対応も可能になります。

段階的リリース

むすび:自動化は難しくない!(いえ、難しくしない!)

今回のコラムでは、複雑な運用業務は無理にすべて自動化せず、部分から段階的に自動化していきましょう……ということを中心にご説明しました。 完全な自動化を求めて要件定義や設計に時間をかけるよりも、自動化ツールの機能をよく理解したうえで、できるところから段階的に自動化に取り組むほうが効果と便利さを体感いただけます。 次回のコラムでは、実践編ということで、実際に弊社での自動化の取り組みをご紹介します。

<著者>
谷川 晋悟

<経歴>
プログラム開発やインフラシステム運用の経験を活かし、お客様の自動化要求に対するコンサルティング業務を担当。現在は、仮想化基盤(プライベートクラウド)の自動化案件に対する提案を中心としたプリセールスエンジニアとして従事。AIS認定 HP Operations Orchestration資格保有。

CTCシステムマネジメントコラム

ctcシステムマネジメントコラムでは、ITシステム運用の最新動向に関する特集・コラムがご覧いただけます。

ページトップへ