인프라
고친 사람 github-actions[bot]
짜 놓은 소프트웨어를 어딘가에 올려서 계속 돌게 해 주는 구역입니다. 서버를 갖추고 자원을 나누고 올려 보내는 길을 내는 일이 모두 여기 듭니다. 무엇을 다루는지는 한 문장으로 닫히지 않고 목록으로 열립니다.
쉽고 빠른 이해
코드를 다 짜도 그것을 얹어 돌릴 바탕이 있어야 합니다. 그 바탕을 갖추고 손보는 구역이 인프라입니다. 컨테이너를 여럿 묶어 굴리는 쿠버네티스가 이 구역의 물건입니다.
이 구역이 따로 서는 까닭은 얹는 일과 짜는 일이 다른 기술을 쓰기 때문입니다. 기능이 아무리 잘 돌아도 얹을 바탕이 없으면 사용자에게 닿지 않습니다.
안은 대개 이 순서로 갈립니다.
- 무엇 위에 올릴지 고릅니다
- 그 위로 올려 보내는 길을 냅니다
- 올라간 것이 어떤 상태인지 들여다봅니다
대가는 바탕이 늘어나는 만큼 손볼 곳도 늘어난다는 것입니다.
상세
인프라는 소프트웨어가 올라가 도는 바탕과, 그 바탕을 갖추고 손보는 구역을 함께 가리킵니다. 물리 서버든 가상 머신이든 클라우드에서 빌린 자원이든, 코드가 얹혀 도는 것이면 전부 바탕에 듭니다.
이 이름은 한 문장으로 닫히는 정의가 아니라 위치 지정입니다. 묻는 말이 하나가 아니기 때문입니다. 무엇 위에 올리나. 어떻게 올리나. 요청이 몰리면 무엇을 늘리나. 올라간 것이 지금 어떤 상태인가. 물음마다 답이 다른 것을 가리킵니다. 그래서 답이 목록이 됩니다.
그 목록은 대개 세 단계로 갈립니다. 먼저 무엇 위에 올릴지 고릅니다 — 물리 서버와 가상화, 컨테이너, 클라우드가 이 단계에 붙는 이름입니다. 그 다음 만든 것을 그 위로 올려 보내는 길을 냅니다 — 지속적 통합과 배포, 롤백이 이 단계에 섭니다. 마지막으로 올라간 것이 지금 어떤 상태인지 들여다봅니다 — 모니터링과 로그, 알림이 이 단계의 이름입니다.
세 단계 옆에 두 갈래가 더 붙습니다. 요청이 몰릴 때 자원을 나누고 늘리는 갈래와, 터졌을 때 받아 내고 되돌리는 갈래입니다.
바탕을 갖추는 일만 이 구역인 것은 아닙니다. 올라간 것을 굴리는 일도 이 구역입니다. 그 안에 드는 일이 넷입니다.
- 팀을 짜는 일
- 시스템을 설계하는 일
- 부하를 받는 상태로 굴리는 일
- 시간이 지나면서 그 시스템을 발전시키는 일
바탕이 늘어나면 손볼 곳도 같이 늘어납니다. 그 손질을 어디까지 사람이 하고 어디부터 소프트웨어에 넘기느냐가 이 구역이 늘 마주치는 물음입니다.
이 구역에서 마주치는 이름은 대개 따로 한 항목씩 받습니다. 이 편은 그 이름들이 어디쯤 놓이는지만 짚습니다.
경계
개발자에게 쓸 내부 바탕과 도구를 만들어 주는 일도 이 구역인가. 아닙니다. 플랫폼 팀은 기업 전체가 함께 쓰는 관례·지식·도구를 유지합니다. 그래서 개발자가 같은 바탕 위에 선 다른 팀과 제품에도 빨리 기여할 수 있습니다. 인프라가 바탕 자체를 갖추는 구역이라면, 그 바탕을 개발자가 바로 집어 쓸 형태로 다듬어 내주는 일은 플랫폼 엔지니어링이 받습니다.
여담
오케스트레이션의 기술적 정의는 정해 둔 작업 흐름을 실행하는 것입니다 — 먼저 A, 그 다음 B, 그 다음 C. Kubernetes 공식 문서는 그 정의를 적어 둡니다. 그러고는 자기가 단순한 오케스트레이션 시스템이 아니라고 덧붙입니다. 오히려 오케스트레이션의 필요를 없앤다는 것입니다.
관련 항목
소프트웨어가 올라가 도는 바탕
서버 · 가상화 · 가상 머신 · 하이퍼바이저 · 컨테이너 · 컨테이너 이미지 · 클라우드 · 베어메탈
컨테이너를 묶어 굴리는 도구
쿠버네티스 · 오케스트레이션 · 파드 · 클러스터 · Docker · 컨테이너 런타임
인프라를 코드로 적는 수단
코드형 인프라 · 테라폼 · 선언적 설정 · 설정 관리 · 프로비저닝
만든 것을 올려 보내는 과정
지속적 통합 · 지속적 배포 · 아티팩트 저장소 · 배포 · 롤아웃 · 카나리 배포 · 롤백 · 릴리스 엔지니어링 · 커밋에서 배포까지
요청을 나누고 자원을 늘리는 장치
로드 밸런서 · 리버스 프록시 · 오토스케일링 · 용량 계획 · CDN · DNS · 다중화
올라간 것의 상태를 드러내는 신호와 도구
모니터링 · 알림 · 로그 · 관측성 · Prometheus · 시계열 · 대시보드
이 구역을 굴리는 방식에 붙은 이름
SRE · 데브옵스 · 플랫폼 엔지니어링 · 자동화 · 토일
인프라가 무너졌을 때 밟는 단계
다른 이름: infrastructure · 인프라스트럭처 · 인프라와 SRE · 인프라와 사이트 신뢰성 엔지니어링 · Infrastructure and SRE