[GCP] VertexAI Custom Training Job 간단 구성하기


GCP에서 제공하는 Vertex AI는 ML 모델과 AI 애플리케이션을 학습 및 배포하고 AI 기반 애플리케이션에서 사용할 대규모 언어 모델(LLM)을 맞춤설정할 수 있게 해주는 머신러닝(ML) 플랫폼입니다. Vertex AI 플랫폼을 통해 초보자부터 전문가까지 다양한 수준의 머신러닝 사용자를 지원하며, 모델 유형에 관계없이 효율적인 AI 개발을 가능하게 합니다.

 

Vertex AI Custom Training Job은 사용자가 직접 구성한 커스텀 코드와 하이퍼파라미터를 이용해 모델 학습을 수행할 수 있는 Google Cloud Vertex AI의 기능입니다. 컨테이너 기반 환경에서 자동 리소스 할당과 분산 학습을 지원하여 효율적이고 확장 가능한 모델 개발을 구현합니다.

 

 

GCP에서 제공하는 Vertex AI Custom Training Job을 JupyterLab을 사용하여 간단히 구성해보는 방법을 알아보도록 하겠습니다.

 

 

 


[GCP] VertexAI 알아보기

GCP VertexAI에 대한 기본적인 정보를 알아봅니다.

 

https://every-up.tistory.com/106

 

[GCP] VertexAI 알아보기

[GCP] VertexAI 알아보기GCP에서 제공하는 Vertex AI는 ML 모델과 AI 애플리케이션을 학습 및 배포하고 AI 기반 애플리케이션에서 사용할 대규모 언어 모델(LLM)을 맞춤설정할 수 있게 해주는 머신러닝(ML)

every-up.tistory.com

 

 

[GCP] VertexAI Workbench 생성하기

JupyterLab을 사용할 수 있도록 사전에 VertexAI Workbench를 생성합니다.

 

https://every-up.tistory.com/107

 

[GCP] VertexAI Workbench 생성하기

[GCP] VertexAI Workbench 생성하기GCP에서 제공하는 Vertex AI는 ML 모델과 AI 애플리케이션을 학습 및 배포하고 AI 기반 애플리케이션에서 사용할 대규모 언어 모델(LLM)을 맞춤설정할 수 있게 해주는 머신

every-up.tistory.com

 

 

 

 


JupyterLab 실행

VertexAI Workbench에서 실행하고자 하는 JupyterLab 인스턴스를 클릭합니다.

 

 

잠깐의 로딩화면 이후 JupyterLab이 정상적으로 실행함을 확인하실 수 있습니다.

 

 

아래 Jupyter Notebook 파일을 다운로드 후 드래그 앤 드롭(Drag and Drop)으로 파일을 업로드 합니다.

Simple_Custom_Training_Job.ipynb
0.00MB

 

 

 

 


Custom Training Job 구성 및 실행

이제 업로드한 Jupyter Notebook 파일을 실행하여 Custom Training Job을 구성 및 실행해보도록 하겠습니다.

 

 

작업 1 - 기본 설정

Custom Training Job을 구성하기 위한 기본적인 패키지를 설치하고, 프로젝트 관련 설정을 정의합니다.
PROJECT_ID 값은 사용 중인 GCP 프로젝트의 ID 값으로 설정합니다.

# 작업 1 - 기본 설정

import os
from google.cloud import aiplatform, storage
import subprocess

# 필요한 패키지 설치
subprocess.run(["pip", "install", "torch", "torchvision", "google-cloud-aiplatform", "google-cloud-storage", "pyyaml"])

import torch
import torchvision
import zipfile

# GCP 프로젝트 설정
PROJECT_ID = "{Project ID}"  # GCP 프로젝트 ID
REGION = "us-central1"  # 리전 설정
BUCKET_NAME = "test-coco-dataset-bucket"  # GCS 버킷 이름

# Vertex AI 초기화
aiplatform.init(project=PROJECT_ID, location=REGION)

 

 

작업 2 - COCO 데이터셋 및 기계 학습 환경 다운로드

기계 학습은 COCO 데이터셋을 활용하여 YOLOv5 모델을 학습해보도록 하겠습니다.
COCO 데이터셋 및 YOLOv5 모델을 다운로드 및 압축을 해제합니다.

# 작업 2 - COCO 데이터셋 및 기계 학습 환경 다운로드

# COCO 데이터셋 및 학습 코드 다운로드
!wget https://github.com/ultralytics/assets/releases/download/v0.0.0/coco128.zip
!wget https://raw.githubusercontent.com/ultralytics/yolov5/master/data/coco128.yaml
!wget https://raw.githubusercontent.com/ultralytics/yolov5/master/train.py

# 데이터 압축 해제
import zipfile
with zipfile.ZipFile("coco128.zip", "r") as zip_ref:
    zip_ref.extractall("coco128")

 

 

작업 2-1 - coco128.yaml 파일 수정

JupyterLab에서 데이터셋 구성 파일인 coco128.yaml 파일을 수정하여 COCO 데이터셋의 경로 설정을 변경합니다.
데이터셋 기본 경로(path), 학습 경로(train), 검증 경로(val)를 수정합니다.

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: . # dataset root dir
train: coco128/images/train2017 # train images (relative to 'path') 128 images
val: coco128/images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)

 

 

작업 3 - GCS 버킷 생성 및 업로드

GCS 버킷을 생성한 후 학습에 필요한 데이터셋, 데이터셋 구성 파일, 학습 코드를 GCS 버킷에 업로드 합니다.
Custom Training Job을 실행 시 GCS 버킷에 있는 데이터를 사용하여 학습을 구동시키고자 합니다.

# 작업 3 - GCS 버킷 생성 및 업로드

# GCS 버킷 생성
storage_client = storage.Client()
bucket = storage_client.create_bucket(BUCKET_NAME, location=REGION)

# GCS 버킷에 업로드
!gsutil -m cp -r coco128 gs://{BUCKET_NAME}/coco/
!gsutil -m cp -r coco128.yaml gs://{BUCKET_NAME}/coco/
!gsutil -m cp -r train.py gs://{BUCKET_NAME}/coco/

 

 

작업 4 - Custom Training Job 실행

Google Cloud의 AI 관련 서비스(Google Vertex AI, AutoML, AI Platform 등)를 관리할 수 있는 gcloud ai 명령어를 사용하여 Custom Training Job을 실행합니다.
gcloud ai custom-jobs create 명령어와 학습에 필요한 파라미터 값을 입력하여 실행합니다.

# 작업 4 - Custom Training Job 실행

!gcloud ai custom-jobs create \
  --region=us-central1 \
  --display-name=yolo-training-job \
  --worker-pool-spec=machine-type=n1-standard-8,replica-count=1,accelerator-type=NVIDIA_TESLA_T4,accelerator-count=1,container-image-uri=gcr.io/deeplearning-platform-release/pytorch-gpu.1-12:latest \
  --command=bash \
  --args="-c" \
  --args="\
  git clone https://github.com/ultralytics/yolov5.git && \
  gsutil -m cp -r gs://{BUCKET_NAME}/coco/coco128/coco128 yolov5/ && \
  gsutil -m cp -r gs://{BUCKET_NAME}/coco/coco128.yaml yolov5/ && \
  gsutil -m cp -r gs://{BUCKET_NAME}/coco/train.py yolov5/ && \
  cd yolov5 && \
  pip install --upgrade pip && \
  pip install -r requirements.txt && \
  python train.py --data=coco128.yaml --epochs=10 --batch-size=16 --img-size=640 && \
  gsutil -m cp -r runs/train/* gs://{BUCKET_NAME}/coco/models/"

 

worker-pool-spec 옵션을 통해 학습 머신에 대한 설정과 컨테이너 이미지를 설정할 수 있습니다. 컨테이너 이미지는 직접 생성한 이미지를 사용할 수 있으며 사전에 학습 환경이 구성된 컨테이너 이미지를 생성하여 기계 학습 환경을 더 빠르게 프로비저닝 수 있습니다.

 

이번 Custom Training Job 실행에서는 GCP에서 기본으로 제공하는 컨테이너 이미지를 사용하였으며, 학습에 필요한 환경구성과 학습 코드 실행 등을 args로 추가하여 구성할 수 있도록 설정하였습니다.

 

 

명령어 실행 시 아래와 같이 Custom Training Job 생성에 대한 로그가 출력됩니다.

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
CustomJob [projects/123412341234/locations/us-central1/customJobs/8016661615963275264] is submitted successfully.

Your job is still active. You may view the status of your job with the command

  $ gcloud ai custom-jobs describe projects/123412341234/locations/us-central1/customJobs/8016661615963275264

