自動化の手順書はどう作るか? 2022
ワイドテック プロダクト企画のYです。
もう年明けから2週間余りが経ってしまいましたが、本年もどうか、ITインフラ運用自動化ソリューション・POLESTAR Automationをよろしくお願いします。
今年で足掛け7年目を迎えたPOLESTAR Automationですが、年明け最初のPOLESTARチーム打ち合わせの席上、昨年1年間の当サイトのページ別アクセス統計を見ていたところ、最も読まれているページのひとつに、2016年9月30日付けの当コラム最初の記事のひとつ「自動化の手順書はどう作るか?」があり、参加者一同から驚きの声が上がりました。
と、いうわけで、新年最初の当コラムは、過去の記事を振り返りつつ、2022年の自動化手順書作成はどうあるべきかを論じてみたいと思います。
■はじめに「手順書」ありき
華やかで甘く耳あたりのよい宣伝文句が並ぶのは、運用自動化ツールに限らず、あらゆるジャンルのサイトや広告に言えることですが、運用自動化ツールを導入したからと言って、その日からいきなり既存の運用業務を自動化できるわけでは、もちろんありません。
まずは手順書を作り始めること、それが運用自動化のスタートラインです。
POLESTAR Automationを世に送り出した2016年当時、運用自動化ツールを指して「Runbook Automation(ランブック・オートメーション、手順書による自動化、ランブック自動化などの日本語訳あり)」、略して「RBA」という呼称がよく使われていました。ランブックというのは、「手順書」の意味です。
リリース当初、POLESTAR Automationを指すキャッチコピーのひとつとして「エンタープライズRBA」というものがありました。しかし、発売開始からしばらくすると、「RPA」なる略語が、IT関連のネットメディアなどに突如あふれるようになりました。こちらはRobotic Process Automation(ロボット的な業務プロセス自動化)の略です。とりわけ2017年には、IT業界を代表するバズワードになっていたと思います。
弊社自身も、展示会などにブースを出すたびに「これはRPAですか?」「Excelの入力が自動化できるやつですか?」などという質問を受けるのが常になっていたものです。
後から出たRPAの方が俄然有名になってしまったので、弊社でも混乱を避けてRBAという用語は自然と使わなくなり、代わりに「運用自動化ツール」とか「構成管理ツール」を使用するようになったのですが、製品の中身やコンセプトが変わってしまったわけではありません。
運用自動化は、昔も今も手順書(に相当するもの)を作り、整理するところからスタートします。手順書がない状態では、何もできません。そこはこれからもずっと変わらない、運用自動化の本質です。
■手順書の作り方は、2016年と変わったのか?
そもそも手順書とは、辞書的な意味では、何らかの業務・作業を、第三者が見てもその通りに実施できることを目的に、業務・作業を実施するための手順をまとめたものです。一般的には作業者(人)が読めるように、文書として作成されます。
運用自動化ツールにおける手順書(ランブック)は、コンピューター上で稼働するソフトウェアツールが読み取って作業を行うためのものですので、文章のように書いて行くわけではなく、広義の「プログラミング言語」で書くことになります。
以前書いたコラムでは、運用自動化ツールの手順書は、プログラミング言語に近い独自のスクリプト(書式)、ないしはプログラミング言語そのものをスクリプトとして利用し、手順書を書いて行く、とご紹介しました。ここも、2016年と基本は変わっていません。
当時と異なるのは、そのツール専用の独自スクリプトを必要とするものは退潮し、YAMLのような、ある程度標準化されたフォーマットを利用するものが普及していることでしょうか。
このYAML等による手順書記述は「Infrastructure as Code(IaC)」として知られるようになり、DevOps(デブオプス=開発と運用の融合・共同作業)や前回のコラムでもご紹介したSREなど、新しい運用スタイルを実現する上でもキーファクターとなっています。
オープンソースのツールとして著名なものとしては「Ansible(アンシブル)」があります。Ansibleでは、YAMLを用いて記述された手順書を「Playbook(プレイブック)」と呼びます。YAMLは、XMLやJSONなど、他のデータ形式と比べて読みやすく書きやすいとされていますが、プログラミング言語のソースと比べても直感的な印象があります。
実際にPlaybookは、箇条書きのようなスタイルで書いて行けます。階層構造や、ブロック記述的な書き方も可能です。
数ある運用自動化ツールの手順書書式で、「手順書」というイメージに一番近いのが、もしかしたらAnsibleのPlaybookかもしれません。
■スクリプト・コード型手順書の限界
しかし、DevOpsや前回の当コラムでご紹介したSREは、ムダな稼働を省いて開発・運用の効率を飛躍的に向上させる画期的な手法である一方、従来は分担が明確で、互いに融合し合うことのなかった開発と運用の従事者それぞれに、新しいスタイルへの適応を求めるもので、展開方法を誤ると目的を達成できないケースもあろうかと思います。
そして、さまざまな理由から、DevOpsやSREの導入に踏み切れない現場もあることでしょう。特に日本のITインフラ運用においては、業務をいわゆる「下請け」を含む外部に委託しているケースが多いです。
運用自動化、IaCを導入する目的のひとつに「属人化の排除」があるでしょう。DevOpsやSREなど先進的な運用手法を導入するまでもなく、属人化はインフラ運用において最大の課題であり続けています。
当コラムでもテーマとして何度も取り上げてきましたが、特定の業務が特定の人物に紐付いてしまうのが属人化です。その人物が急な退職、長期の病気休養などで運用業務に従事できなくなってしまったら、最悪、その業務は停止してしまったり、障害が発生しても対処できなくなってしまいます。
スクリプト・コード型の手順書を用いるCLI(コマンドライン)型の運用自動化ツールでは、ある程度習熟すれば作業者が自ら手順書を作成し、運用作業の手順をセルフで自動化することができます。しかし、ツールを導入する過程でそのツールの利用が特定の人物任せになり、他の作業者に使用方法が周知されないまま、新たな属人化を招いてしまっている事例も少なくないようです。
そうした上級作業者は、非自動化、非IaCの運用環境においても「スクリプト職人」と呼ばれるような、ハイスキルの人であることが多いです。
■対話型GUIツールで、属人化しない手順書を作ろう
一方で、商用製品を中心に、GUIを採用した運用自動化ツールが存在します。作業手順を流れ図として手順書化するフローチャート型、ウィザード形式のような対話型などのインターフェースがあり、POLESTAR Automationは後者です。
フローチャート型の手順書は、全体を画面上で俯瞰でき、誰の目にも作業の流れがわかりやすいものです。しかし、アイコンの並ぶフローチャート上の中身は、作りやすそうに見えて、結局各作業アイコン内にCLIのスクリプトを埋め込む必要があるという例が多いです。フローチャートは、全体の流れを示しているだけです。高度な作業を志向しようとすればするほど、それぞれのスクリプトの連携に気を使わなければなりません。
期待通りに動くものを作ろうとすると、結構な手間が掛かってしまいます。
対して、ウィザードによる対話型、ステップ型のインターフェースは、フローチャート型ほどビジュアルではありませんし、ウィザードの各ステップでスクリプトやコマンドの埋め込みが必要になるのは、フローチャート型と変わりません。しかし、作成手順そのものは非常にシンプルですし、それぞれのステップの目的も明確です。
GUIが威力を発揮するのは、作成された手順書(POLESTAR Automationでは「ジョブ」と呼んでいます)を用いた、実際の運用、特に運用を外注しているようなケースにおいてでしょう。
作成済みのジョブを実行するだけなので、本当に誰でもできてしまいます。
しかも、POLESTAR Automationでは、ジョブの実行結果、つまりそのジョブが成功したか、失敗してしまったのかがすべて記録され、失敗の場合はその原因を容易に把握することもできます。
■手間を掛けずに手順書を作るには?
しかし、そもそもツールを用いても手順書を作れそうなスキルのある人材がいない、でも運用の自動化は叶えたい…そのようなケースでは、どうすべきでしょうか?
それには、POLESTAR Automationが提供しているサンプルジョブを利用するのが近道です。
昨年、弊社POLESTARチームが特に注力したのは、導入してすぐに使える「ジョブテンプレート」の拡充でした。
1年間、各ジャンルにわたるジョブ開発作業を通じ、テンプレートの個数は年末を待たずに1,000個を突破し、本稿執筆時点では1,111個という、非常に切りの良い数字に達しています(狙ったわけではありません。偶然です)。
実は、2016年の記事においても、締めくくりでテンプレートが豊富であることを謳っていたのですが、当時は200もなかったと思います。そこから特に昨年は急激に数が増え、この数字となりました。
と、いうわけで、記事の結論は今回も同じ。
「POLESTAR Automationのテンプレートは、量よりも質と実用性を重視して作成・提供しているものですので、簡単な手直しだけで業務に適用し、本格的な運用自動化を手軽に行うことが可能です。」
まずは2016年当時にはなかった、評価版でお試しください。