AWS EKSDockerKubernetesArgoCDGitOpsAmazon ECRCI/CD
목표
빠른 배포 주기와 안정적인 서비스 제공
상황
- 수동 빌드 및 배포로 신속한 배포 어려움, 롤백 시 치명적
- 배포 과정이 어려워 배포 가능한 인원이 제한적
행동
- AWS EC2 리눅스 서비스에서 Docker, Kubernetes로 마이그레이션
- Git Repository의 변경 사항을 Webhook을 통해 감지 후 자동으로 도커 이미지를 빌드하고 Amazon ECR에 저장하는 파이프라인 구성
- 서비스 상태를 관리하는 매니페스트 Git Repository와 ArgoCD를 연동하여, 서비스 변경 사항을 감지 후 자동으로 배포되도록 구성
결과
- 매니페스트 Git Repository로 배포를 진행하게 되면서 배포 이력과 권한 관리, 롤백이 간편해짐
- 투명하고 일관된 배포 환경으로 권한이 있는 사람이라면 누구나 쉽고 빠르게 기능을 배포할 수 있게 되었음
SentrySlackRedmine모니터링장애대응자동알림
목표
신속한 장애 대응과 장애 상황의 투명성 확보
상황
- 모니터링 시스템 부재로 장애 탐지 지연
- 장애 상황 공유가 채팅/전화로 휘발됨
- 장애 탐지와 전파를 사람이 직접 하였기 때문에 문제 상황에 대한 내용이 부족하여 다시 확인하고 전파하는 일이 빈번
행동
- 장애 탐지, 전파, 복구 단계로 프로세스 수립
- 사람이 장애를 24시간 탐지하기란 어려우므로 모니터링 시스템 Sentry를 도입
- Sentry와 Slack을 연동하여 문제가 발생했을 때 프로젝트 전용 채널로 즉시 알림
- 프로젝트 구성원이 신속히 문제 상황을 인지하여 확인된 내용만 Redmine에 기록 후 전파
- 장애 복구 담당자는 전파된 내용과 모니터링 시스템이 수집한 데이터를 활용하여 장애 복구 진행
결과
- 프로세스를 정립하면서 신속한 장애 대응이 가능해졌고, 장애 상황에 대한 투명성을 확보
C#.NETASP.NET COREVue.jsFlutterDockerJenkinsKubernetesAWSMongoDB
기타
- SQL 함수를 이용하여 검색 응답 속도 4,000ms에서 300ms 수준으로 개선
C#.NETASP.NET COREVue.jsFlutterMySQL
기타
- CRUD 페이지 동적 렌더링 및 동적 필터로 1주일 안에 만들어야하는 관리자 페이지를 3일 만에 구현
- ISMS 모의해킹 대응