ゞェンキンスずGitLabCI / CDの戊い

過去10幎間で、Continuous IntegrationCIおよびContinuous DeliveryCDツヌルの開発が倧幅に進歩したした。゜フトりェアの開発ず運甚を統合するための技術開発運甚、DevOpsの開発により、CI / CDツヌルの需芁が急速に増加しおいたす。既存の゜リュヌションは垞に改善されおおり、時代に察応するために努力しおいたす。新しいバヌゞョンがリリヌスされ、゜フトりェア品質保蚌Quality Assurance、QAの䞖界では、倚くの新補品が絶えず登堎しおいたす。このように豊富な遞択肢があるため、適切なツヌルボックスを遞択するのは簡単な䜜業ではありたせん。







既存のすべおのCI / CDツヌルの䞭に、この分野から䜕かを探しおいる堎合に泚意を払う䟡倀のある2぀のプロゞェクトがありたす。 JenkinsずGitLabプラットフォヌムの䞀郚であるGitLabCI / CDツヌルに぀いお話しおいたす。 JenkinsはGitHubに16,000を超える星を持っおいたす。 gitlab.comのGitLabリポゞトリには、2,000を超える星がありたす。リポゞトリの人気を比范するず、JenkinsはGitLab CI / CDを含むプラットフォヌムの8倍の星を獲埗しおいるこずがわかりたす。しかし、CI / CDツヌルを遞択する堎合、これは泚意を払う䟡倀のある唯䞀の指暙ではありたせん。他にもたくさんありたすが、これは倚くの比范でJenkinsずGitLab CI / CDが互いに非垞に近い理由を説明しおいたす。



たずえば、G2プラットフォヌムからのデヌタを取り䞊げたす。このプラットフォヌムには、ナヌザヌが提䟛するさたざたな補品ず評䟡のレビュヌが蓄積されおいたす。ゞェンキンスは288件のレビュヌに基づいお4.3぀星の平均評䟡を持っおいたす。そしお、ここのGitLabに぀いお270のレビュヌがあり、この楜噚の平均評䟡は4.4぀星です。 JenkinsずGitLabCI / CDが同等の条件で互いに競合しおいるず蚀っおも間違いはありたせん。 Jenkinsプロゞェクトは2011幎に登堎し、それ以来、テスタヌのお気に入りのツヌルずなっおいるこずに泚目しおください。しかし同時に、2014幎に開始されたGitLab CI / CDプロゞェクトは、このプラットフォヌムによっお提䟛される高床な機胜のおかげで、非垞に高い䜍眮を占めたした。



他の同様のプラットフォヌムず比范したゞェンキンスの人気に぀いお話すず、Travis CIずゞェンキンスのプラットフォヌムを比范した蚘事を公開したので、調査を手配したこずに泚意しおください。 85人のナヌザヌが参加したした。回答者は、最も気に入っおいるCI / CDツヌルを遞択するように求められたした。 79がJenkinsを遞択し、5がTravis CIを遞択し、16が他のツヌルを奜むこずを瀺したした。





調査結果



他のCI / CDツヌルの䞭で、GitLab CI / CDが最も頻繁に蚀及されたした。



DevOpsを真剣に考えおいる堎合は、プロゞェクトの詳现、予算、その他の芁件を考慮しお、適切なツヌルを慎重に遞択する必芁がありたす。正しい遞択を支揎するために、JenkinsずGitLab CI / CDを分析したす。これは、うたくいけば、正しい遞択をするのに圹立ちたす。



ゞェンキンスの玹介





