Application Lifecycle Management (ALM) is a broad term used to describe the management of software application development. There are three main phases: requirements, development, and operations. In ALM, the development of an application is managed from the beginning to the end, from development to deployment and decommissioning.
ALM is not specific to the DevOps and Agile approach – any organization can implement ALM in whatever software development environment they use, from Waterfall to Kanban. However, there are some unique ways that ALM compliments DevOps.
ALM and DevOps
As you probably already know, DevOps is a combination of software development and IT operations; its practice emphasizes collaboration between developers, analysts, engineers, and other IT professionals when developing and automating software and applications. It also emphasizes iterative development as a way to create a fast turn-around time for deployment.
At CenturyLink, our teams use this continuous integration and continuous deployment (CI/CD) approach, where they focus on releasing a "base" or "beta" application and then continuously release features as they are developed. Each release goes through quality assurance (QA) and testing. We use different tools to automate testing, builds, and releases, such as Jenkins, Github, Chef, etc., as automation is integral to DevOps.
ALM supports the DevOps approach and Agile model by providing a universal platform with centralized visibility into the application and the entire development process. Specifically, the ALM framework provides a methodology for developers and engineers to control and record iterative development. Rapidly-changing requirements in IT development require systems that allow teams to have access to the infrastructure and the means to quickly view it at different stages across different providers. At CenturyLink, we use Cloud Application Manager platform to facilitate ALM by allowing teams to view all their cloud resources from a single interface.
What Cloud Application Manager Does for DevOps
This cloud management functionality is important – it frees teams to innovate and create by reducing the time they spend managing the ALM process. Tasks like spinning up servers and other maintenance tasks that take up staff time can be automated so that teams can focus on developing new features and discovering new ways to innovate in the market. Cloud Application Manager is a complete feature set for automating ALM – scaling, updating, migrating, managing – for rapid deployment and efficient, governed/standardized application deployment models.
Cloud Application Manager also supports a CI/CD approach. Since our DevOps is modeled on a continuous deployment scale, any ALM platform has to support CI/CD in order to successfully work. In fact, cloud CI/CD approach "implies a three-step process, each managed by a different tool that cooperates to automate the entire process: resource manager, configuration manager, cloud manager".
Cloud Application Manager is the cloud manager aspect of this process – the platform enables our teams to do their own provisioning and control cloud consumption, manage workloads from one page, and view, implement, and change cloud usage and amount spent on cloud resources.
For example, it provides a view into your infrastructure by showing the type and location of each VM, which can then be provisioned (resource management) and configured (configuration management).
Cloud Application Manager can manage direct deployments and automate the frequency of deployments, an important aspect for a DevOps ALM. It also integrates across clouds, so that all resources can be viewed in one space, reducing provisioning time through the ability to automate.
Using Cloud Application Manager for ALM can enhance your DevOps agenda by providing a platform that can automate cloud deployments and management across platforms, allowing teams to focus on innovation and ultimately providing a centralized visibility into the lifecycle process, an important aspect in DevOps transparency and collaboration.