강의 완강 후 다시 듣는 중, 배포 도전...?
만들어진 게시판을 간단하게 배포를 하려면 어떤 순서로 하는 것이 좋을까요? 직접 배포를 해보고 데이터의 이동 흐름을 보고 싶어서요.
GPT 선생님은 아래와 같이 하라고 하는데, 선생님께서 생각하는 간단한 방법이 있는지 궁금합니더...
🚀 간단한 배포 방법
Docker Compose 파일 작성 (
docker-compose.yml)애플리케이션 컨테이너화 (Dockerfile)
서버(배포 환경)에서 실행
1⃣ docker-compose.yml을 작성해서 모든 서비스(MySQL, Redis, Kafka, App)를 한 번에 실행
2⃣ Dockerfile을 작성해서 애플리케이션을 컨테이너화
3⃣ 서버에서 docker-compose up -d --build 실행으로 배포 완료
답변 1
1
재근님, 안녕하세요!
강의 완강하시고 배포까지 연습해보고 계시군요! 대단하십니다! 👍
일단 배포 전략은 너무 다양할 수 있어서, 너무 강의에 국한해서 진행할 필요는 없을 것 같습니다!
개인적으로는 단일 애플리케이션 배포 전략에 대해 따로 경험해보고 진행해보는걸 추천드립니다.
본 강의는 MSA 방향성 때문에 애플리케이션도 많아서, 아마 제대로 띄우려면 복잡성도 크고 서버 비용이 들어갈 수도 있을 것 같네요.
정말 단순하게 서버 1대에 모든걸 배포하는 상황에서는 다음과 같이 할 수 있을 것 같습니다.(사용하시는 서버 스펙에서 다 실행이 될진 모르겠지만)
MySQL/Redis/Kafka를 서버 로컬에 띄워주고, 각 애플리케이션도 포트를 모두 달리 해서 띄워줍니다.
Nginx 서버를 설치하고, api path에 따라서 특정 포트로 실행되고 있는 애플리케이션으로 라우팅해주도록 합니다.
예를 들어, 서버에 80포트(http)로 /article url path로 접근하면,
nginx가 그 요청을 받아서 9000포트에 실행된 게시글 서비스로 라우팅해주는 구성입니다.
위 과정에서는 Docker는 쓰셔도 좋고, 안 쓰시고 직접 설치해보셔도 좋습니다.
Docker가 분명 편리함은 있지만, 직접 설치하면서 이슈 해결해 나가는 것도 좋은 경험이 됩니다.
https로 통신해보셔도 좋고요!
무중단 배포 또는 배포 자동화를 추가로 고민해보셔도 좋습니다.
조금 더 심화한다면,
각 마이크로서비스별로 개별 서버 군에 배포한 뒤,
각 서버 군 간에는 로드밸런서를 이용하여 통신을 해볼 수도 있습니다. (개별 서비스별로 scale-out 가능하도록)
MySQL, Redis, Kafka도 독립된 서버에 설치할 수 있고요.
일단 간단한 방법으로 해보시는걸 추천드리네요.
배포는 간단해보여도 인프라 개념이 잡혀있지 않으면 구성이 어떻게 되어있는건지 이해가 어려울 수 있습니다.
잘 해내시길 바랍니다!
@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.
0
32
1
consumer에서 에러가 발생할 경우 데이터 유실 문의
0
49
2
게시글 테스트 데이터 삽입
0
51
2
정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?
0
104
2
좋아요 기능 정합성 보장 방법
0
98
2
좋아요 동시성처리 최적의 선택?
1
138
2
프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해
0
92
2
안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.
0
61
1
조회수 조회 로직 질문
1
67
2
비로그인 유저도 어뷰징 방지 정책
1
73
2
CommentServiceTest의 테스트 로직 질문
0
54
2
무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문
1
74
2
path 쿼리 관련 질문드립니다!
0
60
2
antigravity 에디터를 쓰신다면 종료해주세요
1
123
0
프로젝트 구조
0
88
2
article_like_count api test
0
79
2
이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.
0
104
2
[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제
0
92
2
findByPath에서 articleId로도 검색을 해야 할 것 같아요.
0
94
3
jpa ddl-auto none을 하는 이유와 join 방법
0
98
2
팩터리 메소드와 response 객체 사용 이유가 궁금합니다!
0
91
2
커서 기반 페이지네이션 과 무한 스크롤링
0
112
2
게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기
0
97
2
멀티 모듈이 아닌 MSA 환경에서 common
0
158
2





