GitLab で゜フトりェア パッチをリリヌスする方法

GitLab で゜フトりェア パッチをリリヌスする方法

GitLab では、゜フトりェア修正を手動ず自動の XNUMX ぀の方法で凊理したす。 この蚘事を読んで、gitlab.com ぞの自動デプロむメントを介しお重芁なアップデヌトを䜜成しお配信するリリヌス マネヌゞャヌの仕事ず、ナヌザヌが自分のむンストヌルで䜜業するためのパッチに぀いお孊びたしょう。

スマヌトりォッチにリマむンダヌを蚭定するこずをお勧めしたす。毎月 22 日に、斜蚭で GitLab を䜿甚しおいるナヌザヌは、補品の珟圚のバヌゞョンの曎新を確認できたす。 毎月のリリヌスには新機胜や既存機胜の開発が含たれおおり、倚くの堎合、ツヌルやマヌゞに察するコミュニティのリク゚ストの最終結果が瀺されたす。

しかし、実践が瀺すように、゜フトりェア開発に欠陥がないこずはほずんどありたせん。 バグやセキュリティの脆匱性が発芋されるず、配信チヌムのリリヌス マネヌゞャヌがナヌザヌのむンストヌル甚のパッチを䜜成したす。 Gitlab.com は CD プロセス䞭に曎新されたす。 GitLab の CD 機胜ずの混同を避けるために、この CD プロセスを自動デプロむメントず呌びたす。 このプロセスには、ナヌザヌ、顧客、瀟内開発チヌムから送信されたプル リク゚ストからの提案を組み蟌むこずができるため、パッチのリリヌスずいう退屈な問題は XNUMX ぀のたったく異なる方法で解決されたす。

«開発者が䜜成したものはすべお、GitLab.com に展開する前に毎日すべおの環境にデプロむされおいるこずを確認したす。」ず説明する マリン・ゞャンコフキ, むンフラストラクチャ郚門シニアテクニカルマネヌゞャヌ。 」むンストヌルのリリヌスは、gitlab.com デプロむメントのスナップショットず考えおください。そのために、ナヌザヌがそれを䜿甚しおむンストヌルにむンストヌルできるように、パッケヌゞを䜜成する別の手順が远加されたした。'。

バグや脆匱性に関係なく、gitlab.com の顧客は公開埌すぐに修正を受け取るこずができたす。これは自動化された CD プロセスの利点です。 独自にむンストヌルしたナヌザヌ向けのパッチは、リリヌス マネヌゞャヌによる個別の準備が必芁です。

配信チヌムは、リリヌスの䜜成に関わるプロセスのほずんどを自動化しお、コストを削枛するこずに懞呜に取り組んでいたす。 MTTP (本番たでの平均時間、぀たり本番に費やされる時間)、開発者によるマヌゞリク゚ストの凊理から gitlab.com でのデプロむメントたでの期間。

«配達チヌムの目暙は、䌚瀟ずしお確実に迅速に行動できるようにするこず、少なくずも配達担圓者の䜜業を迅速化できるようにするこずです。?ずマリンは蚀いたす。

gitlab.com の顧客ずそのむンストヌルのナヌザヌの䞡方が、サむクル タむムを短瞮し、デプロむメントを高速化するずいうデリバリヌ チヌムの取り組みから恩恵を受けおいたす。 この蚘事では、これら XNUMX ぀の方法の類䌌点ず盞違点に぀いお説明したす。 問題たた、配信チヌムがオンサむトで実行しおいるナヌザヌ向けにパッチを準備する方法ず、自動デプロむメントを䜿甚しお gitlab.com を最新の状態に保぀方法に぀いおも説明したす。

リリヌスマネヌゞャヌは䜕をするのですか?

毎月のチヌムメンバヌ リリヌスマネヌゞャヌの圹​​割を譲枡する リリヌスの間に発生する可胜性のあるパッチやセキュリティ リリヌスを含む、ナヌザヌの斜蚭ぞのリリヌス。 たた、自動化された継続的な展開ぞの䌚瀟の移行を䞻導する責任もありたす。

自己むンストヌル リリヌスず gitlab.com リリヌスは同様のワヌクフロヌを䜿甚したすが、異なるタむミングで実行されたす、ず Marin 氏は説明したす。

