DevOpsライフサイクルの7つのフェーズ
DevOpsのライフサイクルとは?DevOpsのライフサイクルは、ソフトウェア開発プロセスを最初から最後まで導く継続的開発の7つの異なるフェーズに分かれている。DevOpsを理解するには、ライフサイクルの各フェーズと、各フェーズのプロセスと要件を知ることが重要だ。
ソフトウェア開発は、プランニングとコーディングから始まる。DevOpsでは、絶え間ない改善を目的とした定期的なデリバリーのプロセスを通じてこれを行う。
DevOpsは、 アジャイルの核となる 価値観に基づき、定期的で頻繁なソフトウェアリリースを奨励している。これを実現する標準的な方法は、コードの統合とデプロイを自動化することであり、継続的インテグレーション/継続的デプロイメント(CI/CD)と呼ばれるプロセスである。
プリ・プロダクションであれポスト・プロダクションであれ、開発全体を通じて、チームはフィードバックを活用して問題を特定し、解決策を仮説立ててプランニングする。
DevOpsライフサイクルの計画フェーズに続いて、ソースコードとアセットの作成が、生産を前進させ続けることを目標に開始される。どのコーディング言語を使用するかにかかわらず、ソースコード管理ツールを使用してコードベースを維持することは優先事項である。
継続的インテグレーション(CI)は、開発者が1日に数回、コードを共有リポジトリに統合することを要求する開発プラクティスである。各チェックインやブランチは、自動ビルドによって検証され、チームは早期に問題を検出することができる。
CIは、少数の大きな変更ではなく、多くの小さな反復的な変更をサポートするように設計されている。コードのビルド、テスト、マージ、共有リポジトリへのチェックなどのワークフローを自動化することで、チームのスケールアップを支援する。
継続的インテグレーションの究極の目標は、より良いコードをより速く提供することだ。より小さな頻繁な変更と自動化を組み合わせることで、チームはより迅速にバグを発見して対処し、新しいアップデートの検証とリリースに費やす時間を短縮できる。
継続的テストは、継続的インテグレーションと密接な関係にある。CI/CDパイプラインは、手動のコード検証よりも自動テストに依存している。これは、デプロイされるものの品質が高く、リリース前にゲームを壊すようなエラーが発生しないことを確認するためだ。
DevOpsは、可能な限り多くの手動プロセスを排除することに依存している。手作業で面倒なプロセスが多ければ多いほど、時間の浪費とエラーの可能性が高まる。継続的テストDevOpsツールの目標は、単にバグを発見することではなく、できるだけ早くバグを発見し、本番フェーズでパッチやホットフィックスで対処する必要がないようにすることである。
自動テストは、ビルドへのリリース前と本番前に設定される。チームは、本番前および自動テスト完了後の最終段階として、手動レビューを挿入することができる。
継続的モニタリングは、優れたユーザー・エクスペリエンスを提供するという最終目標に向けて、DevOpsライフサイクルを確実に維持する。ソフトウェアのアップデートと使用状況は綿密に追跡され、収集された洞察はソフトウェアが正しく動作するように使用される。
継続的なモニタリングの段階では、チームはシステム・エラーをできるだけ早く検出し、解決しようと努める。自動化されたエラー・トラッキングはここでは不可欠である。自動化によって、ソフトウェア全体のパフォーマンス、ユーザー行動、開発インフラの安定性など、その他の領域も可視化できる。
自動化を監督するだけでなく、DevOpsチームはパイプラインのすべての側面がセキュリティ標準に準拠していることを保証する責任がある。リリース管理の手作業もこの段階で行われる。
継続的なフィードバックには、社内チームとユーザーからソフトウェアのパフォーマンスに関する洞察を収集するためのフィードバック・ループを実装する必要があります。フィードバックはDevOpsチームと共有され、製品反復の指針となる。情報源には、調査、アンケート、フォーカスグループ、ソーシャルメディア、フォーラムなどがある。
このプロセスは、ソフトウェアが正しく機能するかどうかを判断するだけでなく、全体的な顧客満足度を測定することで、ビジネス戦略を導き、可能な限り最良の結果を保証します。継続的なフィードバックは、製品ロードマップの舵取りや、視聴者の要望、ニーズ、期待に応えるために活用されるべきである。
継続的デプロイは、自動化サイクルを完成させ、デプロイプロセスにおける人間の介入を最小化または除去することで、継続的インテグレーションと連動する。自動化されたDevOpsツールは、ソースコードの更新を監視し、テスト段階を通過した時点で本番環境に自動的にデプロイすることで、時間を節約し、ユーザーの満足度を向上させる。
継続的デプロイは、自動化によってユーザーとのフィードバックループを加速する。メソッドはまた、リリースごとにデプロイメントを分けて、ユーザーから隠したり(ダークリリース)、新機能をテストしたりフィードバックを求めたりするために特定のユーザーのためにオンにしたり(フィーチャートグルまたはスイッチ)することもできます。
コードは小さなバッチでリリースされるため、大規模なコード変更に伴うリスクを最小限に抑えることができる。
継続的なオペレーションは、ダウンタイムを最小限に抑え、ユーザーにとって不満の残るサービスの中断を防ぐことを目的としている。DevOpsライフサイクルのこのフェーズでは、アプリケーションと環境の安定性とパフォーマンスの最適化に重点を置く。また、継続的開発の計画フェーズにバグレポートや機能強化のためのユーザーフィードバックを提供することで、DevOpsライフサイクルのループを完成させる。
チーム間やユーザーとの継続的なコラボレーションを通じて、バグ、フィードバック、セキュリティ上の懸念は、DevOpsパイプラインを通じて継続的に伝達、評価、反復される。
完璧なワークフロー
この短いビデオでは、Unityバージョン管理チーム(旧Plastic SCM)が、その強力なソースコード管理ツールが、DevOpsライフサイクルの中でシームレスなワークフローを実現する上で重要な役割を果たす戦略的DevOpsツールチェーンをどのように実行できるかを紹介している。
ソースコードの変更を追跡・管理することは不可欠です。さまざまなタイプのバージョン管理システムが、コードの完全性を維持するためにどのように役立つかをご覧ください。
DevOps プラクティスを実装すると、開発パイプラインが合理化され、チームとユーザーの満足度を高めることができます。DevOps がどのように役立つかをご確認ください。
すべてのゲームスタジオは、クランチ(過重労働)を減らしつつ制作をスピードアップしたいと考えており、DevOps はそれを実現するために最適な方法です。DevOps の方法論の背後にある重要な原則を学ぶことから始めましょう。
ゲーム開発のための基本的なDevOpsの原則とプロセスを学び、Unityのソリューションポートフォリオで成功を収めたスタジオの話を聞くことができます。
このe-bookでは、Unityバージョン管理チームから、完璧なワークフローを実装することで、より優れたソフトウェア開発者になり、バージョン管理をマスターする方法についての洞察を得ることができます。
HalfbrickがBacktraceとHelpshiftを使用して、ゲームに支障をきたすエラーを未然に検知し、プレーヤーをゲームに留める方法をご覧ください。
DevOpsのライフサイクルは、バージョン管理から始まる。UnityのDevOpsソリューションで、継続的インテグレーションと開発を実装。