JenkinsがDevOpsのエンジンになっている理由

アジャイル開発、DevOps、継続的インテグレーションなどのトレンドは、ソフトウェアを超効率的に構築する必要があること、そして必要に応じてダイムをオンにする必要があることを物語っています。

後者の操作は、CloudBeesが今日の会社になった方法です。かつてJavaコーダー向けの独立したパブリッククラウドPaaSプロバイダー(「どのおかしなPaaSを使用すべきか」でAndrew Oliverによって高く評価されました)、CloudBeesは18か月前に急上昇し、非常に人気のあるオープンソースであるJenkinsの主要プロバイダーとして再起動しました。ソフトウェア開発プロセスを管理するためのソースツール。

CEOのSashaLaboureyによると、Java PaaSプロバイダーとしてCloudBeesは「順調に成長」していましたが、「より大きなチェックを行う多くの大物」は、標準化されていない不安定なPaaS市場でのコミットをためらっていました。同時に、ジェンキンスはロケットのように離陸していました-そして、特にCloudBeesがすでにジェンキンスをサービスとして提供していて、ジェンキンスの作成者である川口耕介をすでに雇っていたので、Laboureyは大きなチャンスを見ました。ジェンキンスのおかずがメインコースになりました。

ジェンキンスジャガーノート

ジェンキンスの人気の背後にあるものは何ですか?簡単に言えば、Jenkinsは、ソースコード管理からコードの本番環境への配信まで、devopsの開発側を管理するためのオープンソース標準になりました。 Laboureyによると、「コミュニティはJenkinsをオーケストレーションおよび自動化エンジンと見なしています... Jenkinsが事実上のエンジンになった理由は、非常にプラグイン可能だからだと思います。」 1,100を超えるプラグインのエコシステムが出現し、顧客はあらゆる種類の機能を追加し、JenkinsをActive DirectoryからGitHub、OpenShiftPaaSまですべてと統合できるようになりました。

Jenkinsは、継続的インテグレーション(CI)および継続的デリバリー(CD)ソリューションです。 CIのアイデアは、個々の開発者からのコードを1日に複数回プロジェクトにマージし、継続的にテストして、ダウンストリームの問題を回避することです。 CDはこれをさらに一歩進めて、マージされたすべてのコードが常に本番環境に対応した状態になるようにします。 Jenkinsを使用すると、開発者はこのプロセスを可能な限り自動化できます(展開の時点まで)。 Laboureyは例を提供します:

会社がChefまたはPuppetを使用してAWSにデプロイしているとします。ジェンキンスはそれに取って代わるつもりはありません。Jenkinsはそれを行うためにPuppetを呼び出す予定です-OK、ここにビットがあるので、このPuppetスクリプトを呼び出して、それがどのように機能するかを見てみましょう。そして、Puppetの実行の出力は、デプロイメントを展開してさらにアクションを実行することを決定する可能性があるため、Jenkinsにとって重要になります。これを「パイプライン」と呼びます。それは本当にこの一連のステップです。5ステップ、または50ステップの場合があります。

Jenkinsは、ソースから配信までのこのCI / CDパイプラインを管理するワークフローエンジンとして機能しますが、その過程で、さまざまな機能を実行するためにさまざまなツールが必要になる場合があります。

Dockerはそれらのツールの1つであり、DockerはJenkinsと連携して開発チームに大きな影響を与えています。Dockerが開発を合理化し、デプロイを非常に簡単にすることは誰もが知っていますが、Laboureyは、開発者の正直さを保つのにも役立つと考えています。ビルドがクラッシュしてバーンしたときに、開発環境の設定ミスを非難することはできなくなりました。物理マシンでは、開発環境が徐々に破損し、不注意でビルドが破損します。しかし、元のDockerイメージの上でコーディングしている場合、ビルドが実行されないときに責任を負うのは、独自の欠陥のあるコードだけです。

Jenkinsとその統合エコシステムが一体となって、アジャイル開発のための調整ソフトウェアインフラストラクチャを提供し、より広く「devopsイニシアチブのコア」を形成します」とLabourey氏は言います。

ここからそこに着く

このすべての自動化とDevOpsの効率は素晴らしいように聞こえますが、アジャイル開発に頭を悩ませている組織はどうでしょうか。 Laboureyは、CI / CDへの移行に関するアドバイスを提供しています。

そのための最善の方法は、小さなことから始めることだと思います。プロジェクトを選択します。 「OK、今は継続的デリバリーショップになっているので、すべてがこのように進んでいます」と言わないでください。意欲的なチームから始めましょう。他のチームよりも柔軟性があり、新しいチームメンバーであり、既存のやり方にあまり固執していない可能性があります。簡単なプロジェクトを選んでください。それが機能するかどうかを言う方法としてそれを使用しようとしないでください、すべてが機能します。失敗しようとしないでください。成功しようとします。意欲的なチームを選び、簡単なプロジェクトを選び、そこに着きます。このチームは、それが機能することを示すことができるので、あなたの最高のセールスマンになるでしょう。率直に言って、古いやり方は退屈なので、彼らは自分の仕事がどのように良くなったのかについて話すことができます。

プロセスの一部は、「人々の脳に静かにある知識を抽出し、それを論理としてパイプラインに入れる」ことであるとLaboureyは述べています。それは一夜にして起こりません。多くの場合、開発組織はCIを打ち出すことから始め、時間の経過とともにCDに向けて取り組みます。

開発組織は、多種多様で非常に具体的な要件を持つ傾向があります。そのため、CloudBeesは、CloudBeesが実行する一般的なサブスクリプションベースのSaaSバージョンと「プライベートSaaS」バージョンの両方を提供します。これらのバージョンは、AWSまたはAzure(またはOpenStackでローカル)にデプロイして、心ゆくまでカスタマイズできます。

開発プロセスの調整、自動化、および合理化の重要性を誇張することはできません。CI / CDはDevOpsの中心であり、DevOpsの実装が成功すると、ITだけでなくビジネス自体にも影響が及びます。ソフトウェアを継続的に改善することで、製品とサービスが継続的に改善されます。たとえば、テスラはモデルの1つに火がつき、深刻な後退を経験しました。ソフトウェアアップグレードを展開すると、問題は一夜にして修正されました。

「効率が10%向上すると、興味深いことになります。ITに年間1億ドルを費やすと、すばらしいことです。他の場所で1,000万ドルを費やすことができます」とLabourey氏は言います。「しかし、本当のメリットは、これらのツールとその方法を活用することで、売上を10%増加させることができることを企業が認識したときです。」