1 - 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 구성요소

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 전체 프로젝트에서 이용할 수 있는 템플릿입니다. 시스템 관리자가 등록하고 이용할 수 있는 테넌트를 지정하고 관리합니다.

2 - 역할

프로젝트 그룹 역할자 및 권한

  • 프로젝트 그룹 생성자는 기본으로 Owner 권한입니다.
  • Master 는 Owner 의 모든 권한 중 프로젝트그룹 삭제 권한이 없습니다.
  • Developer와 Viewer는 조회 권한만 있습니다.
구분권한OwnerMasterDeveloperViewer
프로젝트그룹조회
프로젝트그룹수정
프로젝트그룹삭제
프로젝트생성
프로젝트조회
멤버추가
멤버조회
멤버삭제
표. 프로젝트그룹 내 각 역할자 별 권한

프로젝트 역할자 및 권한

  • Owner, Master, Developer, Viewer로 구분됩니다.
  • Viewer는 조회 만 가능합니다.
  • Developer는 개발 관련 기능의 생성/삭제가 가능합니다.
    • 예시) 빌드 파이프라인, 헬름차트, 배포
  • Owner/Master는 프로젝트 내의 모든 기능의 조회/생성/삭제 가능합니다.
  • 프로젝트 역할자는 프로젝트그룹의 역할자를 승계합니다.
  • 프로젝트의 멤버로 등록되지 않아도 프로젝트그룹의 멤버인 경우 해당 역할을 프로젝트에서 수행 가능합니다.
  • 동일한 사용자의 프로젝트와 프로젝트그룹의 역할이 다를 때는 프로젝트 역할이 우선 적용됩니다.
    • 즉, 프로젝트그룹 멤버 중 특정 프로젝트에서 권한을 제한할 수 있습니다.
  • 예시) 프로젝트그룹의 Master 역할자를 특정 프로젝트에서 Master 권한을 부여하지 않으려는 경우, 프로젝트 멤버로 등록하고 Developer 혹은 Viewer 권한을 부여하면 됩니다.

구분권한OwnerMasterDeveloperViewer
대시보드조회
빌드 파이프라인조회
빌드 파이프라인가져오기
빌드 파이프라인(개발) 생성/추가
빌드 파이프라인(개발) 실행
빌드 파이프라인(개발) 수정
빌드 파이프라인(개발) 삭제
빌드 파이프라인(운영) 생성/추가
빌드 파이프라인(운영) 실행
빌드 파이프라인(운영) 수정
빌드 파이프라인(운영) 삭제
헬름인스톨(개발) 설치
헬름인스톨(운영) 설치
프로젝트수정
프로젝트삭제
표. 프로젝트 내 각 역할자별 권한(1)

대구분소구분권한OwnerMasterDeveloperViewer
Kubernetes 배포헬름 릴리스(개발) 조회
Kubernetes 배포헬름 릴리스(개발) 업그레이드
Kubernetes 배포헬름 릴리스(개발) 롤백
Kubernetes 배포헬름 릴리스(개발) 삭제
Kubernetes 배포헬름 릴리스(운영) 조회
Kubernetes 배포헬름 릴리스(운영) 업그레이드
Kubernetes 배포헬름 릴리스(운영) 롤백
Kubernetes 배포헬름 릴리스(운영) 삭제
Kubernetes 배포헬름 릴리스Import
Kubernetes 배포Ingress/Service생성/수정/삭제
Kubernetes 배포블루/그린(개발) 생성/수정/삭제
Kubernetes 배포블루/그린(운영) 생성/수정/삭제
Kubernetes 배포카나리(개발) 조회
Kubernetes 배포카나리(개발) 생성/삭제
Kubernetes 배포카나리(운영) 조회
Kubernetes 배포카나리(운영) 생성
Kubernetes 배포카나리(운영) 삭제
Kubernetes 배포Istio(개발) 조회
Kubernetes 배포Istio(개발) 생성/수정/삭제
Kubernetes 배포Istio(운영) 조회
Kubernetes 배포Istio(운영) 생성/수정
Kubernetes 배포Istio(운영) 삭제
Kubernetes 배포워크로드(개발) 조회
Kubernetes 배포워크로드(개발) 생성/삭제/롤백
Kubernetes 배포워크로드(운영) 조회
Kubernetes 배포워크로드(운영) 생성/롤백
Kubernetes 배포워크로드(운영) 삭제
코드저장소/코드품질/아티팩트저장소/이미지저장소전체조회
코드저장소/코드품질/아티팩트저장소/이미지저장소전체생성
코드저장소/코드품질/아티팩트저장소/이미지저장소전체삭제
표. 프로젝트 내 각 역할자별 권한(2)

  • Jenkins 시스템 권한
    • DevOps Console의 프로젝트 권한 체계에 따라 접근 권한이 부여됩니다.
    • 프로젝트 역할자에 따라 Jenkins 파이프라인에 권한이 부여됩니다.
    • Jenkins 이외의 다른 툴은 해당 툴 메뉴에서 권한을 설정할 수 있습니다.

