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

運用自動化によるインフラの運用コスト低減・効率化の取り組み(前編)

運用自動化によるインフラの運用コスト低減・効率化の取り組み(前編)

 

 インフラ部ツールチームの大山です。

 本稿ではインフラの運用自動化によるコスト低減・効率化の取り組みについて、2回に分けてお話しします。初回は、なぜインフラの運用自動化が必要で、どのようなアプローチで運用コストを低減させるかについて解説します。
 本稿がインフラに限らず、複雑で膨大な業務で忙殺されている人たちを救う手助けになれば幸いです。

背景・課題

 DMM が提供する多くのサービスは、事業部が企画・開発したアプリケーションと、インフラ部が支えるアプリケーションの実行環境(インフラ)から構成されています。以下は両者の関係を表した図になります。

 

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

図1:DMM.com のサービス・事業の裏側

 インフラ部は複数の事業部に対して共通のインフラを提供し、それらの運用を行います。そのため事業の増加・拡大に応じて、インフラの管理対象・規模、そして運用コストが増大します。

 そこで、以下の目標を達成するインフラの運用効率化に取り組み始めました。

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

インフラの運用効率化のアプローチ

 先述の目標を達成するための方法は様々考えられますが(図2)ここでは自動化による技術的なアプローチを選択しました。キーワードは "Infrastructure as Code" と "IFTTT" です。

 

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

図2:インフラの運用効率化の方法

Infrastructure as Code (IaC)

Kief Morris 著の『Infrastructure as Code』では、以下のように解説されています。

www.oreilly.co.jp

Infrastructure and software development teams are increasingly building and managing infrastructure using automated tools that have been described as “infrastructure as code.” These tools expect users to define their servers, networking, and other elements of an infrastructure in files modeled after software source code. The tools then compile and interpret these files to decide what action to take. 

[出典:Kief Morris(2016), Infrastructure as Code: Managing Servers in the Cloud, O'Reilly Media, p23]

 つまり、個別の機器やシステムを自動設定するたのスクリプトや仕組みにとどまらず、複数のシステムにまたがるインフラ全体のタスク(例えば、コンピュートリソースを確保してデプロイしサービスインするといった処理)をプログラマブルに記述できる仕組みだと言っています。
 ここでは、こうしたインフラ全体のタスクを記述したファイルのことを「ワークフロー」と定義します。

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

図3:Infrastructure as Code (IaC) による自動化のイメージ

 これにより、システムがどんなに多様化し、またシステムの規模が拡大したとしても一定のコストでインフラを運用できるようになると考えます。

IFTTT

 "IFTTT" は "IF This Then That" の略語で「あるシステムで発生したイベントを別のシステムの入力にする」という考え方です。エンジニアにとっては以下の仕組みが IFTTT の具体例として馴染み深いと思います。

 

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

         (*) (Created by FelicianoTech / CC 4.0)

 IFTTT をインフラの運用に応用することで、人間が判断し処理していた従来の運用と比べて迅速化し、アプリケーション開発(ひいては事業)の加速に貢献できると考えます。
 また、ワークフローによるインフラ全体のタスク実行と監視システムを IFTTT 連携させることで、24-365 で行う障害一次対応などの運用コスト低減につながることも期待できます。

 次回の後編では、こうした考えに基づいて開発された運用自動化システム StackStorm と、それを用いた DMM.com のインフラの運用自動化について解説します。

採用情報

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

dmm-corp.com