본문 바로가기

전체 글86

[MSA] MSA 에서의 데이터 동기화 문득 고도화를 하다보니 DB 를 각각 나누어서 진행하였는데, 가끔, 데이터의 동기화가 필요한부분도 있을 수 있다는 생각이 문득들었다. 젤 좋은건 동기화가 필요하지 않도록 설계하는 것이라고 하는데 뭐 그게 사실 쉽지 않다. 어떻게 하면 동기화를 할 수 있을까 생각해봤다. 1. 반드시 신뢰성 있는 데이터 업데이트가 필요하다면 CDC 방식으로 구현 트랜잭션 로그감지(Mostly used) 데이터베이스의 트랜잭션 로그를 기반으로 변경 사항을 감지한다다. 트랜잭션 로그에는 데이터베이스에 대한 모든 변경 사항이 기록되어 있으며, 이를 분석하여 변경을 감지 장애가 발생하더라도 복구될 때까지 반복 수행하면서 기필코 반영한다. 2. SAGA 패턴 SAGA 패턴은 애플리케이션 개발자가 보상 트랜잭션을 잘 정의하고 누락되지.. 2023. 12. 18.
[CI/CD] Jenkins 에 Docker 연결 Jenkins로 Gradle 빌드 => Dockerfile로 도커 이미지를 빌드 후 Docker Hub에 Push하고 Spring Boot Server에서 도커 이미지를 Pull해서 실행하게 하기 위해 필요하다. ✔ Jenkins, Docker Hub 연결 Jenkins 대시보드 > Jenkins 관리 > 플러그인 관리 > 설치 가능 > Docker 검색 > Docker, Docker Pipeline 플러그인 설치 및 재실행 ✔ Docker Hub Credentials 등록 Jenkins 대시보드 > Jenkins 관리 > Manage Credentials > Credentials에 접속한다. Store Jenkins에 Domain이 (global)인 화살표를 눌러 Global credentials (u.. 2023. 12. 18.
[CI/CD] GitHub랑 Jenkins 연동 내가 하려고하는 목표 소스를 Git 에 커밋 -> Jenkins 에서 빌드 후 -> 쿠버네티스로 Deploy 일련의 과정을 정리해본다. 1. GitHub Token 발행하기 Github 홈페이지에서 우측 상단의 프로필 사진을 클릭한 후 Setting 메뉴를 클릭. 그 후 왼쪽 메뉴 중 Developer settings를 클릭 Personal access token을 클릭 한후 Generate new token을 클릭. 아래 같이 설정하고 생성 발급되서 보여지는 토큰 값은 이제 두번 다시 보지 못하므로 다른 곳에 메모해두는게 좋다. 2. GitHub repo webhook 설정하기 내가 만든 Repository 에서 settings을 선택하고 webhooks 메뉴를 선택함. 우측 상단의 Add webhoo.. 2023. 12. 18.
[K8S] 쿠버네티스로 Jenkins 설치하기 실행환경 MacOS - M1 Docker 1. jenkins 네임스페이스 생성 MacBookAir KbTest % kubectl create namespace jenkins 2. jenkins.yaml 파일 생성 apiVersion: apps/v1 kind: Deployment metadata: name: jenkins spec: replicas: 1 selector: matchLabels: app: jenkins template: metadata: labels: app: jenkins spec: containers: - name: jenkins image: jenkins/jenkins:lts ports: - name: http-port containerPort: 8080 - name: jnlp-port.. 2023. 12. 18.