いまさら聞けない「DevOps」「プラットフォームエンジニアリング」とは何かDevOpsとプラットフォームエンジニアリングの違い【前編】

ソフトウェア開発の効率化と革新は企業の成長の鍵を握っている。その取り組みを支える「プラットフォームエンジニアリング」は、開発者やビジネスにどのような価値をもたらすのか。

2024年07月30日 05時00分 公開
[Stephen J. BigelowTechTarget]

 Webサイトから企業向けアプリケーションまで、ソフトウェアは現代企業の生産性と収益に欠かせない。小規模な変更を短期間のうちに繰り返す「アジャイル」型開発や、CI/CD(継続的インテグレーション/継続的デリバリー)によって、ソフトウェアの市場投入は加速している。

 一方でソフトウェア開発は、深刻な「成長痛」に直面している。今日の企業システムは複雑化しており、開発者は次から次に登場する技術やツールの習得が不可欠になった。その中で台頭してきた「DevOps」とは何なのか。DevOpsチームを支える「プラットフォームエンジニアリング」にはどのような役割があるのか。

「DevOps」「プラットフォームエンジニアリング」とは何か

 開発(Dev)と運用(Ops)を結び付ける開発手法「DevOps」は、開発者が責任を負うべき領域を拡大させた。ソフトウェアの各機能が小規模サービスとして独立する「マイクロサービス」アーキテクチャは、細かな監視とスケーリングを要求する。これらの変化に適応するには、クラウドサービスなどのサードパーティーサービスを使いこなさなければならない。

 習得すべき知識が増え過ぎると、開発者は情報過多になり、生産性やソフトウェアの品質が低下する恐れがある。こうした課題に対して、企業は開発者がインフラを直接管理したり、深く理解したりする必要をなくす(抽象化)仕組みを導入した。この仕組みを「プラットフォーム」と呼ぶ。プラットフォームの構築、運用(プラットフォームエンジニアリング)は、多忙なDevOpsスタッフを補助する重要な手段として台頭しつつあり、専任チームがその役割を担う。

DevOpsとは?

 DevOpsは開発サイクルを加速、改善し、優れたソフトウェア製品を生み出すことを目指すものだ。開発チームと運用チームの協業の下でさまざまなプロセスを自動化し、ソフトウェアを素早く改善することを目的としている。部門間や従業員間のコラボレーションや、豊富な開発ツールがDevOpsを支えている。中でも重要な要素が、「アジリティー」(俊敏性)と「デプロイ」(配備)だ。

 アジリティーは、小規模に分けて少しずつソフトウェアを開発することで実現する。従来は、始めにソフトウェア全体を設計して一気に開発を進める「ウオーターフォール」型開発が主流だった。これに対してDevOpsでは、開発、テスト、リリースといった一連のサイクルを短期間のうちに繰り返す。これによって開発者は機能の追加や品質確保、パフォーマンス向上に取り組めるようになる。

 デプロイは、開発と運用に関する一連の作業だ。これまでのソフトウェア開発は、設定や保守を担当するのは開発者ではなく別のチームだった。一方DevOpsでは、開発者自身がソフトウェアをデプロイして管理する。この仕組みは開発者が本番環境におけるソフトウェアの動作に対する理解を深めながら、機能やセキュリティを強化することに役立つ。

 ただしDevOpsやアジャイル型開発、CI/CDへの移行には労力が伴う。DevOpsチームはコーディングだけではない、以下の幅広いタスクをこなさなければならない。

  • 複数のプログラミング言語を扱う
  • サーバやストレージなど、企業のITインフラを扱う
  • 統合開発環境(IDE)、テストツール、デプロイツールなど、ソフトウェア開発にわたるさまざまなツールを使いこなす
  • 収益目標など、プロジェクト成果のビジネス面への参加も増えている

プラットフォームエンジニアリングとは?

 開発者が深く理解したり直接管理したりすることなく利用可能なインフラやツールを作成することが、プラットフォームエンジニアリングの目標だ。たいていの場合、プラットフォームの構築にはDevOpsチームと同じような開発スキルが必要になる。

 プラットフォームは新しい概念ではない。IDEはソースコードを書くためのテキストエディタと、ソースコードをビルド(実行可能プログラムに変換)するためのコンパイラを一体化して、開発者が質の高いソフトウェアを開発できるように設計されたツールだ。近年はソフトウェア開発環境をクラウドサービスとして提供するPaaS(Platform as a Service)が登場し、開発者の日常的なタスクを支援している。

 ソフトウェア開発に関連する課題や負荷が増大していることを受けて、企業は開発環境の一部を抽象化するチームを設けることで、開発者の負担増を軽減しようとしている。プラットフォームエンジニアリングは、DevOpsチームが使用するさまざまなインフラやツールを作成、保守する新たな役割だ。

プラットフォームの利点と欠点

 プラットフォームは、ソフトウェアの開発とデプロイに伴う基礎的な作業を軽減し、開発サイクルを加速させる。開発、テスト、デプロイツールをまとめたプラットフォームを用意すれば、DevOpsチームがそれらのツールを自分でインストール、設定、更新、保守する必要がなくなる。そうした作業はプラットフォームベンダーが実施するため、開発者はソフトウェア開発に集中できるようになる。

 ただしプラットフォームを構築することは簡単ではない。ビジネスや特定のソフトウェア開発、生産性のニーズに合わせて構築、管理する必要がある。構成要素となっているさまざまなコンポーネント(部品)やサービスを、時間の経過とともに変更、強化することも重要だ。

 理想的なプラットフォームエンジニアリングは、高度な自動化やセルフサービス機能(開発者が自身で必要なツールやインフラを入手できる機能)を提供して開発者の生産性を向上させる。優れた設計のプラットフォームは、開発手法や業務プロセスを統一し、DevOpsチームの生産性向上とソフトウェアの品質向上につながる。


 次回は、DevOpsとプラットフォームエンジニアリングの違いを考察する。

TechTarget発 エンジニア虎の巻

米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

ITmedia マーケティング新着記事

news099.jpg

ソーシャルメディア利用年齢規制でMetaより損をするのは?
ソーシャルメディアの利用は16歳以上に制限されるべきなのだろうか。そうだとしたら、実...

news205.jpg

台湾の旅行者の77.4%、米国の旅行者の53.6%は1年以内に日本を再訪したい――JTB総合研究所調査
訪日インバウンド旅行者の中にはリピーターとなる人も少なくありません。そこで、次回の...

news163.jpg

電通グループがRobloxと組んで次世代コンテンツクリエイターを支援 その背景は?
電通グループがゲームプラットフォーム「Roblox」を活用した次世代クリエイター支援プロ...