ITインフラSummit 2019 夏

事例から学ぶ、
ITインフラ業務の生産性を劇的に向上する
Ansible Automationによる自動化2.0の世界

レッドハット
テクニカルセールス本部
ソリューションアーキテクト
中島 倫明

これまで多くの企業がシステム運用の自動化に取り組んできた。しかし、劇的に効率が向上したという事例は多くない。レッドハットの中島氏はその理由を、従来の自動化は「自動化1.0」であり、自動化の効果を引き出すには「自動化2.0」への進化が必要という。自動化2.0とは何か。そして、それを実現するというAnsibleの実力とはどのようなものなのか。具体的な流れを交えながら紹介した。

DX推進や働き方改革に効果があり
3カ月での投資回収も可能

レッドハット
テクニカルセールス本部
ソリューションアーキテクト
中島 倫明

サーバー管理やネットワーク管理などのインフラ自動化は、IDCの調査によると未だ3~4割に留まっており※1、手作業に頼る部分が多い。従来の自動化はサーバーやネットワークのベンダーごとに個別の自動化ツールが準備されており、その時々で最適なツールを選定していくと、いろいろな自動化ツールが点在することになる。そしてそれが自動化のサイロ化を招いてきた。サイロ化が「このツールはあの人しかわからない」という属人化を招き、標準化と横展開を阻害してきたことで全体の効率アップにつながらなかったのだ。この自動化を推進するほどにサイロ化が進行してしまい、自動化の効果を阻害してしまうのが従来の自動化1.0が抱える大きな課題であった。

そのような中で大きくシェアを伸ばしているのがRed Hat Ansible Automation(以下、Ansible)だ。中島氏は、「現在のAnsibleは同種のツールと比較して圧倒的な支持を集めており、デファクトスタンダードとなっています」と胸を張る。

Ansibleを活用した自動化の効果は多岐に渡る。まず働き方改革だ。インフラのメンテナンスは就業時間外に行われることが多く、それを自動化できれば休日や深夜勤務を抑制できる。また、現在注目を集めるデジタルトランスフォーメーション(DX)にも有効だ。DXでは短いサイクルでの継続的な改善を前提としたシステム運用が求められるため、それを可能とするDevOpsの実現に自動化が威力を発揮する。自動化を進めることで、費用が高止まりしがちな、アウトソースから内製へシフト可能になる上、適正人員での運用により、高コスト体質からの脱却も可能。さらに、権限と環境の分離や証跡管理などにより、セキュリティ・ガバナンスの強化も可能となる。

国内の導入事例による効果として、たとえばある通信企業では従来200人時間かかっていたアプリケーションのリリース作業で90%の工数が削減できた。また、ある情報サービス企業では、12日かかっていたプライベートクラウドのリソース払い出しが10分に短縮。さらに仮想基盤で運用していた社会インフラ企業では、運用作業を70%削減。削減した工数を新たな仕事に振り替えることに成功している。米国の調査会社も、社員1000人の米国のマネージド・サービスプロバイダーによるAnsibleの導入により、ROIが146%、3カ月以下で投資回収ができ、運用効率化による1.3億円のコスト削減効果があったと報告している※2。「導入してから効果を得るまでの時間が非常に短いことがAnsibleの大きな特徴となっています」(中島氏)。

