DMM.comの、一番深くておもしろいトコロ。

StackStormとIFTTTを利用した運用自動化によるインフラの運用コスト低減・効率化の取り組み(後編)

StackStormとIFTTTを利用した運用自動化によるインフラの運用コスト低減・効率化の取り組み(後編)

 

 こんにちはインフラ部の大山です。「運用自動化によるインフラの運用コスト低減・効率化の取り組み(前編)」では、以下の目標を達成するため、"Infrastructure as Code" と "IFTTT" というアプローチで、運用自動化に取り組んでいるというお話しをしました。

  1. インフラ運用の作業時間を短縮させる
  2. インフラの規模・種類の拡大・増加にかかわらず、運用コストを一定にさせる

 後編の今回は、我々が利用している運用自動化ツール StackStorm によって、誰に対してどのような恩恵が生まれ、それを今後どのように発展させようと考えているかについてのお話しをします。また、5月末に開催された StackStorm 勉強会で発表された StackStorm のユースケースについても紹介します。

 運用自動化に興味がある方なら StackStorm に関する知識がなくても読んでいただける内容になっていますので、どうぞ最後までお付合いください。

DMM.com における StackStorm のユースケース

 StackStorm では Exchange で提供されているプラグインを利用し、ここで示されている任意のシステムと、任意の組み合わせで、任意の処理(ワークフロー)を定義できます。

 「そんなものなくても、必要なシステムと連携するスクリプトを各人が書けばいいじゃないか」と考える方も居るかもしれません。しかし、その場合のスクリプトの安全性の確認や、コードのメンテナンスについて想像してみてください。実装したコードのテストを書き(場合によっては入念な実行動作の確認を行い)、バグ修正や機能改修が必要になった場合はコードのメンテナンスを各自で行わなければなりません。
 Exchange で提供されるプラグインを利用することで、各サードパーティシステムを操作する機能 (アクション) は StackStorm を利用するすべてのユーザによって利用・検証されます。したがってバグ修正や機能改修もコミュニティの協力のもと、ユーザ単独で行わなくて済むため、メンテナンスコストを大幅に減らすことができます。

 これにより、ユーザはどのシステムのどのアクションを実行し、どのようにパラメータの受け渡しをさせるか、といったシステム連携処理に注力できます。

 

 DMM.com のインフラではこれらを活用し、オンプレミスの仮想マシンの構築、及びデプロイの一部を自動化しています。具体的には、以下のように仮想サーバ基盤に対して仮想マシンを作成するリクエストを送り、インベントリ管理システムには、どういう用途・構成で誰が管理するものかといった情報を記録し、チャットシステムに対しては結果を通知するリクエストを送ります。こうした複数のシステムにまたがる処理を実行するワークフローを定義し、これを CLI, GUI 及び API から呼び出せる仕組みを提供しています。

 

f:id:ohyama-hiroyasu:20180710162106p:plain

  これにより、ユーザ(インフラの運用者)は個別のシステム(仮想サーバ基盤、インベントリ管理システム)に対するオペレーションを意識しなくて済むため、運用者の作業コストを軽減させること(冒頭の目標1の達成)ができました。また将来的に DNS へのレコード登録や、LB への追加といったように連携するシステムや運用作業が増えた場合でも、ワークフローを拡張することで、ユーザには意識させずにサービス・機能を拡張できると考えています。

 したがって、インフラが取り扱うシステムが多種多様化し、オペレーションが複雑化した場合でも、一定の人的・作業コストでの運用(冒頭の目標2の達成)ができるようになると見込んでいます。

 今後は、監視システムのアラート通知と連携した障害一次対応の自動化や、資産管理システムと連携した機材の棚卸しなどといった管理の自動化にも取り組んでいきたいと考えています。

補足

 StackStorm は CLI, GUI 及び API からのリクエストによるワークフローの実行のほか、自律的にサードパーティシステムのイベントを監視・検知する仕組み (センサとトリガ) と、指定された条件が満たされた場合にワークフローを実行する仕組み (ルール) を提供しています。先の インフラ部の菅野の記事 で紹介されている一部オンプレサーバの構築・デプロイの自動化も、これらの仕組みを利用したものです。

この他のユースケース

 5月末に実施された 第四回StackStorm 勉強会 にて、株式会社リクルートテクノロジーズ、ソフトバンク株式会社、そして NTT ソフトウェアイノベーションセンタによる StackStorm の利用事例が紹介されました。

 事業部、情シス、研究所と立場が異なる3者がそれぞれ、ユーザの利便性を高めるためのサービスや仕組みをStackStorm を使って構築・提供し、課題解決に取り組んでいる事例はどれもとても興味深い内容でした。

 勉強会の各セッションの動画 も公開されていますので、StackStorm の使い方について、より理解を深めたい方はぜひご覧ください。

おわりに

 今回は StackStorm を利用した、DMM.com のインフラを含む様々な課題解決の事例について紹介しました。

 もちろんすべての課題が自動化によって解決できるとは限りませんが、"Infrastructure as Code" と "IFTTT" によって解決が見込める課題については、StackStorm が解決のための有力な手法の一つになると思います。

 StackStorm 自体についてもっと知りたいという方は、StackStormで始める運用自動化 ~入門編~ もぜひご覧ください。

採用情報

DMM.com のインフラ部ではサーバエンジニアを募集しています。

dmm-corp.com