知っておく必要のある5つのDevOpsツール
公開: 2016-09-27序章

DevOps(Developments and Operations)は、ソフトウェア開発者とITプロフェッショナルの両方のコラボレーションとコミュニケーションを強調する概念または実践のグループです。 DevOpsは、「アジャイルシステム管理」と「アジャイル運用」という2つの主要な関連トレンドに由来します。
DevOpsは、開発とIT運用の間のコラボレーションとコミュニケーションについて考えるための一連のプロセスを促進します。 DevOpsは、ソフトウェア開発とIT運用の相互依存性を認識するために使用でき、組織がソフトウェアとITサービスをより迅速に作成するのに役立ちます。 DevOpsの主な目標は、2つのビジネスユニット間のより良いコラボレーションとコミュニケーションを提唱することにより、関係を変更および改善することです。 DevOpsを使用すると、他のサービスを中断することなく、機能を本番環境に非常に迅速にデプロイし、問題が発生したときにそれを検出して修正することが容易になります。
DevOpsのメリットの一部を以下に示します。
- 市場投入までの時間が大幅に短縮されます。
- 生産性と効率の向上。
- 故障率が低くなります。
- より安定した動作環境とより高速な配信機能。
- 継続的なソフトウェア配信とより迅速な問題解決
DevOpsの世界では、市場で入手可能なツールがたくさんあります。 このチュートリアルでは、最も便利なツールのいくつかについて説明します。
ジェンキンス

ソフトウェア開発サイクルをスピードアップする必要がある場合は、Jetkinsが最適です。 Jenkinsは、 Javaで記述されたユーティリティ拡張可能な継続的インテグレーションのオープンソースであり、バグが発生していないことを確認するためのコードのテストに広く使用されています。 これは、生産性を向上させるマルチプラットフォーム賞およびCI / CDアプリケーションです。 Jenkinsは、DevOpsエンジニアが繰り返されるジョブの実行を監視するための最も重要なツールです。 Jetkinsは、開発者側を管理するためのオープンソース標準になりました。 それは急速にDevOpsのエンジンになりつつあります。 Jenkinsには、 1,100を超えるプラグインとアドオンの優れたエコシステムがあります。 これにより、お客様はあらゆる種類の機能を追加し、JenkinsとActiveDirectoryをGitHubに統合できるようになります。 コードのビルド、Dockerコンテナーの作成、テストの実行、本番環境へのプッシュを行うようにJenkinsを簡単に構成できます。 JenkinsのWebインターフェイスを使用して簡単にセットアップおよび構成し、複数のマシンに作業を分散できます。 Jenkinsを使用すると、SVNやGitなどのコードの変更を監視し、テストを開始してから、本番環境でロールバックまたはロールフォワードすることができます。
多くの企業、オープンソースプロジェクト、およびその他の組織は、Dell、Ebay、NASA、Facebook、Linkedin、Netflix、Nokia、Sony、Yahoo!などのJenkinsを使用しています。 等
主な機能:
- スロットルビルド
- 簡単なインストールとアップグレード
- スロットルビルド
- JUnit / TestNGテストレポート
- RSS / IM / Eメールの統合
- GitHub、Bugzilla、ZIRAと簡単に統合できます
- 恒久的なリンク
シェフ

Chefは、 RubyとErlangで記述されたオープンソースの構成管理および自動化ツールです。 Chefは、物理サーバー、仮想マシン、およびクラウドでのシステムセットアップに使用され、 ITインフラストラクチャを制御および管理します。 1台または数千台のサーバーを管理する場合、chefはプロセス全体をコードに変換することで自動化します。 chefをGoogleCloud、Openstack、Rackspace、Amazon EC2などのクラウドベースのプラットフォームと簡単に統合して、新しい仮想マシンを自動的に構成できます。 Chefは、優れた機能を備えた小規模および大規模のITインフラストラクチャの両方にソリューションを提供します。 Chefツールを使用すると、各マシンで個別のタスクを実行することなく、中央の場所からインフラストラクチャを簡単に構成および管理できます。 Chefは、Chef Server、Chef Client、Workstation、Chef Analytics、ChefSupermarketなどの5つのコンポーネントで構成されています。

