배포할 때마다 끊기던 서비스를 무중단으로: Jenkins Rolling Deployment에서 내린 네 가지 결정
타겟 그룹 전체를 동시에 재시작하던 Jenkins 파이프라인을 서버별 순차 배포와 LB 제어로 바꾸며 내린 네 가지 결정과 아직 남은 한계
타겟 그룹 전체를 동시에 재시작하던 Jenkins 파이프라인을 서버별 순차 배포와 LB 제어로 바꾸며 내린 네 가지 결정과 아직 남은 한계
로컬은 Corretto 21인데 빌드 테스트는 JDK 11이 필요할 때, SDKMAN이 기존 JDK를 건드리지 않고 PATH 우선순위만 가로채 세션 단위로 버전을 바꾸는 원리와 기존 JDK를 처리하는 세 가지 선택
docker run을 감싼 쉘로는 실패 원인도 롤백도 다룰 수 없어 Dockerode와 스키마 분리로 테넌트 생성을 자동화한 과정
테넌트가 생길 때마다 손으로 하던 도메인 연결을 Nginx Proxy Manager API로 Proxy Host를 만들어 자동화했다.
NPM과 webserver가 서로 다른 Docker 네트워크에 있어 프록시가 끊긴 원인을 찾고, 네트워크 연결로 컨테이너 간 직접 통신을 복구한 기록
타 부서 제안서의 아키텍처·구축 전략 파트를 며칠 만에 맡아, 모호한 요구사항을 AWS 구조도로 정리한 기록
SonarQube Java 분석의 .class 요구 에러를 빌드로 풀고, brew 없이도 돌도록 서버와 Scanner를 Docker로 옮긴 기록
첫 Ansible ping이 publickey 오류로 막혔고, 인벤토리에 키를 지정해 풀었다. 이어서 ad-hoc 명령과 첫 플레이북까지 돌렸다.
맥북에 Multipass VM 두 대를 띄워 제어노드에 Ansible을 설치하고, 관리노드로 SSH 키 접속을 여는 과정을 정리했다.
Mac에서 컨테이너 IP가 보이는데도 접속되지 않는 건 Docker 네트워크가 Linux VM 안에만 있어서다.