https://hyeo-noo.tistory.com/328
여기에 너무 설명이 잘되어있어서 표기
1번
https://tech.osci.kr/cicd-architecture/
https://hwannny.tistory.com/108
https://blog.naver.com/freepsw/221058337688
2번
https://okbear3.tistory.com/entry/Nginx-%EC%BB%B4%ED%8C%8C%EC%9D%BC-%EC%84%A4%EC%B9%98
https://blog.naver.com/freepsw/221058337688
도커 vm 개념
https://multitab.tistory.com/268
쿠버네티스 클러스터
https://seongjin.me/kubernetes-cluster-components/
https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS8282370549
모놀로식에서 MSA에서 전환 이유 및 방법
마이크로 서비스 (MSA) 는 현재 IT 시장의 큰 골자이다. 모든 MSP 사업자들은 그동안의 모놀리스식 어플리케이션에서 MSA 아키텍쳐로의 전환이 핵심적인 요지이다.
애플리케이션 개발 초기에는 전체 애플리케이션의 소스 코드를 하나의 배포 유닛(war 또는 Jar)으로 내장시키는 '모놀리식' 방식을 이용하였다. 하지만 기존 애플리케이션에 최소한의 변경 사항이 있어도 자체적인 QA(Quality Assurance) 주기에 따라 대규모 업데이트를 해야 하거나 일부 애플리케이션의 업데이트로 오류가 발생한 경우 전체를 오프라인으로 전환하고 문제를 해결하는 등 다운타임이 발생하게 되었다. 그래서 보통 은행이나 게임서버 같은 경우 점검시간(12:00~12:30) 등을 정해놓고 사용자가 가장 적게 접속하는 시간을 이용하여 패치 등을 진행하였다.
이러한 문제점을 해결하기 위해 전통적인 모놀리식(monolithic) 접근 방식과 다르게 애플리케이션을 핵심 기능으로 세분화하여 하는 MicroService(MS)라는 아키텍처 기반의 접근 방식이 탄생하게 되었다. 여기서 각 기능을 서비스라고 부르며, 독립적으로 구축하고 배포할 수 있게 되었다.
즉 도메인의 기능별로 서비스를 세부화 시키고 예를 들어 , 회원가입 서비스 , 예약 서비스, 결제 서비스 등
그러한 서비스들을 컨테이너와 쿠버네티스를 통해 관리하는 아키텍쳐를 그리게 된것이다.
이러한 MSA 구조에서 또한 중요하게 생각되는 것은 CI/CD 개념이다.
GIT( CI 툴 ) 에서 코드들을 통합하고 형상관리 하며 젠킨스에서 그 코드들을 가져와서 Docker 플러그인을
통해서 docker file을 빌드한다.
그리고 CD 측면의 단계에서는 Dockerhub나 Harbor 과 같은 Docker Private Registry에 빌드된 도커이미지를
저장하고 Kubernetes를 통해 배포,수정,삭제 등 (라이프사이클 관리) 등을 한다.