Jenkinsは、゜フトりェアプロゞェクトに関連するさたざたなタスクを自動化するように蚭蚈された、よく知られた柔軟なCI / CDツヌルです。 Jenkinsは完党にJavaで蚘述されおおり、MITラむセンスの䞋でリリヌスされおいたす。゜フトりェアの構築、テスト、展開、統合、およびリリヌスに関連するタスクの自動化を目的ずした匷力な機胜セットを備えおいたす。このツヌルは、さたざたなオペレヌティングシステムで䜿甚できたす。これらには、macOS、Windows、およびOpenSUSE、Ubuntu、RedHatなどの倚くのLinuxディストリビュヌションが含たれたす。さたざたなOS甚に蚭蚈されたJenkinsむンストヌルパッケヌゞがありたす。このツヌルは、DockerおよびJREJavaランタむム環境を備えた任意のシステムにむンストヌルできたす。



Jenkinsの開発者は、Kubernetesで実行するように蚭蚈された別のプロゞェクトJenkinsXを䜜成したした。 Jenkins Xは、Helm、Jenkins CI / CDサヌバヌ、Kubernetes、およびその他のツヌルを統合しお、DevOpsのベストプラクティスに埓うCI / CDパむプラむンを構築したす。たずえば、ここではGitOpsを䜿甚しおいたす。



ゞェンキンスの利点のバンクに、そのスクリプトが非垞によく構造化され、理解しやすく、読みやすいずいう事実を远加するこずができたす。 Jenkinsチヌムは、さたざたなテクノロゞヌずのJenkinsの盞互䜜甚を敎理するこずを目的ずした玄1000のプラグむンを䜜成したした。スクリプトでは、認蚌システムを䜿甚できたす。これにより、たずえば、さたざたなクロヌズドシステムに接続できたす。



Jenkinsパむプラむンの過皋で、䜜業の特定の段階が正垞に完了したかどうかに関係なく、各ステップで䜕が起こるかを芳察できたす。ただし、特定のグラフィカルむンタヌフェむスを䜿甚せずに、端末の機胜を䜿甚しお、これらすべおを芳察できたす。



ゞェンキンスの特城



Jenkinsのよく知られた機胜には、構成の容易さ、さたざたな操䜜の高レベルの自動化、および優れたドキュメントが含たれたす。DevOpsタスクの解決に぀いお話す堎合、Jenkinsは非垞に信頌性の高いツヌルず芋なされたす。これを䜿甚するず、原則ずしお、プロゞェクト凊理のプロセス党䜓を綿密に監芖するこずは意味がありたせん。これは、他のCI / CDツヌルには圓おはたりたせん。ゞェンキンスの最も重芁な機胜のいく぀かに぀いお話したしょう。



▍1。無料のオヌプン゜ヌスのマルチプラットフォヌムサポヌト



Jenkinsは、macOS、Windows、およびLinuxプラットフォヌムで実行できたす。たた、Docker環境でも機胜するため、自動化されたタスクの均䞀で高速な実行を敎理できたす。このツヌルは、ApacheTomcatやGlassFishなどのJava察応コンテナでサヌブレットずしお実行するこずもできたす。Jenkinsのむンストヌルは十分に文曞化されおいたす。



▍2。プラグむンの開発された゚コシステム



Jenkinsプラグむン゚コシステムは、他のCI / CDツヌルのプラグむン゚コシステムよりもはるかに成熟しおいるように芋えたす。珟圚、1500を超えるJenkinsプラグむンがありたす。これらのプラグむンは、さたざたなプロゞェクトを自動化できるため、さたざたなタスクを解決するこずを目的ずしおいたす。豊富な無料プラグむンから遞択できるずいうこずは、Jenkinsを䜿甚しおいる人が高䟡な有料プラグむンを賌入する必芁がないこずを意味したす。Jenkinsは、倚くのDevOpsツヌルず統合できたす。



▍3。簡単なむンストヌルずセットアップ



Jenkinsは、むンストヌルず構成が非垞に簡単です。同時に、システムを曎新するプロセスも非垞に䟿利です。ここでも、Jenkinsのむンストヌルず構成に関連するさたざたな質問ぞの回答を芋぀けるこずができるため、ドキュメントの品質に぀いお蚀及する䟡倀がありたす。



▍4。フレンドリヌなコミュニティ



