알아야 할 DevOps와 SRE의 5가지 기본 차이점

게시 됨: 2021-02-22

정보 기술 및 소프트웨어 개발의 세계는 종종 DevOps와 SRE를 결합하여 하나의 동일한 것을 의미합니다. 그러나 둘 사이에는 큰 차이가 있습니다. 사이트 안정성 엔지니어링(SRE)은 최근 몇 년 동안 주목을 받았지만 DevOps는 훨씬 더 오래되었습니다(DevOps라는 용어가 존재하기 전에도).

간단히 말해서 DevOps와 SRE는 모두 소프트웨어를 더 빠르게 제공하기 위해 마련된 관행입니다. 둘의 유일한 차이점은 접근 방식에 있습니다. DevOps는 소프트웨어 개발 수명 주기를 줄이는 데 초점을 맞추고 SRE는 동일한 목적을 달성하기 위해 시스템 약점을 제거하는 데 집중합니다.

이 기사에서는 DevOps와 SRE가 서로 다른 근본적인 방식을 살펴볼 것입니다. 그 전에 DevOps와 SRE가 무엇인지 이해하는 것부터 시작하겠습니다.

목차

데브옵스란?

DevOps Handbook과 The Phoenix Project의 저자인 Gene Kim은 이렇게 말했습니다.

“DevOps는 세계 최고 수준의 안정성, 운영 및 보안을 유지하면서 개발, 테스트, 운영에 대한 계획된 작업의 빠른 흐름을 [가능하게 하는] 일련의 문화적 규범 및 기술 관행입니다. DevOps는 무엇을 하느냐가 아니라 결과가 무엇인지에 관한 것입니다.”

따라서 DevOps는 주로 조직 내부의 문화적 관행을 혁신하여 SDLC(소프트웨어 개발 수명 주기)의 속도를 높이는 데 중점을 둡니다. 개인, 그룹 또는 직위를 대상으로 하지 않습니다. DevOps는 정보 기술 운영 팀과 소프트웨어 개발 팀 간의 협업을 강화하는 것을 목표로 합니다.

그것이 무엇을 하고 어떻게 하느냐는 중요하지 않습니다. 프로세스의 결과만 승인됩니다.

DevOps는 일련의 원칙을 사용하여 소프트웨어 엔지니어링 팀의 프로덕션 시스템 노출을 강화하고 IT 운영 팀이 불일치를 개발 팀에 보다 효율적으로 에스컬레이션할 수 있도록 합니다. 실제로 SRE는 사전 예방적 테스트, 속도, 관찰 가능성, 서비스 안정성 향상을 촉진하여 DevOps 조직에서 중요한 역할을 합니다. DevOps는 모든 DevOps 중심 조직이 CALMS 모델에 설명된 문화적 원칙에 따라 운영하도록 권장합니다.

SRE는 무엇입니까?

SRE는 Site Reliability Engineering의 약자로 기술 운영 감독을 담당하는 Google의 수석 부사장인 Ben Treynor가 만든 용어입니다.

Drew Farnsworth(Green Lane Design의)는 다음과 같이 설명합니다. “저는 일반적으로 SRE를 개발이 운영을 제어하는 ​​시스템으로 생각하는 것을 좋아합니다. 이것은 환경이 IT 스택의 가장 기본적인 구성 요소로 분류되고 하드웨어에 적용된 모범 사례와 함께 롤아웃되는 시스템입니다."

기본적으로 소프트웨어 개발에 대한 전문 지식을 갖춘 SRE 팀은 전달 속도와 시스템 안정성 간의 균형을 유지하면서 시스템 생산의 문제를 해결하는 책임이 있습니다. 이러한 방식으로 SRE 접근 방식은 조직의 정책을 유지하기 위해 구조화된 엔지니어링 관행을 적용하기 위해 운영 역할 아래에 소프트웨어 개발 직원을 모았습니다.

그들은 소프트웨어 팀이 시스템의 신뢰성을 높이기 위한 기술 서비스를 개발할 수 있도록 시스템이 항상 사용 가능하고 효율적으로 실행되도록 합니다. 주요 문제로 확장되기 전에 잠재적인 약점을 식별하는 것은 SRE의 책임입니다.

DevOps와 SRE: DevOps와 SRE의 주요 차이점

실제로 DevOps 및 SRE는 DevOps 중심 구조의 일부인 SRE가 기술 서비스의 안정성을 개선하는 데 중점을 둔 보완 분야로 간주되어야 합니다. 따라서 본질적으로 DevOps 대 SRE와 같은 것은 없습니다.

따라서 이 섹션에서 수행하는 작업은 DevOps와 SRE 간의 근본적인 차이점을 평가하는 것입니다.

변경 구현

업데이트가 자주 발생하고 사용자가 더 새롭고 관련성이 높은 기술에 액세스할 수 있도록 DevOps와 SRE는 모두 빠르게 진행하려고 합니다. 그러나 DevOps는 조심스럽게 점진적으로 진행하는 반면 SRE는 더 빠르게 이동하지 못하는 비용을 고려합니다.

둘 다 자동화를 구현하고 도구를 사용하여 이 목적을 달성합니다.

장애를 정상으로 간주

DevOps는 실패를 받아들이고 학습 억압으로 간주하는 데 매우 뛰어납니다. 이러한 이유로 실패가 프로세스의 일부이며 시스템을 100% 내결함성으로 만드는 데 중점을 두지 않는다는 점을 받아들임으로써 흠 없는 문화를 장려합니다. 이에 대한 예는 Simian Army가 있는 Netflix입니다.

