スタヌトアップ向けの CICD: どのようなツヌルがあるのか​​、なぜ倧䌁業や有名䌁業だけがそれらを䜿甚しないのか

CICD ツヌルの開発者は、Microsoft、Oculus、Red Hat、さらにはフェラヌリや NASA などの倧䌁業を顧客ずしお挙げるこずがよくありたす。 このようなブランドは、数人の開発者ず XNUMX 人のデザむナヌからなる新興䌁業には手が出せないような高䟡なシステムしか扱っおいないように思えたす。 ただし、ツヌルの倧郚分は小芏暡なチヌムでも利甚できたす。

以䞋に泚意すべき点を説明したす。

スタヌトアップ向けの CICD: どのようなツヌルがあるのか​​、なぜ倧䌁業や有名䌁業だけがそれらを䜿甚しないのか
ЀПтП— チャバ・バラス — アンスプラッシュ

PHPセンサヌ

PHP でプロゞェクトを簡単に構築できるオヌプン゜ヌス CI サヌバヌ。 これはプロゞェクトのフォヌクです PHPCI。 PHPCI 自䜓はただ発展途䞊ですが、以前ほど掻発ではありたせん。

PHP Censor は、GitHub、GitLab、Mercurial、およびその他のいく぀かのリポゞトリず連携できたす。 コヌドをテストするために、このツヌルは Atoum、PHP Spec、Behat、Codeception ラむブラリを䜿甚したす。 ここ サンプルファむル 最初のケヌスの構成:

test:
    atoum:
        args: "command line arguments go here"
        config: "path to config file"
        directory: "directory to run tests"
        executable: "path to atoum executable"

考えたPHP Censor は小芏暡プロゞェクトのデプロむに適しおいたすが、自分でホストしお構成する必芁がありたす (自己ホスト型)。 このタスクは、かなり詳现なドキュメントによっお簡玠化されおいたす。 GitHub にありたす.

レックス

Rex はリモヌト実行の略です。 このシステムは、デヌタセンタヌのプロセスを自動化するために゚ンゞニアのフェレンツ・゚ルキによっお開発されたした。 Rex は Perl スクリプトに基づいおいたすが、このツヌルを操䜜するためにこの蚀語を知っおいる必芁はありたせん。ほずんどの操䜜 (ファむルのコピヌなど) は関数ラむブラリに蚘述されおおり、スクリプトは倚くの堎合 XNUMX 行に収たりたす。 耇数のサヌバヌにログむンしおアップタむムを実行する䟋を次に瀺したす。

use Rex -feature => ['1.3'];

user "my-user";
password "my-password";

group myservers => "mywebserver", "mymailserver", "myfileserver";

desc "Get the uptime of all servers";
task "uptime", group => "myservers", sub {
   my $output = run "uptime";
   say $output;
};

たずはツヌルに぀いお知り始めるこずをお勧めしたす。 公匏ガむド О 電子曞籍、珟圚完成䞭です。

オヌプンビルドサヌビス(OBS)

これはディストリビュヌションの開発を最適化するためのプラットフォヌムです。 そのコヌドはオヌプンであり、次のリポゞトリにありたす。 GitHubの。 ツヌルの䜜成者は䌁業です ノベル。 圌女は SuSE ディストリビュヌションの開発に参加し、このプロゞェクトは圓初 openSUSE Build Service ず呌ばれおいたした。 Open Build Service が登堎するのも䞍思議ではありたせん。 䜿甚する openSUSE、Tizen、VideoLAN でのプロゞェクトの構築甚。 デル、SGI、むンテルもこのツヌルを䜿甚しおいたす。 しかし、䞀般ナヌザヌの䞭には小芏暡なスタヌトアップ䌁業も存圚したす。 特に圌らのために、著者は集めたしたペヌゞ10) 事前蚭定枈み ゜フトりェアパッケヌゞ。 システム自䜓は完党に無料です。導入するためのホスティングたたはハヌドりェア サヌバヌにお金をかけるだけです。

しかし、その存圚を通じお、このツヌルが幅広いコミュニティを獲埗するこずはありたせんでした。 それでも 圌がいた Linux Developer Network の䞀郚であり、オヌプン OS の暙準化を担圓したす。 難しいかもしれたせん テヌマ別フォヌラムで質問に察する答えを芋぀けおください。 しかし、Quora 䜏民の XNUMX 人は次のように述べおいたす。 IRCチャット Freenode では、コミュニティのメンバヌが非垞にすぐに反応したす。 倚くの問題の解決策が説明されおいるため、小さなコミュニティの問題は䞖界芏暡ではありたせん。 公匏ドキュメントでは (PDF および EPUB)。 同䞊。 芋぀けるこずができたす OBS を䜿甚するためのベスト プラクティス (䟋ずケヌスがありたす)。

ランデック

ツヌルを開く (GitHubの)、スクリプトを䜿甚しおデヌタセンタヌずクラりドのタスクを自動化したす。 特別なスクリプト サヌバヌがそれらの実行を担圓したす。 Rundeck は、ControlTier アプリケヌション管理プラットフォヌムの「嚘」であるず蚀えたす。 Rundeck は 2010 幎にそこから分離し、Puppet、Chef、Git、Jenkins ずの統合などの新しい機胜を獲埗したした。

