오픈소스를 활용한 DevOps 환경 이해(1)

joDMSoluth·2020년 11월 19일
1

devops

목록 보기
3/4

KMooc 오픈소스를 활용한 DevOps 환경 이해 수업을 듣고 정리한 내용입니다.

Devops란

최신 기술과 시장의 빠른 변화를 대응하기 위한 최신 소프트웨어 개발/운영 트렌드를 말함

특정한 분야나 툴을 말하는 것이 아니다. 프로세스, 조직 등 모든 것을 아우르는 말이다.

개발 : 요구사항, 아키텍처, 설계/개발
운영 : CI/CD(지속적 전달or 지속적 배포)
품질 : 정적분석, 리팩토링, 자동화테스트

개별적으로 의미가 있는게 아니라 모든 것이 잘 이루어질 때 그 의미가 있는 것이다. 개발,운영,품질의 교집합이 devops이다.

Devops 목표

  • 더 빠르게, 더 자주 배포
  • 낮은 실패율, 빠른 복구
  • 높은 품질, 안정적 제공
  • 시스템 기반 자동화 및 자동 측정

최종 목표 : 서비스를 개선할 때, 최소 비용 최고 효율로 배포가능해야 한다.
-> 요즘 오픈소스 소프트웨어가 잘 되어 있어서 가능한 이야기이다.

Devops 수명주기

2주 ~ 1개월 동안 아래의 단계를 순환한다.

계획 -> 개발 -> 빌드 -> 테스트
-> 릴리즈 -> 배포 -> 운영 -> 모니터링
  • 계획 ~ 테스트 : 개발단계
  • 릴리즈 ~ 모니터링 : 운영단계

계획 ~ 개발 활동

  • 애자일 개발론 : 계획 수립 및, 요구사항 관리, 작업상황 가시화 및 추적 (스크럼 or 칸반 사용)
  • Github 등을 이용한 코드관리 필수
  • 테스트자동화를 위한 테스트 코드 작성
  • 코드리뷰를 통한 리팩토링

계획 ~ 테스트 활동 (개발단계)

  • CI(지속적 통합 단계)을 잘 수행해야 한다.
  • CI에서 이루어질 활동은 소스코드 컴파일, 단위테스트, 페키징, 통합테스트 등이 있다.
    중요한 점은, 개발자들은 작은 단위로 업무를 수행하고 지속적으로 빌드 테스트 후 변경된 최신 코드로 업데이트 해야 한다.

릴리즈 ~ 배포 활동

  • CD(지속적 전달 or 지속적 배포) : 언제나 배포 실행 가능한 상태를 유지하는 활동
  • UI테스트, 부하테스트, 통합테스트 등 다양한 테스트 수행 -> 테스트 성공시 지속적 전달의 경우 스테이징 환경까지 배포, 지속적 배포의 경우 자동 프로덕션 환경까지 배포 // 테스트 실패시 롤백으로 대응

계획 ~ 모니터링 전체(지속적 서비스 개선 단계)


자동화된 로그 및 품질 모니터링 도구를 활용하여 분석 -> 개선사항 도출 -> 어플리케이션 or 인프라 구성 및 변경 관리를 통해 해결

profile
풀스택이 되고 싶은 주니어 웹 개발자입니다.

0개의 댓글