DevOps
DevOps とは
DevOps は、ソフトウェア コードを開発し、クラウド データセンターの本番環境で運用する際に役立つさまざまな手法を指します。DevOps は、アジャイル プロジェクト管理およびマイクロサービスのサポートの中心に位置付けられます。DevOps では、バージョン管理標準に基づき、ソフトウェア開発ライフサイクル全体が自動化されます。DevOps でもっとも広く利用されているバージョン管理ソリューションは Git で、Subversion(SVN)と CVS がそれに続きます。DevOps には、ソフトウェア ライフサイクル、コード テストの自動化、コンテナ オーケストレーション、クラウド ホスティング、データ分析に伴う CI/CD 要件の管理も含まれます。
関連トピック
DevOps のメリット
- アジャイル チーム プロジェクト管理:Web サイトやモバイル アプリケーションを対象とするソフトウェア開発の管理が向上します。
- ソフトウェア開発プロセスの最適化:継続的インテグレーションと継続的デリバリ(CI/CD)機能が最適化に役立ちます。CI/CD を導入した企業では、コード変更から新しいソフトウェア機能のリリースまでをすみやかに実施し、新たなイノベーションを市場にすばやく投入できます。自動化されたバージョン管理システムとコンテナを使用することで、Web サーバのコードやアプリケーション スクリプトのアップグレードが簡素化されます。
- コラボレーションの促進:Git を利用すると複数のチームが共同で開発作業を行うことができ、行単位でのロールバック機能も利用できます。
- 自動化による作業効率の向上:CI/CD では、社内のプログラミング ツール、IDE、サードパーティのユーティリティを使用して、コードを自動的にテストできます。DevOps を導入してソフトウェア開発ライフサイクルを管理する企業では、データセンターのプロセス、Web サーバのプロビジョニング、データベース管理、知識の共有、展開のスケジューリング、ビジネス インテリジェンスをより高度に自動化できます。
DevOps の手法
Web サーバ スタックのすべてのレイヤーに適用される DevOps 手法は、複数のプログラミング チームを密に連携させることができます。DevOps チームによるアジャイル プロジェクト管理では、一般に CALMS フレームワークが使用されます。CALMS は、Culture、Automation、Lean、Measurement、Sharing の頭文字を取ったものです。
- Culture(文化):どのプログラミング チームでも、プログラマー、開発者、システム管理者のライフスタイル目標を尊重する必要があります。
- Automation(自動化):ソフトウェア開発ライフサイクル全体が対象となりますが、特に、コードのテストと展開やデータセンター管理プロセスの自動化が重要です。
- Lean(無駄の排除):人材や機器をプロビジョニングする際のコストを削減します。
- Measurement(計測):データ分析、リアルタイムでの監視、ビジネス指標を運用基準に反映させます。
- Sharing(共有):規模にかかわらず、あらゆるビジネスやプロジェクトで、オープンソースのソリューションやコードのメリットを生かします。
DevOps の歴史
DevOps は、クラウド時代の Web 開発とシステム管理を組み合わせたことから始まりました。SaaS アプリケーションをクラウドの Web サーバに展開し、本番環境で実行するには、より複雑なコード管理方法が必要になります。DevOps では、コンテナ オーケストレーションや伸縮自在な Web サーバ フレームワークの構築も欠かせません。DevOps で特に重要なのは、アジャイル プロジェクト管理という考え方です。クラウド ロードバランシング、Web サーバ イノベーション、ソフトウェア ライフサイクルの自動化は、いずれも DevOps の重要な要素です。DevOps のベスト プラクティスは、コンピューター サイエンスの学術研究、クラウド データセンター テクノロジーにおけるイノベーション、ソフトウェア開発を経て世界有数の大手企業に実装された産業用アプリケーションから得られた知見がもとになっています。
DevOps の仕組み
通常、DevOps は、分散する複数の開発者チームが存在し、それぞれデスクトップ コンピューターやラップトップを使用して、サンドボックス化されたコードをテスト環境で操作する組織が対象となります。開発者はバージョン管理ソフトウェアを使用して、コード変更をサンドボックス環境にプッシュします。ここでは、コードがコミットされるたびにコードテストが自動的に行われます。コード変更のテストが完了すると、バージョン管理機能を使用して、コードがサンドボックスから Web サーバへリリースされます。コンテナ システムでは、ディスク イメージを使用して Web サーバがプロビジョニングされます。Docker デスクトップ開発環境とバージョン管理ツールを連携させ、完全なディスク イメージを使用してコードを Web サーバへ公開します。これによって、フルスタックの Web サーバがコンテナにロードされます。ディスク イメージは、GitHub、GitLab、DockerHub、Quay などのサービスにアーカイブできます。アーカイブしたディスク イメージは、Kubernetes などの自動コンテナ オーケストレーション フレームワークで使用できます。
バージョン管理、CI/CD、知識の共有、Web サーバの構成、データセンターの自動化、コード テスト、アーティファクト管理、ネットワークの監視、分析は、いずれも DevOps 手法に欠かせない要素であり、エンタープライズ企業やその他の複合組織のプログラミング チームおよびソフトウェア開発チームで利用されています。
DevOps とその他のアプローチ
DevOps に関連するその他のアプローチには、アジャイル プロジェクト管理、ArchOps、継続的インテグレーション/継続的デリバリ(CI/CD)、DataOps、WebOps、GitOps があります。ビジネス管理に対する考え方と同様、プロジェクト管理やチーム構成についてなにを重視するかは、それぞれのアプローチによって異なります。人材ソリューションを重視するアプローチもあれば、ハードウェア プラットフォームとソフトウェア プラットフォームに関連するアプローチもあります。共通するテーマは、エンタープライズ企業で使用する多数の Web サイトやモバイル アプリケーションを対象に、ソフトウェア コードを迅速に生成して、クラウド データセンターで運用することです。
DevOps を導入している企業
Fortune 500 のほとんどの企業が、業界のベスト プラクティスとみなされている DevOps の手法をすでに導入しています。大手 IT 企業は、パブリック クラウド アーキテクチャの運用を最適化するため、DevOps の向上を牽引しています。DevOps は、コンピューター サイエンスの学術研究と、専門のプログラミング チームによるエンタープライズ ソフトウェア開発の組み合わせに基づいています。DevOps は、ソフトウェアの開発および本番運用でのコストを削減し、作業効率を高めたいと考える、あらゆる企業のニーズに応えます。競争力の強化、あるいは既存市場の変革を目指し、多くのスタートアップ企業も DevOps の手法をいち早く取り入れています。一般に、DevOps の導入は、パブリック クラウドのホスト上にフルスタック ソリューションを構築する必要があるプログラマーやシステム管理者からの要求がきっかけとなっています。
DevOps の導入事例
DevOps を導入する企業が増えつつある一方、スパイラルやウォーターフォール など、モノリシックなプロジェクト管理手法は減少しています。DevOps の導入を後押ししているのは、複合ビジネス組織で必要となるマイクロサービスの増加です。スタートアップとエンタープライズ、どちらの企業にとっても一番の関心事は、ソフトウェア開発の迅速性を高め、セキュリティを強化することです。DevOps の手法を導入すれば、既存のオンライン サービスを中断することなく、新しいコード変更を本番環境へ迅速に取り込んだり、セキュリティ上の欠陥にパッチを適用したりできます。クラウド データセンターへ移行したメリットを最大限に高めるため、多くの企業が DevOps の手法を取り入れ、ブランド、製品、e コマース サイトのその他のサービスの浸透で必要となる Web/モバイル アプリケーションを大規模に展開しています。メディア業界でも、DevOps 手法を導入してウェブ公開の要件を満たしています。工業製品メーカーや通信会社は、DevOps を導入することで、大規模なプログラミング チームのメンバーが密に連携できる環境を整え、より優れた製品やサービスを提供できるようにしています。
DevOps に関連する VMware の製品、ソリューション、リソース
ハイパーコンバージド インフラストラクチャとは
ハイパーコンバージド インフラストラクチャ(HCI)は、フラッシュで高速化された業界標準サーバにコア データ サービスを集約する、スケールアウト型のソフトウェアベースのインフラストラクチャです。詳細情報
Software-Defined Storage とは
VMware が提供する Software-Defined Storage は、ビジネス ニーズとアプリケーションの要件に対応する、シンプルでありながらインテリジェントなストレージ データセンター アーキテクチャです。詳細をご確認ください。
Software-Defined Data Center:デジタル トランスフォーメーションの基盤
VMware は、よりシンプルでより柔軟な Software-Defined Data Center(SDDC)を構築することによって、ユーザーがプライベート クラウドとハイブリッド クラウドの課題に対応できるよう支援します。無償で評価することができます。
ThinApp の導入ツールとオプション
キャプチャしたアプリケーションをネットワーク ファイル共有に展開する、基本的な実行ファイルとしてユーザー デスクトップに展開する、または VMware View 環境に展開するためのツールが用意されています。
vRealize Operations Manager ソリューションの監視目標を設定
vRealize Operations Manager に追加する管理パック ソリューションのポリシーを作成できます。