※1 2016年 国内システム運用管理市場 ユーザー実態調査(IDC #JPJ40607116)
※2 A Forrester Total EconomicImpact™ Study Commissioned By Red HatJune 2018

全員が多様なシステムを
同一のシンプルな方法で自動化可能

Ansibleの特長は3つある。まず1つが誰もが読める標準化された自動化言語「Playbook」によるシンプルさだ。簡単に指示を与えられるので、従来のプログラミングによる自動化とは違い、特別なスキルが必要ない。2つめが、LinuxやWindowsはもちろん、主要メーカーのネットワーク機器や仮想化基盤、クラウドサービスなど多様な環境に対応するパワフルさである。3つめがエージェントレスだ。このため、稼働中のシステムに手を入れることなく、後から容易に自動化ができる。

一般的な自動化プロセスは、最初に作成した設計書を元にパラメータシートを作成する。それを手順書に起こし、作業者が手順書を見ながら対象の環境に適用する。もちろん、サーバーとネットワーク機器ならそれぞれやり方が違うし、サーバーもメーカーによってツールが異なる。それに対してAnsibleによる自動化は、設計書と手順書を元にPlaybookへ落とし込めば、人が読んで理解できる手順書、パラメータシートとして機能し、そのまま実行できる。つまり、全員が同一のシンプルな方法で、サーバー、ネットワーク機器、クラウドサービスなど多様なシステムを自動化できる。さらに、自動化の対象の設定方法や、実行する際のログイン情報の渡し方といったルールやプロセスの標準化も実現する。このようにAnsibleでは自動化の「作り方」と「実行方法」の2段階の標準化により、サイロ化を解消することで、まず自動化1.0の課題を解決してくれる。

その上でAnsibleは、組織として自動化に取り組むために、誰かが作った自動化を共有し安全に利用するための権限管理、秘密情報の秘匿なども可能となる。さらに重要なのが自動化を「サービス化」する機能だ。中島氏は、「100の手順を1つにまとめて自動化したとしても、作業をするという本質は変わりません。自動化された手順をサービス化し、他の人が実行したり、別のプロセスで再利用できるようにすることで、さらなるスピードアップ、コスト削減、品質向上が可能になります」と語る。このような「サービス化」を目的とした新たな自動化を中島氏は「自動化2.0」と定義する。

自動化2.0実現への
具体的なプロセス

自動化2.0とはどのようなものなのかを「Webアプリケーションのリリース作業」を例に紹介する。これはロードバランサーの配下にある大量のWebサーバーのアプリケーションをバージョンアップする、いわゆる「よくある」インフラ作業だ。このような作業ではサーバーチーム、アプリチーム、ネットワークチームが連携して作業を行うのが一般的だろう。

典型的なインフラの作業は、工程を2つのフェーズに分けることができる。前半は作業のための情報共有や各種調整、作業プロセスの確認などを行う工程で、後半は実際にデータセンターで行うコマンドを入力する実作業の工程だ。このとき自動化1.0がアプローチするのは実作業が行われる後半部分になる。現場で作業者が投入するコマンドをAnsibleによって置き換える。

これに対して自動化2.0は作業の前半フェーズにアプローチする。「多くの人が関わり調整が必要な前半フェーズには多くの時間が費やされます。それに対して本番環境で行われる実作業は時間制限があるのが一般的で、例えば深夜0時から朝5時までなど、夜間に集中して行われます。この場合では、自動化1.0をどんなに頑張ってもこの5時間の効率化しか実現できないことになります。これは組織が大きくなるほど顕著に前半フェーズが膨らむこととなり、自動化で効果を出すには工数のかかる前半にアプローチしなければ効率化は進みません」(中島氏)。

では、Ansibleは、どのように前半部分にアプローチするのだろうか。この時に重要となるのが「サービス化」というキーワードだ。この作業においてネットワークチームは、作業の最初にロードバランサーを閉塞し、最後に再びロードバランサーを開放する役目を担い、その間はずっと待ち時間となる。このロードバランサーの閉塞と開放の作業をネットワークチームが自動化した上で、「サービス」として他チームに機能の提供をしたらどうなるだろうか。するとネットワークチームは作業の前半から後半まで一切登場する必要がなくなり、作業に参加するチームを3チームから2チームに減らすことができる。中島氏は、「3チームが関与すると3経路で調整・確認をする必要がありますが、それが2チームになると1経路のみの調整で済むため、これだけで全体の作業量を3分の1まで減らすことができます」と説明する。

同じように、他のチームも事前バックアップの作業やモジュールの更新といった小さな単位でサービス化していけば、最終的に一気通貫で自動化が可能になり、人が介在することなくアプリケーションの更新が可能となる。

「サービス化というアプローチで自動化を進める場合は、小さく簡単な単位で自動化を進めるのがお勧めです。小さなサービスは簡単に作れるし、再利用しやすいというメリットがあります」(中島氏)

最後に中島氏は来場者にネクストステップを紹介。これから自動化1.0にチャレンジする場合は、ネット上の豊富なユーザー情報を参考に、実際にAnsibleを使って自動化を体験することを推奨。「Ansibleは非常に簡単なので、1週間もあれば試せます」(中島氏)。一方、既に自動化1.0ができている場合は、実行結果の可視化や権限管理、ジョブスケジューリングといった集中管理を可能にするAnsible Towerを活用し、サービス化にチャレンジすることを推奨する。レッドハットはAnsible Towerの検証ライセンスを用意しているので、実際に試してみることができる。

お問い合わせ

レッドハット

https://www.redhat.com/ja/global/japan

▲ページの先頭へ