개요
애플리케이션 라이프사이클 관리(ALM)는 구상부터 지원 종료까지 애플리케이션의 라이프사이클을 관리하는 인력, 툴, 프로세스의 결합입니다.
ALM은 폭포수 개발 방식, 프로젝트 관리, 요구 사항 관리, 소프트웨어 개발, 테스트 및 품질 보증, 배포, 유지 관리 등 레거시 개발 프로세스에서 종종 분리되어 온 여러 분야들로 구성되어 있습니다.
애플리케이션 라이프사이클 관리는 플랫폼 엔지니어링 분야와 교차하며, 팀이 조직을 위해 더 효과적으로 협업할 수 있도록 지원하기 위해 애자일 방법론, DevOps 등을 보완합니다.
아울러 ALM을 도입하면 소프트웨어와 업데이트를 지속적으로 제공하고, 신규 릴리스가 몇 달에 한 번 또는 일 년에 한 번만 가능한 것과 달리, 최대 하루에 수차례인 경우도 있는 등 빈번하게 릴리스를 제공할 수 있습니다.
애플리케이션 라이프사이클 관리는 소프트웨어 개발을 위한 프레임워크를 제공하는 동시에 시간의 경과에 따라 소프트웨어를 관리하는 데 도움이 됩니다. ALM 사례를 따르려면 사전 확립된 경량화 계획과 요구 사항을 사용하여 아이디어를 애플리케이션으로 전환합니다.
ALM으로 소프트웨어 개발에 접근할 때는 애플리케이션의 전체 수명을 고려해야 합니다. 그리고 애플리케이션의 만료와 교체 시기를 비롯해 유지 관리와 향후 업데이트를 고려해야 합니다.
ALM을 사용하면 이러한 사항들을 통합함으로써 배포를 가속화하고, 워크플로우에 대한 가시성을 개선하고, 제품 품질을 높이고, 개발자 만족도를 향상할 수 있습니다.
ALM 단계
ALM은 개발 프로세스에 대한 가시성을 확보하는 데 도움이 됩니다. 프로세스가 통합되므로 무엇이 진행되었고, 어떤 단계를 아직 완료해야 하고, 소요 시간은 얼마나 되고, 어떤 테스트를 완료했는지 등을 파악할 수 있습니다.
애플리케이션 거버넌스
거버넌스는 애플리케이션에 대해 내린 결정을 설명합니다. 신규 애플리케이션 생성 프로세스를 시작할 때는 가장 먼저 애플리케이션을 구상하고, 애플리케이션이 비즈니스 요구 사항 및 목표와 어떻게 연관되어 있는지도 고려해야 합니다.
그러면 거버넌스 단계의 일환으로 신규 애플리케이션에 대한 요구 사항을 정의하고 합의할 수 있습니다.
리소스 관리, 데이터 및 보안, 사용자 액세스는 애플리케이션 거버넌스의 추가 구성 요소입니다.
이러한 프로세스들을 표준화하면 거버넌스를 자동화할 수 있습니다. 그리고 거버넌스 프로세스를 자동화하면 애플리케이션 제공 속도가 빨라집니다.
애플리케이션 개발
애플리케이션 또는 업데이트에 대한 요구 사항에 대해 개략적으로 설명하고 합의한 후에는 개발을 시작할 수 있습니다. 개발에 대한 애자일 방법론을 따르는 팀은 매일 한 번 또는 여러 차례 개발하고 배포할 수도 있습니다.
애플리케이션의 설계, 빌드, 테스트, 배포는 개발 단계의 일환으로 모두 고려할 수 있습니다.
소프트웨어 테스트
신규 애플리케이션이 개발되면 프로덕션 단계로 이동하기 전에 테스트를 진행하여 버그를 해결해야 합니다.
애자일 팀과 DevOps 팀의 경우 테스트는 개발과 동시에 진행해야 합니다. 그리고 다시 개발 팀에게 피드백을 지속적으로 전달해야 합니다.
지속적 통합을 개발 프로세스의 일부로 포함해야 빈번한 업데이트가 상호 충돌하는 것을 막을 수 있습니다.
테스트 단계의 목표는 거버넌스 단계에서 개략적으로 제시된 요구 사항이 충족되었고 애플리케이션이 사용자에게 릴리스되기 전에 정상적으로 작동하는지 확인하는 것입니다.
운영 및 유지 관리
테스트와 필요한 버그 수정이 완료되면 애플리케이션을 사용자에게 배포할 수 있습니다.
ALM의 운영 및 유지 관리 단계에서는 애플리케이션의 전체 수명에 초점을 맞춥니다. 애플리케이션이 배포됐다고 운영이 끝나는 것이 아닙니다. 정기적인 유지 관리와 업데이트를 고려해야 합니다.
애플리케이션 또는 서비스의 기간내 사용(retirement)도 유지 관리의 일부로 고려해야 합니다. 팀은 어느 시점에서 애플리케이션이 더 이상 지원되지 않는지 또는 최신 버전이 제공되는지 정의해야 합니다.
ALM과 SDLC 비교
ALM을 소프트웨어 개발 라이프사이클(SDLC)과 혼동할 때가 있습니다. 두 가지 모두 소프트웨어 개발의 프로세스를 다루기 때문입니다. 주요 차이점은 SDLC는 주로 개발 단계에 초점을 맞추는 반면, ALM은 개념에서 유지 관리, 그리고 최종적으로 폐기에 이르는 전체 애플리케이션 라이프사이클에 관한 것으로, 애플리케이션이 개발된 후에도 계속됩니다.
SDLC는 주로 개발, 테스트 및 배포 단계에서 애플리케이션 라이프사이클 관리의 일부로 고려할 수 있습니다. ALM에는 특정 애플리케이션에 대해 여러 개발 라이프사이클이 포함될 수 있습니다.
Red Hat 리소스
애플리케이션 라이프사이클 관리 툴
ALM 툴은 기본적으로 인력과 프로세스를 통합할 수 있는 프로젝트 관리 툴로 기능합니다. 버전 관리, 팀의 실시간 소통을 위한 기능, 요구 사항 관리 기능, 추정 및 프로젝트 계획, 소스 코드 관리, 테스트 관리 등이 포함된 툴을 찾으세요.
한 개의 툴에서 필요한 모든 기능을 찾을 수도 있고, 아니면 추가 툴(예: 개발자용 툴)을 통합해야 할 수도 있습니다. 또한 선택한 ALM 툴은 애자일이든, 폭포수이든, DevOps든 조직의 개발 프로세스를 지원해야 합니다.
ALM 툴의 예:
- Atlassian Jira
- IBM ALM 솔루션
- CA Agile Central
- Microsoft Azure DevOps Server
- Tuleap
- Basecamp
Red Hat을 애플리케이션 플랫폼으로 선택해야 하는 이유
Red Hat은 애플리케이션 기술을 선도하며 활발히 구축하는 기업으로서 인프라의 보안, 간소화, 자동 업데이트를 위한 필수 툴을 개발합니다.
개발자는 Red Hat® OpenShift®의 확장성, 제어, 오케스트레이션 기능을 활용하여 새 애플리케이션을 구축 및 호스팅하고 클라우드에 배포함으로써 멋진 아이디어를 쉽고 빠르게 새로운 비즈니스로 만들어 낼 수 있습니다. 애플리케이션 워크로드를 관리형 클라우드 서비스로 배포하거나 이동하고자 한다면 Red Hat OpenShift를 AWS(Amazon Web Services), Microsoft Azure, Google Cloud, IBM Cloud 및 기타 공급업체를 기반으로 한 클라우드 네이티브 서비스로 사용할 수도 있습니다.
Red Hat OpenShift 기반으로 구축되어 있으며, Red Hat Advanced Cluster Management와 Red Hat Ansible® Automation Platform을 함께 활용하여 퍼블릭 클라우드, 온프레미스 환경, 엣지 환경을 포함한 다양한 위치에서 여러 배포판을 효율적으로 배포하고 관리할 수 있습니다.
레드햇 공식 블로그
레드햇 공식 블로그에서 고객, 파트너, 커뮤니티 에코시스템 등 현재 화제가 되는 최신 정보를 살펴 보세요.