본문 바로가기
CI CD

Open Source ALM Solution

by 신군. 2018. 2. 24.
반응형

Open Source ALM Solution


ALM 이란

ALM이란 Application Lifecycle Management의 약자로 개발, 유지보수, 거버넌스를 포함한 소프트웨어 어플리케이션 제품의 전체 수명 주기를 관리하는 것을 뜻합니다. ALM은 제품의 수명 주기를 체계적으로 관리하기 위해 다음과 같은 공정을 포함하고 있습니다.


  • 요구사항 관리(Requirements Management)
  • 소프트웨어 아키텍처(Software Architecture)
  • 소프트웨어 개발(Software Development)
  • 소프트웨어 테스팅(Software Testing)
  • 소프트웨어 유지보수(Software Maintenance)
  • 변경 관리(Change Management)
  • 프로젝트 관리(Project Management)
  • 릴리즈 관리(Release Management)


alm.PNG 

Open Source ALM이란

소프트웨어 어플리케이션이 라이프사이클을 체계적으로 관리하기 위해서는 상위의 각 공정을 지원하는 소프트웨어 도구들이 필요합니다. 오픈 소스 ALM(Open Source ALM)이란 ALM의 각 공정을 체계적으로 지원할 수 있는 검증된 오픈 솟 도구들을 통합한 솔루션으로 개발 조직이라면, 누구나 무료로 사용할 수 있는 ALM 솔루션입니다. PSEG에서 컨설팅 활동에서 경험, 실험, 연구 등을 통해서 얻은 결과를 바탕으로 다음과 같이 오픈 소스 ALM(Open Source ALM) 솔루션을 구성하였습니다. 

Redmine

Redmine은 가장 인기 있는 웹 기반 오픈 소스 프로젝트 관리 도구로 오픈 소스 ALM(Open Source ALM) 솔루션에서 프로젝트 관리, 요구사항 관리, 이슈 관리, 변경 관리, 테스트 관리 등이 역할을 수행하는 핵심 솔루션 입니다.

XWiki

XWiki는 협업 기반 문서 작성이 가능한 웹 기반 오픈 소스 wiki 도구입니다. 강력한 에디터, 문서의 버전 관리, 권한 관리, 검색, PDF, ODT, RTF, XML 등으로 문서 출력, 블로그, 파일 관리, 미팅 관리, 업무 관리 등을 제공하는 조직을 위한 지식 저장소로 사용될 수 있습니다.  

Eclipse

Eclipse는 전세계의 Java 개발자들이 가장 많이 사용하는 통합 개발 환경으로 현재는 다양한 언어의 개발에도 많이 사용되고 있으며, 수 백개이 다양한 플러그인을 통해 개발 보조, 설계 도구, 업무 관리, 형상 관리 연동 등을 수행할 수 있습니다.

Git + Gerrit

Git은 작은 프로젝트부터 큰 프로젝트까지 전세계적으로 많이 사용하고 있는 오픈 소스 분산 버전관리 시스템입니다. Gerrit은 Git과 유기적으로 통합되여, Git 저장소와 사용자를 관리하며, 코드가 Git으로 Merge되기 전 코드리뷰를 수행하여 코드 품질을 향상 시키는데 도움을 주는 강력한 코드리뷰 도구입니다.

Jenkins

Jenkins는 지속적인 통합(Continuous Integration)을 빠르고 쉽게 구축할 수 있게 해주는 강력하고 인기있는 오픈 소스 CI 서버로 다양한 플러그인을 통해 빌드 검증, 빌드 관리, 테스트 자동화, 코드 정적 분석 등의 다양한 기능을 제공하고 있습니다. 

SonarQube

SonarQube는 실시간으로 소스코드의 품질 현황을 한눈에 파악할 수 있게 가시화를 지원하는 솔루션으로 수많은 플러그인을 통해 콛 품질 현황, 리포트, 그리고 결과물의 문서화를 지원하고 있습니다.

Open Source ALM 아키텍처

다음 그림은 앞서 설명한 Open Source ALM의 아키텍처와 체계적인 ALM 지원을 위한 연동성을 보여주고 있습니다.
osssolution.png




다음 그림은 Open Source ALM을 구축 후 사용을 위한 간단한 시나리오를 보여주고 있습니다.

  1. Redmine에 작성되어 있는 요구사항, 업무, 이슈들은 개발자의 이클립스의 작업 리스트에 보여집니다.
  2. 개발자는 자신의 업무와 관련 있는 소스 코드를 Git + Gerrit으로부터 Fetch 받습니다. 
  3. 작업을 마친 개발은 자신의 소스 코드에 대해서 리뷰 요청을 하기 위해 Gerrit으로 Push합니다.
  4. Jenkins는 Gerrit에 Push된 소스 코드의 빌드, 정적분석, 단위테스트 등이 이상이 없는지 확인하기 위해 Fetch를 수행합니다.
  5. Jenkins는 확인 결과를 Gerrit에 등록합니다.
  6. 팀장과 같은 소스 코드 리뷰어들은 개발자가 개발한 소스 코드의 리뷰를 수행합니다.
  7. 리뷰어는 검증 결과를 Gerrit에 등록합니다.
  8. Gerrit은 코드 리뷰 결과와 빌드 검증 결과를 합산하여 설정한 점수가되면 Git으로 Submit을 수행합니다.



osalmscenario.PNG

Open Source ALM Solution 관련 정보

PSEG에서는 Open Source ALM을 적용을 희망하는 기업 및 조직을 위해 그동안 ALM 구축과 관련된 다양한 경험의 Know-how 정보를 공유하고 있으며 세부적인 사항은 아래 리스트를 참고하시기 바랍니다.

Redmine 관련 정보


Eclipse 관련 정보


Git+Gerrit 관련 정보

Jenkins 관련 정보

SonarQube 관련 정보


반응형