DevOps Console 소개
서비스 개요
DevOps Console은 표준 개발도구를 통합 지원하여 개발환경을 쉽게 구성하고 빌드/배포의 편의성을 제공하는 서비스로서 다음과 같은 특징이 있습니다.
지속적 통합 및 배포(CI/CD Continuous Integration/Continuous Deployment)를 위한 주요 툴 연동 및 통합 인증
사용자는 한번의 로그인으로 소스코드 저장소, 아티팩트 저장소, 코드분석, 이미지 저장소, 빌드/배포를 담당하는 툴에 접근할 수 있습니다.
애플리케이션 템플릿 기반으로 프로젝트 구성
사용자는 개발표준이 반영되어 있는 템플릿을 이용하여 위저드 방식으로 프로젝트를 쉽게 구성할 수 있습니다.
주요 개발언어 및 프레임워크 제공
사용자는 애플리케이션 개발에 필요한 개발언어(Java, C#, Python, Ruby 등)와 프레임워크(SpringBoot, Vue.js, .Net 등)을 선택하여 빌드/배포를 위한 프로젝트를 구성할 수 있습니다.
빌드/배포 파이프라인 자동 구성
사용자는 애플리케이션 템플릿에 포함된 빌드/배포 파이프라인 템플릿을 이용하여 파이프라인 스크립트를 자동으로 구성하거나 GUI 기반으로 파이프라인의 각 단계를 구성할 수 있습니다.
다양한 배포 방식 지원 및 롤백 지원
사용자는 운영 중인 애플리케이션의 중단시간을 최소화하기 위한 배포방식(RollingUpdate, Blue-Green)을 이용할 수 있으며, 클릭 한 번으로 원하는 버전으로 롤백할 수 있습니다. 만약 사용자가 배포환경으로 VM 서버를 이용하고자 한다면, 패키징된 파일 또는 도커 이미지의 형태로 VM 서버에 배포할 수 있습니다.
맞춤형 릴리스 프로세스 지원
사용자는 애플리케이션 변경 유형을 고려하여 다양한 릴리스 프로세스를 정의하고 반복적으로 실행할 수 있습니다.
구성요소
사용자는 DevOps Console을 통해 DevOps Service를 손쉽게 이용할 수 있습니다.
DevOps Console
애플리케이션 개발과 빌드/배포에 필요한 도구를 통합적으로 지원하여 프로젝트 구성 및 빌드/배포를 쉽게 관리할 수 있습니다.
Dev. Starter
개발표준이 반영된 샘플코드 뿐만 아니라 빌드/배포에 필요한 템플릿을 통합 제공하는 애플리케이션 템플릿입니다.
IDP(ID Provider)
사용자를 통합 관리하고 인증을 담당합니다.
소스코드 저장소
소스코드 형상관리 도구와의 연계를 지원합니다.
아티팩트 저장소
애플리케이션 빌드에 필요한 라이브러리와 애플리케이션 아티팩트를 저장하기 위한 아티팩트 저장소와의 연계를 지원합니다.
코드품질
코드 정적 분석을 통해 소스코드의 품질을 측정하고 관리할 수 있는 코드품질 도구와의 연계를 지원합니다.
헬름차트 저장소
Kubernetes에서는 소프트웨어를 쉽게 설치하고 업그레이드하기 위해서 헬름차트를 사용합니다. 사용자가 소프트웨어를 설치하기 위해서는 헬름차트를 직접 작성해야 합니다. 헬름차트를 관리하는 저장소로서 ChartMuseum을 기본으로 제공합니다. 또한 다른 차트저장소 툴과의 연계도 지원합니다.
이미지 저장소
컨테이너 이미지를 저장하기 위한 이미지 저장소와의 연계를 지원합니다.
VM서버 그룹
애플리케이션의 배포 대상이 되는 VM 서버 묶음입니다. 사용자는 DevOps Console에서 VM을 등록하고 배포 대상으로 지정할 수 있습니다.
Kubernetes Cluster
애플리케이션의 배포 대상이 되는 클러스터입니다. 사용자는 DevOps Console에서 Kubernetes Cluster를 등록하고 배포 대상으로 지정할 수 있습니다.
DevOps Console에서 연계를 지원하는 툴 목록은 툴 분류에서 확인할 수 있습니다.주요 개념 및 관계
시스템 관리자(System Admin)나 관리자(Admin)는 사용자가 프로젝트를 생성할 때 필요한 툴과 애플리케이션 템플릿을 사전에 정의해야 합니다.
테넌트
프로젝트에서 활용 가능한 툴과 애플리케이션 템플릿을 독립적으로 제공하고 공유하는 논리적 구분 단위입니다. 시스템 관리자는 독립성이 보장되어야 하는 조직(혹은 고객) 단위로 테넌트를 등록하고 테넌트 관리자를 지정합니다. 테넌트 관리자는 해당 테넌트에서 활용할 수 있는 테넌트 툴과 애플리케이션 템플릿, 테넌트 멤버를 등록할 수 있습니다.
프로젝트그룹
개별 프로젝트를 관리하기 위한 단위로서, 특정 테넌트에 속한 멤버가 프로젝트그룹을 생성할 수 있습니다. 따라서 프로젝트그룹은 하나의 테넌트에 속하며, 테넌트에 설정된 툴과 템플릿을 활용할 수 있습니다.
프로젝트
프로젝트는 독립적으로 배포/실행되는 애플리케이션이나 마이크로서비스를 개발하고 관리하는 단위입니다. 따라서 하나의 소스코드 저장소를 기준으로 프로젝트를 구성하는 것이 일반적이지만 애플리케이션이나 개발과 운영조직의 특성에 따라 유연하게 구성할 수 있습니다.
툴
프로젝트에서 활용하는 소스코드 저장소, 이미지 저장소, 빌드/배포 파이프라인, 코드품질 등을 지원하는 개발도구입니다. 각 프로젝트는 소속된 프로젝트그룹이나 테넌트 혹은 애플리케이션의 배포 대상인 Kubernetes Cluster에 지정된 툴을 이용할 수 있습니다. 일반적으로 클러스터 단위로 지정하는 경우는 배포 속도에 영향을 주는 빌드/파이프라인과 이미지 저장소를 지원하는 툴입니다. 툴은 활용 범위에 따라서 크게 세 가지 유형으로 구분합니다.
ProjectGroup Tool: 프로젝트그룹에 소속된 프로젝트에서만 활용할 수 있는 툴입니다. 여러 개의 프로젝트그룹을 맵핑하여 사용할 수 있습니다. 프로젝트그룹 Owner와 Master가 등록하고 관리합니다.
Tenant Tool: 테넌트에 소속된 프로젝트그룹에서만 활용할 수 있는 툴입니다. 여러 개의 테넌트를 맵핑하여 사용할 수 있습니다. 툴 등록 시 최초 등록한 테넌트의 테넌트 관리자만 관리할 수 있습니다. 이후 툴에 추가로 등록된 테넌트에서는 사용만 할 수 있습니다. 또한 테넌트 관리자가 접근 가능한 클러스터에서 이용할 수 있도록 지정하고 관리할 수 있습니다.
System Tool: DevOps Service 전체 프로젝트에서 서비스 형태로 이용할 수 있는 툴입니다. 시스템 관리자가 등록하고 이용할 수 있는 테넌트와 클러스터를 지정하고 관리합니다.
애플리케이션 템플릿
프로젝트를 쉽게 구성할 수 있게 하는 템플릿입니다. 개발표준을 반영하여 샘플코드까지 지원하는 템플릿을 Dev. Starter라고 하며, 단순히 개발환경 구성을 지원하는 템플릿을 Environment Only라고 합니다. 툴과 마찬가지로 활용 범위에 따라서 크게 세 가지 유형으로 구분합니다.
Project Group Template: 프로젝트그룹에 소속된 프로젝트에서만 활용할 수 있는 템플릿입니다. 프로젝트그룹 Owner와 Master가 등록하고 관리합니다.
Tenant Template: 테넌트에 소속된 프로젝트그룹에서만 활용할 수 있는 템플릿입니다. 테넌트 관리자가 등록하고 관리합니다.
System Template: DevOps Service 전체 프로젝트에서 이용할 수 있는 템플릿입니다. 시스템 관리자가 등록하고 이용할 수 있는 테넌트를 지정하고 관리합니다.

