9장. 운영자 철학
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
오퍼레이터가 해결하고자 하는 문제에 대해 알아보고, SDK로 오퍼레이터를 빌드하는 방법에 대한 자세한 예제를 살펴봤습니다. 또한 OLM을 사용하여 일관된 방식으로 오퍼레이터를 배포하는 방법도 살펴보았습니다. 이제 이러한 전략을 그 바탕이 되는 전략적 아이디어와 연결하여 '연산자는 무엇을 위한 것인가'라는 실존적 질문을 이해해 보겠습니다.
운영자 개념은 사이트 신뢰성 엔지니어링(SRE)에서 유래했습니다. 1장에서 소프트웨어 SRE로서의 운영자에 대해 이야기했습니다. 이제 몇 가지 주요 SRE 원칙을 검토하여 운영자가 이를 어떻게 적용하는지 이해해 보겠습니다.
모든 애플리케이션을 위한 SRE
SRE는 사용자와 기능이 계속 증가하는 대규모 시스템 운영의 어려움에 대응하기 위해 Google에서 시작되었습니다. SRE의 핵심 목표는 서비스를 운영하는 팀이 그에 비례하여 성장하지 않고도 서비스를 성장시킬 수 있도록 하는 것입니다. 큰 규모의 팀 없이도 시스템을 대규모로 실행하기 위해 SRE는 배포, 운영 및 유지 관리 작업을 처리하는 코드를 작성합니다. SRE는 다른 소프트웨어를 실행하는 소프트웨어를 만들고, 이를 계속 실행하며, 시간이 지남에 따라 관리합니다. SRE는 자동화를 핵심 원칙으로 하는 보다 광범위한 관리 및 엔지니어링 기술입니다. "자율" 또는 "자율 주행" 소프트웨어와 같은 다른 이름으로 그 목표를 언급하는 것을 들어보셨을 것입니다. 그림 4-1에서 소개한 운영자 성숙도 모델에서는 이를 "자동 파일럿"이라고 부릅니다.
오퍼레이터와 오퍼레이터 프레임워크를 사용하면 Kubernetes에서 실행되는 애플리케이션에 대해 이러한 종류의 자동화를 더 쉽게 구현할 수 있습니다. Kubernetes는 서비스 배포를 오케스트레이션하여 상태 비저장 애플리케이션에 대한 수평 확장 또는 장애 복구 작업 중 일부를 자동으로 수행합니다. 이는 분산 시스템 리소스를 API 추상화로 표현합니다. 개발자는 오퍼레이터를 사용하여 이러한 관행을 복잡한 애플리케이션으로 확장할 수 있습니다.
잘 알려진 "SRE 서적"인 사이트 신뢰성 엔지니어링 (Betsy Beyer 외, O'Reilly)은 SRE 원칙에 대한 권위 있는 가이드입니다. "정상 작동 중에 사람이 시스템을 건드려야 한다면 버그가 있는 것입니다."라는 Google 엔지니어 Carla Geisser의 말은 SRE의 자동화 요소를 대표적으로 설명합니다.1 SRE는 이러한 버그를 수정하는 코드를 작성합니다. 오퍼레이터는 Kubernetes의 광범위한 애플리케이션 클래스에 대한 이러한 수정 사항을 프로그래밍할 수 있는 논리적인 장소입니다. 오퍼레이터는 애플리케이션을 계속 실행하는 정기적인 작업을 자동화하여 사람이 개입하는 버그를 줄입니다.
수고스럽지 않게, 회전하지 않게
SRE는 시스템 운영에 필요한 작업을 수행하는 소프트웨어를 만들어 수고를 줄이려고 노력합니다. ...