DevOps lec

모기·2025년 6월 12일

개발 모델

Water fall

단계

  • Requirement Analysis
    3년 뒤의 상황을 예측
  • Design
    UI 디자인, 설계, PM, 시스템화
  • Code
  • Test
  • Maintenance

단점

  • 시장이 빠르게 변하는 상황에서 부적절

Agile

단계

  • Individuals and Interactions
  • Working Software
  • Customer Collaboration
  • Responding to Change

DevOps

  • 운영의 개발자화
  • 배포, 테스트, 모니터링 등 운영 자동화의 필요성

전통적 운영팀의 역할

시스템 안정성 중심의 역할 수행

  • 주요 책임
    • 서버 관리
    • 프로비저닝
    • 네트워크 설정
    • 모니터링
    • 배포작업 지원
    • 장애 대응 및 복수

  • 특징
    • 수작업 중심
    • 개발팀과 분리된 조직
    • 변경을 신중하게 최소화
    • 자동화보다는 체크리스트 기반 작업 방식

DevOps

전통적인 개발과 운영의 단절

  • 개발팀은 소프트웨어를 빠르게 개발하고 배포하려 함
  • 운영팀은 시스템의 안정성과 가용성을 중시하여 변경을 최소화하려 함.
  • 충돌 및 병목 현상 발생

애자일 도입의 확산

  • 개발 속도를 높였지만 배포 과정이 느리고 불안정한 경우가 많음.
  • 자동화와 협업 기반의 접근 방식이 필요해짐

핵심 개념

  • CI/CD: 지속적 통합 및 배포를 통해 빠른 릴리즈 실현
  • 자동화: 테스트, 빌드, 배포 자동화로 품질 향상 및 시간 절약
  • 협업: 개발팀과 운영팀 간 장벽을 허물고 공동 책임 문화 조성
  • 모니터링: 실시간 시스템 상태 파악 및 빠른 문제 해결

주요 기술

  • CI/CD 도구: jenkins, gitlab ci, github actions
  • 인프라 자동화: terraform, ansible, chef
  • 컨테이너/오케스트레이션: docker, kubernetes
  • 모니터링/로깅: prometheus, grafana, ELK stack

DevOps가 가져온 변화

  • 배포 주기가 몇 개월 -> 하루 단위로 단축.
  • 장애 대응 시간이 단축되고, 롤백이 쉬워짐
  • 개발-운영-보안팀 간 협업 강화, DevSecOps로 확장 중
profile
안녕

0개의 댓글