더 나은 것
요즘 남는 시간에 컴퓨터를 만진다면 개인용 클러스터를 관리하는 작업을 한다. 오라클 클라우드의 인스턴스에 k3d로 생성한 Kubernetes Cluster인데 사실 클러스터라는 말이 무색하게 그냥 컴퓨터 하나 사용하는 Kubernetes 환경이 있는 것이다.
스타트업을 창업했을 때 일손이 부족한 가운데 급히 인프라 작업을 하면서 Kubernetes에 제품을 배포하기 위한 스크립트를 만들어 사용했다. 최대한 멱등적으로 만들어보긴 했지만 스크립트의 특성 상 절차적인 부분을 완전히 지울 수는 없었다. 게다가 환경변수를 통해 값들을 주입하는 부분이 많아 복잡했다. 내가 만들었으니 나는 이해할 수 있지만 이걸 처음 접하는 동료들은 어려울 수 밖에 없었다. 창업의 길에서 나와 새로운 회사에서 일할 때도 내게 맡겨진 건 인프라 작업이었는데 정해진 일정에 맞추기 위해선 이전 경험과 코드를 재활용 해야했다. 결과적으로 작업은 완수하였지만 작업의 내용을 동료들에게 전달하고 교육시키는 일이 쉽지 않았다.
이번에 잠시 짬이 나는 동안, 더 나은 방법을 찾아 적용해보고 있다. Helmfile + Helm Chart를 조합하면 내가 원하는 외부 Helm Chart들을 쉽게 설치할 수 있고 내가 원하는 Kubernetes 자원들도 나만의 차트를 만들어 설치할 수 있다. 사용해야 하는 도구는 Helm + Helmfile이 전부이며 이를 사용하기 위해 배울 것도 거의 없다. 차트 생성을 위한 지식만 갖추면 쉽게 원하는 자원을 추가할 수 있다.
이렇게 보통 더 나은 것들이 있다. 코드의 질, 제품의 질을 향상시키기 위해 늘 더 나은 것이 있는지 찾아보고 적용하는 것도 소프트웨어 엔지니어에겐 일상이다. 아, 그리고 사실 이 글의 목적 중 하나는 앞서 이야기한 것대로 Writefreely도 설치 방법을 변경했는데 잘 동작하는지 테스트하는 것이다. 문제가 없다면 이 글이 잘 올라갈 것이다.