アプリやソフトウェア開発において完璧を追求するには多くの工程があります。新機能の追加や既存機能の更新は、開発者が担う主要な仕事の一つですが、決して容易ではありません。
このような状況で、プログレッシブデリバリーは理想的な手法です。意味や使い方など、さらに詳しくご覧ください。
初歩的には、プログレッシブデリバリーは機能の更新・追加を容易にする手法です。従来のウォーターフォール開発と比べ、ソフトウェアやアプリの機能変更がより迅速かつスムーズになります。
この手法は、リリースの実践とソフトウェア開発を融合し、機能導入を完全に管理できる状態にします。機能フラグ管理や、カナリアリリース、ブルーグリーンリリースなど最新の展開戦略が基盤です。
プログレッシブデリバリー(更新)は、CI/CD手法において欠かせない存在であり、開発者がリスクを最小限に抑えながら必要なコードを迅速に出荷し、顧客体験の向上を継続的に実現します。こうした機能導入の管理方法は、DevOpsの重要な一部となっています。
プログレッシブデリバリーの理解には、連続デリバリーとの違いを把握することも大切です。どちらも密接に関連しています。
一般に連続デリバリーは、設計されたコードを常に展開可能な状態に保つための総合的な手法とされています。
どのように実現されるかというと、開発、テスト、デリバリーの頻度を大幅に高め、常に出荷可能なコードが用意される仕組みです。
さて、連続デリバリーとどのように異なるのかを見ていきましょう。
これら二つは、機能変更を円滑に行うという同じ目的を達成するため、異なる手法を採用しています。
連続デリバリーは、機能変更を小さな区分に分け、大規模な変更の代わりに定期的に小さなセクションを連続して導入します。こうすることで、コードの問題も速やかに発見できます。
プログレッシブデリバリーは、コード変更に伴うリスクの低減に注力しています。利用者への影響を最小限に抑えるため、大きな変更も小さな変更も一度に全て導入せず、ユーザーの負担を軽減します。
プログレッシブデリバリーストラテジーを展開する際には、その構成要素を把握することが重要です。以下のリストをご覧ください。
必要に応じたコードの追跡、修正、リバートを可能にし、機能更新を容易に実現する基本的な手法です。プログレッシブデリバリーでは、管理しやすいアプリコードの開発プロセスが求められ、一般にはGitなどのバージョン管理システムが使用されます。
Gitを基盤とするワークフローの場合、ソースコード管理はコード開発を継続しながら変更を失わず、各段階へスムーズに反映させます。
迅速な新機能のコード生成、エラーテスト、導入を促進するため、欠かせない要素です。
複数の実践と原則を組み合わせ、ソフトウェア変更をエンドユーザーに届けます。開発者が継続的な開発に参加し、コード変更を運用に統合することで、CI/CDはプログレッシブデリバリーの基盤となります。
複雑な機能ワークフローにおいて、プログレッシブデリバリーはこの要素が不可欠です。継続的な機能リクエストがある場合、新たな要求と既存のワークフローの調整が難しくなることがあります。
そこで機能フラグ管理が役立ち、開発者は機能の状態を簡単に把握し、Booleanやその他の論理フラグの背後で何が起こっているかを確認できます。これは、アプリの再展開を防ぐためにも重要です。
スプリットテストとも呼ばれるA/Bテストは、同一機能の2つの異なるバージョンを別々のユーザーに試すことにより、どちらが最適かを判断し、常に最良のバージョンを提供するために重要です。
機能リリース(ローアウト)とも呼ばれ、利用中のアプリ管理に不可欠なリリース戦略を展開します。一般には、ローリング、ブルーグリーン、カナリアの3つの展開戦略が用いられ、そのうちブルーグリーンとカナリアが採用され、アプリ変更の影響を限定します。
迅速なアプリ出荷を促進するツール群を指します。CDRAツールによる徹底した自動化と監視により、各開発段階がチェックされ、必要に応じたテストが実施されます。
トラフィックの振り分け、自動化、ユーザーセグメンテーション、可観測性の向上を実現することを目的としています。AWS App MeshやIstioなどが、プログレッシブデリバリーにおいてよく利用されるService Meshです。
トレーシング、ロギング、メトリクスの機能を拡充し、増大する機能要求に対応できるようにするための要素です。また、アプリのパフォーマンスや必要性を監視することで、より優れたコード開発へとつながります。
「DevOps」とプログレッシブデリバリーは、速度とシステムの安定性の向上を促すため、密接に関連しています。プログレッシブデリバリーは、開発者が安心して新たなコードを導入できるよう、幅広い管理機能と安全対策を提供します。
また、高頻度の開発活動がシステムの性能や耐久性に影響を与えないように工夫されています。
さらに、プログレッシブデリバリーはKubernetesを活用し、開発チーム間の継続的なコミュニケーションと業務の効率向上を実現します。全体として、この手法はDevOpsの導入を円滑にする役割を果たします。
プログレッシブデリバリーに関心がある方は、この手法がもたらす主要なメリットをご確認ください。
近年の開発傾向では、重要な機能に影響を与えずに開発パイプラインを完全に管理できることが求められています。プログレッシブデリバリーは、コードの継続的なテストと大量のコード出荷を実現し、ワークフローやユーザー体験を損なうことがありません。
すべてのユーザーに新機能を提供する必要がない場合、プログレッシブデリバリーを利用することで、ユーザーの役割に基づいた範囲で機能の展開を制限できます。
コード変更を段階的に導入するため、障害発生のリスクが低減されます。
不具合のあるコード変更は大規模展開前に修正されます。
地域ごとに必要な機能は異なります。プログレッシブデリバリーは、プライバシーやアクセス制限をサポートし、地域ごとに最適な新機能のリリースを可能にします。
アプリが大幅に変わることはユーザー体験を損なうことがあるため、段階的な変更により負担を軽減します。プログレッシブデリバリーは、エンドユーザーが徐々に新機能に慣れる機会を提供します。
プログレッシブデリバリーをKubernetesで活用することで、再作業が減り、開発費用の削減につながります。初期段階でバグを発見し、被害を最小限に抑えることが可能です。
これまでにプログレッシブデリバリーの細部までご理解いただけたと思います。次に、主要な実行プロセスについて学びましょう。理想的な手法は、主要な要素を段階的に展開することです。
通常、これは開発ワークフローの効率化によって実現されます。場合によっては、機能フラグ管理やSDKが利用されることもあります。
ビジネスのニーズに応じ、ソースコード管理を優先する場合もありますが、これは機能フラグ管理やA/Bテストの前に行われます。
開発プロセスにおける機能フラグ管理の利用は一般的ですが、展開前の検証が重要です。Observabilityや監視機能なしには、プログレッシブデリバリーは十分に実現できません。
先述の通り、監視はコードのエラーを防ぎ、Observabilityは組織のニーズに応じたコード変更を保証します。これらの採用により、より良いコード変更が実現し、貴社は変更に対して自信を持てるようになります。
最後に、ブルーグリーンリリースとカナリアリリース戦略に基づいたコード変更の成功展開を確実にする必要があります。Service Meshや連続デリバリープラットフォームの利用が効果的です。
CI/CDプラットフォームの利用は、プロダクションと開発に関するすべてを管理するため、最適な展開を実現する良い方法です。
顧客の要求が変化する中、ソフトウェア開発も進化する必要があります。現代では、迅速で高性能なソフトウェアを提供するだけでなく、エンドユーザーのニーズに合わせて変化していくことが求められます。
プログレッシブデリバリーは、これを着実なペースで実現します。この手法により、開発者はリリースを完全に管理し、一部の機能を迅速に導入できます。そのため、現代の開発ツールや手法の可能性を十分に引き出すため、貴社のデジタル製品にも採用を検討すべきです。
最新情報を購読