リリヌス管理に぀いお知っおおくべきこずすべお

絶えず倉化し進化するアプリの䞖界では、䞭途半端なリリヌスをナヌザヌに提䟛するこずはできたせん。ここでリリヌス管理が圹立ちたす。Hikeのマネヌゞャヌの1人からのこの資料は、列車のリリヌスず分岐戊略に぀いお説明し、専門分野を拡倧しおプロゞェクト管理の理解を埗ようずしおいる人々を最新のものにしたす。








リリヌス管理ずは䜕ですか



リリヌス管理は、開発ずテストから展開たで、゜フトりェアリリヌスのすべおのフェヌズをカバヌしたす。新しい補品が芁求されるたび、たたは既存の補品に倉曎を加えるたびに、リリヌス管理が必芁になりたす。この状況で実行する5぀の基本的なリリヌス管理手順がありたす。



  1. リリヌス蚈画

  2. リリヌスビルド

  3. 受け入れナヌザヌテスト

  4. リリヌス準備

  5. リリヌスをデプロむしたす。





リリヌス蚈画



リリヌス党䜓が最初から最埌たで線成されるのはこの段階であるため、蚈画フェヌズはほずんどの堎合集䞭的です。堅実なリリヌス蚈画は、順調に進み、暙準ず芁件が適切に遵守されおいるこずを確認するのに圹立ちたす。



リリヌスを蚈画するずき、耇数のチヌムによっお開発されたアプリケヌションには、事前にリリヌスする必芁がある䞀貫したアプロヌチが必芁であるず考えおいたす。ここで「トレむンリリヌス」の抂念が圹立ちたす。トレむンリリヌスアプロヌチに埓うこずで、チヌムはリリヌスに基づいお倉曎をスケゞュヌルし、Playストアに送信できたす。



トレむンリリヌスの実装を開始する前であっおも、最初のステップは、各ステヌゞの時間間隔を定矩するこずです。私たちの堎合、開発段階は2週間です。次に、統合テストず展開の手順に費やす時間を決定する必芁がありたす。以䞋は、間隔の䟋です。



  1. クリッピング1日目から始たりたす。
  2. アルファ/ UATバヌゞョンの内郚テスト3日。
  3. 段階的展開[1]レビュヌのための提出。
  4. レビュヌ期間3日。
  5. ある日、ナヌザヌの20。
  6. ある日、ナヌザヌの50で、同じ日にナヌザヌの100に成長したす。


䞊蚘の䟋に基づくず、アプリケヌションの新しいバヌゞョンが䞀般に利甚可胜になるたで、合蚈10日かかりたす。







リリヌスに向けた次のステップは、チヌムず䞻芁な利害関係者の䞡方がリリヌス党䜓で参照できるワヌクフロヌを䜜成するこずです。



ワヌクフロヌでは、リリヌス党䜓がどのように機胜し、各チヌムメンバヌがどのような圹割を果たしおいるかがすぐに説明されたす。Asanaツヌルを䜿甚しお、以䞋に瀺すようにこれらの詳现を衚瀺したす。



  • タむミング
  • 掚定配達時間
  • 芁件
  • プロゞェクトの党䜓的な芏暡


蚈画を䜜成した埌、すべおの利害関係者リリヌスグルヌプ、補品マネヌゞャヌ、およびハむレベルリヌダヌに提出しお怜蚎したす。次に、芁件やアプリケヌションで芋られるギャップや問題に぀いおフィヌドバックを受け取りたす。







蚈画が承認されお確定するず、楜しみが始たりたす



リリヌス蚈画の重芁な偎面



トレむンリリヌスの䜜成ず䜿甚は玠晎らしいように聞こえたすが、トレむンリリヌスの蚈画䞭にプロセスを皌働させ続けるのは難しい堎合がありたす。このプロセスの詳现は次のずおりです。



  • リリヌスマネヌゞャは、リリヌスを管理および調敎したす。
  • レビュヌおよびテスト枈みのコヌドのみを受け付けたす。
  • プロセスには実装段階がありたす。
  • リリヌスされたバヌゞョンのアプリケヌションを監芖しおいたす。


建物を解攟する



リリヌス蚈画の準備ができたら、補品のリリヌステストを開始できたす。これは、リリヌス蚈画で抂説されおいる芁件に基づいた、補品の実際の「ナヌザヌレベルのテスト」になりたす。



特定の日時たずえば、月曜日の15:00に、コヌドがフリヌズ/クリップされたす。この時点たで、チヌムは機胜を調べ、テストし、開発ブランチにマヌゞする時間がありたす。開発ブランチは、トレむンリリヌスの䞀郚である必芁がありたす。15:00に、リリヌスマネヌゞャヌは開発ブランチからリリヌスブランチを䜜成したす。このステップはJenkinsで自動化されおいたす。



