메뉴

사이트 안정성 엔지니어링(SRE)이란?

돋보기

사이트 안정성 엔지니어링(SRE)은 소프트웨어 엔지니어링 방식을 인프라 및 운영 문제에 적용하여 초고도로 확장 가능하고 안정적인 소프트웨어 시스템을 만드는 분야입니다. 사이트 안정성 엔지니어 전문가는 개발 팀과 운영 팀 간의 균형을 맞추는 솔루션을 제작할 수 있습니다. 이 역할은 Google에서 선도적으로 진행했습니다. 자세한 설명은 Google e-Book "Site Reliability Engineering"을 읽어보십시오.

사이트 안정성 엔지니어링과 DevOps 비교

사이트 안정성 엔지니어링(SRE)은 개발과 운영 간에 작동하지만 반드시 DevOps 안에서 적절한 것은 아닙니다. SRE의 개념은 2003년부터 존재했기 때문에 DevOps보다 오래되었음을 의미합니다. 이 용어는 Google의 사이트 안정성 팀을 조직한 Ben Treynor에 의해 널리 알려졌습니다. Treynor에 따르면 SRE는 "운영 업무를 담당하는 소프트웨어 엔지니어가 하는 일"입니다.

DevOps와 SRE는 모두 애플리케이션 라이프사이클 전반에 걸쳐 개발 및 운영 부서가 서로의 프로세스 측면을 볼 수 있도록 지원함으로써 릴리즈 주기를 개선하는 것을 목표로 하는 체계입니다. 또한 자동화와 모니터링을 지원하여 개발자가 변경을 커밋하는 시기와 이를 운영 환경에 배포하는 시기까지의 시간을 줄여줍니다. SRE와 DevOps는 코드 또는 제품 자체의 품질 저하 없이 이러한 결과를 달성하는 것을 목표로 합니다.

SRE와 DevOps는 서로 다르지만, 똑같이 중요한 2가지를 묻습니다.

DevOps는 무엇을 수행해야 하는지 묻습니다.

SRE는 어떻게 할 수 있는지 묻습니다.

사이트 안정성 엔지니어의 일상 업무

사이트 안정성 엔지니어는 서비스 수준 지표(SLI) 및 서비스 수준 목표(SLO)를 측정하고, DevOps 팀은 장애 발생률과 시간에 따른 성공률을 측정합니다. SRE는 인프라 구조 개선이라는 다음과 같은 DevOps 원칙과 관련된 책임을 공유합니다.

조직 사일로 줄이기

SRE는 회사에 얼마나 많은 사일로가 있는지에 대해 논의하지 않습니다. 대신, 다른 모든 사람들이 이 문제를 논의하도록 장려합니다. 이 논의는 회사 전체의 툴과 기술을 사용하여 모든 직원이 책임을 분담하도록 하는 데 도움이 됩니다.

실패를 당연한 것으로 받아들이기

SRE는 오류 또는 실패가 너무 많지 않은지 확인해야 합니다. 이를 위해 SLI 및 SLO 점수로 구성된 공식을 사용합니다. SLI는 요청 지연 시간, 초당 요청 처리량 또는 시간당 요청 실패를 계산하여 요청당 실패 수를 계산합니다. SLO는 임계값 및 비율에서 도출되며 일정 시간에 걸친 SLI의 성공을 나타냅니다.

점진적 변경 구현

SRE는 느리고 체계적인 방식의 변경을 위한 것입니다. 회사에서는 빠른 변화를 원하며 지속적인 제품 업데이트에 수반되는 빈번한 릴리즈를 요구합니다. 따라서 DevOps와 SRE는 빠르게 반응하면서 일정하고 통제된 속도를 유지해야 합니다.

툴과 자동화 활용

개발자와 운영 팀에 가치가 있다면 수동 작업을 줄여 최대한 자동화해야 합니다.

모든 것을 측정

SRE 팀은 모든 것이 올바른 방향으로 움직이고 있는지 확인해야 합니다. 다양한 시나리오에 대한 경고를 설정하거나, 피어 코드 검토를 수용하거나, 단위 테스트를 사용하여 이 작업을 수행할 수 있습니다.

사이트 안정성 엔지니어링(SRE)의 미래

사이트 안정성 엔지니어링(SRE)과 DevOps는 중복되는 부분이 많은 2가지 체계입니다. 이 둘의 핵심 목표는 모든 애플리케이션에서 성공 또는 실패를 측정하는 방법과 지속적인 안정성을 얻는 방법을 이해하는 것입니다. 안정성은 단순히 인프라에 대한 것이 아니라 애플리케이션 품질부터 성능 및 보안에 이르는 모든 단계와 관련됩니다. SRE는 소스 코드부터 배포에 이르는 모든 프로세스를 처리하므로 개발과 운영을 연결하는 진정한 다리 역할을 한다는 평가를 받습니다.

계속 읽기