トピック

DevOps について理解する

DevOps とは、高品質かつ迅速なサービス提供によりビジネス価値や対応スピードを向上することを目的とした、企業文化、自動化、およびプラットフォームの設計に対するアプローチです。これらすべては、高速で反復可能な IT サービスの提供により可能となります。DevOps では、レガシー・アプリケーションを、より新しいクラウドネイティブ・アプリケーションやインフラストラクチャと結び付けます。

DevOps とは何か?

「DevOps」という語は「Development (開発)」と「Operations (運用)」を組み合わせものですが、単純にそれぞれの語の持つ意味を組み合わせた以上の考えや方法を表します。DevOps には、セキュリティ、コラボレーションを重視する働き方、データ分析など、さまざまな事柄が関わります。しかし、具体的には何を意味するのでしょうか?

DevOps とは、アイデア (新しいソフトウェア機能、拡張リクエスト、バグ修正など) を開発からプロダクションへと進め、実際にユーザーに価値提供できるようにするまでのプロセスを迅速化するためのアプローチを表します。これらのアプローチにおいては、開発チームと運用チームが頻繁にコミュニケーションを取ること、そしてチームメイト同士が共通の視点を持ちながら作業に取り組むことが必要になります。さらに、スケーラビリティと柔軟なプロビジョニング機能も必要です。DevOps では、セルフサービスと自動化を活用することで、メンバーがそれぞれ必要とする機能を得られます。開発者は、IT 運用スタッフと密接に連携することにより、信頼性を犠牲にすることなく、より短時間でソフトウェアを構築、テスト、リリースすることができます。

もちろん、そのためには、より頻繁にコードを変更し、より動的にインフラストラクチャを使うことになります。従来の管理戦略では、このような種類の要求に対応できません。この点を強化するには、いくつかの変更を加えることが必要になります。

企業文化、プロセス、プラットフォーム

DevOps は、オープン性と透明性を重視するコラボレーションの文化を根幹としています。DevOps を導入するということは、オープンソースの原則とプラクティスの適用を意味します。なぜなら、DevOps 的企業文化が提供する価値は、オープンソース・コミュニティやアジャイルな働き方のアプローチが提供する価値と密接につながっているためです。

オープンソース・ソフトウェア・プロジェクトの文化は、DevOps 文化を構築するための青写真として見ることが可能です。オープンソース・コミュニティにおけるコラボレーションは基本的に、情報を自由に共有するというアプローチに基づいています。このアプローチは、意思決定における透明性の促進、失敗の恐れをなくすことによる実験の奨励、信頼性やコラボレーションを推進する報奨制度の導入といったかたちで企業文化を変革する際の助けとなります。

開発と運用のチームによるオープン文化の推進は、優れたリーダーシップとインセンティブ・プログラムによっても実現可能です。しかし、オープンな文化が組織全体に広く浸透したときにこそ、DevOps が真価を発揮します。DevOps は、名称こそ「開発」と「運用」を指していますが、あらゆる職種の人のためのアプローチです。

Red Hat の企業文化は、オープン性と透明性を基盤としています。そしてこの文化は、25 年以上にわたり優れた成果をもたらしてきました。お客様が「オープン」なアプローチを採用する際の支援においても、Red Hat には DevOps の導入サポートにおける実績があります。

DevOps 文化

先進的アプリケーションを開発するには、これまでのアプローチとは異なるプロセスが必要になります。多くのチームは、ソフトウェア開発にアジャイル・アプローチを導入しています。そうしたチームにとって、DevOps は目新しい考え方ではありません。実際、「アジャイルソフトウェア開発宣言」の 12 の原則の筆頭に掲げられているのは、 「顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します」という原則です。そのため、DevOps チームにとっては、継続的インテグレーションと継続的デプロイメント (CI/CD) が重要になります。

ただし、開発と運用のプロセスを変化させるだけでは十分ではありません。ソフトウェアの提供方法を真に最適化するための体系的な思考を身につけることが必要です。つまり、DevOps では、開発作業を要求する部門と、エンドユーザーをサポートするグループにおいて変化が必要となります。その鍵となるのが、エンドユーザーからビジネスへの継続的なフィードバック・サイクルです。

プロセスの見直しにおいては、「どのように」作業をするかだけでなく、「どのような」作業をするかという観点からも変革を起こす必要があります。DevOps とは、単純に従来のモノリシックなソフトウェアの作成速度を向上することにとどまりません。むしろ、継続的デリバリーが伴うリリースサイクルのスピードに適した、新たな種類のソフトウェアを作ることに焦点が当たります。

そのため、DevOps チームは多くの場合、ソフトウェアを構築する際にマイクロサービス・アーキテクチャを使用し、APIを使用してサービス同士を接続します。そして、個々の機能をより小さな単位で構築することにより、より迅速な提供が可能となります。そのため、サービスと API の管理方法に重点を置くとともに、アジャイル・インテグレーションなど、包括的な統合戦略を適用する必要があります。

