Introduction to DevOps Console
Service Overview
DevOps Console is a service that provides convenience for building and deploying by integrating standard development tools to support development environments, and has the following characteristics.
Key tool integration and unified authentication for Continuous Integration/Continuous Deployment (CI/CD)
The user can access tools responsible for source code repository, artifact repository, code analysis, image repository, and build/deployment with a single login.
Application template-based project composition
The user can easily configure the project in a wizard-like manner using a template that reflects the development standards.
Main development languages and frameworks provided
The user can select the development language (such as Java, C#, Python, Ruby, etc.) and framework (such as SpringBoot, Vue.js, .Net, etc.) required for application development to configure a project for build/deployment.
Build/Deployment Pipeline Auto Configuration
The user can use the build/deploy pipeline template included in the application template to automatically configure the pipeline script or configure each stage of the pipeline based on GUI.
Support for various deployment methods and rollback support
The user can use the deployment method (RollingUpdate, Blue-Green) to minimize the downtime of the operating application, and can roll back to the desired version with one click. If the user wants to use a VM server as a deployment environment, they can deploy it to the VM server in the form of a packaged file or a Docker image.
Customized Release Process Support
The user can define and repeatedly execute various release processes considering the type of application change.
Components
Users can easily use the DevOps Service through the DevOps Console.
DevOps Console
It supports the tools necessary for application development and build/deployment in an integrated manner, making it easy to manage project configuration and build/deployment.
Dev. Starter
It is an application template that provides not only sample code reflecting development standards, but also templates necessary for build/deployment.
IDP(ID Provider)
It is in charge of integrated management and authentication of users.
Source Code Repository
It supports integration with source code management tools. It can be linked with DevOps Code.
Artifact Repository
It supports linkage with the artifact repository for storing libraries and application artifacts necessary for application build.
Code Quality
It supports linkage with code quality tools that can measure and manage the quality of source code through static code analysis.
Helm Chart Repository
In Kubernetes, Helm charts are used to easily install and upgrade software. To install software, users must write Helm charts directly. It provides ChartMuseum as a default repository for managing charts, and also supports linking with other chart storage tools.
Image Repository
It supports linkage with an image repository for storing container images.
VM Server Group
This is a bundle of VM servers that are the deployment target of the application. Users can register and specify VMs as deployment targets in the DevOps Console.
Kubernetes Cluster
This is the cluster that is the deployment target of the application. Users can register and specify the “Kubernetes Cluster” as the deployment target in the DevOps Console.
Main Concepts and Relationships
The 시스템 관리자(System Admin) or 관리자(Admin) must pre-define the necessary tools and application templates when a user creates a project.
Tenant
It is a logical distinction unit that provides and shares tools and application templates that can be used in the project independently. The system administrator registers tenants by organization (or customer) unit that must guarantee independence and designates a tenant administrator. The tenant administrator can register tenant tools and application templates that can be used in the corresponding tenant, and tenant members.
Project Group
As a unit for managing individual projects, members belonging to a specific tenant can create a project group. Therefore, the project group belongs to one tenant and can utilize the tools and templates set by the tenant.
Project
The project is a unit that develops and manages applications or microservices that are deployed and executed independently. Therefore, it is common to configure a project based on a single source code repository, but it can be configured flexibly according to the characteristics of the application or the development and operation organization.
Tool
It is a development tool that supports source code repositories, image repositories, build/deployment pipelines, and code quality used in projects. Each project can use the designated tool for the project group, tenant, or application to which it belongs, or the Kubernetes Cluster that is the deployment target. In general, tools that support build/pipelines and image repositories that affect deployment speed are specified by cluster unit. Tools are largely divided into three types according to their scope of use.
ProjectGroup Tool: This tool can only be used in projects belonging to the project group. Multiple project groups can be mapped and used. Project group Owner and Master register and manage it.
Tenant Tool: This is a tool that can only be used in the project group belonging to the tenant. Multiple tenants can be mapped and used. Only the tenant administrator of the initially registered tenant can manage the tool when it is registered. Subsequently, only usage is possible in additional registered tenants. Additionally, it can be designated and managed to be used in clusters accessible by the tenant administrator.
System Tool: DevOps Service is a tool that can be used in the form of a service throughout the entire project. It specifies and manages tenants and clusters that system administrators can register and use.
Application Template
This is a template that allows you to easily configure a project. Templates that support sample code by reflecting development standards are called Dev. Starter, and templates that simply support development environment configuration are called Environment Only. Like tools, they are largely divided into three types according to their scope of use.
Project Group Template: This is a template that can only be used by projects belonging to the project group. It is registered and managed by the Project Group Owner and Master.
Tenant Template: a template that can only be used in project groups belonging to the tenant. It is registered and managed by the tenant administrator.
System Template: This is a template available for use in the entire DevOps Service project. The system administrator can register and manage the tenant to be specified and used.