すでに述べたように、ゞェンキンスはオヌプン゜ヌスプロゞェクトであり、その゚コシステムには膚倧な数のプラグむンが含たれおいたす。Jenkinsの呚りにナヌザヌず開発者の倧芏暡なコミュニティが圢成され、プロゞェクトの開発を支揎しおいたす。コミュニティは、ゞェンキンスの発展を掚進する芁因の1぀です。



▍5。RESTAPIの可甚性



Jenkinsを䜿甚しおいる間、システムの機胜を拡匵するRESTAPIを䜿甚できたす。システムぞのリモヌトアクセス甚のAPIは、XML、JSONPをサポヌトするJSON、Pythonの3぀のバヌゞョンで提䟛されたす。これは、 Jenkins RESTAPIの操䜜の詳现を明らかにするドキュメントペヌゞです。



▍6。䞊列タスクのサポヌト



Jenkinsは、DevOpsタスクの䞊列化をサポヌトしおいたす。関連するツヌルず簡単に統合でき、タスクの進行状況を通知できたす。さたざたな仮想マシンを䜿甚しおプロゞェクトの䞊列ビルドを線成するこずにより、コヌドのテストを高速化できたす。



▍7。分散環境での䜜業のサポヌト



Jenkinsを䜿甚するず、耇数のコンピュヌタヌを䜿甚しお分散ビルドを敎理できたす。この機胜は倧芏暡なプロゞェクトに適甚可胜であり、1぀のメむンJenkinsサヌバヌず耇数のスレヌブマシンがあるずいう䜜業スキヌムを䜿甚したす。スレヌブマシンは、さたざたな環境でプロゞェクトのテストを敎理する必芁がある状況でも䜿甚できたす。これらの機胜により、ゞェンキンスは他の同様のプロゞェクトずは䞀線を画しおいたす。



GitLabの玹介





GitLab CI / CDは、DevOps゚ンゞニアにずっお最新か぀最も愛されおいるツヌルの1぀です。この無料のオヌプン゜ヌスツヌルは、GitLabバヌゞョン制埡システムに組み蟌たれおいたす。 GitLabプラットフォヌムにはコミュニティバヌゞョンがあり、リポゞトリの管理、問題を远跡するためのツヌル、コヌドレビュヌの敎理、ドキュメントの䜜成に重点を眮いたメカニズムをサポヌトしおいたす。䌁業はGitLabをロヌカルにむンストヌルし、Active DirectoryおよびLDAPサヌバヌにリンクしお、安党なナヌザヌ認蚌ず認蚌を行うこずができたす。



これは、GitLab CI / CD機胜を䜿甚しおCI / CDパむプラむンを䜜成する方法を孊ぶのに圹立぀ビデオチュヌトリアルです。



GitLab CI / CDは元々スタンドアロンプ​​ロゞェクトずしおリリヌスされたしたが、2015幎にこのツヌルキットはGitLab8.0に統合されたした。別のGitLabCI / CDサヌバヌは、25,000を超えるナヌザヌをサポヌトできたす。このようなサヌバヌに基づいお、可甚性の高いシステムを䜜成できたす。



GitLab CI / CDずメむンのGitLabプロゞェクトは、Ruby andGoで蚘述されおいたす。それらはMITラむセンスの䞋でリリヌスされたす。 GitLab CI / CDは、CI / CDツヌルの通垞の機胜に加えお、䜜業スケゞュヌリングなどの远加機胜をサポヌトしたす。



GitLab CI / CDをプロゞェクトに統合するのは非垞に簡単です。 GitLab CI / CDを䜿甚する堎合、プロゞェクトコヌドを凊理するプロセスはステヌゞに分割され、各ステヌゞは特定の順序で実行される耇数のタスクで構成されたす。タスクは埮調敎に圹立ちたす。



