DevOpsとは、開発者と運用エンジニアの役割が融合することを包括的に表す用語です。データベース管理者、システム管理者、ソフトウェアエンジニアといった役割の垣根が低くなるにつれ、これらすべての職種が担う責任の重なりと、製品ライフサイクルにおける相互関係の深まりを表す言葉として、DevOpsが使われるようになりました。この動きを実現するうえで重要なのが、大規模アプリケーションのビルド、デプロイ、監視における自動化の活用拡大です。

DevOps文化

クラウド導入と仮想インフラストラクチャの普及に伴い、大規模環境を運用する企業では、個々のサーバーではなく、仮想ホストやサービスのグループ管理を重視する傾向が強まっています。この違いは一般に、「ペットのように世話をするのではなく、家畜のように管理する」という比喩で表現されます。従来のアプリケーションデリバリアーキテクチャでは、各チームがインフラストラクチャの一部のみを個別に管理します(データベース管理者はデータベースサーバーのみを、リリースエンジニアと運用担当者はアプリケーションサーバーのみを管理します)。一方、DevOps文化では、全員がDevOpsツールを利用でき、製品のあらゆる側面を監視します。

DevOps文化を持つ企業では、継続的インテグレーションと継続的デプロイのモデルを採用し、リリースプロセスを可能な限り自動化するとともに、対象製品に携わるすべてのチームでコードと責任を共有する傾向があります。組織全体でDevOpsを広く導入することは、通常、アジャイル開発への大規模な移行と、マイクロサービスへの移行の一環です。この構造的な変化に加え、NGINX Plus、Puppet、Chefなど、監視とデプロイに使用するDevOpsツールを活用することで、製品の担当者全員が、コードの開発とテストから、データベースサーバーやアプリケーションサーバーでの本番利用に至るまで、製品を反復的に改善しながらデプロイサイクル全体を把握できます。

DevOpsの構成要素

DevOpsという用語自体は「開発(Development)」と「運用(Operations)」を組み合わせたものですが、その範囲はこの2つの役割にとどまりません。開発面では、製品設計からコード開発まで、幅広い領域を統合します。開発者は、コードをどこに、どのようにデプロイするかを、より主体的に管理できます。運用面では、製品を稼働させるプラットフォームやインフラストラクチャからセキュリティまで、幅広い領域を対象とします。その結果、従来は分断されていたアプリケーションの開発・保守領域間で、より緊密なコミュニケーションと連携が可能になります。

NGINX Plusはどのように役立つのか

NGINX PlusとNGINXは、Dropbox、Netflix、Zyngaなどのトラフィック量が多いWebサイトで利用されている、クラス最高水準のWebサーバーおよびアプリケーションデリバリーソリューションです。世界中で3億5,000万を超えるWebサイトが、コンテンツを迅速かつ確実、安全に配信するために、NGINX PlusとNGINX Open Sourceを利用しています。

  • NGINX Plusはクラウド導入と非常に相性がよく、AWSにおけるアプリケーション実装全体の約40%でNGINXまたはNGINX Plusが使用されています。
  • NGINX Plusは、堅牢でカスタマイズ可能なモニタリングを提供し、アプリケーションのステータスをリアルタイムでフィードバックします。これには、デプロイパイプラインに組み込める、機械処理に適したステータスメトリクスのJSONフィードも含まれます。
  • 継続的デプロイプロセスで複数のクラウドインスタンスを再構成する必要がある場合、NGINX Plusでは、バックエンドサーバーグループを動的に再構成できます。これにより、構成ファイルを手動で書き換えて再読み込みすることなく、バックエンドサーバーの検出を自動化できます。
  • ソフトウェアロードバランサーであるNGINX Plusは、柔軟性と構成の自由度をさらに高め、ChefやPuppetなどの最先端のDevOpsツールと連携して、構成を管理(および自動化)できます。