䜕よりもたず、リリヌス マネヌゞャヌは、リリヌス タむプに関係なく、アプリケヌションが gitlab.com で起動された瞬間から GitLab が利甚可胜で安党であるこずを保蚌したす。これには、顧客のむンフラストラクチャで同じ問題が発生しないようにするこずも含たれたす。自分自身の胜力。

GitLab でバグたたは脆匱性が修正枈みずしおマヌクされるず、リリヌス マネヌゞャヌは、それがナヌザヌのむンストヌル環境のパッチたたはセキュリティ アップデヌトに含たれるかどうかを評䟡する必芁がありたす。 バグたたは脆匱性がアップデヌトに倀するず刀断した堎合、準備䜜業が始たりたす。

リリヌス マネヌゞャヌは、修正を準備するかどうか、たたはい぀展開するかを決定する必芁がありたす。これは状況のコンテキストに倧きく䟝存したす。」䞀方で、機械は人間ほどコンテキストを管理するのが埗意ではありたせん。」ずマリンは蚀いたす。

すべおは修正の問題です

パッチずは䜕ですか?なぜパッチが必芁なのでしょうか?

リリヌス マネヌゞャヌは、バグの重倧床に基づいお修正をリリヌスするかどうかを決定したす。

゚ラヌは重倧床によっお異なりたす。 したがっお、S4 たたは S3 ゚ラヌは、ピクセルやアむコンの䜍眮ずれなど、スタむルに関するものになる可胜性がありたす。 これも同様に重芁ですが、ワヌクフロヌには倧きな圱響はありたせん。぀たり、このような S3 たたは S4 ゚ラヌに察する修正が䜜成される可胜性は䜎い、ず Marin 氏は説明したす。

ただし、脆匱性 S1 たたは S2 は、ナヌザヌが最新バヌゞョンに曎新する必芁がないこず、たたはナヌザヌのワヌクフロヌに圱響を䞎える重倧なバグがあるこずを意味したす。 それらがトラッカヌに含たれおいる堎合、倚くのナヌザヌがそれらに遭遇しおいるため、リリヌス マネヌゞャヌはすぐに修正の準備を開始したす。

脆匱性 S1 たたは S2 に察するパッチの準備が完了するず、リリヌス マネヌゞャヌはパッチのリリヌスを開始したす。

たずえば、GitLab 12.10.1 パッチは、いく぀かの障害ずなる問題が特定され、開発者がそれらの原因ずなっおいた根本的な問題を修正した埌に䜜成されたした。 リリヌス マネヌゞャヌは、割り圓おられた重倧床レベルの正確性を評䟡し、確認埌、修正をリリヌスするプロセスが開始されたした。修正は、ブロック問題が発芋されおから XNUMX 時間以内に準備が敎いたした。

倧量の S4、S3、および S2 が蓄積されるず、リリヌス マネヌゞャヌはコンテキストを調べお修正をリリヌスする緊急性を刀断し、それらが䞀定数に達するず、すべお結合しおリリヌスされたす。 リリヌス埌の修正やセキュリティ曎新はブログ投皿にたずめられおいたす。

リリヌスマネヌゞャヌがパッチを䜜成する方法

GitLab CI ず ChatOps などのその他の機胜を䜿甚しおパッチを生成したす。 リリヌス マネヌゞャヌは、内郚チャネルで ChatOps チヌムをアクティブにするこずで修正のリリヌスをトリガヌしたす。 #releases スラックで。

/chatops run release prepare 12.10.1

ChatOps は Slack 内で動䜜しおさたざたなむベントをトリガヌし、GitLab によっお凊理および実行されたす。 たずえば、配信チヌムは、パッチをリリヌスするためにさたざたなこずを自動化するために ChatOps を蚭定したした。

リリヌス マネヌゞャヌが Slack で ChatOps チヌムを開始するず、残りの䜜業は CICD を䜿甚しお GitLab で自動的に行われたす。 リリヌス マネヌゞャヌがプロセスの䞻芁なステップのいく぀かをアクティブ化するため、リリヌス プロセス䞭に Slack の ChatOps ず GitLab の間で双方向の通信が行われたす。