or continue streaming the logs with the command

  $ gcloud ai custom-jobs stream-logs projects/123412341234/locations/us-central1/customJobs/8016661615963275264

 

 


Custom Training Job 실행 확인

VertexAI 서비스 관리 페이지에서 Custom Training Job 실행을 확인해보도록 하겠습니다.

 

모델 개발 -> 학습 메뉴에서 커스텀 작업을 선택한 후 생성된 yolo-training-job 이름의 Custom Training Job을 선택합니다.

 

 

Custom Training Job의 현재 상태를 확인할 수 있으며 시작 시간, 경과 시간, 머신 유형, 로그 등의 상세한 정보를 확인할 수 있습니다.

 

 

같은 화면의 하단에는 기계학습 실행 시 CPU, GPU, Network 사용에 대한 모니터링 정보를 상세하게 확인할 수 있습니다.

 

 

로그 보기 버튼을 클릭하면 기계학습 실행 시의 모든 상세 로그를 확인할 수 있습니다.

 

 

이제 학습된 모델 파일을 확인해봅시다.


학습된 모델 파일은 GCS 버킷(gs://{BUCKET_NAME}/coco/models/)에 저장되도록 설정하였으므로, GCS 버킷을 통해 확인해보도록 합시다. 기본 학습 코드(train.py)에 따라 GCS 버킷에 exp/weights/ 경로에 학습된 모델 파일(best.pt, last.pt)이 생성됨을 확인하실 수 있습니다.

 

 

 


 

 

GCP에서 제공하는 Vertex AI Custom Training Job을 JupyterLab을 사용하여 간단히 구성해보는 방법에 대해 확인해봤는데요.

 

Vertex AI Workbench에서 JupyterLab을 실행한 후, COCO 데이터셋과 YOLOv5 모델을 GCS 버킷에 업로드하여 Custom Training Job을 실행합니다. gcloud ai custom-jobs create 명령어를 사용해 학습을 수행하고, 학습된 모델(best.pt, last.pt)을 GCS 버킷에서 확인할 수 있습니다. Vertex AI 관리 페이지에서 Custom Training Job의 상태, 리소스 사용량, 로그 등을 모니터링할 수 있습니다.

 

데이터셋과 기계학습 환경을 구축하고 Vertex AI Custom Training Job을 사용하여 기계학습을 사용해보시기 바랍니다....! 끝...!

 

 

유익하게 보셨다면 공감을 눌러주고, 댓글로 의견을 공유해 남겨주시면 감사하겠습니다!

 

 

 

[Reference]
https://cloud.google.com/vertex-ai/docs/training/create-custom-job?hl=ko

 

 

 

'GCP' 카테고리의 다른 글

[GCP] VertexAI Workbench 생성하기  (0) 2025.03.31
[GCP] VertexAI 알아보기  (0) 2025.03.25

[GCP] VertexAI Workbench 생성하기

GCP에서 제공하는 Vertex AI는 ML 모델과 AI 애플리케이션을 학습 및 배포하고 AI 기반 애플리케이션에서 사용할 대규모 언어 모델(LLM)을 맞춤설정할 수 있게 해주는 머신러닝(ML) 플랫폼입니다. Vertex AI 플랫폼을 통해 초보자부터 전문가까지 다양한 수준의 머신러닝 사용자를 지원하며, 모델 유형에 관계없이 효율적인 AI 개발을 가능하게 합니다.

 

Vertex AI Workbench는 전체 기계 학습 워크플로에 사용되는 Jupyter 노트북 기반 개발 환경입니다. Vertex AI Workbench 인스턴스의 Jupyter 노트북 내에서 Vertex AI 및 기타 Google Cloud 서비스와 상호작용할 수 있습니다.

 

 

GCP에서 제공하는 VertexAI Workbench를 생성하는 방법을 알아보도록 하겠습니다.

 

 


Workbench 생성

Vertex AI Workbench를 생성하는 방법을 알아보겠습니다.

 

메뉴 접근

Google Cloud의 콘솔을 접근 후 "Vertex AI"를 검색하여 Vertex AI 서비스 메뉴에 접근합니다.

 

 

좌측 메뉴에 Notebooks -> Workbench 메뉴를 클릭합니다.

 

 

Workbench의 새로 만들기 버튼을 통해 신규 Workbench를 생성할 수 있습니다.

 

 

생성 옵션

새로 만들기 버튼을 클릭한 후 새 인스턴스를 생성합니다.
이름을 지정하고, 머신 유형 및 기타 옵션을 수정하기 위해 고급 옵션을 선택합니다.



세부정보에서는 리전과 라벨, 네트워크 태그, Workbench 유형을 선택할 수 있습니다.
Workbench 유형은 인스턴스, 관리형 노트북, 사용자 관리형 노트북으로 총 3가지가 있지만 관리형 노트북과 사용자 관리형 노트북 유형은 25년 4월 14일에 서비스 지원이 종료될 예정입니다.

 

 

JupyterLab 환경에 대한 버전 및 기타 옵션을 선택할 수 있습니다.
JupyterLab 4.x 버전에서는 JupyterLab 3.x 버전과 다르게 커널 및 서버가 Jupyter Server로 통합 관리되며
확장 기능 설치 시 Node.js 없이도 설치가 가능하고 초기 로딩 속도롤 쵀대 50% 개선했다고 합니다.

 

 

머신 유형에서는 가상머신에 대한 다양한 타입을 선택하여 사용할 수 있습니다.
기계 학습 테스트 시 학습용 머신을 별도로 생성할 것이므로, 범용 머신 유형을 선택했습니다.

GPU 타입을 선택하여 JupyterLab 환경에서 바로 기계학습을 테스트 할 수도 있습니다.

 

 

디스크 설정에서는 Boot 디스크와 Data 디스크의 옵션을 선택할 수 있습니다.
Boot 디스크는 JupyterLab 머신의 "/" 경로의 디스크 파티션에 할당되며, Data 디스크는 "/home/jupyter" 경로의 디스크 파티션에 할당됩니다.

 

 

네트워크 설정에서는 사전에 생성한 네트워크를 선택하거나 기본 네트워크를 선택할 수 있습니다.
네트워크 설정을 통해 인터넷, Google Cloud 서비스, 조직 내부 시스템 등과 어떻게 연결하여 사용할지 결정할 수 있습니다.

 

 

IAM 및 보안 설정에서는 JupyterLab 인터페이스를 사용할 수 있는 사용자를 결정합니다.
Google Cloud IAM 계정이 있는 사용자와 단일 사용자로 구분됩니다. 또한 그 외의 다양한 보안 옵션을 선택할 수 있습니다.

 

 

마지막으로 시스템 상태 관련 설정을 완료한 후 만들기 버튼을 클릭하여 인스턴스를 생성합니다.

 

 

 


Workbench 생성 확인

정상적으로 Workbench가 생성되었는지 확인합니다.

인스턴스를 생성하면 아래와 같이 프로비저닝을 진행하며 Workbench 인스턴스가 생성됩니다.

 

 

인스턴스 이름을 클릭하면 인스턴스의 세부정보를 확인할 수 있습니다.
현재 상태 뿐만 아니라 시스템, 하드웨어, 소프트웨어 및 보안, 상태, 모니터링, 로그 등 다양한 정보를 확인 및 수정하실 수 있습니다.

 

 

 


 

GCP에서 제공하는 VertexAI Workbench를 생성하는 방법에 대해 확인해봤는데요.

 

Vertex AI Workbench는 JupyterLab 기반의 머신러닝 개발 환경으로, 인스턴스 생성 시 머신 유형, 디스크, 네트워크, 보안, 시스템 상태 등을 상세히 설정할 수 있습니다.  Workbench 생성 후 콘솔에서 인스턴스 상태, 설정, 모니터링 정보를 실시간으로 확인하고 수정할 수 있으며, JupyterLab 환경을 사용하여 기계학습 환경을 구축할 수 있습니다.

 

기계학습을 사용할 기회가 있다면 Vertex AI를 사용하여 구현해보시기 바랍니다....! 끝...!

 

 

유익하게 보셨다면 공감을 눌러주고, 댓글로 의견을 공유해 남겨주시면 감사하겠습니다!

 

 

 

[Reference]
https://cloud.google.com/vertex-ai/docs/workbench/introduction?hl=ko

 

 

 

'GCP' 카테고리의 다른 글

[GCP] VertexAI Custom Training Job 간단 구성하기  (0) 2025.04.07
[GCP] VertexAI 알아보기  (0) 2025.03.25

[GCP] VertexAI 알아보기

GCP에서 제공하는 Vertex AI는 ML 모델과 AI 애플리케이션을 학습 및 배포하고 AI 기반 애플리케이션에서 사용할 대규모 언어 모델(LLM)을 맞춤설정할 수 있게 해주는 머신러닝(ML) 플랫폼입니다. Vertex AI 플랫폼을 통해 초보자부터 전문가까지 다양한 수준의 머신러닝 사용자를 지원하며, 모델 유형에 관계없이 효율적인 AI 개발을 가능하게 합니다.

 

GCP에서 제공하는 Vertex AI에 대해 알아보는 시간을 가져보겠습니다.

 

 


머신러닝 워크플로우

Vertex AI는 머신러닝의 전체 워크플로우를 하나의 플랫폼에서 지원합니다.


각 단계를 중심으로 Vertex AI의 역할을 설명하면, 사용자가 어떤 과정에서 Vertex AI를 활용할 수 있는지 쉽게 이해할 수 있습니다.

 

  • 머신러닝 단계
      1. 데이터 준비 : 데이터 세트를 추출하고 정리한 후 탐색적 데이터 분석(EDA)을 수행하여 ML 모델에서 예상하는 데이터 스키마와 특성을 파악합니다. 데이터 변환 및 특성 추출을 모델에 적용하고 데이터를 학습, 검증, 테스트 세트로 분할합니다.
      1. 모델 학습 : 모델 학습 방법을 선택하고 성능을 위해 조정합니다. 코드를 작성하지 않고 AutoML을 사용하여 모델을 학습하거나, 원하는 ML 프레임워크를 사용하여 학습 코드를 직접 작성하고 커스텀 모델을 학습시킬 수 있습니다.
      1. 모델 평가 및 반복 : 학습된 모델을 평가하고, 평가 측정항목을 기준으로 데이터를 조정하고, 모델을 반복합니다.
      1. 모델 서빙 : 모델을 프로덕션에 배포하고 온라인 예측을 가져오거나 일괄 예측을 위해 직접 쿼리합니다.
      1. 모델 모니터링: 배포된 모델의 성능을 모니터링합니다. 수신되는 예측 데이터로 모델을 재학습시켜 성능을 높입니다.

 

머신러닝 워크플로우를 통해 관리형 데이터셋을 이용해 데이터를 수집 및 가공하고, AutoML 또는 커스텀 모델로 학습한 후 Explainable AI로 성능을 분석 및 최적화할 수 있습니다. 또한, 배포된 모델을 엔드포인트에서 실시간 또는 배치 예측으로 활용하며, 콘솔 UI, 명령줄(CLI), SDK를 통해 자동화 및 애플리케이션과 연동할 수 있습니다.

 

 


MLOps

MLOps는 머신러닝 모델의 운영 및 관리를 위한 일련의 프로세스, 도구, 문화적 변화를 의미합니다.
Vertex AI는 MLOps의 핵심 기능을 지원하며, 머신러닝 모델을 효과적으로 배포하고 운영할 수 있도록 돕습니다.

 

Vertex AI의 MLOps 기능은 자동화(AutoML), 커스텀 모델(Custom Model), 파이프라인(Pipelines), 배포(Deployment), 모니터링(Monitoring) 등을 포함합니다.

 

Vertex AI를 활용한 MLOps 아키텍처는 다음과 같이 구성될 수 있습니다.

 

  • 1. 데이터 수집 및 전처리
    • BigQuery, Cloud Storage에서 데이터 수집
    • Feature Store를 활용한 피처 엔지니어링
  • 2. 모델 개발 및 실험 
    • Vertex AI Experiment를 사용한 모델 실험 및 최적화
    • AutoML 또는 Custom Model을 활용한 모델 학습
  • 3. ML 파이프라인 구축
    • Vertex AI Pipelines로 데이터 전처리 → 학습 → 평가 자동화
    • Hyperparameter tuning 포함
  • 4. 모델 배포
    • Vertex AI Prediction을 활용하여 온라인/배치 예측
    • Multi-model Deployment 및 A/B Testing 지원
  • 5. 모델 모니터링 및 개선
    • Model Monitoring으로 데이터 드리프트 감지
    • Explainable AI를 통한 모델 해석
    • CI/CD를 통한 지속적인 모델 업데이트

 

 

MLOps 도입 시에는 다음과 같은 장점이 있습니다.

  • 전체 ML 라이프사이클 자동화
  • 데이터 및 모델 재현성 보장
  • ML 모델 배포 및 확장 용이
  • 모델 성능 모니터링 및 지속적인 개선 가능
  • Cloud 기반으로 확장성과 유지보수 용이
  • DevOps + MLOps 통합으로 운영 효율성 향상

 


핵심 기능 및 강점

Vertex AI의 핵심 기능 및 강점입니다.

 

Vertex AI는 AutoML과 커스텀 모델을 지원하여 초보자부터 전문가까지 모두 활용할 수 있는 완전한 머신러닝 플랫폼입니다. Explainable AI 및 Google Cloud 기반의 고성능 인프라를 제공하여 효율적인 모델 개발과 배포를 지원합니다.

핵심 기능

  • AutoML 지원: 코드 없이 AI 모델을 학습 가능
  • 커스텀 모델 개발: TensorFlow, PyTorch 등 다양한 프레임워크 지원
  • Explainable AI: 모델의 예측 근거를 분석하여 최적화 가능
  • 완전한 머신러닝 파이프라인: 데이터 준비부터 배포까지 한 번에 관리 가능
  • 확장성과 유연성: Google Cloud 기반으로 고성능 인프라 활용 가능

 

Vertex AI의 강점

  • 초보자도 쉽게 사용 가능 (AutoML 지원)
  • 전문가는 커스텀 모델을 활용해 고급 개발 가능
  • 데이터 준비, 학습, 배포까지 중앙 집중형 관리
  • 설명 가능한 AI(Explainable AI) 기능 제공
  • Google Cloud의 강력한 인프라 활용 가능

 

 

Vertex AI는 AutoML 및 커스텀 모델 지원, Explainable AI, 완전한 머신러닝 파이프라인, Google Cloud 기반 인프라를 제공하여 효율적인 AI 개발과 운영을 지원합니다. 초보자는 AutoML로 쉽게 활용하고, 전문가는 커스텀 모델과 확장성 높은 인프라를 활용해 고급 머신러닝 프로젝트를 수행할 수 있습니다. 

 

 


GCP에서 제공하는 Vertex AI에 대해 기본적인 내용을 확인해봤는데요.

 

Vertex AI는 머신러닝의 전체 워크플로우를 지원하며, AutoML 및 커스텀 모델을 통해 데이터 준비부터 모델 배포까지 자동화할 수 있습니다. MLOps 기능을 활용해 모델 개발, 파이프라인 구축, 배포 및 모니터링을 효율적으로 관리할 수 있으며, Explainable AI 및 CI/CD를 통해 지속적인 개선이 가능합니다. Google Cloud 기반의 고성능 인프라를 활용하여 확장성과 유연성을 갖춘 머신러닝 운영을 최적화할 수 있습니다.

 

머신러닝을 사용할 기회가 있다면 Vertex AI를 사용하여 구현해보시기 바랍니다....! 끝...!

 

 

유익하게 보셨다면 공감을 눌러주고, 댓글로 의견을 공유해 남겨주시면 감사하겠습니다!

 

 

 

[Reference]
https://cloud.google.com/vertex-ai?hl=ko

 

 

 

'GCP' 카테고리의 다른 글

[GCP] VertexAI Custom Training Job 간단 구성하기  (0) 2025.04.07
[GCP] VertexAI Workbench 생성하기  (0) 2025.03.31

[DevOps] 2024 State of DevOps Report Part 3 (사용자 중심 접근)


State of DevOps Report는 2014년부터 시작되어 매년 발표되고 있으며, DORA(DevOps Research and Assessment) 팀이 연구를 주도하다가 이후 Google에 인수되어 현재까지 지속적으로 발표되고 있습니다. 해당 보고서에서는 배포 빈도, 변경 실패율, 복구 시간, 리드 타임 등의 핵심 지표를 기준으로 소프트웨어 개발 및 운영 성과의 DevOps 모범 사례와 생산성 향상 전략을 분석하고 있습니다.

 

이전 글에서는 2024년도의 State of DevOps Report 중 플랫폼엔지니어링의 내용을 중점으로 한번 알아봤는데요.
이번에는 사용자 중심 접근(User-Centered Approach) 내용을 중점으로 한번 알아보는 시간을 가져보겠습니다.

 

 

 


참고자료 - 2023 State of DevOps Report 소개

 

[DevOps] State of DevOps Report 2023 알아보기 1탄

https://every-up.tistory.com/62

 

[DevOps] State of DevOps Report 2023 알아보기 1탄

[DevOps] State of DevOps Report 2023 알아보기 1탄지난 10월달에 "State of DevOps Report 2023" 이 나왔습니다!State of DevOps Report란 Google에서 DevOps를 연구하는 DORA라는 팀에서 발표하는 자료인데요.State of DevOps Repor

every-up.tistory.com

 

 

[DevOps] State of DevOps Report 2023 알아보기 2탄

https://every-up.tistory.com/63

 

[DevOps] 2023 State of DevOps Report 알아보기 2탄

[DevOps] 2023 State of DevOps Report 알아보기 2탄지난번에는 State of DevOps Report 2023의 주요 결과에 대한 내용을 알아보는 시간을 가졌는데요.이번에는 더 자세하게 알아보기 위해 주요 내용 중 사용자 중

every-up.tistory.com

 

 

[DevOps] State of DevOps Report 2023 알아보기 3탄

https://every-up.tistory.com/64

 

[DevOps] 2023 State of DevOps Report 알아보기 3탄

[DevOps] 2023 State of DevOps Report 알아보기 3탄지난번 2탄에 이어서 3탄에도 State of DevOps Report 2023의 주요 내용을 상세하게 알아보는 시간을 가져보겠습니다.이번에는 인프라스트럭처와 문화에 대한

every-up.tistory.com

 

 

 


효과

2024 State of DevOps Report 내용 중 사용자 중심 접근(User-Centered Approach)의 내용을 중점으로 알아보겠습니다.
Report 내용은 한글로 번역 후 정리해봤으며, 번역 내용에 따라 원문과 의미가 조금 다를 수 있음을 사전에 알려드립니다.

 

주요 결과(요약)

보고서에서는 개발자가 만드는 것과 사용자가 필요로 하는 것 사이의 일치가 직원과 조직이 번창할 수 있도록 한다는 것을 다시 한번 발견했습니다.


개발자는 더 생산적이며, 사용자 중심적 사고방식으로 소프트웨어를 개발하면 번아웃을 경험할 가능성이 낮고, 고품질 제품을 만들 가능성이 더 높습니다. 소프트웨어는 사람을 위해 만들어지므로 개발자가 사용자 경험을 개선하는 소프트웨어 구축에 집중할 수 있도록 돕는 환경을 조성하는 것은 조직의 책임입니다. 또한 우선순위가 끊임없이 바뀌지 않는 안정적인 환경은 생산성의 작지만 의미 있는 증가와 직원의 번아웃의 중요하고 의미 있는 감소로 이어진다는 것을 발견했습니다.

 

환경적 요인은 개발되는 제품의 품질과 해당 제품을 만드는 개발자의 전반적인 경험에 상당한 영향을 미칩니다.

 

 

사용자 중심성 및 배포 빈도에 따른 제품 성능

사용자 중심성 및 배포 빈도에 따른 제품 성능의 관계입니다.

 

사용자 중심성이 높은 제품일수록 성능이 높으며, 배포 빈도와 관계없이, 사용자 중심성이 높은 제품은 성능이 일관되게 우수합니다. 사용자 중심성이 낮은 경우, 배포 빈도가 증가할수록 성능이 상승하긴 하지만, 다른 그룹에 비해 성능이 낮은 것을 확인할 수 있습니다. 배포 빈도의 증가가 제품 성능을 향상시키지만, 사용자 중심성에 따라 효과가 다릅니다. 따라서 단순히 배포를 빠르게 하는 것보다, 사용자 피드백을 반영하는 것이 더 중요합니다.

 

 

 

사용자 중심성 및 고품질 문서화에 따른 제품 성능

사용자 중심성 및 고품질 문서화에 따른 제품 성능의 관계입니다.

 

모든 사용자 중심성 그룹에서 문서 품질이 증가할수록 제품 성능이 상승됩니다. 사용자 중심성이 높을수록 문서 품질이 제품 성능에 더 큰 영향을 주며, 낮은 사용자 중심성에서는 문서 품질의 영향이 제한적입니다. 사용자 중심적 설계가 부족하면, 문서가 아무리 좋아도 제품 성능 향상에 큰 영향을 미치지 못할 수 있음을 시사합니다.



 


기타 결과

 

사용자 중심 접근 방식이 중요한 이유

일에서 목적의식이 조직과 직원 모두에게 긍정적 영향을 줍니다.

 

연구에 따르면, 일에서 의미를 찾는 것이 중요하며, 93%의 근로자가 자신의 일이 의미 있다고 느끼는 직업을 가지는 것을 중요하게 생각하고 있습니다. 또한 의미 있는 일을 할 경우, 미래 수입 23%를 포기할 의향이 있다는 것으로 나타났습니다. 이는 사람들에게 동기부여와 몰입도를 증가시켜 조직 생산성을 향상시킬 수 있습니다.

 

 

명확한 방향성을 제공

소프트웨어 개발에 대한 사용자 중심적 접근 방식은 개발자가 자신의 작업을 보는 방식을 근본적으로 바꿀 수 있습니다.

 

임의의 기능을 제공하고 사용자가 이를 사용할지 추측하는 대신, 개발자는 사용자 피드백을 통해 무엇을 빌드할지 우선순위를 정할 수 있습니다. 이러한 접근 방식은 개발자에게 자신이 작업하는 기능이 존재하는 데 이유가 있다는 확신을 주며 작업에 의미를 가지게 됩니다. 사람들이 제품과 서비스를 사용할 때 뛰어난 경험을 할 수 있도록 하는 것입니다. 이를 통해 개발자는 자신이 만든 소프트웨어를 통해 자신의 작업이 미치는 직접적인 영향을 확인할 수 있습니다

 

 

 


 

 

2024년도의 State of DevOps Report 중 사용자 중심 접근의 내용을 중점으로 주요 내용을 확인해봤는데요.

 

State of DevOps Report 중 다른 내용으로 다뤄볼 주제가 있다면 상세하게 확인해보는 시간을 다시 가져보겠습니다....! 끝...!

 

 

유익하게 보셨다면 공감을 눌러주고, 댓글로 의견을 공유해 남겨주시면 감사하겠습니다!

 

 

 

[DevOps] 2024 State of DevOps Report Part 2 (플랫폼엔지니어링)

State of DevOps Report는 2014년부터 시작되어 매년 발표되고 있으며, DORA(DevOps Research and Assessment) 팀이 연구를 주도하다가 이후 Google에 인수되어 현재까지 지속적으로 발표되고 있습니다. 해당 보고서에서는 배포 빈도, 변경 실패율, 복구 시간, 리드 타임 등의 핵심 지표를 기준으로 소프트웨어 개발 및 운영 성과의 DevOps 모범 사례와 생산성 향상 전략을 분석하고 있습니다.

 

이전 글에서는 2024년도의 State of DevOps Report 중 AI의 내용을 중점으로 한번 알아봤는데요.
이번에는 플랫폼엔지니어링의 내용을 중점으로 한번 알아보는 시간을 가져보겠습니다.

 

 

 


참고자료 - 2023 State of DevOps Report 소개

 

[DevOps] State of DevOps Report 2023 알아보기 1탄

https://every-up.tistory.com/62

 

[DevOps] State of DevOps Report 2023 알아보기 1탄

[DevOps] State of DevOps Report 2023 알아보기 1탄지난 10월달에 "State of DevOps Report 2023" 이 나왔습니다!State of DevOps Report란 Google에서 DevOps를 연구하는 DORA라는 팀에서 발표하는 자료인데요.State of DevOps Repor

every-up.tistory.com

 

 

[DevOps] State of DevOps Report 2023 알아보기 2탄

https://every-up.tistory.com/63

 

[DevOps] 2023 State of DevOps Report 알아보기 2탄

[DevOps] 2023 State of DevOps Report 알아보기 2탄지난번에는 State of DevOps Report 2023의 주요 결과에 대한 내용을 알아보는 시간을 가졌는데요.이번에는 더 자세하게 알아보기 위해 주요 내용 중 사용자 중

every-up.tistory.com

 

 

[DevOps] State of DevOps Report 2023 알아보기 3탄

https://every-up.tistory.com/64

 

[DevOps] 2023 State of DevOps Report 알아보기 3탄

[DevOps] 2023 State of DevOps Report 알아보기 3탄지난번 2탄에 이어서 3탄에도 State of DevOps Report 2023의 주요 내용을 상세하게 알아보는 시간을 가져보겠습니다.이번에는 인프라스트럭처와 문화에 대한

every-up.tistory.com

 

 

 


플랫폼엔지니어링의 영향

2024 State of DevOps Report 내용 중 플랫폼엔지니어링의 내용을 중점으로 알아보겠습니다.

Report 내용은 한글로 번역 후 정리해봤으며, 번역 내용에 따라 원문과 의미가 조금 다를 수 있음을 사전에 알려드립니다.

 

 

개념

플랫폼 엔지니어링은 업계 전반에 걸쳐 관심과 추진력을 얻고 있는 새로운 엔지니어링 분야입니다.

엔지니어가 다양한 팀 간의 사회적 상호작용과 자동화, 셀프서비스, 프로세스 반복성의 기술적 측면의 교차점에 집중하는 사회기술 분야입니다.

 

플랫폼 엔지니어링에서는 골든 패스를 구축하여 개발자 경험을 개선하는 데 많은 에너지와 집중을 쏟습니다.

골든 패스는 플랫폼 사용자가 애플리케이션을 제공하고 운영하는 데 필요한 리소스와 상호 작용할 때 사용하는 고도로 자동화된 셀프 서비스 워크플로입니다. 골든 패스의 목적은 개발자가 코드에만 신경 쓰면 되도록 소프트웨어 빌드 및 제공의 복잡성을 추상화하는 것입니다. 골든 패스를 통해 자동화된 작업의 몇 가지 예로는 새로운 애플리케이션 프로비저닝, 데이터베이스 프로비저닝, 스키마 관리, 테스트 실행, 빌드 및 배포 인프라 프로비저닝, DNS 관리 등이 있습니다.

 

 

소프트웨어 개발 및 운영 성과

플랫폼 엔지니어링이 성공하려면 사용자 중심(user-centeredness)으로 접근하는 것이 성공의 핵심 요소 중 하나입니다.

여기서 사용자는 내부 개발자 플랫폼을 사용하는 개발자들을 의미합니다. 또한, 개발자의 독립성을 보장하고 제품 중심의 사고방식을 갖는 것이 필요합니다.

 

플랫폼이 소프트웨어 개발 및 운영 성과에 미치는 영향의 분석 결과입니다.
내부 개발자 플랫폼 사용자는 생산성이 8% 더 높았으며, 팀 성과도 10% 더 향상되었습니다. 플랫폼을 도입한 조직에서는 소프트웨어 배포 및 운영 성과가 6% 향상되었습니다. 이러한 이점과 함께 단점도 발견되었습니다. 처리량(Throughput)이 8% 감소되었으며, 변경 안정성(Change Stability)이 14% 감소되는 단점도 발견되었습니다.

 

 

플랫폼 사용 여부에 따른 생산성

플랫폼 사용 여부에 따른 생산성 분석 내용입니다.

 

플랫폼 미사용 시 생산성 점수가 약 6.5~8.0 범위에 분포되어 있으며, 개별 점수의 변동성이 큽니다.

플랫폼 사용 시 생산성 점수가 7.5~8.0 범위에 집중되어 있으며, 변동성이 적고, 점들이 더 조밀하게 모여 있습니다. 내부 개발자 플랫폼을 사용할 경우 평균적으로 약 8% 향상된 생산성을 보이며, 플랫폼 사용이 개발자의 생산성 일관성을 높이는 효과가 있음을 시사하고 있습니다.

 

 

 

플랫폼 사용 기간에 따른 조직 성과

플랫폼 사용 기간(연령)에 따른 조직 성과 분석 내용입니다.

 

생산성과 함께 플랫폼의 사용 기간(연령)을 고려할 때, 플랫폼 엔지니어링 이니셔티브가 시작될 때 초기 성능 향상이 나타나고, 플랫폼이 오래되고 성숙해짐에 따라 감소 및 회복이 뒤따릅니다. 이 패턴은 초기 상을 경험하지만 실현된 후에는 어려움에 직면하는 변환 이니셔티브의 전형입니다. 장기적으로 생산성 향상이 유지되면서 소프트웨어 제공 및 운영 프로세스에서 내부 개발자 플랫폼의 역할이 전반적으로 잠재력이 있음을 보여줍니다.

 

 

 


주요 결과

 

개발자 독립성의 영향

개발자 독립성은 내부 개발자 플랫폼을 사용하여 소프트웨어를 제공할 때 개인 및 팀 수준 모두에서 생산성 수준에 상당한 영향을 미쳤습니다. 개발자 독립성은 "개발자가 지원 팀에 의존하지 않고 전체 애플리케이션 라이프사이클 동안 작업을 수행할 수 있는 능력"으로 정의됩니다. 팀과 개인 수준에서 플랫폼 사용자가 지원 팀을 참여시키지 않고도 작업을 완료할 수 있을 때 생산성이 5% 향상되는 것을 확인했습니다.

 

 

전담 플랫폼 팀의 영향

흥미롭게도, 전담 플랫폼 팀을 두는 것의 생산성에 대한 영향은 개인에게는 미미했습니다.

그러나 팀 수준에서는 생산성이 6% 증가했습니다.

 

이 발견은 전담 플랫폼팀을 갖는 것이 개인에게는 유용하지만 전담 플랫폼팀은 전체 팀에 더 큰 영향을 미친다는 것을 시사합니다. 팀은 서로 다른 책임과 기술을 가진 여러 개발자를 두고 있기 때문에 자연스럽게 개별 엔지니어에 비해 더 다양한 개발 플랫폼을 가지게 됩니다. 전담 플랫폼 엔지니어링 팀이 있으면 플랫폼이 팀이 나타내는 작업의 다양성을 더 지원할 수 있습니다

 

 

예상치 못한 단점

플랫폼 엔지니어링은 팀과 개인의 생산성이 높아지고 조직 성과가 향상되는 측면에서 확실한 이점을 제공하지만, 예상치 못한 단점이 있었습니다. 또한 처리량과 변경 안정성이 감소하는 것으로 나타났습니다.

 

처리량의 경우, 플랫폼을 사용하지 않는 사람들과 비교했을 때 약 8% 감소를 보았습니다.

프로덕션에 배포되기 전에 변경 사항이 통과해야 하는 추가된 기계는 변경 사항의 전체 처리량을 감소시킵니다. 일반적으로 내부 개발자 플랫폼을 사용하여 소프트웨어를 빌드하고 제공하는 경우 시스템과 암묵적으로 팀 간의 "핸드오프" 수가 일반적으로 증가합니다. 핸드오프는 전체 프로세스에 시간을 도입하여 처리량은 감소하지만 작업을 완료할 수 있는 능력은 순전히 증가하는 기회입니다.

 

내부 개발자 플랫폼을 사용할 때 개발 및 운영되는 애플리케이션의 변경 안정성을 고려할 때, 놀랍게도 변경 안정성이 14% 감소했습니다. 이는 플랫폼을 사용할 때 변경 실패율과 재작업율이 상당히 증가한다는 것을 나타냅니다

플랫폼은 개발자와 팀이 변경 사항이 나쁘더라도 신속하게 수정할 수 있다는 확신을 가지고 변경 사항을 푸시할 수 있게 해줍니다. 이 경우 불안정성이 더 높아도 반드시 나쁜 것은 아닙니다. 플랫폼은 팀이 실험하고 변경 사항을 제공할 수 있는 권한을 부여하기 때문에 변경 실패와 재작업 수준이 높아지기 때문입니다.

 

플랫폼이 애플리케이션에 포함된 모든 테스트를 실행하는 자동화된 테스트 기능을 제공할 수도 있습니다. 그러나 애플리케이션 팀은 품질보다 처리량을 우선시하고 테스트를 개선하지 않음으로써 해당 기능을 충분히 활용하지 못하고 있습니다. 나쁜 변경 사항이 실제로 프로세스를 거쳐 적용되어 재작업이 발생하게 됩니다.

 

 

트레이드오프

플랫폼 엔지니어링이 만병통치약은 아니지만, 전반적인 소프트웨어 개발 및 운영 프로세스와 관련해서는 강력한 분야가 될 잠재력이 있습니다. 모든 분야와 마찬가지로 플랫폼 엔지니어링에는 장점과 단점이 있습니다

 

첫째, 개발자 독립성과 셀프 서비스 기능을 가능하게 하는 플랫폼 기능을 우선시합니다. 이를 수행할 때, 애플리케이션 라이프사이클의 모든 측면에 플랫폼을 독점적으로 사용하도록 요구하는 것과 개발자 독립성을 방해할 수 있는 것 사이의 균형에 주의가 필요합니다.

 

둘째, 애플리케이션 변경 사항의 불안정성을 주의 깊게 모니터링하고 경험하는 불안정성이 의도적인 것인지 아닌지 이해하려고 노력하는 것이 필요합니다. 플랫폼은 불안정성 측면에서 실험을 활성화하고, 생산성을 높이고, 규모에 따라 성능을 개선할 수 있는 잠재력을 가지고 있습니다.

 

 


 

2024년도의 State of DevOps Report 중 플랫폼엔지니어링의 내용을 중점으로 주요 내용을 확인해봤는데요.

State of DevOps Report 중 다른 내용으로 다뤄볼 주제가 있다면 상세하게 확인해보는 시간을 다시 가져보겠습니다....! 끝...!

 

유익하게 보셨다면 공감을 눌러주고, 댓글로 의견을 공유해 남겨주시면 감사하겠습니다!

 

 

 

[DevOps] 2024 State of DevOps Report Part 1 (AI)

State of DevOps Report는 2014년부터 시작되어 매년 발표되고 있으며, DORA(DevOps Research and Assessment) 팀이 연구를 주도하다가 이후 Google에 인수되어 현재까지 지속적으로 발표되고 있습니다. 해당 보고서에서는 배포 빈도, 변경 실패율, 복구 시간, 리드 타임 등의 핵심 지표를 기준으로 소프트웨어 개발 및 운영 성과의 DevOps 모범 사례와 생산성 향상 전략을 분석하고 있습니다.

 

2024년도의 State of DevOps Report 중 AI의 내용을 중점으로 한번 알아보는 시간을 가져보겠습니다.

 

 


참고자료 - 2023 State of DevOps Report 소개

 

[DevOps] State of DevOps Report 2023 알아보기 1탄

https://every-up.tistory.com/62

 

[DevOps] State of DevOps Report 2023 알아보기 1탄

[DevOps] State of DevOps Report 2023 알아보기 1탄지난 10월달에 "State of DevOps Report 2023" 이 나왔습니다!State of DevOps Report란 Google에서 DevOps를 연구하는 DORA라는 팀에서 발표하는 자료인데요.State of DevOps Repor

every-up.tistory.com

 

 

[DevOps] State of DevOps Report 2023 알아보기 2탄

https://every-up.tistory.com/63

 

[DevOps] 2023 State of DevOps Report 알아보기 2탄

[DevOps] 2023 State of DevOps Report 알아보기 2탄지난번에는 State of DevOps Report 2023의 주요 결과에 대한 내용을 알아보는 시간을 가졌는데요.이번에는 더 자세하게 알아보기 위해 주요 내용 중 사용자 중

every-up.tistory.com

 

 

[DevOps] State of DevOps Report 2023 알아보기 3탄

https://every-up.tistory.com/64

 

[DevOps] 2023 State of DevOps Report 알아보기 3탄

[DevOps] 2023 State of DevOps Report 알아보기 3탄지난번 2탄에 이어서 3탄에도 State of DevOps Report 2023의 주요 내용을 상세하게 알아보는 시간을 가져보겠습니다.이번에는 인프라스트럭처와 문화에 대한

every-up.tistory.com

 

 

 


AI의 영향

2024 State of DevOps Report 내용 중 AI의 내용을 중점으로 알아보겠습니다.
Report 내용은 한글로 번역 후 정리해봤으며, 번역 내용에 따라 원문과 의미가 조금 다를 수 있음을 사전에 알려드립니다.

 

 

주요 결과(요약)

AI는 소프트웨어 개발 분야에서 패러다임 전환을 만들어내고 있으며 광범위한 영향을 미치고 있다고 합니다. AI 도입은 업무 흐름, 생산성, 직무 만족도, 코드 품질, 내부 문서 품질, 검토 프로세스, 팀 성과, 조징 성과 등에 이점이 있다고 합니다.

 

그러나 AI 도입은 몇가지 부정적인 영향도 가져온다고 하는데요. 소프트웨어 제공 성과가 감소하는 것을 관찰했으며, 제품 성과에 미치는 영향은 불확실하다고 합니다. 또한 개인은 AI 도입이 증가함에 따라 가치 있는 작업에 소요되는 시간이 감소한다고 보고하고 있습니다. AI 도입에 대한 실험 및 학습은 아직 많이 이뤄지지 않았기 때문에 계속해서 실험하고 학습이 필요하다고 보고 있습니다.

 

 

AI에 대한 조직 우선순위 변화

대다수의 응답자의 81%는 조직이 애플리케이션에 AI를 통합하는 것을 확대하기 위해 우선순위를 변경했다고 보고했습니다. 특히 응답자의 3%가 조직이 AI에 대한 집중도를 줄이고 있다고 보고했으며, 응답자의 78%는 조직이 AI를 신뢰한다고 보고했습니다.

 

 

 

AI에 의존하는 개발 작업 비율

AI의 빠른 도입이 모든 산업 부문에서 균일하게 전개되고 있다고 보고했습니다. 개인 수준에서는 응답자의 75.9%가 일상적인 직업적 책임 중 하나 이상에서 적어도 부분적으로 AI에 의존하고 있다는 것을 발견했습니다. AI에 의존하는 항목은 코드 작성, 정보 요약, 익숙하지 않은 코드 설명, 코드 최적화, 코드 문서화, 테스트 쓰기, 코드 디버깅, 데이터 분석 등이 있습니다.

 

 

 

AI가 생산성에 미치는 영향

AI는 많은 조직과 개발자가 채택하고 있기 때문에 개발 작업에 AI를 사용하는 이점은 상당히 높은 것으로 보입니다. 응답자의 75%가 2024년 초에 실시된 설문 조사에 앞서 3개월 동안 AI로 인해 긍정적인 생산성 향상을 보고했습니다.

 

AI에서 가장 큰 생산성 향상을 보고한 응답자는 보안 전문가, 시스템 관리자, 풀스택 개발자입니다.
긍정적인 생산성 향상도 보고했지만 모바일 개발자, 사이트 안정성 엔지니어, 프로젝트 관리자는 다른 역할보다는 생산성 혜택의 규모가 낮습니다.

 

 

 

AI가 생성한 코드의 품질 신뢰도

개발 작업에 사용된 AI 생성 코드의 신뢰성에 대한 참여자들의 인식은 복잡했습니다.
대다수의 응답자(87.9%)가 AI 생성 코드의 품질에 대해 어느 정도 신뢰한다고 보고했지만, 응답자가 AI 생성 코드의 품질을 신뢰한다고 보고한 정도는 일반적으로 낮았으며, 39.2%가 거의(27.3%) 신뢰하지 않거나 전혀 신뢰하지 않는다고 보고했습니다(11.9%).

 

개발자들이 AI를 빠르게 채택하고, AI에 의존하며, AI를 긍정적인 성과 기여 요소로 인식하고 있다는 설문조사의 증거를 감안할 때, 개발자들의 AI에 대한 전반적인 신뢰가 부족하다는 것을 발견했습니다.

 

 

 

AI가 미칠 부정적 영향

조사 결과에 따라 AI가 이미 개발 전문가의 업무에 엄청난 영향을 미쳤음을 시사하며, 이러한 추세는 앞으로도 계속 커질 것으로 예상합니다.


미래에 AI가 개발과 우리 세상에 어떤 영향을 미칠지 정확히 예측하는 것은 불가능하지만, 응답자들에게 향후 1년, 5년, 10년 동안 AI의 영향에 대한 추측과 기대는 그다지 희망적이지 않습니다.

 

응답자들은 AI가 자신의 경력, 환경, 사회 전체에 부정적인 영향을 미칠 것으로 예상하며, 이러한 부정적인 영향은 약 5년 후에 완전히 실현될 것이라고 보고했습니다.

 

 


AI 도입에 따른 성과 비교

AI 도입의 따른 다양한 영향을 측정했습니다.

 

 

AI가 개인에게 미치는 영향

개인의 AI 도입이 25% 증가할 경우에 따른 영향입니다.

 

개인의 AI 도입이 25% 증가하면 생산성은 약 2.1% 증가할 가능성이 높습니다. 이는 작은 것처럼 보일 수 있지만, 이는 개인 수준에서의 결과이며 수십 명의 개발자, 심지어 수만 명의 개발 자에게 확장된다고 상상해보면 이는 큰 영향을 미칠 수 있습니다.

AI 도입으로 생산력뿐만 아니라 직무 만족도 또한 실질적이고 유익한 영향을 미친다는 결과를 확인할 수 있습니다.

 

 

 

AI가 개발 성과에 미치는 영향

AI 도입이 25% 증가할 경우 개발 성과에서의 영향입니다.


개발 성과 측면에서 문서 품질 7.5% 증가, 코드 품질 3.4% 증가, 코드 검토 속도 3.1% 증가, 승인속도 1.3% 증가, 코드 복잡도 1.8% 감소 등 AI 도입에 따른 긍정적인 영향을 보여줍니다.

AI는 코드 품질을 개선하고 코드 복잡성을 줄이는 것으로 보입니다. 또한 오래된 코드의 잠재적인 리팩토링과 결합하면 고품질의 AI 생성 코드는 전반적으로 더 나은 코드베이스로 이어질 수 있습니다.

 

 

 

AI가 배포 성과에 미치는 영향

AI 도입이 여러 측면에서 긍정적인 영향을 보여주지만 배포 성과는 저하시키고 있습니다.
AI 도입이 25% 증가할 경우 배포 측면에서의 영향입니다.

 

예상과 달리, 우리의 조사 결과는 AI 도입이 소프트웨어 배포 성과에는 부정적인 영향을 미친다는 것을 보여줍니다.


AI 덕분에 응답자는 동일한 시간에 훨씬 더 많은 양의 코드를 생성할 수 있으므로 변경 목록의 크기가 커질 가능성이 있습니다. 따라서 DORA는 지속적으로 더 큰 변경은 더 느리고 불안정성을 유발할 가능성이 더 높다는 것을 보여주었습니다.

 

 

 

AI가 조직, 팀, 제품 성과에 미치는 영향

AI 도입이 25% 증가할 경우 조직, 팀, 제품 성과에에서의 영향입니다.


조직 수준 성과(AI 도입이 25% 증가할 때마다 약 2.3% 증가)와 팀 수준 성과(AI 도입이 25% 증가할 때마다 약 1.4% 증가)는 AI 도입의 혜택을 받는 것으로 보이지만, 제품 성과는 AI 도입과 명확한 연관성이 없는 것으로 보입니다.

팀과 조직은 커뮤니케이션, 지식 공유, 의사 결 정, 건강한 문화에 크게 의존합니다. AI는 이러한 영역의 일부 병목 현상을 완화하여 팀과 조직에 유익한 영향을 미칠 수 있습니다.

 


AI 도입 전략

보고서를 통해 AI 사용에 따른 개인, 팀, 조직에 긍정적인 효과를 얻을 수 있다는 점을 확인했습니다.
AI를 대규모로 도입하는 것은 쉽지 않을 수 있습니다. AI 도입 전략을 통해 상당한 이점을 가져올 수 있는 잠재력이 있습니다.

 

 

명확한 목표 및 정책 정의

조직과 팀의 역량을 강화하기 위해 직원에게 AI 활용 목표과 정책, 도입 계획에 대한 투명한 정보를 제공합니다.
AI를 어떻게 활용할지에 대한 큰 방향(비전)과 구체적인 실행 방법(정책)을 명확하게 정하면, 사람들이 불안해하는 문제를 줄일 수 있습니다.
그 결과, 모두가 AI의 활용 방식에 대해 걱정하기보다 더 중요한 일이나 가치 있는 작업에 집중할 수 있게 됩니다.

 

 

지속적인 학습과 실험 문화 조성

개인과 팀이 스스로 AI를 어떻게 활용할지 결정할 수 있도록 자유를 주고, AI의 유익한 사용법을 찾도록 돕습니다.
AI 도입을 단순한 기술 적용으로 보지 않고, 실제로 직원들의 업무를 돕고, 사용자(고객)에게 긍정적인 영향을 주며, 팀이 더 큰 성과를 낼 수 있도록 하는지를 기준으로 평가합니다.

 

 

AI의 단점을 인식하고 활용

AI가 업무를 도와줄 수 있지만, 오히려 중요한 작업 시간이 줄어드는 문제나 AI에 지나치게 의존하는 위험이 생길 수 있습니다.

따라서 어떤 점에서 유익한지뿐만 아니라, 어떻게 하면 부정적인 영향을 줄일 수 있는지도 고민해야 합니다. 즉, AI가 단순한 도구가 아니라, 조직이 성장하는 데 실질적인 도움이 되도록 활용하는 것이 핵심입니다.

 

 

 


 

2024년도의 State of DevOps Report 중 AI의 내용을 중점으로 주요 내용을 확인해봤는데요.

 

다음은 플랫폼엔지니어링의 주요 내용에 대해서 상세하게 확인해보는 시간을 가져보겠습니다....! 끝...!

 

 

유익하게 보셨다면 공감을 눌러주고, 댓글로 의견을 공유해 남겨주시면 감사하겠습니다!

 

 

 

[Azure] AKS(Azure Kubernetes Service) 클러스터 CLI로 접근 후 Pod 생성하기

Azure AKS(Azure Kubernetes Service)는 Microsoft Azure에서 제공하는 관리형 Kubernetes 서비스로, 클러스터 배포, 관리 및 확장 작업을 자동화하여 애플리케이션을 쉽게 배포하고 운영할 수 있도록 지원합니다.

 


AKS(Azure Kubernetes Service) 클러스터를 CLI로 접근 후 간단히 Pod를 생성하는 방법을 알아보도록 하겠습니다.

 

 

 


사전 작업 및 참고 자료

AKS(Azure Kubernetes Service) 클러스터 생성하기

https://every-up.tistory.com/101

 

[Azure] AKS(Azure Kubernetes Service) 클러스터 생성하기

[Azure] AKS(Azure Kubernetes Service) 클러스터 생성하기Kubernetes는 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리하는 오픈 소스 플랫폼이며, 다양한 환경에서 일관된 애플리케이션 실행을 가

every-up.tistory.com

 

 

CLI(az) 설치 및 로그인 방법

https://every-up.tistory.com/77

 

[Azure] CLI(az) 설치 및 로그인 방법

[Azure] CLI(az) 설치 및 로그인 방법 Azure CLI (Command-Line Interface)는 Microsoft Azure 리소스를 관리하는 데 사용되는 도구입니다.명령어 기반으로 Azure 서비스의 배포, 관리 및 모니터링을 자동화할 수 있

every-up.tistory.com

 

 

 


AKS 클러스터 CLI 접근 및 Pod 생성하기

 

CLI 접근

AKS 클러스터의 정보를 확인하여 CLI를 통해 접근할 수 있도록 설정합니다.

 

접근하고자 하는 AKS 클러스터를 선택 후 Connect 버튼을 클릭합니다.

 

 

Azure CLI와 kubectl 설치가 필요한 경우 'Prerequisites'의 링크를 참조하여 설치합니다.
cluster context를 설정하기 위해 commands를 확인합니다.

 

 

 

기본적으로 선택한 AKS 클러스터의 정보가 입력되어 있으며, 사전에 Azure CLI 및 kubectl을 구성한 개인 PC 및 서버에서 해당 명령어를 입력합니다.

> az login
Please select the account you want to log in with.

Retrieving tenants and subscriptions for the selection...
### 생략 ###

> az account set --subscription {Subscription ID}

> az aks get-credentials --resource-group {Resource Group} --name TEST_AKS --overwrite-existing
Merged "TEST_AKS" as current context in C:\Users\TestUser\.kube\config

 

 

정상적으로 AKS 클러스터에 접근할 수 있는지 확인하기 위해 노드의 상태 정보를 확인해봅니다.

> kubectl.exe get nodes
NAME                                 STATUS   ROLES    AGE   VERSION
aks-systemnode-17324671-vmss000001   Ready    <none>   17m   v1.31.3
aks-usernode-17324671-vmss000001     Ready    <none>   17m   v1.31.3

 

 

 

Pod 생성하기

kubectl run 명령어로 사용하여 간단히 nginx Pod를 생성해보겠습니다.

> kubectl.exe run nginx --image nginx
pod/nginx created

 

 

nginx Pod가 정상적으로 생성 및 실행되는지 확인합니다.
기본적으로 사용자 노드에 생성되는지도 확인합니다.

> kubectl.exe get pods -o wide
NAME    READY   STATUS    RESTARTS   AGE   IP             NODE                               NOMINATED NODE   READINESS GATES
nginx   1/1     Running   0          12s   10.244.1.180   aks-usernode-17324671-vmss000001   <none>           <none>

 

 

이제 Azure 콘솔을 통해서 AKS 클러스터에 정상적으로 Pod가 생성되었는지 확인해봅니다.
Kubernetes resources -> Workloads 메뉴에서 Pods를 선택 후 namespace는 default로 선택합니다.
nginx Pod가 정상적으로 생성 및 실행되었는지 확인하실 수 있습니다.

 

 

 


 

AKS(Azure Kubernetes Service) 클러스터를 CLI로 접근 후 간단히 Pod를 생성하는 방법에 대해 알아봤습니다.

 

Azure CLI를 통해 로그인 및 클러스터 관련 정보를 입력하여 클러스터를 접근할 수 있도록 설정합니다. kubectl run 명령어로 간단히 Pod를 실행할 수 있으며 사전에 생성한 사용자 노드에 정상적으로 생성되었는지도 확인 가능합니다. 또한 Azure 콘솔을 통해서도 AKS 클러스터에 정상적으로 Pod가 생성되었는지 확인 가능합니다.

 

Microsoft Azure에서 제공하는 Azure AKS(Azure Kubernetes Service) Kubernetes 서비스를 통해 컨테이너화된 애플리케이션을 쉽게 배포하고 운영하여 사용해보시기 바랍니다.

 

지금까지 AKS(Azure Kubernetes Service) 클러스터를 CLI로 접근 후 간단히 Pod를 생성하는 방법을 알아보는 시간을 가졌습니다.

 

 

유익하게 보셨다면 공감을 눌러주고, 댓글로 의견을 공유해 남겨주시면 감사하겠습니다!

 

 

 

[Azure] AKS(Azure Kubernetes Service) 클러스터 생성하기

Kubernetes는 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리하는 오픈 소스 플랫폼이며, 다양한 환경에서 일관된 애플리케이션 실행을 가능하게 해주는 컨테이너 오케스트레이션 도구입니다.

 

Azure AKS(Azure Kubernetes Service)는 Microsoft Azure에서 제공하는 관리형 Kubernetes 서비스로, 컨테이너화된 애플리케이션을 쉽게 배포, 관리 및 확장할 수 있도록 지원합니다. 자동화된 클러스터 관리, 보안 통합, 오토스케일링 및 DevOps 도구와의 연계를 제공하여 운영 부담을 줄이고 생산성을 향상시킵니다.

또한, Azure Monitor 및 Azure Security Center와 통합되어 모니터링, 로깅, 보안 정책 적용이 용이합니다.

 

Azure 콘솔을 통해서 간단히 AKS(Azure Kubernetes Service) 클러스터를 생성하는 방법을 알아보도록 하겠습니다.

 

 

 


AKS(Azure Kubernetes Service) 클러스터 생성하기

Azure 콘솔에서 'Kubernetes Services' 또는 'AKS'를 검색하여 Kubernetes Services를 클릭합니다.

 

 

AKS(Azure Kubernetes Service) 클러스터를 생성하기 위해 'Create' 버튼 클릭 후 'Kubernetes cluster' 옵션을 선택합니다.

 

 

Basics 설정

AKS(Azure Kubernetes Service) 클러스터를 구성하는 기본 옵션을 설정합니다.

 

'Cluster preset configuration' 값에 따라 클러스터에서 사용할 수 있는 기능과 node의 수가 다릅니다.
간단하게 클러스터를 구성하는 것 이므로 'Dev/Test' 값으로 선택합니다.
[참고링크] Cluster preset 정보

 

 

'Kubernetes cluster name', 'Region', 'AKS pricing tier', 'Kubernetes version'를 설정합니다.

AKS pricing tier(Free, Standard, Premium)는 Kubernetes 컨트롤 플레인 관리를 위한 가격 계층이며 저는 'Free'를 선택하였습니다.
[참고링크] AKS pricing tier 정보

 

Kubernetes version은 현재 기준으로 최신 버전인 1.31.3 버전을 선택하였습니다.

Automatic upgrade 설정과 Node security channel type 사용하지 않도록 선택하였습니다.

 

마지막으로 인증 방법인 'Authentication and Authorization' 설정은 AKS 클러스터를 배포할 때 생성되는 기본 Kubernetes 사용자 계정을 활용하여 인증을 수행하도록 설정하였습니다.

 

 

Node Pools 설정

Azure Kubernetes Service(AKS)에서 Node Pools 설정은 클러스터 내의 가상 머신(노드) 그룹으로, 워크로드를 실행하는 기본 단위입니다.

Node Pools은 System Node Pool(시스템 노드 풀)과 User Node Pool(사용자 노드 풀)이 존재합니다.

  • System Node Pool(시스템 노드 풀)
    • 클러스터의 기본 노드 풀이며, AKS 시스템 서비스(예: CoreDNS, kube-proxy, metric-server 등)가 실행되며 최소 1개 이상 존재해야 하고 제거할 수 없습니다.
  • User Node Pool(사용자 노드 풀)
    • 워크로드를 실행하는 전용 노드 풀이며, 여러 개 생성 가능하며, 다양한 VM 크기 및 스케일링 설정을 적용할 수 있습니다.

 

 

기본 설정으로 'agentpool' 이름의 시스템 노드 풀이 생성된 상태로 존재합니다.
최소 사양으로 AKS를 구성할 것이므로 해당 시스템 노드 풀을 제거하고, 다시 만들어보겠습니다.

 

 

'Node pool name', 'Mode', 'Scale method', 'Node count'를 설정합니다.

'Mode'는 시스템 노드 풀을 만들기 위해 System을 선택합니다.

최소 사양을 위해 'Scale method'는 Manual로 선택하고 1개의 Node만 생성되도록 'Node count'를 설정합니다.

 

 

'Node size' 설정을 통해 노드 풀 구성 시 사용할 컴퓨팅 리소스인 가상머신(VM)의 타입을 선택해보도록 하겠습니다.
Choose a size 버튼을 클릭합니다.

vCPU 2, RAM 4 GiB인 D2lds_v5 타입을 선택하였습니다.

 

 

'Node size' 설정을 완료하면 아래와 같이 선택한 타입을 확인하실 수 있습니다.

 


동일한 방법으로 사용자 노드 풀도 생성합니다.

 

 

Networking 설정

Azure Kubernetes Service(AKS)의 Container Networking Interface (CNI) 설정을 통해 Pod와 노드 간 네트워크 통신을 설정할 수 있습니다.

AKS는 'Network configuration' 설정을 통해 기본적으로 3가지 네트워크 모델을 지원합니다.

    1. Azure CNI Overlay
    • Pod는 VNET 외부의 Overlay 네트워크에서 IP를 할당받아 VNET의 IP 주소 소모를 줄임
    • NAT을 통해 외부와 연결되며, 대규모 클러스터에 적합하고 성능이 우수함
    1. Azure CNI (Node Subnet 방식)
    • Pod는 VNET의 IP를 직접 할당받아 Azure 리소스와 네트워크 통합이 원활함
    • VNET의 IP를 많이 소모하지만, 네트워크 성능이 가장 우수하며 NSG/UDR 적용 가능
    1. Kubenet
    • Pod는 노드의 IP를 공유하며, NAT을 통해 외부와 통신하여 IP 사용량이 적음
    • Azure VNET과의 직접 연결이 어려워 소규모 클러스터나 테스트 환경에 적합

 

 

각 모델의 특징이 있으며 구성 환경에 따라 모델을 선택하여 사용합니다.

'DNS name prefix' 설정을 통해 Kubernetes API 서버의 DNS 이름을 설정합니다.

 

 

AKS 생성 (Review + create)

Basics 설정, Node Pools 설정, Networking 설정까지 완료하면 Review + create 버튼을 클릭하여 AKS를 생성합니다.

 

 

프로비저닝에 시간이 좀 소요되며 정상적으로 AKS 클러스터가 생성됨을 확인하실 수 있습니다.

 

 


AKS 상태 확인

Azure 콘솔의 Kubernetes 서비스에서 상태를 확인하고자 하는 AKS 클러스터를 클릭합니다.

AKS 클러스터의 시작 및 종료를 할 수 있는 버튼이 있습니다.
클러스터의 상태를 확인할 수 있으며 Kubernetes의 버전 정보 또한 확인하실 수 있습니다.

 

 

 


 

Azure 콘솔을 통해서 간단히 AKS(Azure Kubernetes Service) 클러스터를 생성하는 방법에 대해 알아봤습니다.

 

AKS(Azure Kubernetes Service) 클러스터는 기본 설정(Basics), 노드 풀(Node Pools), 네트워킹(Networking) 설정을 통해 구성되며, 필요에 따라 기타 설정 및 정책 등을 적용할 수 있습니다. 설정 완료 후 "Review + create" 버튼을 클릭하여 AKS를 생성하며, 생성된 클러스터의 상태 및 버전을 Azure 콘솔에서 확인할 수 있습니다.

 

Microsoft Azure에서 제공하는 Azure AKS(Azure Kubernetes Service) Kubernetes 서비스를 통해 컨테이너화된 애플리케이션을 쉽게 배포하고 운영해보시기 바랍니다.

 

지금까지 AKS(Azure Kubernetes Service) 클러스터를 생성하는 방법을 알아보는 시간을 가졌습니다.

 

 

유익하게 보셨다면 공감을 눌러주고, 댓글로 의견을 공유해 남겨주시면 감사하겠습니다!

 

 

 

[Reference]
https://learn.microsoft.com/ko-kr/azure/aks/automatic/quick-automatic-managed-network?pivots=azure-portal

 

 

 

+ Recent posts