概要
アプリケーションライフサイクル管理 (ALM) とは、アプリケーションが形成されてからその寿命が終わるまでのライフサイクルを管理する、人、ツール、プロセスの組み合わせを指します。
ALM は、ウォーターフォール型開発手法、プロジェクト管理、要求管理、ソフトウェア開発、テストと品質保証、デプロイ、保守など、レガシー開発プロセスのもとでは往々にして分離されていたいくつかの分野で構成されています。
アプリケーションライフサイクル管理は、プラットフォーム・エンジニアリングの分野と共通する部分があり、アジャイル手法とDevOps を補完し、組織のさまざまなチームの効果的なコラボレーションに役立ちます。
ALM を導入すると、ソフトウェアとアップデートの継続的デリバリーが実現します。これにより、新しいリリースが数カ月または年に 1 回しか提供されない状況から、多いときは 1 日に数回と頻繁にリリースできるようになります。
アプリケーションライフサイクル管理は、ソフトウェア開発のためのフレームワークを提供するとともに、ソフトウェアの長期的な管理にも役立ちます。ALM のプラクティスに従い、事前に確立された軽量な計画と要件を使用することでアイデアをアプリケーションへと具体化できます。
ALM でソフトウェア開発に取り組む場合は、アプリケーションのライフスパン全体を考慮する必要があります。アプリケーションを廃止して置き換えるべきタイミングなど、保守と将来のアップデートを考慮する必要があります。
これらを組み合わせることで ALM は、デプロイメントの迅速化、ワークフローの可視性の向上、製品の品質向上、開発者の満足度の向上を実現します。
ALM の各段階
ALM は開発プロセスの可視化に役立ちます。プロセスが統合されているので、進捗状況、完了する必要があるステップ、各プロセスの所要時間、完了したテストなどを把握できます。
アプリケーションのガバナンス
ガバナンスは、アプリケーションに関して下す決定を規定します。新しいアプリケーションの作成を始める際には、アプリケーションの着想から始めて、そのアプリケーションがビジネスニーズや目標とどのように関連するのかを検討する必要があります。
これが新しいアプリケーションの要件の要素となり、ガバナンスの段階において定義および合意する必要があります。
アプリケーションガバナンスのその他の要素としては、リソース管理、データとセキュリティ、ユーザーアクセスが挙げられます。
これらのプロセスを標準化すると、ガバナンスを自動化できるようになります。これらのガバナンスプロセスを自動化するとアプリケーションの提供が迅速化されます。
アプリケーション開発
アプリケーションまたはアップデートの要件の概要を規定し、合意が得られれば、開発を開始できます。アジャイル手法を取り入れた開発チームは、1 日に 1 回または数回、開発とデプロイを行うことがあります。
アプリケーションの設計、構築、テスト、デプロイはすべて、開発段階の一部と考えることができます。
ソフトウェアのテスト
新しいアプリケーションを開発した後、プロダクションに移行する前にテストし、バグを解決する必要があります。
アジャイルチームや DevOps チームの場合、テストは開発と同時に実施する必要があります。 フィードバックを継続的な方法で開発チームに提供する必要があります。
このような頻繁なアップデートがそれぞれ競合しないようにするために、継続的インテグレーションを開発プロセスの一部に取り入れます。
テスト段階における目標は、アプリケーションをユーザーにリリースする前に、ガバナンスによって規定されている要件を満たしていること、および想定どおりに動作することを確認することです。
運用および保守
テストとバグの修正が完了したら、アプリケーションをユーザーにデプロイできます。
ALM の運用および保守の段階では、アプリケーションのライフスパン全体に重点を置きます。アプリケーションをデプロイすることで運用が終了するわけではありません。定期的な保守とアップデートを考慮する必要があります。
アプリケーションやサービスの廃止も保守の一環と捉える必要があります。チームは、どの時点でアプリケーションがサポートされなくなるのか、新しいバージョンが利用可能になるのかを定義する必要があります。
ALM とSDLC
ALM はソフトウェア開発ライフサイクル (SDLC) と混同されることがあります。どちらもソフトウェア開発のプロセスを扱うからです。主な違いは、SDLC では主として開発段階に重点を置いていることです。それに対して ALM は、コンセプトから保守、最終的な廃止までのアプリケーションライフサイクル全体を対象とし、アプリケーションの開発後も継続します。
SDLC はアプリケーションライフサイクル管理の一部、つまり、主に開発、テスト、デプロイの各段階であると見なすことができます。ALM には、特定のアプリケーションの複数の開発ライフサイクルが含まれる場合があります。
Red Hat のリソース
アプリケーションライフサイクル管理のツール
ALM ツールは基本的に、人とプロセスの連携を支援するプロジェクト管理ツールとして機能します。バージョン管理、チームがリアルタイムでコミュニケーションできる機能、要求管理機能、見積もりおよびプロジェクト計画、ソースコード管理、テスト管理などの機能を備えたツールを探しましょう。
必要な機能を 1 つのツールで完備している場合もあれば、開発者固有のツールなど、他のツールと統合することが必要な場合もあります。また、アジャイル、ウォーターフォール、DevOps など、開発プロセスをサポートする ALM ツールを選びましょう。
ALM ツールの例:
- Atlassian Jira
- IBM ALM ソリューション
- CA Agile Central
- Microsoft Azure DevOps Server
- Tuleap
- Basecamp
Red Hat のアプリケーション・プラットフォームを選ぶ理由
Red Hat は、オープンソース・コンテナ・テクノロジーのリーダー企業であるとともに積極的に開発も行っており、インフラストラクチャの保護、単純化、自動更新に不可欠なツールを生み出しています。
Red Hat® OpenShift® を活用することで、開発者は新しいアプリケーションを作成し、ホストし、クラウドでデプロイできるようになります。さらに、スケーラビリティ、制御性、オーケストレーションを備えているため、優れたアイデアを迅速かつ簡単に新しいビジネスへとつなげることができます。アプリケーション・ワークロードをマネージド・クラウドサービスにデプロイまたは移行することを検討しているなら、Red Hat OpenShift を Amazon Web Services (AWS)、Microsoft Azure、Google Cloud、IBM Cloud、およびその他のプロバイダーでクラウドネイティブ・サービスとして使用することもできます。
Red Hat OpenShift を基盤として構築された Red Hat Advanced Cluster Management と Red Hat Ansible® Automation Platform を併用することで、パブリッククラウド、オンプレミス、エッジ環境など、複数のリージョンにまたがる複数のデプロイメントを効率的にデプロイし、管理できます。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。