InfoGrab Case Study.
KT DS

기존 솔루션 패키지 종속적인 모듈들을 마이크로서비스 아키텍처(MSA) 기반 서비스로 전환하고, 각 서비스 애플리케이션은 Docker 컨테이너화하여 OpenShift 클러스터에 배포, 스케일링 및 관리함으로써 개발 및 운영 효율화를 꾀하였으며, GitLab을 기반으로 DevOps 워크플로우를 구축하였습니다.

서비스

IT

직원수

1300명+

선택한 라이센스

Core

Challenge

대형 벤더에서 제공하는 솔루션 중심의 서비스 지향 아키텍처(SOA)는 다수의 애플리케이션 간의 로직과 데이터를 공유하여 각 업무별로 독립된 시스템의 형태로 개발된 업무 시스템들을 통합하기 위해 제안된 아키텍처입니다. 그러나 통제와 관리를 위해 점점 무거운 방향으로 진행됨에 따라 최초의 의도였던 빠른 적용, 민첩한 개발 및 적은 통합 비용과 멀어지게 되었습니다. 빠르게 변화하는 비즈니스 환경과 다양하고 변화무쌍한 고객 니즈를 충족하기 위해서는 더 자주, 더 빨리, 더 효율적으로 프로덕션(Production)을 릴리즈해야 합니다.

마이크로서비스 아키텍처(MSA) 전환은 전체 서비스의 중단 없이 서비스별로 독립적 배포가 가능하여 요구사항을 신속하게 반영할 수 있고, 확장이 용이하여 트래픽에 따라서 유연하게 대처할 수 있습니다. 또한 장애 전파 차단(Circuit breaker)을 통해 장애 발생 시 장애 영향을 최소화할 수 있습니다.

스크럼 기반 애자일 개발 방식은 작은 목표를 짧은 Sprint 주기(2~4주 이내)마다 실제 동작하는 결과물을 제공하여, 고객의 피드백을 조기에 얻어 점진적으로 개선함으로써 고객 니즈를 빠르게 충족시킬 수 있습니다. DevOps는 개발(Dev)과 운영(Ops)을 통합하고 동시 협업함으로 개발, 테스트, 배포, 운영에 이르기까지 전체 애플리케이션 라이프사이클의 프로세스를 개선함으로써 효율성을 극대화할 수 있습니다. GitLab은 Agile 기반으로 DevOps를 완벽하게 지원합니다.

Requirements
01
솔루션 패키지 단계적 전환
솔루션 의존성 탈피 및 유지보수 비용 절감
02
Agile Scrum 방법론 적용
변화에 유연하고 신속한 대응
03
DevOps 도입
이관(Transition) 기간 없이 바로 운영 업무 수행
04
협업 솔루션 구축
효율적인 워크플로우로 협업 개선 및 생산성 향상
Process
Step1. MSA 전환 대상 식별
타 모듈에 미치는 영향이 적은 업무
주요 부하 발생 요소인 기능
Step2. DevOps PI
시스템 아키텍처 정의
개발, 배포 및 운영 효율화 방안 수립
Step3. 솔루션 구축
GitLab 그룹/프로젝트 구성
스크럼 기반 워크플로우 구축
CI/CD 파이프라인 구축
Step4. 가이드 제공
MSA Spring Boot 개발 가이드
솔루션 운영 가이드
Key Features
Group & Project
Core
GitLab에서 Group을 만들어 DevOps 팀의 구성원을 추가, 역할에 따라 적절하게 권한을 부여하고, 기능별 코드베이스 단위로 Project를 만듭니다. 이를 통해 업무를 계획(Milestone)하고 세부화한 업무(Issue)를 구성원에게 배정하여 수행 프로젝트를 관리할 수 있습니다.
  • 그룹은 동일한 네임스페이스에서 관련 프로젝트를 구성하고 최상위 그룹에 구성원을 추가하여 여러 프로젝트와 여러 팀 구성원에게 더 적은 단계로 액세스 권한을 부여할 수 있습니다.
  • 프로젝트는 코드베이스 단위로 만듭니다. 이를 이슈 트래커로 사용하고, 코드에 대해 공동 작업하고, 내장된 GitLab CI/CD를 사용하여 앱을 지속적으로 빌드, 테스트 및 배포할 수 있습니다.
Issue Board
Core
GitLab 이슈 보드는 기능 또는 제품 릴리스에 대한 워크플로우를 계획, 구성 및 시각화하는 데 사용되는 소프트웨어 프로젝트 관리 도구입니다. 칸반이나 스크럼 보드로도 쓸 수 있습니다. 이슈 추적과 프로젝트 관리를 결합하여 모든 것을 동일한 장소에 보관하므로 워크플로우를 구성하기 위해 서로 다른 플랫폼 사이를 이동할 필요가 없습니다. 레이블을 추가하여 기존 이슈에 해당하는 목록을 만들고 카드를 한 단계에서 다른 단계로 끌어다 놓을 수 있습니다.
  • 이슈 보드는 기존의 이슈 추적 기능과 레이블을 기반으로 합니다. 이슈는 할당된 레이블, 마일스톤 또는 담당자 별로 정리된 세로 목록의 카드로 나타납니다.
  • 이슈 보드는 팀이 작업 중인 이슈, 각 이슈에 할당된 사람, 워크플로우에서 해당 이슈가 있는 위치를 보여줄 수 있습니다.
Milestone
Core
GitLab에서 마일스톤은 특정 기간 동안 더 광범위한 목표를 달성하기 위해 생성된 이슈 및 병합 요청(Merge Request)을 추적하는 방법입니다. 마일스톤을 이용하면 선택적 시작일과 마감일을 사용하여 이슈와 병합 요청을 응집력 있는 그룹으로 구성할 수 있습니다.
  • 마일스톤을 Agile 스프린트로 사용할 수 있으므로 특정 스프린트와 관련된 모든 이슈와 병합 요청을 추적할 수 있습니다.
  • 마일스톤을 GitLab의 릴리스 기능과 통합하여 사용할 수 있습니다.
Result
GitLab으로
효율적인 워크플로우 정립
애자일 개발 방식과 DevOps 체계를 통해 개발 및 운영 업무의 효율이 향상되었습니다. 이제 팅원들은 컨테이너화 되고 마이크로서비스로 전환된 각 기능 모듈들을 GitLab의 Project로 구성하고, 팀에서 수행하는 전체 프로젝트를 GitLab의 Group을 통해 효율적으로 관리할 수 있습니다. 이슈 보드를 이용하여 진척 상황을 확인하고, 스프린트 별로 마일스톤을 만들어 업무 목표와 일정을 관리할 수 있게 되었습니다.
개발 거버넌스 지원 도구 구축
Epic, User Story 기반의 이슈 보드 운영
마일스톤 기반 이슈 트래킹
협업 솔루션 구축
댓글(Comment)과 스레드(Thread)로 토론
Merge Request를 통한 코드 리뷰 및 협업
DevOps 체계 구축
애자일 개발 방법론 적용
DevOps 워크플로우 적용
DEMO
인포그랩의 데모를 보고 계획을 수립하세요
* 필수