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 작업 방식은 고객이 원하는 기능을 빠르고 안정적으로 제공합니다.