SIの労働生産性を高めるIaCとは?ITエンジニアのためのコミュニティ「IaC活用研究会」キックオフイベントレポート
IaC(Infrastructure as Code)によるSIの労働生産性向上を目指すコミュニティ「IaC活用研究会」のキックオフイベントが1月23日に開催された。本稿はセッションの内容をレポートしていく。前日、関東は大雪に見舞われたが、懇親会まで非常に賑わいをみせていた。
※登壇者肩書はイベント当時のもの
冒頭のオープニングセッションでは、TIS株式会社の倉持 健史氏が登壇した。SIに関わるエンジニアの課題として、無駄な作業やヒューマンエラーの削減などを挙げ、IaCがこれらを解決するために有用であると語った。IaC研究会は「エンジニアの生産性を高めることを目標とし、IaCを軸に活用方法や情報を共有することが目的」と概要を説明した。
参加者を対象とした事前アンケートでは、IaCの理解度・認知度において「IaCを理解し、説明できる」と回答した人は24%、IaCの取り組み具合で「本番で活用している」と回答した人は14%に留まった。同氏は、この研究会を通じてIaCの理解度を深め、本番で活用してほしいと述べた。
ITエンジニアの労働環境/生産性の課題と、改善にかける想い
オープニングセッションに続き、IaC活用研究会を設立したTIS株式会社の倉持 健史氏が登壇した。IaC活用研究会の立ち上げは、TIS IT基盤技術本部の技術施策「品質と生産性の向上」がテーマになったことがきっかけだという。
TISでは2015年からこのテーマに取り組み、インフラ構築とテストの自動化を進めている。その結果、インフラ自動化フレームワーク「SHIFT ware」が生まれ、2017年にOSSとしてリリースした。インフラエンジニアが使うためのOSSを組み合わせたツールだ。このツールを使って仮想マシンを展開してコンフィグレーションする部分を自動化したところ、「毎日約3時間かかっていた作業を48分に短縮できた」と具体的な事例を紹介した。
先ほどのユースケースでは、空いた時間で別の業務を行うことで生産量が増えたとのことだが、同氏は「生産性向上施策によって空き時間が生まれること」の重要性を説いた。例えば、生産性向上で肉体・精神負担を軽減したり、空き時間で開発能力への投資を行うとすると、離職率低下や能力向上が期待でき、それが業績や賃金へ反映されればモチベーションアップに繋がる。このように、生産性向上を生む「正のサイクル」が重要だと話した。
実際にデータから労働時間と生産性は相関関係であることがわかっている。ドイツと日本を比較してみると、ドイツの方が労働時間が短いが、日本よりも生産性が高い。一人あたりの労働時間が10%減少すると、一時間あたりの労働生産性は25%増大する。以上のことを踏まえ、「正のサイクル」の重要性を強調した。
同氏は、このコミュニティを通してIaCが合致するポイントを探って活用し、今までのやり方を変えたり、生産性の向上につなげていきたいと述べた。
AnsibleではじめるIaC
次にレッドハット株式会社の平田 千浩氏が登壇し、運用管理自動化の目的と課題について話した。同氏が自動化の案件に携わる中で、少数ながらも自動化に対するネガティブな意見があるようだ。このような意見を無くし、IaCを広めていきたいと意気込みを語った。
IaCは、ソフトウェアにおける手法をインフラのシステム構築や運用に応用するための方法論だと説明した。これを実現することによって、インフラやシステムの構築、テスト、設定管理、メンテナンスにおいて、手順のコード化により自動化し、品質の向上や生産性を図ることができる。コード化は再実行、再利用、バージョン管理を容易にするメリットもあるという。
生産性と品質が向上した状態を一時的に実現するのではなく、その良好な状態を継続することがIaCの目的であり、ゴールではないと述べた。エンジニアは手作業の削減やヒューマンエラーの解消などにより、有意義な業務に集中できること。会社は属人化が解消され、次にビジネスの柱となるような事業に注力できることがゴールであると語った。
IT業界において自動化の概念は以前から存在していて、トライしているにも関わらず完璧に自動化できていないのは、過去に失敗があったことが原因であると結論づけた。組織変更や人事異動で自動化スクリプトの保守が破綻したり、各々で使っているツールや手法が統一されていないため、ベストプラクティス化が困難になるなどの例を挙げた。
上記の課題を踏まえ、運用管理自動化を実現するポイントは3つ。手法や考え方を統一すること。誰でも利用でき、再利用しやすいこと。組織で利用するためのプロセス管理ができること。これらを押えた自動化が理想であると述べた。
従来の自動化ツールは大きく分けて、構成管理ツールとアプリケーションデプロイツールに分類できる。構成管理ツールはサーバーの構築やパラメーターの入力、チェックを行う。抽象的に記述できるので、扱いやすいが柔軟性に欠ける。プログラム形式のアプリケーションデプロイツールはできることは多いが、肥大化すると煩雑になり、メンテナンスが困難になる。従来はこの2種類のツールを順序立てて一括で実行できる機能がなく、ユーザの利用目的に即していないことが課題だった。
ここで話は本セッションの肝であるAnsibleに移り、特徴が3つ紹介された。最初に紹介されたのは、特定のユースケースや製品に特化しない汎用性の高さだ。設定管理やオーケストレーション、インスタンスのプロビジョニングなどあらゆる状況に対応できる。さらに、管理対象はOSだけでなく、ストレージやクラウドなど多岐に及ぶ。今までは様々なツールを組み合わせていたが、Ansibleは全てを内包してる万能的なツールだとアピールした。
Ansibleがあらゆる状況、あらゆるものを対象にできるのは、エージェントレス型でオープンな規格を使って通信方式を変えられるからだという。従来の構成管理ツールは、マネージャとなる管理サーバーひとつで多数のノードを管理したいといった要望から、エージェント型が主流だった。対してエージェントレス型はエージェントツールが不要で、既存システムとの競合リスクが無いなどのメリットがある。
3つ目の特徴として、誰にとっても扱いやすく、理解しやすいことを挙げた。今まで手順書に書いていた一連の動作をAnsible Playbookに記述して自動化するのだが、データフォーマットはYAMLで、プログラミング言語を習得していなくても記述できる。また、シンプルかつ宣言的に書くことで、可読性や保守性の向上が期待できるという。
組織として自動化に取り組むとき、プロセスに応じた適切な権限付与と管理が必要である。さらに、いつ誰がPlaybookを実行したかなどのログも残しておきたい。これらは普通のAnsibleではなく、レッドハットが提供しているAnsible Towerで実現できる。Ansible Towerは、ダッシュボード、アクセスコントロール、ジョブスケジューリングなどを備えたエンタープライズ向けのツールだ。
依頼者のリクエストをもとに管理者がAnsible Playbookを使って自動化を実行するといった流れでは、リードタイムが発生したり、リクエストが増えた時にスタックしてしまう。これを打破するには、依頼者がセルフサービスであらかじめ設定された権限で、管理者を通さずにリクエストを実行できれば良い。適切な権限委譲で人的作業を解消し、即時に実行可能な自動化を実現することが組織にとって必要であると語った。
最後に、Ansibleによる自動化で効率化を実現している事例を紹介した。中には2週間以上かかっていたデプロイが10分になった例もあった。平田氏は、Ansibleなどのツールを使ってIaCを活用してほしいと参加者に呼びかけてセッションを締めくくった。
実践ガイド著者が語る!DockerとIaCの活用 ~ 2020年に向けた次世代ITインフラと働き方改革 ~
最後に登壇したのは、日本ヒューレット・パッカード株式会社の古賀 政純氏。DockerコンテナとIaCの活用について話した。まず、2020年のICTをめぐる世界の課題として、物・人・お金を挙げた。今回メインとなる「人」の課題は、開発期間を縮小したり働き方改革で解決するために、Dockerなどのコンテナ技術が活かされているという。
Dockerの基本的なアーキテクチャは、Dockerコンテナの基となるDocker Imageを入手し、コンテナの本番環境に持っていく。OSとアプリの構築作業を極力やらないのが狙いだ。仮想化基盤と比較して可搬性が高く、環境構築に要する時間を大幅に短縮できることを利点として挙げた。特に移植に関しては、スクリプトを書くまでもなく、たった1行のコマンドで完了するシンプルさもDockerの強みだと語った。
Docker社の「紙の手順書をなくす」という発想がIaCに繋がる。必要最低限の手順をコード化して種を作り、この種がうまく動作するようにDockerfileを設計することが基本だ。Dockerfileは属人的スキルに依存せず、誰でも簡単に扱えることが望ましい。誰が作っても、いつでも、どこでも、ある一定の品質のものが動く冪等性が重要であると述べた。
続いて、大規模Docker基盤の課題を取り上げた。コンテナが増加すると、手動管理が煩雑になるのは想像に容易い。また、大量のコンテナにIT資源を無駄なく割り当てることも難しくなってくる。そこで、コンテナの管理や配置を自動化しなければならないが、Docker Engineでは実現できないため、データセンター全体を管理するミドルウェアが必要になる。本セッションでは、Mesosphere DC/OSが紹介された。
同氏は、利用効率向上の作業はソフトウェアで行わなければならないと強調した。例えば、処理が急激に増加した時などに自動的に増強するオートスケールの仕組みを作ったり、アプリの配備先決定と待機、実行まで人間を介在させないことで人件費を抑えながら攻めのITを実現する。
さらに掘り下げると、ハードウェアレベルからIaCに特化することが望ましいという。HPE SynergyはオープンソースのAIPから自動配備が可能で、ハードウェアレベルのIaCを目指して設計されたサーバーだ。これにより、直接的な決定権者を減らし、開発者がサーバーの配置や増設ができるようになっている。
最後にセッションのまとめとして「まずはコンテナ化からはじめ、それをどのように自動化するか、さらに時間短縮だけではなくセキュリティなどにも目を向けてみると、IaCの本当の威力を感じられるのではないか」と語った。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- ITインフラ管理の自動化を成功に導くAnsibleの実力と可能性を探る【前編】
- ITインフラ管理の自動化を成功に導くAnsibleの実力と可能性を探る【後編】
- 構成管理と自動化のツールAnsibleの最新バージョンと将来の姿
- Red Hat Summit 2024から、ルーターやスイッチのコンソールからの操作を集約してAnsibleから自動化するソリューションを紹介
- CNDT 2020開幕、2日目は富士通、レッドハットからの率直な話が聞けた
- 構成管理ツールとしてAnsibleを選ぶべき理由
- OpenStackDays Tokyo 2017、コンテナへの応用が目立つOpenStackの現状
- 構成管理ツールのAnsibleが目指す「Infrastructure as YAML」とは?
- CNDT 2022、NTTコムのエンジニアがマニフェストレスを実現したIaCのためのSaaSを解説
- CNDO 2021、サイバーエージェントのテックリードがコンテナランタイムの最新情報を解説