SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
トップエスイーからのアウトカム ~ ソフトウェア工学の現場から

コードとしてITインフラを定義する――自動化を超えた継続的改善の実現とは

トップエスイーからのアウトカム ~ ソフトウェア工学の現場から 第13回

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

 社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。ITインフラの分野では長らく装置産業的なアプローチが主流でした。いわゆる物理的なモノであるハードウェアを対象として、それを人がコントロールしていく考え方です。しかし、ソフトウェアの活用領域が広がるに従い、ITインフラの分野にも大きな変化が訪れています。その代表例が「コードによってITインフラを制御する」という考え方です。これはスクリプトやツールによる自動化と混同されがちですが、ここには埋めがたい差が存在しています。その差とはシステムに存在する「不確実性」との向き合い方です。ここでは、ITインフラにおいてこの不確実性をどのように対処していくのかを紹介していきます。

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

ハードウェアとソフトウェア

 従来のシステムはソフトウェアとハードウェアの両輪によって支えられ、私たちにさまざまな恩恵をもたらしてきました。ここで同じ「システム」という領域に分類されるソフトウェアとハードウェアですが、それぞれがどのようにシステムを構築し維持していくかといったアプローチは大きく異なっていました。

 ソフトウェア開発にはトップエスイーが主眼とするソフトウェア工学のアプローチが取られました。ここではソフトウェア開発のためにさまざまな開発方法やプロセスの管理手法が考案され、それが実践され、効果の検証が繰り返し行われて発展してきました。一方で、ハードウェアが属するいわゆるITインフラの分野はソフトウェア工学のアプローチではなく、第二次産業的な装置産業を色濃く受け継ぎ発展してきた経緯があります。すなわち、サーバーやネットワーク機器といった装置や設備があり、それをいかに人が効率的かつ正確にコントロールするかといった考え方です。

図1 ソフトウェアとハードウェアの成り立ちの違い
図1 ソフトウェアとハードウェアの成り立ちの違い

 ハードウェアとソフトウェアは同じシステムに属しつつも、その対象も設計、構築、テストの手法も全く異なるため、長らく「ハードとソフトは別物」という考え方が支配的でした。しかし、新しい技術や新しいプラットフォームが登場したことで、この状態が大きく変わりつつあります。その代表例として、プログラムのコードとしてITインフラを管理する「Infrastructure as Code」(以下IaC)があります。IaCの登場で、ITインフラに関わるさまざまな作業が「人による機械の操作」ではなく「プログラムのコードを書く」という行為に変わっていきます。

自動化を超えた先に

 IaCではITインフラに関わる操作を全てプログラムやソフトウェアのDSL(ドメイン特化言語:特定の世界でのニーズに応じた言語)として定義して管理します。これは一見すると、以前からあったオペレーションの自動化と同じに見えるかもしれません。スクリプトやマクロ、時には専用のツールを使って手順書の一部を自動化していくことで工数の削減や品質の向上、作業スピードのアップを狙うアプローチです。もちろんIaCのアプローチは、こういった実作業の効率化も含まれていますが、それはIaCの一部でしかありません。

 ではIaCの本質とは何でしょうか。それは「ソフトウェアで培われ洗練されたノウハウをITインフラへ適用する」ことです。これは言い換えるならば、装置産業的なアプローチであったITインフラをソフトウェア工学のアプローチへと変えていくための考え方になります。

 それではITインフラがソフトウェア工学的なアプローチに変わっていくことで、どのようなメリットがあるのでしょうか。システム開発では、「不確実性」に対処することを可能にするために、アジャイルやDevOps等に代表される手法が開発されてきました。これらの手法をITインフラの管理にも応用します。

 以前から行われてきた開発手法であるウォーターフォールでは、計画を重視し、入念に検討を行い計画段階で不確実性を排除していくアプローチでした。これは考慮できる不確実性が小さければうまく機能しました。しかしシステムの適用範囲が広がった現代においては、今まで経験したことがない未知の領域でのソフトウェア開発も増えています。さらにシステムの適用範囲の広がりは、取り巻く環境や情勢の変化にシステムが影響を受けやすくなることを意味します。つまり、システムに対して影響を及ぼす不確実性が従来よりも大きくなっていると言えます。

 これらの不確実性に対処し、システムをより良いものであるように構築、運用していくための手法がIaCです。これはオペレーションの自動化とは一線を画す部分なので注意が必要です。

 では、アジャイルやDevOpsの考え方をITインフラへ持ち込んだことで実現されたIaCとは具体的にどのようなものであるか見ていきましょう。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
不確実性への対処:計画主導と検証主導

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
トップエスイーからのアウトカム ~ ソフトウェア工学の現場から連載記事一覧

