DevOps - 개요

현시기얌·2021년 9월 3일
0

DevOps

목록 보기
1/16

DevOps 정의

제품의 변경사항을 품질을 보장함과 동시에 프로덕션에 반영하는데 걸리는 시간을 단축하기 위한 실천 방법의 모음

개발(Dev)과 운영(Ops)의 합성어
개발과 운영의 경계를 허물고 통합하고자 하는 문화 혹은 철학

DevOps가 필요한 이유

SDLC(Software Development Lifecycle)

소프트워어 설계 -> 개발 -> 테스트 -> 배포 -> 운영 -> 지원

만약 조직의 규모가 크다면 각 단계 별 전문가로 구성된 기능 조직을 운영할 수 있다.
하지만 그만큼 의사소통이 많이 필요해지기 때문에 커뮤니케이션 문제가 발생하고 병목구간이 생기기 쉬워진다.

이를 해결하기 위해 DevOps가 생겨났는데 개발자가 작성한 코드에 대해 스스로 테스트하고 배포하고 운영에 참여할 수 있게 하여 소프트웨어의 생명주기 중 여러 단계에 참여할 수 있게 하였다.
때문에 효율성이 증가하게 되었다.

DevOps 실천방법 : AWS

  • 지속적 통합 : 개발자가 만든 변경사항에 대해서 빌드 및 테스트를 진행해본 후에 중앙 코드 저장소에 통합함으로써 빠르게 버그를 발견하고 제품의 품질을 보장할 수 있게 해주는 소프트웨어 개발 방법, 지속적 통합을 함으로써 DevOps에서 개발 결과물을 운영으로 전달하는 과정에 품질을 보장할 수 있다.
  • 지속적 배포 : 개발결과물의 산출물을 자동으로 개발환경이나 운영환경까지 배포하도록 만든 자동화된 파이프라인
  • 마이크로 서비스 : 서비스 자체가 너무 크면 빌드 자체에서 너무 오래 걸리므로 빌드 및 테스트 배포 단계에서 병목 현상 발생할 수 있다. 이렇게 커다한 서비스를 마이크로 서비스로 작게 작게 쪼개 빌드타임과 배포타임을 단축시킬 수 있다.
  • IaC : InfraStructure를 코드로 관리하는 기술을 의미
    서비스를 배포함에 있어서 인프라에도 변경사항이 필요하게 되는데 이러한 인프라 변경 사항을 자동화 시켜 빠르게 적용하기 위해서는 인프라 또한 자동화된 관리가 필요하기 때문이다.
  • 모니터링과 로깅 : 개발자들에게 제품의 Metric과 로그 데이터를 중앙에서 확인할 수 있는 환경을 제공해줌으로써 개발자들이 직접 운영에 참여하여 제품에 문제 발생시 빠르게 문제를 해결할 수 있다.
  • 소통 및 협업 : 슬랙, Jira, Confluence, Notion
profile
현시깁니다

0개의 댓글