アカウント ログイン
Jump to section

アプリケーションライフサイクル管理 (ALM) とは

URL をコピー

アプリケーションライフサイクル管理 (ALM) とは、アプリケーションが形成され、その寿命が終わるまでのライフサイクルを管理する人、ツール、プロセスを指します。

ALM は、プロジェクト管理、要件管理、ソフトウェア開発、テストと品質保証、デプロイメント、保守など、ウォーターフォール開発手法のようなレガシー開発プロセスの下ではしばしば別個のものとして扱われてきたいくつかの分野で構成されています。

アプリケーションライフサイクル管理は、これらの分野を統合し、チームが組織のためにより効果的に連携できるようにすることで、アジャイルおよび DevOps 開発アプローチをサポートします。

また、ALM を導入すると、数カ月毎や年に一度の新リリースではなく、ソフトウェアやアップデートは頻繁に、場合によっては 1 日に数回の頻度でリリースされ、継続的デリバリーが可能になります。

アプリケーションライフサイクル管理は、ソフトウェア開発のフレームワークを提供すると同時に、長期にわたるソフトウェア管理を支援します。以下の ALM プラクティスでは、軽量で、事前に準備された計画と要件を使用して、アイデアをアプリケーションに変換します。

ALM を使用してソフトウェア開発に取り組む場合は、アプリケーションの寿命全体を考慮する必要があります。保守と今後の更新については、アプリケーションの廃止や交換が必要な場合を含めて考慮するべきです。

これらの要素を組み合わせることにより、ALM は、デプロイメントを迅速化し、ワークフローの可視性、製品の品質、および開発者の満足度の向上を実現します。

ALM は、開発プロセスを可視化するのに役立ちます。プロセスが統合されているため、どのような進捗があったか、どのステップが完了待ちか、どのくらい時間がかかっているか、どのテストが完了したかなどを確認できます。

アプリケーションガバナンス

ガバナンスは、アプリケーションに関して行われた決定を説明するものです。新しいアプリケーション作成のプロセスを始めるときは、アプリケーションの最初のアイデアから始めて、それがビジネスのニーズと目標にどのように関連しているかを考慮する必要があります。

これに基づいて新しいアプリケーションの要件を固めてゆくわけですが、これはガバナンス段階の一部として定義および合意する必要があります。

アプリケーションガバナンスの段階では、他にもリソース管理、データとセキュリティ、ユーザーアクセスについて検討します。

これらのプロセスの標準化は、ガバナンスを自動化する機能につながります。これらのガバナンスプロセスを自動化すると、アプリケーション配信が迅速になります。

アプリケーション開発

アプリケーションまたは更新の要件の概要が示され、同意すると、開発を開始できます。アジャイル手法で開発を行うチームは、1 日に 1 回か数回の頻度で、開発とデプロイを行うことがあります。

アプリケーションの設計、構築、テスト、デプロイはすべて、開発フェーズの一部と見なすことができます。

ソフトウェアのテスト

新しいアプリケーションが開発されたら、テストを行い、本番環境に移行する前にバグを解消する必要があります。

アジャイルおよび DevOps チームの場合、テストは開発と同時に行う必要があります。開発チームへのフィードバックは、継続的に行う必要があります。

これらの頻繁な更新が互いに競合しないように、開発プロセスの一部に継続的インテグレーションを取り入れます。

テスト段階の目標は、ガバナンス段階で策定した要件が満たされていること、アプリケーションがユーザーにリリースされる前に正常に機能することを確認することです。

運用および保守

テストが完了し、必要なバグの修正を行ったら、アプリケーションをユーザーにデプロイできます。

運用および保守段階は、ALM がアプリケーションの寿命全体を管理対象にしている理由です。アプリケーションがデプロイされると、以後は運用が絶え間なく続きます。定期的な保守と更新を検討する必要があります。

アプリケーションまたはサービスの廃止も、保守の一部と見なすべきです。チームは、どのタイミングでアプリケーションをサポート対象から外すかや、新しいバージョンを公開するかを決めなければなりません。

ALM とSDLC

ALM は、ソフトウェア開発ライフサイクル (SDLC) と混同されることがあります。どちらもソフトウェア開発のプロセスを扱うものだからです。主な違いは、SDLC は主に開発フェーズを対象としているのに対し、ALM はコンセプトから保守、そして最終的には廃止まで、アプリケーションライフサイクル全体に関係し、アプリケーションの開発後も継続することです。

SDLC は、主に開発、テスト、デプロイメントの各段階における、アプリケーションライフサイクル管理の一部と見なすことができます。ALM には、特定のアプリケーションの複数の開発ライフサイクルが含まれることがあります。

ALM のツールは基本的に、人とプロセスを結び付けるのに役立つプロジェクト管理ツールとして機能します。バージョン管理、チームがリアルタイムで通信する機能、要件管理機能、見積もりとプロジェクト計画、ソースコード管理、テスト管理に対応するツールを探してみましょう。

1 つのツールで必要な機能すべてに対応できる場合もあれば、追加ツール (開発者固有のツールなど) との統合が必要な場合もあります。選択する ALM のツールは、アジャイル、ウォーターフォール、DevOps など、さまざまな開発プロセスにも対応している必要があります。

ALM ツールの例

  • Atlassian Jira
  • IBM ALM ソリューション
  • CA Agile Central
  • Microsoft Azure DevOps Server
  • Tuleap
  • Basecamp

ALM は、Linux® コンテナと連携する DevOps アプローチをサポートします。コンテナは、クラウドネイティブ開発スタイルに必要な、基盤となるテクノロジーをチームに提供し、開発、提供、統合、自動化のための統合環境をサポートします。

一方で Kubernetes は、Linux コンテナ操作を自動化する先進的な方法です。Kubernetes によって、Linux コンテナをパブリッククラウド、プライベートクラウド、ハイブリッドクラウドで実行するクラスタを、簡単かつ効率的に管理できます。

Red Hat® OpenShift® は、ALM の目標を達成できるように、あらゆるインフラストラクチャ上でコンテナ型アプリケーションのビルド、デプロイ、管理を行う基盤として、開発チームと運用チームに共通のプラットフォームとツールセットを提供するエンタープライズ向け Kubernetes プラットフォームです。

関連資料

記事

DevSecOps とは

DevOps によるアジリティと応答性を存分に利用するのであれば、IT セキュリティはアプリケーションのライフサイクル全体を通じて、重要な役目を果たす必要があります。

記事

CI/CD とは

CI/CD によって、統合およびテストのフェーズからデリバリー、デプロイメントに至る、アプリケーションのライフサイクル全体を通じて、継続的な自動化と継続的な監視が導入されます。

記事

DevOps エンジニアとは

DevOps エンジニアは、組織内でのコラボレーション、イノベーション、文化的変革を可能にする特有のスキルと専門知識を持ち合わせています。  

DevOps の詳細はこちら

製品

Red Hat Open Innovation Labs

Red Hat のエキスパートによる徹底的かつ集中的な研修。アジャイルの方法論とオープンソースツールを使用して、社内業務の課題に対処する方法について学びます。

Red Hat Consulting

Red Hat の戦略的アドバイザーが、企業組織の全体像を把握しながら課題を分析し、包括的かつコスト効率に優れたソリューションで課題を解決できるようお手伝いします。

リソース

ホワイトペーパー

Red Hat Ansible Automation Platform を使用して CI/CD パイプラインを最適化する

Illustration - mail

その他の関連コンテンツ

無料のニュースレター「Red Hat Shares」(英語) では、注目の IT トピックスに関するコンテンツをお届けしています。