질문과 대답: SRE에 참여하려면 코딩하는 법을 알아야 하나요?

사용자가 SRE 참여를 고려하고 팀에서 SRE 프랙티스 도입을 생각하고 있을 때 발생하는 일반적인 질문은 "코딩 방법을 알아야 하나요?"입니다.

간추려서 대답하면 예입니다.

그러나 풀어서 대답을 하자면 약간 더 미묘 차이가 있습니다. SRE(사이트 안정성 엔지니어링)에 있어서 코딩이 필요한 세 가지 상황과 각 상황에 필요한 코딩 전문 지식 수준을 살펴봅시다. 이 목록은 완전하지 않지만 이 시나리오들은 보다 일반적인 사용 사례들에 해당합니다.

시나리오 1: 자동화를 통한 toil 제거

사이트 안정성 엔지니어 및 SRE 프랙티스를 사용하는 다른 사용자는 가급적이면 toil을 제거하려고 합니다. "Toil"은 SRE에서 특정한 것을 의미합니다. 사람이 수행하는 운영 작업 중 특정한 특성이 있는 작업을 가리킵니다. 번거로운 작업에는 장기간 사용되는 값이 없습니다. 의미 있는 방식으로 서비스를 개선하지 않습니다. 종종 반복적이며 자동화될 수 있더라도 대부분 수동 작업입니다. 시간에 따라 서비스 또는 시스템의 규모가 커지면 해당 시스템에 대한 요청의 수도 비례해서 양이 증가하고 수동 작업도 더 많이 필요해질 수 있습니다.

예를 들어 SRE 팀이 매주 무언가를 다시 설정하거나 새 계정과 디스크 공간을 수동으로 프로비저닝하거나 이를 수동으로 반복적으로 다시 시작해야 하는 서비스가 있다면 이것이 toil에 해당하는 작업 로드입니다. 해당 작업을 완료해도 장기적으로나 영구적으로 서비스가 개선되지 않습니다. 이러한 작업은 거듭 반복해야 할 가능성이 큽니다.

SRE는 번거로운 작업을 싫어합니다. 적절한 경우 최대한 제거하기 위해 노력합니다. 이 부분이 SRE에서 자동화가 제 역할을 톡톡히 하는 영역입니다. 이러한 요청을 자동으로 처리할 수 있으면 팀은 보다 보람 있고 영향력 있는 작업을 수행할 여력이 생깁니다.

코딩 전문 지식: 자동화에는 몇 가지 코딩 전문 기술이 필요하지만 소프트웨어 엔지니어링 기술이 전부 필요하지는 않습니다. 가령 PowerShell이나 Bourne Shell에서 작은 스크립트를 작성할 수 있거나 거의 코드 없이 Azure 논리 앱을 작성할 수 있는 수준이라 하더라도 이 앱으로 toil을 제거할 수 있습니다.

시나리오 2: API/DSL(도메인별 언어)/템플릿을 통한 제어

SRE 작업에 반드시 필요하지는 않지만 API, DSL 및 템플릿을 통해 환경을 제어할 수 있으면(특히 클라우드 환경) SRE에서 작업을 확장할 수 있습니다. 인프라 프로비저닝/프로비저닝 해제, 모니터링 구성 및 여러 서비스들의 통합은 코딩을 통해 훨씬 더 효율적으로 작업할 수 있습니다.

코딩 전문 지식: 앞선 시나리오와 마찬가지로 몇 가지 코딩 전문 기술이 필요하지만 소프트웨어 엔지니어링 기술이 전부 필요하지는 않습니다. 이전에 언급한 스크립트 및 논리 앱 외에 Azure Resource Manager 템플릿도 최소한의 코딩 경험으로 사용이 가능합니다.

시나리오 3: 코드 수정

사이트 안정성 엔지니어는 시스템 안정성 개선이 목표입니다. 이러한 목표를 달성하려면 시스템의 소스 코드를 철저히 살펴 문제를 확인해야 하고, 많은 경우에 있어서 코드 베이스에 수정 사항을 다시 적용해야 합니다. 이러한 작업의 복잡성 수준은 상황에 따라 크게 다를 수 있지만 코딩 전문 지식은 이러한 경우에는 확실한 요구 사항입니다.

코딩 전문 지식:이 시나리오에서는 완벽한 소프트웨어 엔지니어링 전문 지식이 필요합니다.

다음 단계

사이트 안정성 엔지니어링 또는 로우코드 작업에 대해 자세히 알고 싶으십니까? 위에 링크된 제품 설명서 사이트 안정성 엔지니어링 허브를 확인하세요.