多くの企業がChefを使用して、Facebook、Indiegogo、Mozilla、HP Public Cloud、Disney、Etsyなどのインフラストラクチャを制御および管理しています。
シェフのメリット:
- クラウドまたはオンプレミスのWindows、Linux、Solarisサーバーなどのすべての環境を管理します。
- ネットワークまたはハードウェアに障害が発生した場合に自動負荷分散とフェイルオーバーを提供する高可用性を維持します。
- 中央の場所から複数のクラウド環境を管理します。
- 利用可能なプレミアム機能。
Ansible

Ansibleは、SSHを使用するだけでダウンタイムなしでアプリケーションとシステムを簡単にデプロイするために使用される、オープンソースの強力なIT自動化プラットフォームです。 Ansibleを使用すると、SSHまたはPowerShellを介してLinuxおよびWindowsノードを管理できます。 Ansibleは、Chef、Puppet、Saltに似たプロビジョニングツールであり、最も簡単で使い始めるのが簡単なツールの1つです。 Ansibleはエージェントやセキュリティインフラストラクチャを使用しないため、簡単にデプロイできます。 また、YAMLを使用して、自動化ジョブを平易な英語に近い方法で記述できるようにします。 数千のノードに単一または複数のソフトウェアをデプロイする必要がある場合は、Ansibleが登場します。単一のコマンドを使用して、多くのアプリケーションを多数のノードにデプロイできます。 Linuxで利用できるChefやPuppetなどの一般的な構成管理ツールはたくさんありますが、これらは使用がより複雑です。 Ansibleは、これらのオプションの優れた代替ツールです。
主な機能:
- グラフィカルなダッシュボード、ジョブスケジューリング、役割ベースのアクセス制御、およびグラフィカルな在庫管理。
- これまでになく、最もシンプルで使いやすいIT自動化システム。
- 非rootユーザーとして簡単に実行できます。
- ソフトウェアをブートストラップすることなく、複数のノードを非常に迅速かつ並行して管理します。
- Towerのリモートコマンド実行を使用して、インベントリ内の任意のホストまたはホストのグループで簡単なタスクを実行します。
Docker

Dockerはオープンソースであり、ソフトウェアコンテナ内でのLinuxアプリケーションのデプロイを自動化する世界をリードするソフトウェアコンテナ化プラットフォームです。 Dockerは、コンテナーを使用してアプリケーションを簡単に作成、デプロイ、実行できるように特別に設計されています。 Dockerを使用すると、アプリケーションを実行して、それらが実行されているシステムと同じLinuxカーネルを使用できます。 Dockerは、開発者とシステム管理者の両方のためのツールであり、多くのDevOpsの一部になっています。 Dockerは、Ansible、Amazon Web Services、Chef、Google Cloud Platform、Puppetなどのさまざまなインフラストラクチャツールに統合できます。
主な機能:
- アプリのすべてのコンテナーを単一のグループとして管理します。
- マルチコンテナアプリをアセンブルし、任意のインフラストラクチャで実行します。
- 1つのLinuxインスタンスで複数のコンテナーを実行できます。
- Dockerはとても軽量です。
スーパーバイザー

スーパーバイザーは、ユーザーがUNIXライクなオペレーティングシステム上の多数のプロセスを監視および制御できるようにするプロセス制御システムです。 スーパーバイザーとは、他のプロセスと子プロセスを監視し、それらがクラッシュした場合にそれらを再起動する役割を持つプロセスを指します。 これは非常に単純で、単純な構成ファイルを介して構成されます。 プロセスを個別またはグループで簡単に制御できます。 スーパーバイザーは、ローカルまたはリモートのコマンドラインとWebインターフェイスを提供します。
スーパーバイザーは、失敗したプロセスの再開と自動ログローテーションに使用される多くの前処理オプションを提供します。
主な機能:
- Pythonで記述されており、インストールにCコンパイラは必要ありません
- Solaris Solaris、Linux、Mac OS X、およびFreeBSDでサポートされています。
- 中央の場所からプロセスを管理します。
- 監視に使用できるイベント通知プロトコルがあります。