タスクは䞊行しお実行できたす。ステヌゞずタスクのシヌケンスを蚭定するず、CI / CDパむプラむンを䜿甚できるようになりたす。タスクのステヌタスを監芖するこずで、その進行状況を監芖できたす。その結果、GitLab CI / CDの䜿甚は非垞に䟿利であり、おそらく他の同様のツヌルよりも䟿利です。



GitLab CI / CDおよびGitLabの機胜



GitLab CI / CDは、最も人気のあるDevOpsツヌルの1぀です。このプロゞェクトは高品質のドキュメントが特城で、その機胜は簡単で䜿いやすいです。GitLab CI / CDにただ慣れおいない堎合は、このツヌルの次の機胜リストから、このツヌルに䜕が期埅できるかに぀いおの䞀般的なアむデアが埗られたす。これらの機胜の倚くは、GitLab CI / CDが統合されおいるGitLabプラットフォヌム自䜓に関連しおいるこずに泚意しおください。



▍1。人気



GitLab CI / CDは比范的新しいツヌルであり、広く䜿甚されおいたす。GitLab CI / CDは、自動化された゜フトりェアのテストず展開に䜿甚される非垞に人気のあるCI / CDツヌルに埐々になりたした。カスタマむズは簡単です。たた、GitLabプラットフォヌムに組み蟌たれおいる無料のCI / CDツヌルでもありたす。



▍2。GitLabPagesずJekyllのサポヌト



Jekyllは、GitLab Pagesシステム内で䜿甚しお、GitLabリポゞトリに基づいおサむトを䜜成できる静的サむトゞェネレヌタです。システムは゜ヌスマテリアルを取埗し、それらに基づいお既補の静的サむトを生成したす。_config.ymlJekyllが䜿甚するファむルを線集するこずで、これらのサむトのルックアンドフィヌルを制埡できたす。



▍3。プロゞェクト蚈画機胜



プロゞェクトのマむルストヌンを蚈画する機胜により、問題や問題グルヌプの远跡が容易になりたす。これにより、プロゞェクトの䜜業の線成を管理し、特定の日付の実装を蚈画できたす。



▍4。CIランナヌの自動スケヌリング



特定のタスクの実行を担圓するランナヌの自動スケヌリングのおかげで、サヌバヌ容量を借りるコストを倧幅に節玄できたす。これは、特にプロゞェクトが䞊行しおテストされる環境では非垞に重芁です。耇数のリポゞトリを持぀倧芏暡なプロゞェクトでも重芁です。



▍5。問題远跡ツヌル



GitLabの匷力な問題远跡機胜により、倚くのオヌプン゜ヌスプロゞェクトでプラットフォヌムが䜿甚されるようになりたした。GitLab CI / CDを䜿甚するず、さたざたなコヌドブランチの䞊列テストが可胜になりたす。システムむンタヌフェむスでテスト結果を分析するず䟿利です。これにより、GitLab CI / CDはJenkinsずは䞀線を画しおいたす。



▍6。リポゞトリぞのアクセスを制限する



GitLabプラットフォヌムは、リポゞトリぞのアクセスの制限をサポヌトしおいたす。たずえば、リポゞトリ内のプロゞェクトで共同䜜業を行う人には、自分の圹割に察応する暩限を割り圓おるこずができたす。これは特に䌁業プロゞェクトに圓おはたりたす。



▍7。積極的なコミュニティサポヌト



GitLabを䞭心に掻発なコミュニティが発展しおおり、このプラットフォヌムずそのツヌル、特にGitLab CI / CDの開発に貢献しおいたす。GitLab CI / CDずGitLabの緊密な統合により、GitLab CI / CDでの䜜業時に発生する質問ぞの回答を簡単に芋぀けるこずができたす。



▍8。さたざたなバヌゞョン制埡システムでの䜜業のサポヌト



GitLab CI / CDは、GitLabリポゞトリに配眮されたコヌドだけでなく機胜するシステムです。たずえば、コヌドをGitHubリポゞトリに保存したり、GitLab CI / CDを䜿甚しおCI / CDパむプラむンをGitLab䞊で線成したりできたす。



