概要
アプリケーションライフサイクル管理 (ALM) とは、アプリケーションが形成され、その寿命が終わるまでのライフサイクルを管理する人、ツール、プロセスを指します。
ALM は、プロジェクト管理、要件管理、ソフトウェア開発、テストと品質保証、デプロイメント、保守など、ウォーターフォール開発手法のようなレガシー開発プロセスの下ではしばしば別個のものとして扱われてきたいくつかの分野で構成されています。
アプリケーションライフサイクル管理は、これらの分野を統合し、チームが組織のためにより効果的に連携できるようにすることで、アジャイルおよび DevOps 開発アプローチをサポートします。
また、ALM を導入すると、数カ月毎や年に一度の新リリースではなく、ソフトウェアやアップデートは頻繁に、場合によっては 1 日に数回の頻度でリリースされ、継続的デリバリーが可能になります。
アプリケーションライフサイクル管理は、ソフトウェア開発のフレームワークを提供すると同時に、長期にわたるソフトウェア管理を支援します。以下の ALM プラクティスでは、軽量で、事前に準備された計画と要件を使用して、アイデアをアプリケーションに変換します。
ALM を使用してソフトウェア開発に取り組む場合は、アプリケーションの寿命全体を考慮する必要があります。保守と今後の更新については、アプリケーションの廃止や交換が必要な場合を含めて考慮するべきです。
これらの要素を組み合わせることにより、ALM は、デプロイメントを迅速化し、ワークフローの可視性、製品の品質、および開発者の満足度の向上を実現します。
ALM の各段階
ALM は、開発プロセスを可視化するのに役立ちます。プロセスが統合されているため、どのような進捗があったか、どのステップが完了待ちか、どのくらい時間がかかっているか、どのテストが完了したかなどを確認できます。
アプリケーションガバナンス
ガバナンスは、アプリケーションに関して行われた決定を説明するものです。新しいアプリケーション作成のプロセスを始めるときは、アプリケーションの最初のアイデアから始めて、それがビジネスのニーズと目標にどのように関連しているかを考慮する必要があります。
これに基づいて新しいアプリケーションの要件を固めてゆくわけですが、これはガバナンス段階の一部として定義および合意する必要があります。
アプリケーションガバナンスの段階では、他にもリソース管理、データとセキュリティ、ユーザーアクセスについて検討します。
これらのプロセスの標準化は、ガバナンスを自動化する機能につながります。これらのガバナンスプロセスを自動化すると、アプリケーション配信が迅速になります。
アプリケーション開発
アプリケーションまたは更新の要件の概要が示され、同意すると、開発を開始できます。アジャイル手法で開発を行うチームは、1 日に 1 回か数回の頻度で、開発とデプロイを行うことがあります。
アプリケーションの設計、構築、テスト、デプロイはすべて、開発フェーズの一部と見なすことができます。
ソフトウェアのテスト
新しいアプリケーションが開発されたら、テストを行い、本番環境に移行する前にバグを解消する必要があります。
アジャイルおよび DevOps チームの場合、テストは開発と同時に行う必要があります。開発チームへのフィードバックは、継続的に行う必要があります。
これらの頻繁な更新が互いに競合しないように、開発プロセスの一部に継続的インテグレーションを取り入れます。
テスト段階の目標は、ガバナンス段階で策定した要件が満たされていること、アプリケーションがユーザーにリリースされる前に正常に機能することを確認することです。
運用および保守
テストが完了し、必要なバグの修正を行ったら、アプリケーションをユーザーにデプロイできます。
運用および保守段階は、ALM がアプリケーションの寿命全体を管理対象にしている理由です。アプリケーションがデプロイされると、以後は運用が絶え間なく続きます。定期的な保守と更新を検討する必要があります。
アプリケーションまたはサービスの廃止も、保守の一部と見なすべきです。チームは、どのタイミングでアプリケーションをサポート対象から外すかや、新しいバージョンを公開するかを決めなければなりません。
ALM とSDLC
ALM は、ソフトウェア開発ライフサイクル (SDLC) と混同されることがあります。どちらもソフトウェア開発のプロセスを扱うものだからです。主な違いは、SDLC は主に開発フェーズを対象としているのに対し、ALM はコンセプトから保守、そして最終的には廃止まで、アプリケーションライフサイクル全体に関係し、アプリケーションの開発後も継続することです。
SDLC は、主に開発、テスト、デプロイメントの各段階における、アプリケーションライフサイクル管理の一部と見なすことができます。ALM には、特定のアプリケーションの複数の開発ライフサイクルが含まれることがあります。
Red Hat のリソース
アプリケーションライフサイクル管理のツール
ALM のツールは基本的に、人とプロセスを結び付けるのに役立つプロジェクト管理ツールとして機能します。バージョン管理、チームがリアルタイムで通信する機能、要件管理機能、見積もりとプロジェクト計画、ソースコード管理、テスト管理に対応するツールを探してみましょう。
1 つのツールで必要な機能すべてに対応できる場合もあれば、追加ツール (開発者固有のツールなど) との統合が必要な場合もあります。選択する ALM のツールは、アジャイル、ウォーターフォール、DevOps など、さまざまな開発プロセスにも対応している必要があります。
ALM ツールの例
- Atlassian Jira
- IBM ALM ソリューション
- CA Agile Central
- Microsoft Azure DevOps Server
- Tuleap
- Basecamp
ALM をサポートするエンタープライズ・テクノロジー
ALM は、Linux® コンテナと連携する DevOps アプローチをサポートします。コンテナは、クラウドネイティブ開発スタイルに必要な、基盤となるテクノロジーをチームに提供し、開発、提供、統合、自動化のための統合環境をサポートします。
一方で Kubernetes は、Linux コンテナ操作を自動化する先進的な方法です。Kubernetes によって、Linux コンテナをパブリッククラウド、プライベートクラウド、ハイブリッドクラウドで実行するクラスタを、簡単かつ効率的に管理できます。
Red Hat® OpenShift® は、ALM の目標を達成できるように、あらゆるインフラストラクチャ上でコンテナ型アプリケーションのビルド、デプロイ、管理を行う基盤として、開発チームと運用チームに共通のプラットフォームとツールセットを提供するエンタープライズ向け Kubernetes プラットフォームです。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。