Post

Service Lifecycle

서비스 라이프사이클은 소프트웨어 또는 서비스가 기획, 개발, 배포, 운영, 개선, 종료까지의 과정을 포함하는 전체 생명주기

서비스 라이프사이클이란?

🔗 ITIL 공식 문서

ITIL에서 말하는 서비스 라이프사이클(Service Lifecycle)은 IT 서비스를 기획하고, 설계하고, 전환하고, 운영하고, 지속적으로 개선하는 전 과정을 의미함. 이는 IT 서비스 관리(ITSM)의 핵심 프레임워크이며, 각 단계에서의 명확한 역할과 책임을 정의 하고 있음.


ITIL의 5단계 구성

  1. Service Strategy (서비스 전략)
    • 비즈니스 목표와 IT 서비스 간 정렬
    • 서비스 제공 대상, 차별점, 비용 구조 정의
    • 핵심 프로세스: 전략 관리, 포트폴리오 관리, 수요 관리, 재무 관리
  2. Service Design (서비스 설계)
    • IT 서비스 및 프로세스를 설계
    • SLA, 보안, 가용성, 용량, 연속성 등을 포함
    • 핵심 프로세스: SLA 관리, 가용성 관리, 보안 관리 등
  3. Service Transition (서비스 전환)
    • 서비스가 운영 환경으로 안정적으로 전환되도록 함
    • 변경 관리, 릴리스 관리, 구성 관리 포함
    • 핵심 프로세스: 변경 평가, 릴리스 및 배포 관리, CMDB
  4. Service Operation (서비스 운영)
    • 일상적인 서비스 제공과 이슈 해결
    • 사용자 만족도 유지 및 중단 없는 운영 보장
    • 핵심 프로세스: 사건 관리, 문제 관리, 접근 관리
  5. Continual Service Improvement (지속적 개선)
    • 서비스 품질 향상을 위한 데이터 기반 개선 활동
    • KPI, SLA, 벤치마크 분석을 기반으로 개선
    • 핵심 도구: CSI 모델, Deming Cycle (PDCA)

서비스 라이프사이클 관리의 핵심 과제

토스ㅣSLASH 24 - 클러스터 운영부터 서비스 라이프사이클 관리까지, 데브옵스 업무 효율화

  1. 노드 조인 자동화
    • 기존: 노드 교체, 커널 업그레이드, 클러스터 버전 업그레이드 시 수작업 및 수시간 소요
    • 개선: 쉘 스크립트 기반 자동화, 노드가 자동 조인되도록 구성 → 운영 비용 대폭 감소
    • 결과:
      • 커널 업그레이드 시간 30분 → 2분
      • 쿠버네티스 버전 업그레이드 시간 2시간 → 30분
  2. 서비스 생성/삭제 자동화
    • 기존: 신규 서비스 생성 시 DevOps가 직접 CI/CD 파이프라인 구성 → 반복 작업 증가, 실수 발생
    • 개선: 개발자가 UI를 통해 파이프라인 생성 → YAML 자동 생성 → Git PR로 검토 후 Merge
    • 결과: 개발자 주도 구성 + DevOps 공수 절감
  3. 서비스 종료 및 미사용 리소스 정리
    • 기존: 사용 안 하는 서비스가 방치됨 → 리소스 낭비 (CPU/Memory)
    • 개선:
    • 미사용 서비스 탐지 알림 자동화 (ex. Istio 메트릭 기반 트래픽 없는 API 식별)
    • 배치/컨슈머의 미사용 여부 자동 판단 → 불필요한 리소스 자동 제거
    • 결과: CPU 1280 코어 / 메모리 128GB 절감

서비스 라이프사이클 관리의 실제 사례

✔ 노드 조인 자동화

  • 쉘 스크립트 + 사이드카 방식 구성
  • 클러스터 디스커버리 → 버전 맞는 설정 다운로드 → 워커 노드 조인 자동화

✔ 서비스 생성 UI 개발

  • 서비스 개발자가 직접 파이프라인 구성 (YAML UI 생성 → Git PR → Merge)

✔ 미사용 리소스 탐지 & 제거

  • Istio 메트릭 활용 → API 사용 여부 추적
  • Consumer 메트릭 + Kafka 정보 활용 → 미사용 토픽 판단
  • Suspend 상태 배치 관리 → 사용 유무 자동 분류
  • 주 1회 알림으로 개발자 확인 유도

✅ 결론

  • 서비스 라이프사이클 관리는 DevOps 자동화와 자원 효율성의 핵심
  • 토스의 사례처럼 “반복 업무 자동화”, “사용 종료 감지”, “자체 UI 도구 개발”은 좋은 실천 예시
  • 개발자 자율성을 높이면서도, 리소스 낭비 없이 시스템 안정성 확보 가능
This post is licensed under CC BY 4.0 by the author.