定型作業の自動化とChatOps

こんにちは、技研の「むらたん」です。

今年度も開発技術SIGを継続することになり、引き続き、リーダーを務めることとなりました。
活動方針は以前のエントリーにもあるとおり、「技術を【自分たちのため】に活用して、プロジェクトの品質・生産性を向上させる」です。

今期のテーマは
「プロジェクト管理基盤の機能強化と全社標準化」
「定型作業の自動化」
としました。「プロジェクト管理基盤」は昨年からの継続活動であるため簡単に、「定型作業の自動化」については、詳しく紹介したいと思います。

プロジェクト管理基盤の機能強化と全社標準化

昨年度は「プロジェクト管理基盤の標準化」というテーマで活動し、プロジェクト管理に必要なソフトウェアをクラウド上にセットアップして、イメージファイルを配布する仕組みを構築・提供しました。
標準化活動については、細かな設定を行わずに利用プロジェクトの意見を踏まえて改善する方針としましたが、「基本の設定が欲しい」という要望が多かったという結果でした。

そこで、今年度は

  • 品質管理部門が提供するガイドの内容をセットアップし、説明資料も添付することで、基本となる管理標準を配布する。
  • 定量データの取得方針を定める。
  • 導入希望の多いソフトウェアを追加する。

という活動を行います。

定型作業の自動化

これまでも、プロジェクトでは定型作業は手順化してスクリプトを組み、1クリックで定型作業を自動実行するという行為はやってこられたと思います。
プロジェクト管理・運営で利用するツールが整うと、プロジェクトごとで行っていた定型作業の自動化がプロジェクト横断で利用できるようになり、結果として、組織の生産性の底上げにつながるので、今期のテーマとしてみました。

また、似たような考え方にChatOpsというものがあり、用語が流行していますが、ご存知でしょうか?ChatOpsとは、

  1. プロジェクトのコミュニケーション手段にチャットツールを導入し、
  2. チャットのメンバーにbotを常駐させ、
  3. プロジェクトメンバーがbotに対してチャット上で指示を出すと、botが処理を行う

というものです。
用途としては、アプリケーションのデプロイ作業のような実用的なものから、チャットを常時監視し、ネガティブワードを発見したら、その発言者を慰めてくれるようなエンタメ系まで色々と存在し、欲しいものが無ければ、自分で作れるような開発キットも公開されています。

しかし、受託開発事業が主体である我々の場合、プロジェクトによってはチャットツールを導入すること自体が難しいこともあり、ChatOpsだけを推進すると現場適用できない可能性が出てきます。
開発技術SIGでは、活動の成果を多くのプロジェクトに適用できるように、自動化したい定型作業を汎化し、実行方法をチャットツールに依存しないように実現するということを行っていきます。

自動化したい定型作業がチャットツールに依存して汎化が難しいとなると、切り口を変えないとなりませんので、チャットツールで何が出来るのかを見てみます。

Slackに見るChatOps(自動化)のポイント

Slackは流行しているチャットサービスです。使い方などはネット上に溢れているので、今回は割愛しますが、特徴は以下のとおりです。

洗練されたUI
  • 英語圏のサービスなのでメニュー等は全て英語ですが、チャンネルといったチャット界隈の用語が理解できれば、何となく使える点で優れたUIといえます。
カスタマイズ性
  • 個人ごとに配色のカスタマイズができたり、チームで絵文字のカスタマイズができたりと、サービスを使い続けたくなる機能が満載です。
  • PCやスマートフォンへのきめ細かい通知設定ができるため、自分が必要な情報は通知され、その他の情報は必要に応じて探しに行けるということが実現できます。
拡張性
  • 主にクラウドサービス事業者がサードパーティのアプリケーションを提供しており、連携することで、クラウドサービスで発生したイベントをSlackに通知出来るようです。
  • IFTTTのようなイベント駆動サービスとも連携できるので、簡単なものはノンコーディングでチャットに通知できるというのは便利です。
カスタムインテグレーション

コーディングが出来るとSlack APIを用いて、自分好みの機能拡張が行えます。

  • Incoming Webhook … 外部からHTTPアクセスを通じて、チャットへのメッセージ書き込みができます。
  • Outgoing Webhook … Webhookイベントを発生させることで、他のアプリケーションへの通知ができます。
  • Slash Commands … 定型作業をスクリプト化し、チャットにコマンドを打ち込んで実行できます。(考え方はOutgoing Webhookと同じ)
  • Bots … ボット稼働環境とWebScoket通信し、リアルタイムで双方向コミュニケーションが取れます。

最後に

他のチャットツールも見てみる必要がありますが、Slackについてはチャットツールに依存しないような定型作業の自動化ができそうです。SIGの活動状況はこちらで定期的に発信していきたいと思います。

  • このエントリーをはてなブックマークに追加