SRE vs DevOPS

DevOps는 뭐지 ?

  • DevOps 문화에 대한 이야기가 나오기 전까지는 운영팀과 개발팀은 분리되어야 하는 것으로 생각함 (커뮤니케이션 부재)
  • DevOps는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합
  • 단순하게 개발과 운영을 통합하는 개념이 아님 사실 나도 그렇게 생각함

개발자와 운영자의 차이는?

개발 팀과 IT 운영팀의 기술목표는 서로 다릅니다. 개발자는 새로운 기능을 도입하길 원하는 반면, 운영팀은 애플리케이션 출시 후 안정성을 유지하고자 한다.

DevOps엔지니어의 역할

DevOps엔지니어는 팀내의 툴 및 프로세스를 도입하고 코드의 배포 및 유지관리 및 업데이트에 등의 라이프사이클의 균형을 맞춘다. 소프트웨어를 변경하는 작업등 자동화하여 애플리케이션이 빠르게 변경하는데 필요한 작업의 안정성과 테스크 간의 격차를 해소한다.

DevOps에서는 프로세스의 통일 및 자동화가 핵심이며 DevOps 엔지니어는 코드, 애플리케이션 유지관리, 애플리케이션 관리를 통합하는 데 중요한 역할을 합니다. 이 모든 태스크에는 개발 라이프사이클에 대한 이해뿐 아니라 DevOps 문화와 그 철학, 사례, 툴이 필요합니다. 여러분이 DevOps로 커리어를 전환하거나 회사 내 DevOps 도입을 촉진하기 위한 교육 과정을 원하게 될 수 있습니다. 그렇다면 DevOps 엔지니어가 되려면 어떻게 해야 할까요?

DevOps의 주요 요소

  • 문화 : 운영자와 개발자 등의 팀 구성원간의 긴밀하게 협의하는 문화
  • 자동화 : 업무를 자동화하여 팀간의 간극을 줄이는것
  • 측정 : 시스템을 측정하여 운영의 신뢰성을 향상 시킴
  • 공유 : 구성원에게 기술과 문화를 전파함
  • 축적 : 시스템의 노하우를 축적하여 회사의 자산으로 만듬

DevOps 엔지니어는??

애자일 환경에서 개발자, 시스템 관리자, 프로그래머는 사일로화되어 동일 제품을 개발하면서도 사용자에게 가치를 제공하는 데 필수적인 정보를 공유하지 않을 수도 있습니다. DevOps 엔지니어는 이러한 복잡성을 줄여, 애플리케이션을 빠르게 변경하는 데 필요한 작업과 안정성을 유지하는 태스크 간 격차를 해소합니다. 개발자에게는 빠른 개발을 운영자에게는 안정성 있는 시스템을 제공하는 사람 (중간에서 윤활류 같은 역할을 하는 사람)

야심차게 도입하면 격는 문제

어떤 조직은 전문가를 고용하여 워크플로우 내에서 ‘DevOps를 수행’할 수 있지만, 성공적인 DevOps 도입은 문화 및 프로세스의 변화에 좌우되므로 단지 개발자와 운영팀 간의 분리가 심화되는 결과만 낳을 수 있습니다.

SRE는 ?

  • SRE는 2003년 부터 존재 했으며 DevOps 보다 훨씬 오래 되었다. DevOps 가 처음 이야기 나온것은 2008년 입니다.
  • DevOps는 SRE의 구현체들중 하나입니다. 반대라고 이야기 하는 사람도 있지만 중요하지 않습니다.

중요한것

  • SLI(서비스 수준 척도) 실세 어플리키에션에서 측정한 응답속도, 에러율, 시스템 처리량 등을 말하며 시스템 별로 다를 수 있다.

  • SLO(서비스 수준 목표) 고객과의 합의에 도달하기 위해 팀이 추구해야 하는 목표를 나타낸다. SLA를 보장해야 하며 실행이 가능하며 소프트웨어 품질을 반영해야 한다.

  • SLA(서비스 수준 계약) 사용자와 맺은 계약에 의한 성능 수준

하지만 차이는 있다.

포지션의 차이

DevOps SRE
개념 문화로 인식 안정성을 위한 엔지니어링 개발과 운영의 사일로 현상을 해결하기 규범
팀 구성 팀내 DevOps 엔지니어 참여 SRE 팀을 구성
주요 업무 배포 자동화 지속적인 모니터링 인프라 관리 업무 모니터링,지표 수립과 측정 안성성을 위한 출시 관리

업무의 차이점

