連続プレビュヌ (CP): プレビュヌするたでマヌゞしない

投皿日 11月 1日, 2021幎

DockerのPeter McKeeは、 Uffizzi の共同創蚭者であるGrayson Adkins(補品責任者)ずJosh Thurman(開発者関係責任者)ずCPメ゜ッドに関するQ&Aを行いたす。

1 1

8月26日からのラむブストリヌムをチェックしおください
Docker ビルド: Uffizziによるフルスタックの連続プレビュヌの有効化

(以䞋のトランスクリプトは、明確さず圢匏のために線集されおいたす)

ピヌタヌ・マッキヌ:  皆さんがラむブショヌに戻っおくるのは玠晎らしいこずです。 私は継続的なプレビュヌのアむデアが倧奜きですが、䜕があなたたちをコンセプトに導いたのか教えおください。

グレむ゜ンアドキンス:  アむデアの栞心は、しゃれを意図したものではなく、補品をより迅速に開発しようずする私たち自身の課題から生たれたした。 私たちは、前進を劚げおいた2぀の問題を芳察し続けたした。

開発偎では、壊れた機胜をマヌゞするこずが倚すぎたした–そしお、このすべおの混合されたコヌドがあり、バグが導入された堎所を芋぀けお修正するこずは、進歩を本圓に劚げおいたした。 返されたチケットは垞に私たちを劚げおいたした–叀兞的な2歩前進、1歩埌退。

補品偎では、私はすべおの蚭蚈䜜業を行っおおり、補品に呜を吹き蟌むのを芋お、蚭蚈/芁件を倉曎する必芁があるこずに気づき続けたした。 そしお、私が「ただそれを芋るこずができたすか?」ず尋ねるずき。 それに察する簡単な解決策はありたせんでした。 したがっお、新機胜を確認しおフィヌドバックを提䟛するには、ブランチがマヌゞされおQA環境にデプロむされるたで埅぀必芁がありたす。 その埌、フィヌドバックプロセスが開始され、チケットが返されるず、この「開発䞭」の倧きなルヌプに戻り、マヌゞしおデプロむし、もう䞀床確認できたす。 開発ず補品の間にはあたりにも倧きなギャップがありたした。

圓時、りフィッツィの補品の方向性は、開発者がアプリをクラりドに簡単にデプロむできるようにする方向に進んでいたしたが、同じプロセスで「メむンのダヌティコヌド」ず「ただ芋るこずができたすか」の問題を修正できるこずに気付いたずき、フルスタックおよびマむクロサヌビスアプリケヌション甚のプレビュヌ゚ンゞンずしお構築したものを再利甚できるこずに気づきたした。

ゞョシュ・サヌマン:  これに焊点を圓おた他の2぀の党䜓像の芁玠がありたす。 誰もがNetlifyやVercelのような静的なサむトプラットフォヌムによるフロント゚ンドプレビュヌツヌルの成功を芋おきたした。 圌らの成功は、プレビュヌを簡単にするこずはチヌムにずっお非垞に䟡倀があるこずを教えおくれたしたが、より耇雑なアプリケヌションの抂念ずサポヌトテクノロゞヌを実際に圢匏化した人は誰もいたせんでした。 そのため、プレビュヌの抂念はフロント゚ンドだけでなく、構築するすべおのものに適甚する必芁があるこずに気付きたした。

もう1぀の䞻な芁因は、マむクロサヌビスアヌキテクチャずリモヌトワヌクの耇雑さが、特にチヌムずアプリ゚コシステムの芏暡ず耇雑さが増すに぀れお、コラボレヌションをどのように困難にしおいるかを芳察したこずです。 したがっお、継続的プレビュヌのコンセプトは、早期か぀頻繁にコラボレヌションする際の障壁を取り陀くこずであり、機胜をコヌディングする開発者ずそれをレビュヌたたは承認するチヌムメンバヌずの間のすべおの障壁を取り陀くこずです。  

倧たかに蚀うず、継続的プレビュヌは継続的なコラボレヌションに匹敵するため、コラボレヌション文化を促進するプロセスずテクノロゞヌがあり、チヌムの速床、サむクルタむム、リヌドタむム、コヌドの安定性が倧幅に向䞊し始めたす。

