Kubernetes 환경에 배포해둔 인프라 관련 Pod (Kafka, Zookeeper, Jaeger 등...)의 로그 파이프라인과 메트릭 관련 대시보드를 구축하였다.
로그의 경우 노드에 자동으로 저장되는 컨테이너 로그를 Fluentbit을 사이드카 또는 DaemonSet으로 배포하여 Fluentd로 포워딩하고 Elasticsearch로 저장시키고 이를 Grafana로 시각화하였다.
Pod마다 로그의 형식은 다소 다르지만 컨테이너 로그로 저장이 되기 때문에 파싱에 큰 어려움은 없었다. 다만 Timestamp가 기본적으로 로그 메시지 안에 있는 경우와 없는 경우가 있어서 이에 대한 후처리를 하는 과정이 필요했다.
메트릭 수집의 경우 Prometheus Exporter + ServiceMonitor를 별도로 배포해야 하는 경우과 ServiceMonitor만 배포해도 되는 경우로 나뉘어져 있었는데 Pod를 Helm을 통해 배포했기에 공식 리포지토리에 있는 values.yaml 명세를 참고하여 세팅했다.
대시보드는 Grafana에서 사용자가 가장 많은 것들을 골라서 했었는데 메트릭을 직접 관리해본 경험이 없다보니 일단 만들어져 있는 것들을 그대로 쓰고 필요하다면 커스텀을 해봐야 할 것 같다.
사실 마이크로서비스 관련 세팅은 작년에 끝냈지만 인프라 부분은 늦어지고 있었는데 이번 기회에 어느 정도 마무리해서 마음 어딘가 답답했던 것이 사라진 것 같다.
추후 부하 테스트를 하면서 이번에 구성한 세팅을 적극적으로 활용할 수 있을 것 같다.
KISA에서 배포한 CCE 점검 가이드라인에 따라 각종 DB, 웹 서버에 대한 점검을 진행하였다. 다만 대부분의 리소스가 컨테이너로 배포되어 있어서 가이드라인에 있는 조치를 100% 이행할 수 없는 경우가 있었다. (요구사항을 맞출 수는 있으나 조치 방법이 상이한 경우, 또는 요구사항이 굳이 필요하지 않는 경우 등...)
이 부분은 추후 점검 시 점검 담당자와 논의하면서 조정을 해봐야 할 것 같다.
추가로 다음주에는 OS 관련 CCE 점검을 진행할 예정이다.
작년 말부터 개발팀에 도입한 Confluence에 각종 개발 문서와 템플릿을 깎고 있는 중이다.
Jira와 Confluence의 경우 내가 입사하기 몇 년 전부터 써보자는 이야기가 많았으나 관리가 어려워 실제로 도입을 하지 못했다고 하는데 내가 총대를 메고 Jira와 Confluence를 도입하자고 했기 때문에 관리 역시 꾸준히 해주고 있다.
다행인 것은 Jira, Confluence를 관리하지는 않더라도 실무에 있어서 도움이 많이 되고 있다는 의견들이 많다는 점이다.
뒤에서도 한 번 이야기하겠지만 내가 다니는 회사의 경우 PM, 기획자가 없다보니 디자이너와 개발자들이 기획 업무와 프로젝트 관리도 같이 해야 하는 상황이라 프로젝트 기획 및 일정 관리에 차질이 생기지 않게끔 내가 있는 동안에는 계속해서 팀원들과 논의하면서 Jira, Confluence 관련 가이드와 업무 프로세스를 만들 예정이다.
다음달부터 진행될 신규 프로젝트를 위해 Spring에 익숙하지 않은 팀원들을 대상으로 짧은 사내 스터디를 진행하였다. 스터디라기보다는 강의라고 하는 것이 맞을 것 같기도 하다. 내가 누군가를 가르칠 정도의 레벨은 당연히 아니긴 하지만 Spring을 이번 프로젝트에서 처음 써봤거나 아예 써보지 않은 팀원들이 있어서 자연스레 내가 담당하게 되었다.
스터디에 필요한 자료는 과거 내가 독학할 때 봤던 강의들, 서적들을 요약한 자료들을 사용하였는데, 이전 자료들과 공식 문서를 비교해 보면서 내가 잘못 알고 있던 것들이나 설명이 추가로 필요한 부분을 보완하면서 나도 한 번 더 복습을 하는 계기가 되었다.
1. 올해 어떤 공부를 해야 할 지를 정리해보았다.
그리고 공부 계획과 일정을 체계적으로 관리하기 위해 개인 Jira 프로젝트를 생성하였다.
작년에는 개발자가 된 이후 사이드 프로젝트를 따로 하지는 않았고 프로젝트에 사용했던 기술들을 복습하는 위주로 개인 공부를 했는데 올해에는 내가 사용했던 기술들에 대한 복습과 주력 언어와 프로그래밍, 데이터베이스와 자료구조 및 알고리즘 위주로 공부를 진행하게 될 것 같다.
특히 다른 영역은 개발자가 되기 이전에도 따로 공부를 했었지만 데이터베이스 그 자체를 깊게 공부한 적은 없었는데 회사 특성상 MongoDB와 Elasticsearch를 깊게 파야 할 것 같아서 올해에는 RDBMS로는 PostgreSQL을, NoSQL로는 MongoDB, Elasticsearch를 깊게 공부해볼 생각이다.
사이드 프로젝트의 경우 작년에 퍼블리셔에서 프론트엔드 개발자로 전향하는데에 성공한 여자친구의 의사에 따라 간단하게 진행할 수도 있을 것 같고, 안 할 수도 있을 것 같다.
2. 여자친구와 올해 커플 버킷리스트를 같이 만들었다.
개인 버킷리스트는 각자 생각해서 다음주에 이야기해보기로 했다.
위에서 설명했지만 우리 회사는 안타깝게도 PM, 기획자가 없다. 채용 필요성에 대해서는 지속적으로 이야기하고는 있으나 빠른 시일 내에 불러올 수는 없는데 그 상황에서 신규 프로젝트가 또 진행될 예정이라 프로젝트 기획 및 일정 관리에 대해 계속해서 공부를 하고 있다.
레퍼런스를 많이 찾아보고 이와 관련된 내용을 팀원들에게 공유하고 기획에 활용하고 있긴 하지만 놓친 내용 / 산출물이 계속해서 생기고 있는데 프로젝트 기획을 제대로 해 본 적이 없다보니 어쩔 수 없이 겪게 되는 문제인 것 같다.
북마크 / 스크랩해둔 국내, 국외 개발 관련 아티클 정리
X (구 트위터) 에 테크크론탭이나 해외 개발 관련 계정들에 올라오는 아티클들을 많이 저장해뒀었는데 정작 내용을 정리하지는 않아 파편화되어있었는데 이번 기회에 밀린 것들을 정리할 생각이다.
이펙티브 자바 복습
이펙티브 자바의 경우 작년 7월까지 공부하다가 회사 일이 바빠지면서 멈췄었는데 다시 진행할 예정이다.
MongoDB 공식 문서 정리
작년에 인터넷 강의로 잠깐 본 수준으로 프로젝트에 사용했고 올해 신규 프로젝트 뿐만 아니라 우리 회사의 도메인 특성 상 계속해서 써야 할 일이 많아서 이번에 공식 문서 정리를 시작으로 제대로 공부해볼 생각이다.