GitOps
개요
아르고CD의 아키텍쳐를 가져왔는데, 대충 흐름만 이해하면 된다.
깃옵스는 깃을 활용하여 운영 업무를 수행하는 방식, 전략, 풍조, 문화를 일컫는다.
(무슨무슨 옵스가 원래 다 개념이 포괄적이다.)
주된 접근법은 다음과 같다.
- 깃에 시스템의 운영 희망 상태를 반영한다.
- 깃에 반영된 희망 상태에 맞춰 실제 운영 시스템이 그대로 구축된다.
- 이걸 도와주는 다양한 툴 중 가장 흔히 사용되는 것이 Argo CD.
원래 사람이 직접 운영 시스템을 손봐야했던 기존의 작업에 깃이라는 툴을 사이에 추가하는 것이다.
깃을 사용하는 이유는 위에 그냥 개발 상 코드를 올리는 저장소로 깃을 사용하는 이유와 정확히 일치한다.
버전 관리, 협업 관리가 용이하기 때문이다.
IaC가 발전하며 운영 업무에도 문서 정리와 책임자 분할과 같은 운영 전략에만 의존하지 않고 조금 더 체계적으로, IT 기술자 답게 기술을 활용하여 업무을 관리할 수 있게 됐다.
그러면서 자연스레 운영 업무 역시 명확하게 버전과 협업을 확실하게 관리할 수 있는 방향으로 보완해야 한다는 수요가 생겼고, 이에 따라 생긴 하나의 방식이 깃옵스인 것이다.
필요성
깃옵스가 필수적인가?
개인적으로는 아니라고 생각한다.
테라폼을 이용하면 상태 파일만을 공동으로 관리하면서 버전과 협업 관리를 할 수 있다.
그럼 좋은 테라폼 놔두고 왜 굳이 이런 깃옵스를 해야하나?
나는 여기에서 두 가지 이유를 들 수 있을 것 같다.
- 테라폼은 사람이 apply를 해야 하기에, 운영자의 한 작업이 추가된다.
- 반면 깃옵스는 깃에 올리기만 하면 그 상태가 알아서 apply되는 꼴이다.
- 관리 영역에 따라 툴을 분리하기 위함.
- 테라폼은 전체 클러스터 환경을 프로비저닝하는데 활용한다.
- 클러스터 운영 간 발생하는 변경 사항이면서 클러스터 자체를 변경하는 것이 아닌 업무(서비스 업데이트)는 깃옵스로 관리한다.
옵스라는 것들이 으레 죄다 그렇듯, 이걸 도입할지 말지, 도입한다면 어떤 식으로 전략을 가져갈 것인지는 전부 조직의 결정에 달렸다.
관련 문서
이름 | noteType | created |
---|