このシステムが䜿甚されおいるのは、 りォルト·ディズニヌ·カンパニヌ, Salesforce О Tick​​etmasterは。 しかし、このプロゞェクトはスタヌトアップにも適しおいたす。 これは、Rundeck が Apache v2.0 ラむセンスに基づいおラむセンスされおいるためです。 さらに、このツヌルは非垞に䜿いやすいです。

Rundeckず協力したReddit居䜏者、 圌は話したす、ほずんどの問題を自分で解決したした。 圌らはこれで圌を助けたした ドキュメントず電子曞籍、開発者によっお公開されたした。

ツヌルをセットアップするための簡単なガむドをオンラむンで芋぀けるこずもできたす。

GoCD

ツヌルを開く (GitHubの) コヌドのバヌゞョン管理を自動化したす。 同瀟は2007幎に導入した ThoughtWorksの — その埌、プロゞェクトはクルヌズず呌ばれたした。

GoCD は、オンラむン自動車販売サむト AutoTrader、家系図サヌビス Ancestry、クレゞット カヌド プロバむダヌ Barclaycard の゚ンゞニアによっお䜿甚されおいたす。 ただし、ツヌル ナヌザヌの XNUMX 分の XNUMX は、 䞭小䌁業を構成する.

このサヌビスがスタヌトアップ䌁業の間で人気があるのは、そのオヌプン性によっお説明できたす。぀たり、このサヌビスは Apache v2.0 ラむセンスに基づいお配垃されおいたす。 同時に、GoCD それは持っおいたす サヌドパヌティ ゜フトりェア - 認蚌システムやクラりド ゜リュヌションず統合するためのプラグむン。 真のシステム かなり耇雑 マスタリングでは、倚数のオペレヌタヌずチヌムがいたす。 たた、䞀郚のナヌザヌはむンタヌフェヌスの貧匱さに぀いお䞍満を抱いおいたす。 必芁性 スケヌリング甚に゚ヌゞェントを構成したす。

スタヌトアップ向けの CICD: どのようなツヌルがあるのか​​、なぜ倧䌁業や有名䌁業だけがそれらを䜿甚しないのか
ЀПтП— マット・ワむルドボア — アンスプラッシュ

実際に GoCD を詊しおみたい堎合は、プロゞェクト Web サむトで芋぀けるこずができたす。 公匏ドキュメント。 远加情報源ずしおもお勧めしたす GoCD 開発者ブログ マニュアル付き セットアップ時.

ゞェンキンズ

ゞェンキンスは広く知られおおり、 怜蚎した CICD の分野における䞀皮の暙準です。もちろん、これがなければこの遞択は完党には完了したせん。 このツヌルは 2011 幎に登堎したした。 〜になる Oracle の Project Hudson のフォヌク。

今日はゞェンキンスさんず 働く NASA、任倩堂、その他の倧芏暡組織で。 しかし もっず8 ナヌザヌは最倧 XNUMX 人からなる小芏暡なチヌムを担圓したす。 補品は完党に無料で配垃されおいたす MITラむセンスに基づく。 ただし、Jenkins を自分でホストしお構成する必芁がありたす。専甚のサヌバヌが必芁です。

この楜噚の存圚党䜓にわたっお、その呚囲に倧きなコミュニティが圢成されおきたした。 ナヌザヌはスレッド内で積極的にコミュニケヌションを行っおいたす。 Reddit О Googleグルヌプ。 Jenkins に関する資料は Habré にも定期的に掲茉されたす。 コミュニティの䞀員になっお Jenkins ずの連携を開始したい堎合は、次の方法がありたす。 公匏ドキュメント О 開発者ガむド。 次のガむドや曞籍もお勧めしたす。

Jenkins にはいく぀かの䟿利なサむド プロゞェクトがありたす。 䞀぀目はプラグむンです コヌドずしおの構成。 ツヌルに関する深い知識のない管理者でも理解できる、読みやすい API を䜿甚しお Jenkins を簡単にセットアップできたす。 XNUMX぀目はシステムです ゞェンキンスX クラりドのために。 䞀郚の日垞的なタスクを自動化するこずで、倧芏暡な IT むンフラストラクチャにデプロむされたアプリケヌションの配信を高速化したす。

ビルドボット

これは、アプリケヌションのビルドずテストのサむクルを自動化するための継続的統合システムです。 コヌドに倉曎が加えられるたびに、コヌドの機胜が自動的にチェックされたす。

このツヌルの䜜者ぱンゞニアのブラむアン・ワヌナヌ氏でした。 今日圌は勀務䞭です かわった Buildbot 監芖委員䌚むニシアチブ グルヌプ。XNUMX 人の開発者が含たれたす。

ビルドボット 䞭叀 LLVM、MariaDB、Blender、Dr.Web などのプロゞェクト。 ただし、wxWidgets や Flathub などの小芏暡なプロゞェクトでも䜿甚されたす。 このシステムは最新の VCS をすべおサポヌトしおおり、Python を䜿甚しおビルド蚭定を蚘述するこずにより、柔軟なビルド蚭定を備えおいたす。 それらすべおに察凊するのに圹立ちたす。 公匏ドキュメント およびサヌドパヌティのチュヌトリアル。たずえば、ここに短いチュヌトリアルがありたす。 IBMのマニュアル.

もちろん、 それがすべおではありたせん 小芏暡組織やスタヌトアップ䌁業が泚目すべき DevOps ツヌル。 お気に入りのツヌルをコメント欄に蚘入しおください。次の資料のいずれかでそれらに぀いおお話したす。

䌁業ブログで曞いおいる内容:

出所 habr.com

コメントを远加したす