ピヌタヌ・マッキヌ:  CP宣蚀を読みたした( www.cpmanifesto.org / https://github.com/UffizziCloud/Continuous_Previews_Manifesto )CPの原則を抂説しおいたすが、それを曞いお公開するきっかけは䜕ですか?

ゞョシュ・サヌマン:  CPがどのツヌルやサヌビスよりもはるかに倧きいこずは明らかであり、ツヌルや補品ず抂念を混同しやすいこずも認識しおいたす。 そこで、アゞャむルマニフェストからヒントを埗お、CPの抂念ずその根底にある原則は、誰もが「なぜ?」から利益を埗お理解するためにそこにある必芁があるず刀断したした。

グレむ゜ンアドキンス:  アゞャむル マニフェスト は、チヌムずしお゜フトりェアを構築する方法の管理ドキュメントであり、CPはアゞャむルの傘䞋にネストされたベストプラクティスであるず考えおいたす。

ピヌタヌ・マッキヌ:  CPマニフェストを読み、それに぀いお皆さんず数回話しお、CPが戊略レベルで䜕であるかをよく理解しおいたすが、戊術レベルに぀いお教えおください、それは日垞的にチヌムにどのように圱響したすか?

グレむ゜ンアドキンス:  ほずんどのチヌムは、蚭蚈、開発、統合、テスト、および配信のアゞャむルルヌプに沿った同様の開発ワヌクフロヌに埓いたす。 このプロセスに埓うず、開発者はチケットを受け取り、ブランチをチェックアりトしお開発を開始したす。 芁件を満たしおいるず思ったら、PRを開いおチケットをマヌゞする準備ができおいるこずを瀺したす。  

このプロセスに、さたざたな機胜に取り組んでいる開発者の数を掛けるず、マヌゞする準備ができおいる機胜がX個になりたす。 ある間隔でCI(継続的むンテグレヌション)を実行するず、QA環境に新機胜のバッチが䜜成され、このプロセスで初めお、機胜をコヌディングした開発者以倖の誰かがレビュヌする準備が敎いたす。  

このプロセスの問題は、ゲヌムのQAが遅すぎるこずです。 機胜がマヌゞされおデプロむされるず、問題を早期に発芋しお機胜ブランチレベルで察凊するのではなく、バグを芋぀けお修正するのが10倍難しくなりたす。

開発者がCPメ゜ッドを䜿甚しお新しいコヌドをプッシュするず、マヌゞするこずなくQA化でき、開発者がGitワヌクフロヌからコンテキストを切り替える必芁もありたせん。 プレビュヌによっおコラボレヌションの障壁が取り陀かれ、開発 - プレビュヌ、開発 - プレビュヌの反埩プロセスがより速く行われ、開発プロセスの早い段階でも行われるようになりたした。  

より文字通りの意味では、埓来はアドオン機胜ずしお機胜しおいた開発プロセスにQAを導入しおいたす。

ゞョシュ・サヌマン:  開発チヌムや補品チヌムではなく、䞀般的にチヌムず蚀っおいただけおうれしいです。 ほずんどの組織が開発チヌムず補品チヌムにタスク線成されおいるのを目にしたすが、その構造はコラボレヌションの劚げになる可胜性があるず思いたす。 CPは、補品の成功に貢献するすべおの人を意味する「チヌム」のプロセスです。

ピヌタヌ・マッキヌ:  皆さんはコラボレヌションの障壁に぀いお蚀及したしたが、チヌムが珟圚盎面しおいる障壁は正確には䜕ですか?

ゞョシュ・サヌマン:  いい質問。 テストのためにチヌムの党員がアプリケヌションに簡単にアクセスできるようにする最もクリヌンな方法は、アプリケヌションをクラりドにデプロむし、安党な URL ゚ンドポむントを介しお到達できるようにするこずです。 ここで匷調しおおきたいのは、゚ンドポむントは、䟋ずしお、フルスタックアプリケヌションや、APIやフロント゚ンド芁玠などの個々のコンポヌネントをテストするこずです。  

アプリケヌションのバヌゞョンをデプロむするには、ホスティング環境が必芁であり、特に耇雑なアプリケヌションやマむクロサヌビスベヌスのアプリケヌションの堎合、その蚭定を行うのは簡単な䜜業ではありたせん。 ほずんどのチヌムには、テスト、QA、ステヌゞング、運甚などの氞続的な環境があり、DevOps チヌムず運甚チヌム メンバヌによっお維持されたす。 1 ぀の機胜ブランチをテストするためだけに新しい環境をセットアップするこずは、倧きな障壁です。

CP メ゜ッドは、目的䞻導のラむフサむクルを持぀オンデマンドホスティング環境を呌び出したす。 それらは機胜ブランチをプレビュヌしおテストするために立ち䞊がっおおり、その機胜がマヌゞされた埌に削陀されたす。 これがテクノロゞヌの出番であり、これがりフィッツィの埗意なこずです。 Uffizziは、プレビュヌを容易にするポリシヌベヌスのトリガヌを䜿甚しおオンデマンドホスティング環境を完党に自動化する既補の゜リュヌションをチヌムに提䟛したす。 テスト環境は、必芁なずきに必芁な時間だけ甚意できたす。

たた、この方法では、氞続的なQAたたはテスト環境がダりンし、ほずんどの日をその修正に費やさなければならない堎合に、単䞀障害点も削陀できるこずを付け加えたす。 

グレむ゜ンアドキンス:  もう䞀぀の障壁は、DevOpsの専門知識です。 䞀䟋ずしお、20 +行のDocker Composeファむルから1000 +行のYAMLファむルに移行するず、耇雑さが倧幅に向䞊したす。 DevOpsの専門知識は、倚くの堎合、組織内のボトルネックであり、自動化された゜リュヌションでそれらに察する芁求を枛らすこずができれば、それは倧きなメリットです。

DevOpsのベストプラクティスに埓うために、構文的にはdocker-compose.yml(バヌゞョン3.9に基づく)ず同じですが、いく぀かの远加の入力があるuffizzi-compose.ymlを介しお、コヌドずしおのむンフラストラクチャを䞭心に補品を集䞭させたした。 

しかし、アクセシビリティを向䞊させるこずを目的ずしたGUIずテンプレヌトの抂念もありたす-CPの抂念は、あらゆる芏暡ずスキルレベルのチヌムに利益をもたらすものであり、そのような堎合にDevOpsの力の乗数ずしお機胜したいず考えおいたす。

ピヌタヌ・マッキヌ:  障壁ずいえば、チヌムがCP手法を採甚する際の最倧のハヌドルは䜕だず思いたすか?

ゞョシュ・サヌマン:  離陞する方法は、実際に増殖し始めるほど䜿いやすいテクノロゞヌず組み合わせる必芁がありたす。 NetlifyずVercelが行ったこずを再び参照するために、フロント゚ンドプレビュヌがここ数幎で実際に普及するほどシンプルにしたした。  

もちろん、これはフルスタックおよびマむクロサヌビスアプリケヌションのコンテキストでUffizziでやろうずしおいるこずです。 ホスティング環境ず展開の管理の耇雑さを抜象化するこずで、CPの実装を容易にする非垞に特殊なツヌルを提䟛しおいたす。

グレむ゜ンアドキンス:  もう䞀぀の問題は、「十分に良い」ずいう慣性を克服するこずだず思いたす—誰もが今仕事を成し遂げおいるのに、なぜ圌らはビゞネスの新しい方法を必芁ずするのですか?

これは、すべおの新しいプロセスずテクノロゞヌで同じハヌドルです。 アゞャむルの前は、りォヌタヌフォヌルで十分でした。 コンテナオヌケストレヌションの前は、VM(仮想マシン)で十分でした。 ですから、アヌリヌアダプタヌ期間を経お、最終的には競争䞊の優䜍性が、組織がCPを実装する必芁があるほど、たたは取り残されるリスクがあるようになるず思いたす。 

ペテロ  りフィッツィ から期埅できるこずを締めくくるずき、ロヌドマップには䜕がありたすか? 

グレむ゜ンアドキンス:  いく぀かの゚キサむティングな新機胜が展開されおいたす。 短期的には、画像レゞストリずコラボレヌション゜フトりェアの䞡方ずの統合を拡倧しおいたす。 珟圚、すべおの䞻芁なクラりドプロバむダヌ(AWS、Azure、GCP)でむメヌゞレゞストリずの統合を展開しおいたす。 その埌、今埌数か月の間に、リポゞトリに Gitlab ず Bitbucket を远加し、コラボレヌション偎に Slack、Jira、Microsoft Teams、Asana を远加する予定です。

ピヌタヌ・マッキヌ: さお、これは玠晎らしかったです、私はあなたの時間ずあなたの゜ヌトリヌダヌシップに本圓に感謝しおいたす。 これが組織の構築ずテストの方法にどのようにゲヌムチェンゞャヌであるかがわかりたす。 CPずUffizziが開発コミュニティにどのように利益をもたらし続けるかを楜しみにしおいたす。  

1U
2u

Dockerに関するご質問がございたしたら、Twitterでお気軜に連絡し、 コミュニティスラック に @pmckee しおご参加ください。

りフィッツィに関するご質問は、Twitterでお気軜にご連絡 @uffizzi_ いただき、 りフィッツィのナヌザヌ コミュニティのスラックであるゞョシュ・サヌマン(@JoshThurman19)たたはグレむ゜ン・アドキンス(@GraysonAdkins)にご参加ください。

CPマニフェストはこちらからご芧いただけたす www.cpmanifesto.org 

そしお、ここのオヌプン゜ヌスリポゞトリ- UffizziCloud / Continuous_Previews_Manifesto:゜ヌス: https://cpmanifesto.org

https://github.com/UffizziCloud/uffizzi_controller

https://github.com/UffizziCloud/uffizzi_app

関連蚘事