썸네일 클라우드 네이티브란? 1. 클라우드 네이티브란? 클라우드 네이티브란 소프트웨어 애플리케이션을 클라우드 환경을 기반으로 설계하고 구축하는 방식을 의미합니다. 클라우드 네이티브 앱은 클라우드 서비스의 특성을 활용하여 확장성, 탄력성, 안정성, 비용 효율성 등을 갖출 수 있으며 이를 위해 Microservices, CI/CD, DevOps, Containers 등의 기술과 방법론을 사용합니다. 2. 클라우드 네이티브 아키텍처 2.1 마이크로서비스 마이크로서비스에 대해서는 아래 글에 정리해 두었습니다. 마이크로서비스 아키텍처란? (https://sundlscha.tistory.com/29) 마이크로서비스 아키텍처(MSA)란? 1. 마이크로서비스 아키텍처(MSA)란? 마이크로서비스 아키텍처(MSA)는 시스템의 개별 기능을 서비스 단위..
썸네일 Service Mesh란? 1. Service Mesh란? Service Mesh는 마이크로서비스 간 통신이 매시 형태인 것에서 착안된, 마이크로서비스 간의 통신을 나타내는 개념입니다. 이는 여러 서비스 간의 통신을 관리하는 것을 도와줍니다. 소프트웨어를 작은 단위로 나누어 개발하는 방식인 마이크로서비스에서는 각각의 서비스들이 서로 통신하여 기능을 수행하기 때문에 이러한 분산된 통신을 관리해 줄 도구가 필요해집니다. Service Mesh는 서로 다른 기능 간의 통신이 원활할 수 있도록 통신을 관리해 주고, 데이터를 안전하게 전송하고 저장할 수 있도록 해줍니다. 또한 서비스들의 동작을 계속해서 모니터링하여 이슈가 발생할 경우 알려줍니다. 일반적으로, Service Mesh는 Kubernetes와 같은 컨테이너 오케스트레이션 환경 ..
썸네일 마이크로서비스 아키텍처(MSA)란? 1. 마이크로서비스 아키텍처(MSA)란? 마이크로서비스 아키텍처(MSA)는 시스템의 개별 기능을 서비스 단위로 잘라 서비스끼리 gRPC나 RESTful API 등으로 연계하여 시스템 전체를 구성하는 느슨한 결합(loose coupling) 아키텍처입니다. 전체 시스템을 여러 개의 작고 독립적인 부분으로 나누는 방식으로, 각 부분들은 특정한 업무나 기능을 담당하고 서로 통신하여 전체 시스템을 이루게 됩니다. 이러한 작고 독립적인 부분을 마이크로서비스라고 부르며, 이들은 독립적으로 배포하고 확장시키고 유지 보수 할 수 있습니다. 이를 통해 더 유연하고 확장성이 높은 시스템을 구성할 수 있으며 장애 발생 시 전체 시스템에 미치는 영향을 줄일 수 있습니다. 참고로, 마이크로서비스 아키텍처와 반대되는 개념은, 시..
썸네일 Jenkins - GitHub Private하게 연결하기 (2) 이전 글 : https://sundlscha.tistory.com/27 Jenkins - GitHub Private하게 연결하기 (1) 1. Spoke 가상 머신에 Git 설치하기 가장 먼저 Spoke 가상 머신에 Git을 설치해 줍니다. 그렇지 않으면 아래에서 설명할 에러가 발생할 수 있습니다. https://git-scm.com/download/win로 이동하여 Windows용 Git을 sundlscha.tistory.com 3. GitHub Webhook Trigger 생성 이제, GitHub로 이동하여 Webhook Trigger를 생성해 보도록 하겠습니다. 상단의 [⚙️ Settings] > [Webhooks] > [Add webhook] 버튼을 클릭합니다. Payload URL에 Jenkins..
썸네일 Jenkins - GitHub Private하게 연결하기 (1) 1. Spoke 가상 머신에 Git 설치하기 가장 먼저 Spoke 가상 머신에 Git을 설치해 줍니다. 그렇지 않으면 아래에서 설명할 에러가 발생할 수 있습니다. https://git-scm.com/download/win로 이동하여 Windows용 Git을 다운로드 합니다. Git - Downloading Package Download for Windows Click here to download the latest (2.44.0) 32-bit version of Git for Windows. This is the most recent maintained build. It was released about 2 months ago, on 2024-02-23. Other Git for Windows down..
썸네일 Windows에 Jenkins 설치하기 1. 테스트 환경 생성 [시나리오] RDP(3389) 포트를 통해 외부에서 접근할 수 있는 Windows 가상 머신을 한 대 생성합니다. 해당 가상 머신에서 접근 가능한, Public IP가 없는 Window 가상 머신을 한 대 생성합니다. 두 가상 머신은 다른 가상 네트워크에 존재하며, VNet Peering을 통해 연결되어 있습니다. ※ 리소스 그룹 한 개에 모든 리소스를 전부 다 배포할 예정입니다.※ 1.1 리소스 그룹 생성 [기본] 탭 [검토 + 만들기] 버튼을 클릭하여 리소스 그룹 생성을 완료합니다. 1.2 가상 네트워크 생성 - Hub [기본 사항] 탭 [IP 주소] 탭 [검토 + 만들기] 버튼을 클릭하여 Hub 가상 네트워크 생성을 완료합니다. 1.3 가상 네트워크 생성 - Spoke [기본..
썸네일 Jenkins, ArgoCD로 CI/CD Pipeline 구성하기 (3) 이전 글 : https://sundlscha.tistory.com/16 Jenkins, ArgoCD로 CI/CD Pipeline 구성하기 (2) 지난 글 : https://sundlscha.tistory.com/15 Jenkins, ArgoCD로 CI/CD Pipeline 구성하기 (1) ※ Jenkins와 ArgoCD 등 CI/CD Pipeline 구성에 필요한 모든 리소스는 사전에 배포해 두었습니다.※ 1. CI/CD Flow 개발자가 코드를 sundlscha.tistory.com ※ Jenkins와 ArgoCD 등 CI/CD Pipeline 구성에 필요한 모든 리소스는 사전에 배포해 두었습니다.※ 6. GitHub와 ArgoCD 연결 두 번째 Job에 의해 Github Repository의 depl..
썸네일 Jenkins, ArgoCD로 CI/CD Pipeline 구성하기 (2) 지난 글 : https://sundlscha.tistory.com/15 Jenkins, ArgoCD로 CI/CD Pipeline 구성하기 (1) ※ Jenkins와 ArgoCD 등 CI/CD Pipeline 구성에 필요한 모든 리소스는 사전에 배포해 두었습니다.※ 1. CI/CD Flow 개발자가 코드를 수정한 후 'Toy-Project-Web' Repository에 변경 사항을 push합니다. (Toy-Project-Web이 sundlscha.tistory.com ※ Jenkins와 ArgoCD 등 CI/CD Pipeline 구성에 필요한 모든 리소스는 사전에 배포해 두었습니다.※ 4. Jenkins에서 Job 생성 (1) Push the image to ACR 4.1 Project 생성 [+ New ..
썸네일 Jenkins, ArgoCD로 CI/CD Pipeline 구성하기 (1) ※ Jenkins와 ArgoCD 등 CI/CD Pipeline 구성에 필요한 모든 리소스는 사전에 배포해 두었습니다.※ 1. CI/CD Flow 개발자가 코드를 수정한 후 'Toy-Project-Web' Repository에 변경 사항을 push합니다. (Toy-Project-Web이라는 GitHub Repository에는 Dockerfile과 웹 어플리케이션 소스 코드가 포함되어 있습니다.) GitHub에 설정된 Webhook이 push 이벤트를 감지하고 Jenkins의 job을 트리거합니다. Jenkins는 트리거를 받아 구성된 job을 실행하여 새로운 코드 변경 사항을 기반으로 이미지를 build하고 이를 Azure Container Registry에 push 합니다. Jenkins의 첫 번째 jo..