DevOps & Reliability
코드 배포 자동화(CI/CD)와 인프라의 코드화(IaC), 그리고 서비스 신뢰성을 공학적으로 관리하는 SRE 체계를 배우는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts2 min read
1. Overview
데브옵스 및 신뢰성 공학(DevOps & Reliability Engineering, DRE)은 개발(Dev)과 운영(Ops)의 유기적인 통합을 통해 고품질의 소프트웨어를 신속하고 안정적으로 사용자에게 전달하는 기술적/문화적 체계를 다룹니다.
학습자는 반복적인 배포 과정을 자동화하는 CI/CD 파이프라인을 구축하고, 서버와 네트워크 설정을 코드로 관리하는 IaC(Infrastructure as Code) 기술을 익힙니다. 또한, 구글의 SRE(Site Reliability Engineering) 모델을 기반으로 서비스 수준 목표(SLO)를 설정하고, 로그와 메트릭을 통한 관측 가능성(Observability)을 확보하여 시스템의 불확실성을 데이터 기반으로 제어하는 능력을 배양합니다.
2. Scope & Boundaries
In-Scope
- Continuous Integration/Deployment: 빌드, 테스트, 배포 자동화 파이프라인 물리
- Infrastructure as Code (IaC): Terraform, Ansible 등을 이용한 선언적 인프라 관리
- Containerization & Orchestration: Docker 및 Kubernetes를 통한 실행 환경 표준화
- Site Reliability Engineering (SRE): SLI/SLO/SLA 지표 설계 및 에러 예산(Error Budget) 관리
Out-of-Scope
- 개별 마이크로서비스의 비즈니스 로직 구현 (09-03 Design 영역으로 위임)
- 물리적 데이터 센터 하드웨어 설치 및 관리 (10. SECR 노드로 위임)
Boundaries
- DRE vs. SysAdmin: 기존의 시스템 관리(SysAdmin)가 '수동 운영'에 집중했다면, DRE는 운영의 모든 요소를 '소프트웨어 엔지니어링 문제'로 치환하여 자동화하는 것에 집중합니다.
3. Counterexample
- 단순히 Jenkins 서버를 설치하거나 Dockerfile을 작성하는 것만으로는 DRE 학습이 아닙니다. 배포 실패 시 **자동 롤백(Rollback)**이 수행되는 논리적 조건을 설계하고, 새로운 기능 배포가 시스템의 **가용성(Availability)**에 미치는 영향을 정량적으로 분석하여 '에러 예산' 범위 내에서 변화의 속도를 조절할 수 있어야 합니다.
4. Prerequisites
- 컴퓨터 네트워크 (Practical): 로드 밸런싱, DNS, 포트 포워딩 등 인프라 통신 기초. (08. NFS)
- 리눅스 시스템 프로그래밍 (Recommended): 프로세스 고립 및 셸 스크립팅 능력. (02. SYSP)
5. Learning Map
- Automation Pipelines: 코드 변경이 실제 서버에 반영되기까지의 전 과정을 자동화하는 흐름을 익힙니다.
- Environment as Code: 서버의 상태를 코드로 정의하고 버전 관리하는 IaC 기술을 배웁니다.
- Container Logic: 어디서나 동일하게 동작하는 불변(Immutable) 인프라의 단위인 컨테이너 역학을 이해합니다.
- Reliability Metrics: 시스템의 건강 상태를 숫자로 측정하고 장애에 탄력적으로 대응하는 SRE 원칙을 탐구합니다.
6. Learning Topics
... (Detailed topics will be populated via content promotion) ...