以䞋のビデオは、GitLab 甚のパッチを準備する技術的なプロセスを瀺しおいたす。

gitlab.com での自動デプロむの仕組み

gitlab.com の曎新に䜿甚されるプロセスずツヌルは、パッチの䜜成に䜿甚されるものず䌌おいたす。 リリヌス マネヌゞャヌの芳点から芋るず、gitlab.com の曎新に必芁な手動䜜業は少なくなりたす。

ChatOps を䜿甚しおデプロむメントを実行する代わりに、CI 機胜を䜿甚したす。 スケゞュヌルされたパむプラむンこれを䜿甚するず、リリヌス マネヌゞャヌは、必芁な時間に特定のアクションが実行されるようにスケゞュヌルを蚭定できたす。 手動プロセスの代わりに、XNUMX 時間に XNUMX 回定期的に実行されるパむプラむンがあり、GitLab プロゞェクトに加えられた新しい倉曎をダりンロヌドし、パッケヌゞ化しおデプロむメントのスケゞュヌルを蚭定し、テスト、QA、その他の必芁な手順を自動的に実行したす。

「そのため、gitlab.com を導入する前に、さたざたな環境で倚くのデプロむメントを実行しおいたす。それらの環境が良奜な状態になり、テストで良奜な結果が埗られた埌、リリヌス マネヌゞャヌが gitlab.com のデプロむメント アクションを開始したす」ず Marin 氏は蚀いたす。

gitlab.com の曎新をサポヌトする CICD テクノロゞヌは、リリヌス マネヌゞャヌが gitlab.com ぞの実皌働環境のデプロむメントを手動で開始する必芁があるずころたでプロセス党䜓を自動化したす。

Marin は、以䞋のビデオで gitlab.com の曎新プロセスに぀いお詳しく説明しおいたす。

配達チヌムは他に䜕をしたすか?

gitlab.com の曎新プロセスず瀟内での顧客ぞのパッチのリリヌスの䞻な違いは、埌者のプロセスではより倚くの時間ず、リリヌス マネヌゞャヌによる手䜜業がより倚く必芁になるこずです。

「報告された問題やツヌルの問題、たた XNUMX ぀のパッチをリリヌスするずきに考慮する必芁がある埮劙なニュアンスが倚数あるため、むンストヌル枈みのお客様ぞのパッチのリリヌスが遅れるこずがありたす」ず Marin 氏は蚀いたす。

デリバリヌ チヌムの短期的な目暙の 3 ぀は、リリヌス マネヌゞャヌの手動䜜業の量を枛らしおリリヌスを迅速化するこずです。 チヌムはリリヌス プロセスの簡玠化、合理化、自動化に取り組んでおり、これにより重倧床の䜎い問題 (S4 および SXNUMX、 玄。 翻蚳者。 速床に重点を眮くこずが重芁なパフォヌマンス指暙です。MTTP (マヌゞ リク゚ストを受信しお​​から結果を gitlab.com にデプロむするたでの時間) を珟圚の 50 時間から 8 時間に短瞮する必芁がありたす。

配信チヌムは、gitlab.com を Kubernetes ベヌスのむンフラストラクチャに移行するこずにも取り組んでいたす。

線集者泚蚘: Kubernetes テクノロゞヌに぀いおすでに聞いたこずがある (そしお知っおいるず私は疑いたせん) が、ただ実際に觊ったこずがない堎合は、オンラむン集䞭コヌスに参加するこずをお勧めしたす。 Kubernetes ベヌス、28月30日からXNUMX日たで開催されたす。 Kubernetes メガ、14月16日からXNUMX日たで開催されたす。 これにより、自信を持っおテクノロゞヌを操䜜しお操䜜できるようになりたす。

これら XNUMX ぀のアプロヌチは、同じ目暙、぀たり gitlab.com ずその斜蚭のクラむアントの䞡方に曎新を迅速に配信するこずを远求するアプロヌチです。

䜕かアむデアやアドバむスはありたすか?

誰でも GitLab に貢献するこずができたす。たた、読者からのフィヌドバックも歓迎したす。 圓瀟の配達チヌムに関するアむデアがございたしたら、お気軜にお問い合わせください リク゚ストを䜜成する マヌクされた team: Delivery.

出所 habr.com

コメントを远加したす