DevOps SRE
주요 관심 개발 및 배포 과정을 통합 확정성, 운영지표, 자동화
담당자 개발에 관심 있는 운영팀 운영에 관심 있는 개발팀
측정 지표 배포 빈도 ,배포의 실패율 서비스 수준 목표(SLO)의 최소/최대치 (SIO)
적용기업 온-프로미스에서 클라우드로 전향하는 기업 클라우드-네이티브 환경에서 IT 서비스하는 기업

SRE와 DevOps의 신뢰성이란 ?

우리는 책임을 공유하고, 실패를 받아들이고, 모든 것을 측정하는 것에 대해 이야기했습니다. 이제 모든 것이 제대로 작동하고 신뢰할 수 있는지 확인하는 방법이 필요합니다. 즉, 신뢰도를 모든 수준에서 측정할 수 있는 통일된 방법이 있어야 합니다.

SER 엔지니어의 신조

SLA, SLO 및 SLI

우리 기업의 특성상 사이트의 신뢰성을 갖추는것이 더욱 중요하다고 생각함 그래서 SER에 대해서 관심을 가지고 필요한 것들을 흡수 하려고 함 동일하게 중요성을 이야기 하는것은 모니터링과 자동화야 이야. SRE는 신뢰성 있는 데이터를 수집해서 그것으로 사이트의 신뢰성을 유지하는것 이고 DevOps는 모니터링을 통해서 소프트웨어의 빠른 개발 주기를 지원하는것임 DevOps 에서는 CD/CI 의 자동화를 중요시하고 SRE 에서는 자동화를 통해 표준화된 플랫폼을 구축하는걸 목표료함

중요한건 기술이 아니라 생각? 우리는 DevOps 이건 SRE건 좋은건 취애햐 하고 가장 중요한것은 모니터링과 자동화 라고 생각한다.

그래서 중요한것은 진단과 지속적인 개선 ?

자동화

소프트웨어 라이프 사이클 전반을 자동화 하여 운영 업무를 줄이고 대응 시간을 줄인다.

지속적인 개선

현재 발생하는 장애에 집중하기 보다는 지속적인 자동화와 프레임워크 개선을 통해서 장애의 원인을 제거

모니터링

철저한 모니터링 전략을 통해서 운영 업무를 자동화하고 고객 경험을 개선하고 장애 시스템 복구 시간을 단축

계획과 지침 연습

계획과 지침을 통해서 미래의 수요를 예측하고 그 수요을 정상적으로 수용할 수 있도록 대비 향후 발생할 장애 대비해서 정립된 지침과 연습을 통해서 장애 복구 시간을 감소 시킴

결론들

그렇다면 DevOps와 SRE 간에 차이가 있습니까? SRE 제목의 “창시자"인 Google은 간단한 기대와 함께 SRE 제목을 명확하게 정의했습니다. DevOps는 조직마다 정의와 관점이 다양한 “자유로운 정신"에 가깝습니다.

그러나 DevOps와 SRE 팀은 그렇게 다르지 않습니다. 둘 다 개발자와 운영 팀을 결합하는 데 도움이 되며 비슷한 책임을 공유하고 자동화 및 안정성을 구현하는 데 중점을 둡니다.

결론은 모든 것이 데이터에 관한 것입니다. 성공과 실패를 측정하는 방법과 애플리케이션 전체에서 지속적인 안정성을 얻는 방법을 이해하려면 정보가 필요합니다.

우리회사의 문화를 지키기 위해 기업의 가치는 프로덕트가 결정하듯 아무리 좋은 복지와 문화를 가진 회사라도 좋은 제품을 만들지 못하면 유지될 수 없음

포스트 모텀 문화 (부검)

기업에서 특정한 프로젝트 완료 후 그 프로젝트 전 과정을 돌아 보면서 잘된점과 무엇이 잘못되었는지 찾아보는 작업 (회고 하지만 진지하고 무거운)

포스트모텀 문화를 소개하는 글(https://brunch.co.kr/@svillustrated/13)

  • 모든 관계자를 초대하는 미팅
  • 시간 분석
  • 잘된 일과 잘못된 일을 모두 인식한다.
  • 책임자를 문책하는 미팅이 아니다.
  • 개선책을 도출한다.
  • 공개한다.
  • 구체적인 수행 시점

우리에게 이것이 필요한 이유

장애나 실패로 부터 개발팀과 운영팀을 보호하는 역할 조직을 보호하는 역할이 필요 ( 장애가 나면 상처 받아요. )

참고