DevOps 기초 및 개념
이 게시물에서는 DevOps 환경에서 작업하는 모든 사람에게 필수적인 기초, 개념 및 관행을 다룰 것입니다.
우리는 다음을 다룰 것입니다.
- 문화 – Dev와 Ops 간의 협업 문화
- 관행 – DevOps 문화의 목표를 지원하는 관행
- 도구 – DevOps 사례를 구현하는 데 도움이되는 도구
- 구름 – DevOps와 클라우드 간의 긴밀한 관계
DevOps 란?
DevOps = Dev (개발) + Ops (운영)
Wikipedia의이 정의는 좋은 출발점입니다.
'DevOps는 소프트웨어 개발 (Dev)과 소프트웨어 운영 (Ops)을 통합하는 것을 목표로하는 소프트웨어 엔지니어링 문화 및 관행입니다. DevOps는 비즈니스 목표와 밀접하게 일치하는 개발주기 단축, 배포 빈도 증가, 신뢰할 수있는 릴리스를 목표로합니다.'
DevOps는
- DevOps는 최초의 개발자와 운영 담당자 간의 협업 문화입니다.
- 이 문화는 일련의 관행을 낳았습니다.
- DevOps는 작업 방식입니다.
- DevOps는 실무자들을위한 운동입니다.
DevOps는 그렇지 않습니다
- DevOps는 도구 세트가 아니지만 도구는 DevOps의 성공에 필수적입니다.
- DevOps는 표준이 아닙니다.
- DevOps는 제품이 아닙니다.
- DevOps는 직책이 아닙니다.
DevOps 문화
DevOps 문화는 협동 Dev와 Ops 사이. 전통적으로 두 사람은 별도로 작업했으며 다른 과 반대 목표.
DevOps 문화 하에서 Dev와 Ops는 함께 작업하고 같은 목표 . 개발자는 속도뿐만 아니라 안정성에도 신경을 쓰고, 운영팀은 속도와 안정성을 중요하게 생각합니다.
DevOps에서는 개발자와 운영 엔지니어의 기존 역할이 모호해집니다.
'벽에 코드를 던지는'대신 개발 및 운영팀이 협력하여 속도와 안정성을 모두 지원하는 도구와 프로세스를 만들고 사용합니다.
DevOps 사용 :
- Dev와 Ops는 같은 팀에서 플레이합니다.
Dev와 Ops는 동일한 목표를 공유합니다.
- 빠른 출시 시간 (TTM)
- 생산 실패가 거의 없음
- 장애로부터 즉각적인 복구
전통적인 사일로
전통적인 사일로의 문제점은 무엇입니까?
전통적인 사일로에서 :
- 개발자가 코드 작성
- QA에 '벽 너머로 던져'
- QA가 문제를 발견하고 개발자가 문제를 해결하면 코드가 개발자와 QA 사이를 오가며 바운스됩니다.
- 마지막으로 생산 준비가되었습니다.
- QA / Dev는 운영팀에 '코드를 벽에 넘겨'
- 문제가있는 경우 Ops는 벽을 넘어 Dev로 돌려 보냅니다.
- 각 그룹의 도메인은 다른 그룹에 대한 '블랙 박스'입니다.
- Ops는“우리 시스템은 괜찮습니다. 그것은 당신의 코드입니다!”
- Dev는 '하지만 코드는 내 컴퓨터에서 작동합니다!'라고 말합니다.
이러한 작업 방식은 많은 손가락을 가리킬 수 있습니다. Ops는 블랙 박스이고 Dev는 실제로 그들을 신뢰하지 않으며 Ops는 Devs를 실제로 신뢰하지 않습니다.
Dev와 Ops는 서로 다른 우선 순위를 가지고 있습니다. Ops는 Dev를 안정성을 깨뜨리는 것으로보고 Devs는 코드를 전달하는 데 장애물로 간주합니다.
그들이 함께 일하고 싶어하더라도-Dev는 기능을 제공하여 측정됩니다. 즉, 변경 사항 배포 및 Ops는 가동 시간으로 측정되지만 변경 사항은 안정성에 좋지 않습니다.
전통적인 사일로의 단점
- '블랙 박스'는 손가락을 가리 킵니다.
- 프로세스가 길다는 것은 출시 시간이 느리다는 것을 의미합니다.
- 자동화의 부재는 빌드 및 배포와 같은 것이 일관성이 없음을 의미합니다.
- 문제를 식별하고 수정하는 데 오랜 시간이 걸립니다.
DevOps (개발 및 운영) 병합
DevOps는 기존 사일로 문제를 어떻게 해결합니까?
DevOps 모델에서 :
- 개발자가 코드 작성
- 코드 커밋은 자동화 된 빌드, 통합 및 테스트를 트리거합니다.
- QA는 거의 즉시 문제를 해결할 수 있습니다.
- 준비가되면 프로덕션에 대한 자동화 된 배포를 시작합니다.
- 모든 것이 자동화되어 있기 때문에 안정적으로 유지하면서 배포하기가 훨씬 쉽습니다.
- 배포가 훨씬 더 자주 발생하여 고객에게 더 빠르게 기능을 제공 할 수 있습니다.
- 최신 배포로 인해 프로덕션에서 문제가 발생하면 자동 모니터링이 팀에 즉시 알립니다.
- 팀은 이전 작업 버전을 배포하여 롤백을 수행하고 문제를 신속하게 수정합니다.
- 한 시간 후 개발 팀은 새 코드의 고정 버전을 배포 할 수 있습니다.
Dev와 Ops는 함께 협력하여 제공 속도와 안정성을 모두 우선시했습니다.
자동화를 통한 일관성-구축, 테스트 및 배포가 매번 동일한 방식으로 훨씬 더 빠르고 더 자주 발생했습니다.
좋은 모니터링과 신속한 배포 프로세스를 통해 사용자가 문제를 발견하기도 전에 문제를 해결할 수있었습니다. 코드 변경으로 인해 문제가 발생했지만 사용자는 다운 타임이 거의 또는 전혀 발생하지 않았습니다.
DevOps의 이점
- 기술 팀은 기존의 사일로보다 DevOps를 수행하는 것이 더 행복합니다.
- 혁신에 더 많은 시간을 투자하고 불을 끄는 시간을 줄입니다.
- Devs와 Ops는 모두 전달 속도와 안정적인 시스템이라는 동일한 목표를 공유합니다.
- DevOps 작업 방식은 고객이 원하는 기능을 빠르고 안정적으로 제공합니다.