このような変革は多くの労力を必要としますが、適切なテクノロジーを利用すれば、すぐに変化を起こし始めることが可能です。自動化はプロセスの迅速化を助け、最終的には DevOps のワークロードをクラウドに移行するためにも役立ちます。IDC の調査1によると、IT リーダーの 85% は DevOps 戦略において自動化は不可欠であると述べています。なぜなら、自動化こそが、DevOps に伴う絶え間ないコード変更に耐えうるインフラストラクチャを実現する要素であるためです。また、自動化により、環境の継続的なスケーリングも簡単になります。自動化は、反復作業や単純作業の負担を軽減することで、有能な人材が最も重要な作業に集中できる環境を作るのに役立ちます。

1 IDC (2018 年 3 月)。Automation, DevOps, and the Demands of a Multicloud World. 出典:https://www.redhat.com/cms/managed-files/cm-idc-automation-devops-demands-multicloud-world-f10589-201803-en.pdf

DevOps 自動化

プロセスをサポートするツールを選択することは、DevOps 成功の鍵となります。運用チームが迅速な開発サイクルとペースを合わせるには、柔軟性が極めて高いプラットフォームを使用し、開発チームがコードを扱うような方法でインフラストラクチャを扱う必要があります。デプロイ作業を手動で行うと時間がかかり、ミスが発生する可能性もあります。プラットフォームのプロビジョニングとデプロイは、自動化により単純化できます。

コンテナを使用すると、アプリケーションを開発、テスト、プロダクション環境間で簡単に移動できます。また、開発者はコンテナを使用することで、アプリケーションとその実行に必要なすべてのもの (アプリケーション・ファイル、ランタイム環境、依存ライブラリと構成など) をパッケージ化し、分離できます。

Red Hat Enterprise Linux や Red Hat OpenShift Container Platform など、コンテナの内外両方に関して信頼できるプラットフォームを選択することで、最も重要な局面において確実にスケーリングと自動化が機能するようにできます。適切なプラットフォームを導入することで、DevOps カルチャーやプロセスの変化を最大限に活用できます。

DevOps プラットフォーム

ビジネス革新への備えはできていますか?

現在の市場における競争で成功するには、テクノロジーを導入する以上の取り組みが必要となります。組織の文化、プロセス、プラットフォームの成熟度を測定し、デジタル・トランスフォーメーションの実現に必要なステップを確認しましょう。

DevOps とセキュリティ

前述したとおり、DevOps は開発チームや運用チームだけのものではありません。企業において DevOps アプローチの効果を最大化するには、アプリケーションのライフサイクルにおいてセキュリティが果たす役割について検討する必要があります。つまり、プランニング・フェーズ以降の中核的なセキュリティについて考えなければなりません。また、DevOps ワークフローの速度が低下しないよう、一部のセキュリティ機能を自動化することも必要です。セキュリティ機能を統合するための適切なツールを選ぶことで、DevOps におけるセキュリティ目標の達成を支援できます。

とはいえ、DevOps 体制における効果的なセキュリティを実現するには、新しいツールを導入する以上の取り組みが必要となります。そのためには、DevOps がもたらす企業文化の変革をさらに発展させ、セキュリティチームの業務を極力早く統合化することです。DevOps では、開発と運用の間のギャップを埋めることによってプロセスを迅速化しますが、セキュリティに関するプランニングが不十分な場合、そのメリットを活かせません。

従来、セキュリティに関しては独立したチームが責任を負い、開発の最終段階でようやく適用されるものでした。しかし、コラボレーションを重視する DevOps のフレームワークにおいては、セキュリティは初期段階から組み込まれ、その責任も共有されます。

DevOps の実現に必要なツール

Red Hat Ansible Automation

Ansible は、シンプルでエージェントレスな IT 自動化テクノロジーです。現行の作業効率の向上や、さらなる最適化を目的としたアプリケーションの移行を可能にし、組織全体における DevOps 実践のための単一言語を提供します。

Red Hat OpenShift

場所や規模を問わず、コンテナを作成、デプロイ、管理できます。

成功を支える DevOps トレーニング

ラーニングパス

DevOps カリキュラム

Ansible を利用した自動化の基礎から Red Hat® OpenShift Container Platform の管理、そしてその実現に至るまでの要点を幅広く扱いながら、開発からデプロイへと進むために必要なスキルを育成し検証するプログラムをご用意しています。これらのコースでは、Docker、Kubernetes、Puppet などのツールを Red Hat テクノロジーと共に使用して、企業やチームにおける DevOps の活用を支援する方法を学びます。

インフォグラフィック

「Red Hat の DevOps トレーニングと試験」

Red Hat の トレーニング認定は、お客様のユースケースに基づくトレーニング・コンテンツの提供は、実技形式の認定試験によるスキルの検証を通じて、組織や個人が市場投入時間を短縮し、リリースにおけるエラー率を低減し、修正のリードタイムを短縮できるよう支援します。このインフォグラフィックは、Red Hat が提供する DevOps のトレーニングと試験に関するカリキュラム概要を示しています。

DevOps についてさらに詳しく