반면에 SRE는 무책임한 사후 분석을 지원합니다. 그 이면의 목적은 실패의 원인을 식별하고 책임을 할당하고 향후 유사한 실패를 피하기 위해 노력하는 것입니다. 시스템이 겪을 수 있는 오류 수는 오류 예산에 포함됩니다. SLI, SLO 및 SLA 메트릭은 이를 결정하여 생산 비용을 절감합니다. 기본적으로 SRE는 잠재적인 오류를 방지하기 위해 사전 예방적 모니터링 및 경고 방식을 채택합니다.

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

자동화 대 혁신

DevOps는 자동화를 가장 중요하게 생각합니다. DevOps 중심 환경에서 이는 시스템이 최대한 자동화되어 지루한 릴리스로 이어집니다. 개발자가 코드를 커밋한 후 다음 활동의 전부는 아니지만 대부분을 자동화해야 합니다.

따라서 DevOps가 CI/CD를 추구하는 이유는 고품질 시스템을 더 빠른 속도로 개발하기 위함입니다.

SRE가 CI/CD를 추구하는 이유는 다르며 실패 비용을 줄이기 위한 것입니다. 배포 및 백업과 같은 작업에서 일반적이고 일반적이거나 반복적인 작업은 주의할 가치가 없는 것으로 간주됩니다. 따라서 SRE는 운영상의 수고를 피하기 위해 특정 시간을 따로 설정합니다. 이는 새로운 기술이나 아키텍처 관련 활동을 실행하거나 혁신하는 것과 같은 보다 매력적인 작업을 수행할 수 있도록 하기 위한 것입니다.

확인: 초보자를 위한 DevOps 프로젝트

조직의 사일로 무너뜨리기

개발자와 운영자는 배포 프로세스와 관련하여 충돌합니다. 개발자는 코드가 작성되는 즉시 배포되는 기능의 이점을 누릴 수 있지만 운영 담당자는 배포 프로세스를 방해하는 시스템을 사용 가능하게 만드는 데 중점을 둡니다.

DevOps와 SRE는 조직에서 사일로를 제거하는 방법이 다릅니다.

DevOps 핸드북에 설명된 대로 DevOps는 더 작은 배치로 운영하고 구성을 더 잘 관리하는 것과 같은 관행을 포함하여 이 문제에 접근합니다.

SRE는 팀 간의 흐름을 최적화하는 것뿐만 아니라 생산 시스템을 지원하는 것을 목표로 합니다. 그들은 컨설턴트로 팀에 통합하고 시스템 실행 책임을 공유하여 개발자를 지원함으로써 그렇게 합니다. 이것이 SRE가 조직의 사일로를 분해하는 방법입니다.

성공적인 구현 측정

DevOps 메트릭은 모두 작업 속도에 관한 것입니다. 여기에는 배포 빈도, 배포 시간, 문제 발생 빈도가 포함됩니다.

Puppet 및 DORA의 2017년 보고서에 따르면 DevOps에서 성공적인 구현을 측정하는 것은 다음에 따라 달라집니다.

  • 배포 빈도
  • 코드 커밋과 배포 사이의 시간
  • 배포가 실패하는 빈도
  • 배포 실패에서 복구하는 데 시간이 걸립니다.

이러한 피드백 루프는 DevOps가 실험 시 변경을 촉진하면서 시스템 품질을 개선하는 데 도움이 되도록 배치됩니다.

반면에 SRE는 시스템의 안정성을 염두에 두고 시스템을 개선하기 위해 노력합니다. 성공적인 구현을 결정하기 위해 다음과 같은 주요 지표를 고려합니다.

  • SLO(서비스 수준 목표)
  • 서비스 수준 표시기(SLI)
  • 서비스 수준 계약(SLA)

위에서 언급한 메트릭은 시스템의 신뢰성을 나타내는 지표입니다. 이러한 메트릭은 변경 릴리스가 프로덕션에 도달할지 여부를 미리 결정합니다.

SRE에서 이러한 속도 및 품질 메트릭은 새로운 기능에 대한 작업보다 오류 예산을 구축하고 시스템의 안정성을 개선할 때 유용합니다.

읽기: 인도의 DevOps 엔지니어 급여

결론

Google은 Treynor가 SRE를 다음과 같이 설명하는 프로덕션 시스템에서 사이트 안정성 엔지니어링을 구현하는 방법에 대한 eBook을 출판했습니다.

"SRE는 소프트웨어 엔지니어에게 운영 팀을 설계하도록 요청할 때 발생합니다."

DevOps와 SRE가 얼마나 다른지 기억해야 할 것은 SRE는 운영 팀이 아니라 개발자가 주도한다는 것입니다. 유지 관리와 모니터링은 모두 주로 개발자의 통제 하에 있습니다. 그것이 주로 두 학문을 구별하는 것입니다.

대규모 DevOps, 전체 스택 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 소프트웨어 개발 PG 프로그램 - 전체 스택 개발 전문화를 확인하세요. 이 프로그램은 일하는 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육을 제공합니다. 9개 이상의 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

지금 소프트웨어 개발 경력을 계획하십시오.

upGrad 소프트웨어 공학 직무연계PG 자격증 신청