技术见解 / Application Lifecycle Management

What is Application Lifecycle Management?

From initial conception to eventual retirement, cloud native applications running on Kubernetes require consistent management throughout the application lifecycle. Application lifecycle management encompasses the tools, teams, and processes necessary to improve the timeliness and quality of software deployments, optimize productivity across your organization, and ease the application management and maintenance burden.

Application lifecycle management (ALM) is defined as an approach for managing the software lifecycle end-to-end—from initial planning and development to testing and maintenance to decommissioning and retirement.

ALM provides a valuable framework for planning how software will be developed, deployed, managed, and updated. This includes establishing initial ALM requirements, governance, and methodologies. ALM can be important to software success because done correctly, it provides all stakeholders with better visibility into the application lifecycle, offering a clear view of the status of the development, integration, and maintenance of an application, and keeping all teams involved with the software on the same page and working efficiently.

As organizations evolve from traditional waterfall methods to agile, DevOps, and cloud native, ALM tools and processes evolve in sync. There may be multiple ALM processes in a given organization depending on where it is in the transition from traditional to modern applications. An important goal of ALM in many enterprises is to combine multiple development practices into a comprehensive ALM methodology spanning legacy, agile, and cloud native development practices.


ALM process flow

The purpose of ALM is to establish greater uniformity for tools, teams, and processes so that everyone involved always knows where an application is in its lifecycle, and what comes next. The ALM process is divided into a number of stages, helping teams ensure that they are planning for specific application requirements in advance instead of after the fact. For instance, the ALM process gives DevSecOps teams the opportunity to truly embrace the “shift left” philosophy of DevSecOps, planning for application security before the development process commences.

In each stage of the ALM process, you create and oversee specific ALM requirements for that stage, as well as managing ongoing ALM requirements. The stages of ALM typically proceed in order but may require significant overlap and iteration with modern software development approaches.




Stages of ALM

While you may choose to further subdivide each of the stages below, all ALM activity can be considered part of the following three high-level stages.

Stage 1: Governance

Beginning with the business need, application governance includes the decision-making process of identifying whether and why an application is needed, what problems it solves, what resources will be required to make the application a reality, and what regulatory, security, and other considerations must be taken into account, for example, if data must be kept in a certain geography.

Governance requirements include everything from compliance regulations to the choice of technology platform. These ALM requirements are the foundation that underpins software development, so it is essential to be thorough in their definition.

Stage 2: Development

In the ALM development stage, development and DevOps teams begin the creation of the application, increasingly utilizing agile development tools and methods to implement CI/CD, whether for containerized deployments or for traditional VM workloads. The ALM development process includes writing code (or acquiring code that’s been written elsewhere), testing the application, and facilitating its deployment once initial development is completed. Legacy waterfall development processes separate testing from development; however, with agile and DevOps methods, testing is performed in conjunction with development.

Stage 3: Maintenance

After the initial deployment, ALM considers the remainder of the application’s functional life to be part of the maintenance stage. Frequent releases address both bugs and feature additions, as well as integration with other new or legacy applications. Maintenance also addresses any rehosting necessary, for example, applications may be moved from on-premises to cloud, or from VMs to containers.

A final aspect of maintenance is planning for application retirement, both end of support (EOS) and end of life (EOL). All stakeholders need to be aware of when an application will no longer be supported or will be replaced with a newer version.



Benefits of application lifecycle management

Some key benefits of application lifecycle management include:

  • Improved planning. ALM provides the means to map out the entire application lifecycle from resource planning to end of service. ALM helps make it clear how an application fits into a larger project with clear guidelines for each stage of the lifecycle.
  • Enhanced compliance. ALM gives teams a consistent set of tools, with the goal of providing everything necessary to produce high-quality applications. It promotes quality through source code management, well-defined testing, and collaborative effort. ALM also defines the skill sets needed in each stage of the lifecycle to help ensure the delivery of compliant software.
  • Better visibility. ALM provides visibility across the application lifecycle for all stakeholders. It provides an integrated system to improve communication and collaboration by aligning software objectives with user needs and corporate goals.
  • Higher quality software products. ALM harmonizes tools, teams, and processes to deliver applications that are optimized from end to end, resulting in better performance and reduced costs.



What to keep in mind if you're considering application lifecycle management

Technologies that support ALM

Many companies want to accelerate software development and increase the cadence of feature delivery. A DevOps or DevSecOps approach provides a solid foundation for teams seeking to achieve these goals. ALM is well aligned with DevOps and DevSecOps and helps you clearly define and implement the necessary ALM tools, teams, and processes as you evolve your approach to software development.

The cloud native technology stack—including Kubernetes, containers, agile development, microservices, and serverless—provides a modern environment to support DevOps methods and facilitate ALM. The Kubernetes ecosystem operating on containerized applications enables automation that can streamline the processes necessary for deploying and managing applications across the entire application lifecycle.

Choosing ALM tools

There are a number of tools available that can facilitate application lifecycle management, including ALM Works, Basecamp, tuleap, Atlassian Jira, and Azure DevOps Services.

While tools such as these may be appropriate for your needs, they are not essential. Whatever your chosen ALM tool set, it should encompass the following functionality:

  • Source code management
  • Communication/collaboration
  • Project management
  • CI/CD

In addition, you’ll probably want to identify the best integrated development environment (IDE) or set of IDEs for your company’s needs. As a general rule of thumb, it’s always best to look for tools that integrate well with the tools you already use. It’s also important to avoid being overly prescriptive and to get buy-in from the teams that will be using any new tools you add as part of your ALM efforts.

ALM vs. SDLC

The software development lifecycle (SDLC) focuses only on the development stage of the software lifecycle. As such, it can be considered a subset of ALM, which covers the entire application lifecycle.



ALM and Tanzu

The goal of Tanzu is to help organizations build, manage, and scale modern applications and infrastructure more efficiently. Tanzu products and services are designed to provide an exceptional experience, helping you deliver higher quality software in less time.

Tanzu Application Platform encompasses many of the capabilities required for ALM in a platform that enables you to jumpstart your app development efforts, boost developer velocity, and accelerate the path to production. Tanzu Application Platform supports multi-cloud environments and runs on any API-conformant Kubernetes distribution.

Tanzu Labs can help your teams build the skills they need to succeed with application lifecycle management and modern development methods. Our experts can help you get better results from any and all stages of the application lifecycle from governance to development to maintenance.

Tanzu Labs has helped many of the world’s largest and most complex enterprises and governments adopt modern software development practices at scale while developing software together. These organizations are now building better software—delivered by more productive software teams—and delighting millions of users.

Spring makes programming Java quicker, easier, and safer for everybody. Spring’s focus on speed, simplicity, and productivity has made it the world's most popular Java framework.