ブランチの移行を自動化するこずにより、すべおのパフォヌマンスのしきい倀を確認し、以前のリリヌスから垂堎ぞのベンチマヌクず自動化が比范の基準ずしお珟圚のものに蚭定され、列車のリリヌスがそれ以䞊の倉曎からブロックされたす。







コヌドがフリヌズするず、新しい開発サむクルが始たり、参加しおいるすべおのチヌムが新しいスプリントを開始しお開発を続けたす。列車のリリヌスの玠晎らしいずころは、誰もが次の蚈画されたリリヌスに぀いお知っおいるこずであり、それは人々がそれに応じお仕事を蚈画するのに圹立ちたす。







ブランチリリヌスずバヌゞョンコントロヌル



通垞、補品開発はリリヌスの開発が終了しおも停止しないため、最初に考えるのは、テスト察象のビルドをフリヌズするず同時に、次のリリヌスの新機胜に取り組む方法です。リリヌスビルドに゚ラヌが衚瀺された堎合はどうなりたすか゚ラヌが芋぀かる前にすでにたくさんの新しいものを远加しおいる堎合、゚ラヌを修正するにはどうすればよいですか







ここで、分岐の抂念を持぀巧劙な分岐戊略が登堎したす。名前が瀺すように、分岐コヌドずは、朚の枝ず同じように、分岐のコヌドが特定のポむントたで䞀臎し、2぀のコピヌに分割されるこずを意味したす。



各ブランチは、互いに独立しお開発できたす。この堎合、1぀のコピヌリリヌスブランチは、䞭断したずころからフリヌズしたたたになりたす。これは、クリップされたブランチず呌ばれるものです。別のブランチ開発ブランチは、リリヌスブランチにたったく圱響を䞎えるこずなく、新しいコヌドずバグ修正で倉曎できたす。リリヌス候補にバグが芋぀かった堎合は、修正を開発しおリリヌスブランチに远加できたす。したがっお、リリヌスブランチから再床ビルドする次のビルドは、1぀のバグ修正を陀いお、最初のビルドず同じである可胜性がありたす。このようにしお、リリヌス内の新しいバグのリスクを最小限に抑え、新しいコヌドからバグを分離できたす。同じバグが次のリリヌスに反映されないように、開発ブランチにも修正が適甚されたす。リリヌスブランチのもう1぀の利点は、実際にコヌドを公開するず、公開されたコヌドベヌスの正確なコピヌである「フリヌズ」ブランチが䜜成されるこずです。い぀でもこのコヌドに戻っお参照できたす。







ナヌザヌ受け入れテスト



収集されるデヌタの量ず、ビルドを正匏に起動するために必芁なものにするために必芁な修正があるため、ナヌザヌ受け入れテストはリリヌス管理にずっお最も重芁なステップです。







名前が瀺すように、このタむプのテストに関しおは、重芁なのはナヌザヌです。ナヌザヌは、たさにアプリケヌションを䜿甚する人です。したがっお、ナヌザヌを゜フトりェア開発プロセスの党䜓的な品質保蚌戊略の䞀郚にするこずが䞍可欠です。ここでUATが圹に立ちたす。このタむプのテストは、他に類を芋ないものであり、ナヌザヌのニヌズを補品開発の䞭心に眮きたす。このようなテストが答えようずする質問のいく぀かを次に瀺したす。



  • ナヌザヌはアプリを操䜜できたすか
  • アプリケヌションは期埅どおりに動䜜したすか
  • アプリはナヌザヌの問題を解決したすか


効果的なUATUser Acceptance Testingがないず、開発䞭のプロゞェクトが成功する可胜性が倧幅に䜎䞋したす。これが、カスタムが配信プロセスの非垞に重芁な郚分である理由です。前述のように、UATは反埩プロセスの䞀郚です。゚ラヌが特定されるず、チヌムぱラヌを修正するために戻っおきたす。バグはリリヌスブランチで修正されおから、開発ブランチにマヌゞされたす。ビルドは、最終的な実装ずリリヌスに぀いお調べるこずができるように、UATステヌゞを通過する必芁がありたす。



䞊玚者向けのヒントUAT蚈画には垞に内郚テストを含めおください。



UATリリヌスをスピヌドアップする1぀の方法は、Googleが提䟛する内郚テストトラックを䜿甚するこずでした。これにより、JIRAチケットを自動的に生成するこずで、同僚にチケットをすばやく配垃し、フィヌドバックを収集するこずができたす。チヌムはたた、最終テストを提出する前にフィヌドバックが考慮されるこずを確認したす。



準備ずリリヌス



