정보관리기술/소프트웨어공학

데브옵스(DevOps) / ①

아이티신비 2024. 1. 9. 08:00

문제7) 데브옵스(DevOps)

 

답)

 

 

1. 적시 출시를 위한 개발과 운영의 상호의존적 대응 개발론, DevOps

  • 시스템 개발자와 운영을 담당하는 정보기술 전문가 사이의 소통, 협업, 통합 및 자동화를 강조하는 소프트웨어 개발론
  • 소프트웨어 제품이나 서비스를 알맞은 시기에 출시하기 위해서 개발과 운영이 상호의존 대응

 

2. 개념도(구성도) 및 기술요소

가. 개념도


  • 소프트웨어 적시 출시를 위한 개발과 운영의 상호의존 대응

 

나. 구성요소

측면
구성요소
설명
품질
품질기준
  • 시나리오기반 품질 속성 기술
테스트 자동화
  • Xunit 등으로 단위 테스트 자동화
프로세스
사이클타임 축소
  • 기능의 흐름(the flow features)지속적으로 향상
완료시점 범위확장
  • 완료(Done)시점 = 운영서버 정상동작 시점
지속적 출시(CD, Cotinuous Delivery)
  • 지속적 통합(CI)처럼 운영서버 반영역시 자동화
  • 개발 초기부터 운영 환경 갖춤
릴리즈와 배포의 분리
  • 추상화된 브랜치
  • 기능토클 : 설정
  • 다크런칭 : 소스 사용자 대상 배포
  • 블루 그린배포 : 운영환경 두개로 나눠 신규버전과 이전버전 병행
도구
지속적 통합(CI, Continuous Integration)
  • Git + Jenkins
  • 코드는 변경시마다 통합되어 빌드되고, 자동으로 테스트가 실행되어 결과 리포트 발송
Application
릴리즈 자동화
  • 형상관리 서버에 자동화된 트리거 기반의 배체 유닛 제공
  • 자동화된 가드나 조건에 따라 통제된 운영팀은 표준화된 게이트웨이 사용
  • 설치와 서버 및 컴포넌트 구성 작업 최소화
프로비저닝
(Provisioning)
  • 운용조직에서 서버에 빌드된 코드블락을 자동으로 설치하고 시스템 구성 및 관리하기 위하여 사용
  • 퍼펫(Puppet)/쉐프(Chef)

 

3. 애자일(Agile) 방법론과 데브옵스(DevOps0의 개념 비교

비교항목
애자일(Agile) 방법론
데브옵스(DevOps)
개념
변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발하는 SW개발 방법론
개발과 운영의 합성어. 개발과 운영의 원활한 상호 작용을 하게 하는 모든 개발 방법론
개념도
 
 
목적
빠른 환경 변화 적응과 고객 요구 적극 수용으로 고품질 SW 개발
개발팀과 운영팀의 원활한 co-work통한 운영 중단의 최소화
중점가치
  • 개인과의 상호작용
  • 동작하는 소프트웨어
  • 고객과의 협력
  • 변화에 대한 적응
  • 개발팀과 운영팀의 원활한 의사소통
  • 자동 Deployment Process 에 의한 원활한 운영, 서비스 제공
  • Agile : 개발 팀에 적용하는 SW 개발 방법론
  • DevOps : 개발팀과 운영팀을 혼합하여 적용하는 포괄적 개발 방법론
  • 각 적용하는 조직이 범위가 상이하므로 조직 관점에서 비교할 필요성 존재