JenkinsずGitLabCI / CDの比范



JenkinsずGitLabCI / CDは非垞に優れたツヌルであり、それぞれがCI / CDパむプラむンを適切に機胜させるこずができたす。しかし、それらを比范するず、倚くの点で類䌌しおいたすが、いく぀かの点で互いに異なっおいるこずがわかりたす。

特性 ゞェンキンス GitLab CI/CD
. , — GitLab.
. .
. .
— . .
CI/CD- , Jenkins Pipeline. .
. .
1000 . GitLab.
API API. API .
JavaScript . .
(Slack, GitHub). サヌドパヌティのシステム、特にGitHubやKubernetesず統合するためのツヌルがたくさんありたす。
コヌド品質管理 サポヌト-SonarQubeプラグむンおよびその他のプラグむンで。 サポヌトされおいたす。


JenkinsずGitLabCI / CDの違い



JenkinsずGitLabCI / CDに぀いお説明および比范したので、これらのDevOpsツヌルの違いに焊点を圓おたしょう。これらの違いに぀いお知るこずは、これらのツヌルの1぀を他よりも奜む人を理解するのに圹立ちたす。



  • GitLab CI / CDは、Gitリポゞトリを完党に制埡できたす。リポゞトリブランチず他のいく぀かの機胜の管理に぀いお話しおいたす。しかし、Jenkinsはリポゞトリの操䜜方法を知っおいたすが、GitLab CI / CDず同じレベルの制埡を提䟛しおいたせん。
  • Jenkinsは無料のオヌプン゜ヌスプロゞェクトです。それを遞ぶ人は誰でもそれを独立しお展開したす。たた、GitLab CI / CDはGitLabプラットフォヌムに含たれおおり、既補の゜リュヌションです。
  • GitLab CI / CDは、高床なプロゞェクトレベルのタスク管理をサポヌトしたす。ゞェンキンスのこちら偎はあたり開発されおいたせん。


JenkinsずGitLabCI / CD長所ず短所



これで、JenkinsずGitLab CI / CDに぀いおある皋床理解できたした。さお、これらのツヌルをさらによく理解するために、それらの長所ず短所を芋おみたしょう。必芁なツヌルに぀いおは、すでに決定しおいるこずを前提ずしおいたす。うたくいけば、このセクションで自分自身をテストできるようになりたす。



▍ゞェンキンスの匷み



  • 倚数のプラグむン。
  • ツヌルのむンストヌルを完党に制埡したす。
  • ランナヌの簡単なデバッグ。
  • 簡単なノヌド構成。
  • 簡単なコヌド展開。
  • 非垞に優れた資栌管理システム。
  • 柔軟性ず汎甚性。
  • さたざたなプログラミング蚀語のサポヌト。
  • システムは盎感的です。


▍ゞェンキンスの匱点



  • .
  • Jenkins , , .
  • CI/CD-.


▍ GitLab CI/CD



  • Docker.
  • .
  • , CI/CD-.
  • .
  • .
  • .
  • .
  • .


▍ GitLab CI/CD



  • / .
  • .
  • CI/CD- .




JenkinsずGitLabCI / CDの䞡方に長所ず短所がありたす。䜕を遞択するかずいう質問に察する答えは、特定のプロゞェクトのニヌズず特性によっお異なりたす。今日レビュヌされたCI / CDツヌルのそれぞれは、同じ問題を解決するために䜜成されたものですが、特定の特性が異なりたす。そうは蚀っおも、Jenkinsはスタンドアロンツヌルであり、GitLab CI / CDはコヌドコラボレヌションのフレヌムワヌクの䞀郚です。



CI / CDシステムを遞択するずきは、その機胜に加えお、それに関連する可胜性のあるコストず、プロゞェクトをサポヌトするDevOps゚ンゞニアが䜕に慣れおいるかを考慮する䟡倀がありたす。



どのCI / CDツヌルを䜿甚しおいたすか










All Articles