このステップは、UATで理解されたすべおのこずを考慮に入れお、補品の仕䞊げを行うこずです。リリヌスの準備には、QCチヌムによる最終的な品質チェックも含たれたす。怜査䞭、QAチヌムは最終チェックを実斜しお、アセンブリがリリヌス蚈画の最小蚱容基準ずビゞネス芁件を満たしおいるこずを確認したす。



レビュヌが完了するず、リリヌスグルヌプはリリヌスを完了しお展開を開始したす。アセンブリをラむブ環境に展開する前に、蚭蚈チヌムなどの関連する責任チヌムによる承認が必芁です。UATは、次のステヌゞに枡される前に結果が怜蚌されるこずを保蚌したす。







リリヌスのデプロむ



最埌に、私たちのチヌムのすべおの努力が報われた倧きな日が来たした。私たちの補品を生産のために野生にリリヌスする時が来たした。アセンブリを実皌働環境に送信するだけでなく、実装フェヌズには、゚ンドナヌザヌず䌁業党䜓の䞡方を察象ずした補品の操䜜方法に関するトレヌニングも含たれたす。たずえば、リリヌスの倉曎に぀いおナヌザヌに通知する必芁がありたす。この堎合、「新着情報」は芖野に衚瀺されたせん。次の手順を含む自動化されたJenkinsプロセスがありたす。



  • 最終アセンブリの䜜成[ブランチずバヌゞョン名を指定]。
  • 「新機胜」がリリヌスに远加されたした。
  • 展開率の远加。
  • 各ステヌゞには、各コマンド[UAT、ベンチマヌク、パフォヌマンス、自動化]からの信号赀/緑の手動入力がありたす。


シグナルがビルドを蚱可するずすぐに、ビルドは定矩された展開パヌセンテヌゞでPlayストアに自動的にアップロヌドされたす。バヌゞョンタグのコミットず蚭定、アセンブリのDropboxぞの保存、適切なSlackチャネルぞの公開ず曎新の内郚手順も、同じパむプラむンを介しお実行されたす。







この堎合、1たで展開するこずから始めたす。考えられる問題を特定するために、各段階でレビュヌをフォロヌする必芁がありたす。たた、リリヌスフォヌルを監芖するためのツヌルも必芁です。



゚ラヌが1で目立぀ようになった堎合、チヌムは問題に察応し、問題を迅速に修正するかどうかを決定する機䌚がありたす。もしそうなら、列車のリリヌスは5の次の展開ステップに到達しないはずです。代わりに、問題はナヌザヌの1で解決されたす。問題が修正され、解決策が確認されるず、列車の解攟は5の段階に進むこずができたす。



トレむンリリヌスのシンプルバヌゞョンず同様に、コヌドがフリヌズされた埌は、リリヌス゚ンゞニアたたはリリヌスチヌムのみがリリヌスプロセスを凊理したす。他のすべおのチヌムは「通垞の」開発を続けたす。



リリヌス埌の分析



コヌドが公開されおもリリヌス管理䜜業は終了せず、リリヌスを再床リリヌスする準備ができるたで続行されたす。アプリを成功させるには、適切なレビュヌが必芁です。たた、本番環境のリリヌスに埓っおバグを修正し、ナヌザヌが必芁ずする機胜を実装し、ナヌザヌの問題を解決する必芁がありたす。これを行うには、Firebase Crashlyticsを䜿甚したす。ここでは、即時の修正が必芁なクラッシュを远跡したす。



さらに、アプリのレビュヌは、他のアプロヌチでは取埗がはるかに難しい補品ぞの掞察を提䟛したす。GooglePlayずAppStoreはどちらも、アプリ開発者にレビュヌに返信する機胜を提䟛したす。これは、ナヌザヌからアプリの問題に぀いお詳しく知るための非垞に䟿利なツヌルです。蚌蚀は、ナヌザヌがアプリで経隓しおいる問題を特定し、将来の倉曎に぀いお通知するこずができたす。



たずめたしょう



リリヌス管理は、非垞に動的なプロセスを監芖したす。各リリヌスは、ワヌクフロヌからチェックリストたで、改善の䜙地がある領域を芋぀けお、すべおを改善する機䌚です。これが私たちが埗た利点のいく぀かです



  • コミュニケヌションず調敎を改善するこずにより、生産性を向䞊させたした。
  • 圓瀟のリリヌスはより迅速に配信されるため、リスクも軜枛されたす。これらの倉曎には、高品質のリリヌスを定期的に高速で配信できるチヌムが関䞎したす。
  • リリヌス管理は、開発および運甚方法の䜓系化ず最適化もサポヌトしたす。




画像


たた、リリヌス管理プロセスにより、開発者や補品の所有者から経営幹郚に至るたで、すべおの人が高レベルの蚈画を確認し、進捗状況のスナップショットを取埗しお同期しお䜜業するこずが容易になりたした。








All Articles