2000년 초 개발자로 시작해 개발자에서 코딩 설계자로, 그리고 팀장부터 CTO까지 다양한 역할을 수행했다. 2012년 작은 회사의 데브옵스(DevOps) 직군으로 전환했으며, 기존의 전통적인 방식으로는 확장의 한계를 느껴 파이프라인과 자동화 작업을 담당했다.
2018년에는 플랫폼 팀을 시작으로 Mambu 릴리스 팀의 기술 책임자가 돼 깃옵스 방식을 채택해 대부분의 지속적인 통합/지속적인 배포(CI/CD, Continuous Integration/Continuous Deployment) 파이프라인을 설계했다. 2019년부터 Argo CD를 도입했다. 최근에는 깃옵스 채택을 계획하고 있는 유망한 스타트업인 주니(Juni)에 합류했다. Argo CD를 포함한 OSS 프로젝트에 기여한 공로로 2020년 8월에 CNCF 앰버서더(ambassador)로 임명됐다.
깃옵스는 이해하기 어려운 주제는 아니다. 본인이 원하는 환경을 선언적으로 정의하기 위해 깃 리포지터리(Git repository)를 사용한다. 버전 관리와 병합 요청을 통해 변경하는 방식으로 전체 시스템을 감시한다.
일단 깃옵스를 도입하게 되면 Argo CD 같은 툴을 사용하면서 점점 복잡해지기 시작한다. 첫 번째로 관찰가능성(observability)이나 고가용성(high availability)과 같은 내용을 염두해 두면서 Argo CD를 올바르게 설정해야 한다. 그리고 CI/CD 파이프라인에 대해서도 고민해보면서 새로운 깃옵스 리포지토리를 여기에 잘 융합할지도 고민해야 한다. 그리고 조직적으로 운영하면서 다양한 문제가 발생하기도 한다. 어떻게 각 팀을 새로운 설정에 맞게 통합할 것인지 고민해야 할 수도 있다. 또한 대부분 배포하는 네임스페이스별로 쿠버네티스 접근 권한이 나눠져 있을 수 있기 때문에 RBAC(Role-Based ACcess, 역할 기반 접근 통제)를 적절하게 구성하는 데 시간이 소요되기도 하고, 기존 팀의 액세스를 어떻게 새로운 깃옵스 엔진으로 이전할 것인지도 고려해야 한다.
짧은 글, 비디오, 강의 등 다양한 자료가 존재하지만 단편적인 주제를 다루고 있기 때문에 학습 방향을 설정하기 어렵고, 그렇게 내용이 깊지도 못하다.
그래서 Argo CD를 도입하는 것이 어떤 변화를 만들고, 어떻게 사용하는 것인지 파악하기가 쉽지 않다.
독자들이 Argo CD를 처음 시작할 때 기본적으로 필요한 내용인 설치부터 올바른 접근 제어를 설정하는 것까지 전반적인 내용을 가이드하고, 심화 시나리오와 트러블슈팅 과정을 포함해 프로덕션 환경에서 직면할 수 있는 문제들을 다루기 위해서 이 책을 집필했다.
우리는 회사에서 초기에 깃옵스를 도입했으며 깃옵스를 오랫동안 직접적으로 사용했다. 초기에는 자체 깃옵스 오퍼레이터를 구축하려고 했다. 금방 만들 수 있을 줄 알았지만 2~3주 동안 필요한 것이 무엇인지 분석하다가 포기했다. 우리는 운영하면서 많은 문제를 겪었는데 일부는 잘 처리했고 일부는 해결하는 데 많은 시간이 걸렸다. 하지만 그러면서 정말 많은 것을 배웠기에 이것을 독자들과 공유하고자 한다. 확실한 것은 이 책을 통해 Argo CD와 깃옵스를 적용하는 데 큰 도움을 받을 수 있을 것이다.