구분권한OwnerMasterDeveloperViewer
(폴더) 프로젝트 그룹폴더 조회
(폴더) 프로젝트크리덴셜 조회
(폴더) 프로젝트크리덴셜 생성/수정/삭제
(폴더) 프로젝트폴더 조회
(폴더) 프로젝트폴더 생성
(폴더) 프로젝트폴더 설정
(폴더) 프로젝트폴더 삭제
(폴더) 타입(개발) 폴더 조회
(폴더) 타입(개발) 파이프라인 생성
(폴더) 타입(개발) 폴더 설정
(폴더) 타입(개발) 폴더 삭제
(폴더) 타입(운영) 폴더 조회
(폴더) 타입(운영) 파이프라인 생성
(폴더) 타입(운영) 폴더 설정
(폴더) 타입(운영) 폴더 삭제
파이프라인(개발) 파이프라인 조회
파이프라인(개발) 파이프라인 설정
파이프라인(개발) 파이프라인 삭제
파이프라인(개발) 파이프라인 빌드
파이프라인(운영) 파이프라인 조회
파이프라인(운영) 파이프라인 설정
파이프라인(운영) 파이프라인 삭제
파이프라인(운영) 파이프라인 빌드
표. 프로젝트 내 각 역할자별 Jenkins 시스템 권한

시스템 역할자 및 권한

대구분소구분권한System AdministratorAdministrator
(Tenant Manager)
User
(Project Group Owner)
시스템 툴등록/수정/삭제
시스템 툴지원 테넌트 추가/수정
시스템 툴지원 테넌트 삭제
시스템 툴지원 클러스터 추가/수정
시스템 툴지원 클러스터 삭제
테넌트 툴등록/수정/삭제
테넌트 툴지원 테넌트 추가/수정/삭제
프로젝트 그룹 툴등록/수정/삭제
프로젝트 그룹 툴지원 테넌트 추가/수정/삭제
표. 시스템 역할자 및 권한(1)
대구분소구분권한System AdministratorAdministrator
(Tenant Manager)
User
(Project Group Owner)
App. 템플릿시스템 템플릿등록/수정/삭제
App. 템플릿시스템 템플릿지원 테넌트 추가/수정
App. 템플릿시스템 템플릿지원 테넌트 삭제
App. 템플릿시스템 템플릿지원 이미지 추가/수정/삭제
App. 템플릿시스템 템플릿지원 헬름차트 추가/수정/삭제
App. 템플릿테넌트 템플릿등록/수정/삭제
App. 템플릿테넌트 템플릿지원 이미지 추가/수정/삭제
App. 템플릿테넌트 템플릿지원 헬름차트 추가/수정/삭제
App. 템플릿프로젝트그룹 템플릿등록/수정/삭제
App. 템플릿프로젝트그룹 템플릿지원 이미지 추가/수정/삭제
App. 템플릿프로젝트그룹 템플릿지원 헬름차트 추가/수정/삭제
헬름차트관리시스템 헬름차트추가/수정/삭제
헬름차트관리테넌트 헬름차트추가/수정/삭제
헬름차트관리프로젝트그룹 헬름차트추가/수정/삭제
프로젝트그룹전체생성
표. 시스템 역할자 및 권한(2)

3 - 화면구성

DevOps Console의 주요 메뉴 페이지에 대해 설명합니다.

처음 접속하면 상단 메뉴와 권한을 가진 모든 프로젝트그룹과 프로젝트가 표시됩니다.

상단 메뉴

상단 메뉴를 통해 메인 화면, 관리 화면 등으로 이동할 수 있으며 사용자 정보를 수정할 수 있습니다. 상단 메뉴는 DevOps Console을 이용하는 동안 항상 표시됩니다.

항목설명
메인 페이지메인 페이지로 이동합니다.
관리관리 페이지로 이동합니다.
Support가이드, 문의, 공지사항을 확인할 수 있습니다.
Link연관 시스템 링크를 확인할 수 있습니다.
사용자 정보사용자 정보를 확인 및 수정하거나 로그아웃할 수 있습니다.
  • 계정 정보: 사용자의 계정 정보 팝업창이 열립니다.
  • 가입 정보: 가입정보 페이지가 열립니다.
  • 인증키 관리: 사용자 개별 인증키를 관리합니다.
  • 나의 활동 내역: 사용자의 활동 내역을 확인 할 수 있습니다.
  • 로그아웃: DevOps Console에서 로그아웃합니다.
표. 상단 메뉴 항목

메인 페이지

사용자가 권한을 가진 모든 프로젝트그룹과 프로젝트의 현황을 표시합니다.

항목설명
프로젝트그룹 생성새로운 프로젝트그룹을 생성할 수 있습니다.
프로젝트그룹 명프로젝트그룹 명을 나타냅니다.
테넌트 명테넌트 명을 나타냅니다.
프로젝트그룹 관리프로젝트그룹 페이지로 이동합니다.
릴리스 관리릴리스 관리 페이지로 이동합니다.
프로젝트 생성새로운 프로젝트를 생성할 수 있습니다.
프로젝트 상세사용자가 권한을 가진 모든 프로젝트가 표시
  • 클릭 시 프로젝트 대시보드 페이지로 이동
사용자 가이드 보러가기사용자 가이드 페이지로 이동합니다.
표. 메인 페이지 항목

관리 페이지

대시보드, 테넌트, 프로젝트, 툴, 사용자 등 DevOps Console 전반적인 관리 기능을 포함하고 있습니다.

항목설명
관리 메뉴DevOps Console 관리 기능 메뉴들입니다.
  • 권한에 따라 메뉴가 다르게 나타납니다.
표. 관리 페이지 항목

프로젝트그룹 관리 페이지

프로젝트그룹과 릴리스에 대한 관리 페이지입니다.

항목설명
프로젝트그룹 관리 메뉴프로젝트그룹 관리 메뉴입니다.
릴리스 관리 메뉴릴리스 관리 메뉴입니다.
표. 프로젝트그룹 관리 페이지 항목

프로젝트 페이지

프로젝트에 대한 페이지입니다.

항목설명
프로젝트 관리 메뉴프로젝트 관리 메뉴입니다.
표. 프로젝트 관리 페이지 항목