もっと読む

この記事の著者

中島 倫明(レッドハット株式会社)(ナカジマ トモアキ)

@irix_jp(Twitter)  国内SIerを経て、現在はレッドハットへ勤務。戦略から実装まで、幅広く企業システムの自動化やクラウド化の促進を支援。その傍らで大学や研究機関での講師を勤め、クラウド時代のIT人材の育成に尽力する。OpenStackやAnsibleなどのユーザー会のメンバー...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11152 2018/10/26 14:00
" ); }

おすすめ

アクセスランキング

  1. 1
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に
  2. 2
    NVIDIA、コンパクトな生成AIスーパーコンピューターを発表 NEW
  3. 3
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──アクションによる非同期処理の進化
  4. 4
    Linuxディストリビューション「Fedora Asahi Remix 41」リリース NEW
  5. 5
    ランサーズ、「2024年必要とされたスキルランキング」を公開。「Lancers」上のデータを集計
  1. 6
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 7
    「代替されない強み」を身に着ける覚悟はあるか──Java Champion 寺田佳央氏が経験してきた挫折とは
  3. 8
    IPA、DXの先進事例を素早く効率的に検索できるWebサイト「デジタル事例データベース」を公開
  4. 9
    「CUDA」 ~マンガでプログラミング用語解説
  5. 10
    Next.js 14までの進化を振り返る──App Routerを強化する新機能を解説! NEW

アクセスランキング

  1. 1
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に
  2. 2
    NVIDIA、コンパクトな生成AIスーパーコンピューターを発表 NEW
  3. 3
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──アクションによる非同期処理の進化
  4. 4
    Linuxディストリビューション「Fedora Asahi Remix 41」リリース NEW
  5. 5
    ランサーズ、「2024年必要とされたスキルランキング」を公開。「Lancers」上のデータを集計
  6. 6
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  7. 7
    「代替されない強み」を身に着ける覚悟はあるか──Java Champion 寺田佳央氏が経験してきた挫折とは
  8. 8
    IPA、DXの先進事例を素早く効率的に検索できるWebサイト「デジタル事例データベース」を公開
  9. 9
    「CUDA」 ~マンガでプログラミング用語解説
  10. 10
    Next.js 14までの進化を振り返る──App Routerを強化する新機能を解説! NEW
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    今後生成AIとどう向き合うべきなのか? 現場のエンジニアと研究者が最新研究事例から語り合う
  6. 6
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  7. 7
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  8. 8
    Vue.js3.4~3.5の新機能をまとめて紹介! 新しいAPIやSSRの改善
  9. 9
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  10. 10
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に
  2. 2
    NVIDIA、コンパクトな生成AIスーパーコンピューターを発表 NEW
  3. 3
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──アクションによる非同期処理の進化
  4. 4
    Linuxディストリビューション「Fedora Asahi Remix 41」リリース NEW
  5. 5
    ランサーズ、「2024年必要とされたスキルランキング」を公開。「Lancers」上のデータを集計
  1. 6
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 7
    「代替されない強み」を身に着ける覚悟はあるか──Java Champion 寺田佳央氏が経験してきた挫折とは
  3. 8
    IPA、DXの先進事例を素早く効率的に検索できるWebサイト「デジタル事例データベース」を公開
  4. 9
    「CUDA」 ~マンガでプログラミング用語解説
  5. 10
    Next.js 14までの進化を振り返る──App Routerを強化する新機能を解説! NEW

アクセスランキング

  1. 1
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に
  2. 2
    NVIDIA、コンパクトな生成AIスーパーコンピューターを発表 NEW
  3. 3
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──アクションによる非同期処理の進化
  4. 4
    Linuxディストリビューション「Fedora Asahi Remix 41」リリース NEW
  5. 5
    ランサーズ、「2024年必要とされたスキルランキング」を公開。「Lancers」上のデータを集計
  6. 6
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  7. 7
    「代替されない強み」を身に着ける覚悟はあるか──Java Champion 寺田佳央氏が経験してきた挫折とは
  8. 8
    IPA、DXの先進事例を素早く効率的に検索できるWebサイト「デジタル事例データベース」を公開
  9. 9
    「CUDA」 ~マンガでプログラミング用語解説
  10. 10
    Next.js 14までの進化を振り返る──App Routerを強化する新機能を解説! NEW
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    今後生成AIとどう向き合うべきなのか? 現場のエンジニアと研究者が最新研究事例から語り合う
  6. 6
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  7. 7
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  8. 8
    Vue.js3.4~3.5の新機能をまとめて紹介! 新しいAPIやSSRの改善
  9. 9
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  10. 10
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表