본문 바로가기

분류 전체보기160

Devops Day 56 (5.24) Project 3_마이크로서비스_Day 1 Achievement Goals AWS 클라우드 환경을 기반으로 하는 느슨하게 연결된(loosely coupled) 애플리케이션 아키택처에 대한 이해 Bare minimum - Serverless를 이용한 메시지 대기열 활용 이해 및 구현 - 요구사항에 따른 애플리케이션과 인프라 구현 - 문제사항 해결을 위한 추가 리소스 생성 → DLQ, Legacy 시스템 성능문제 해결, SES - 아키택처 다이어그램 제작 Advanced 인프라 관리와 재사용성을 위한 IaC 활용 → Terraform을 통한 리소스생성 Day 1 일정 프로젝트 요구사항 및 시나리오 는 온라인으로 도넛을 판매합니다. 웹사이트를 통해서 주문 버튼을 누르는 것으로 구매(Sales API)가 가능합니다. 창고에 재고가 있다면 재고가 감소하고.. 2023. 5. 24.
Devops Day 55 (5.23) 컨테이너 오케스트레이션_helm 패키지 매니저 helm 쿠버네티스 패키지 매니저 우리는 이미 앞서 apt나 homebrew과 같이 애플리케이션 실행 파일을 제공하는 패키지 매니저, 혹은 npm과 같이 node.js 관련 모듈을 제공하는 패키지 매니저를 사용해 보았습니다. helm은 쿠버네티스 워크로드를 하나로 묶어서 패키지 형태로 만들고, 배포하고, 설치할 수 있는 도구입니다. 즉, 쿠버네티스 패키지 매니저입니다. 차트, 저장소, 릴리스 - helm에서는 패키지를 차트라고 부릅니다. - helm에서는 패키지가 저장되어 있는 공간을 저장소라고 부릅니다. - 차트를 설치하여, 쿠버네티스 클러스터에 구동될 때, 차트의 인스턴스를 릴리스라고 부릅니다. Hands-on: helm으로 Jenkins 설치하기 공식 Jenkins 차트 설명을 따라 설치를 진행해 .. 2023. 5. 24.
Devops Day 54 (5.22) 컨테이너 오케스트레이션_쿠버네티스 구성 요소 볼륨과 스테이트풀셋 파드는 Stateless합니다 앞서 언급했던 것처럼, 파드는 일시적이며, 언제나 삭제될 수 있음을 감안해야 합니다. 따라서, 파드 그 자체는 Stateless 합니다. 이러한 파드의 교체와 배치를 담당하는 것이 디플로이먼트입니다. 파드가 사라져도, 데이터를 남기고 싶다면 파드 그 자체에 상태(데이터)를 남겨야만 하는 Stateful 애플리케이션으로는 MySQL, mongoDB, redis와 같은 데이터베이스가 있을 수 있습니다. 그래서 쿠버네티스에도 영속적인(Persistence) 데이터(프로그램의 실행이 종료되어도 사라지지 않는 데이터)를 저장하기 위해 볼륨(Volume)을 연결할 수 있습니다. Q. : 볼륨과 퍼시스턴스 볼륨(Persistence Volume)은 어떤 차이가 있나요.. 2023. 5. 22.
Devops Day 53 (5.19) 컨테이너 오케스트레이션_Sprint 새 버전이 망가졌어요 빈 문자열을 입력받은 경우, 빈 객체를 리턴해야 합니다새 버전이 망가졌어요! 스프린트는, 버그가 있는 새 버전을 쿠버네티스를 이용해 롤링 업데이트를 시도하고, 구버전으로 롤백하는 과정을 담은 스프린트입니다. 시나리오 여기 CozServer라는 간단한 WAS가 있습니다. 버전 1.0은 정상적으로 잘 작동하는 애플리케이션입니다. 여기에 디플로이먼트 명세를 적용해서 파드의 레플리카를 배포할 것입니다. 이후에 2.0 버전을 만들고, 디플로이먼트를 이용해 업데이트를 적용합니다. 여기까지는 전혀 문제가 없습니다. 그러나 여기서 우리는 3.0 버전에 의도적으로 버그를 만들 것입니다. 3.0 버전에 문제가 발생하면, 2.0 버전으로 롤백해야 합니다. 목표 : - 파드 명세를 작성할 수 있다. - 디플로이먼트 명세를 작.. 2023. 5. 20.
Devops Day 52 (5.18) 컨테이너 오케스트레이션_쿠버네티스 워크로드 Devops Day 52 (5.18) 컨테이너 오케스트레이션_쿠버네티스 워크로드 쿠버네티스 설치 : 1. Minikube 설치 : 미니큐브는 로컬 쿠버네티스로, 쿠버네티스를 배우고 개발하기 쉽게 하는 것에 초점을 맞추고 있습니다. Ubuntu에 설치 위해 아래 와 같은 cmd 기입 합니다. curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube 2. 클러스터 시작하기 위해 minikube start 명령 기입합니다. 3. 클러스터에 접근 할 수 있는 cmd kubectl get po -A 4. 최초에는 스.. 2023. 5. 19.
Devops Day 51 (5.17) 컨테이너 오케스트레이션_쿠버네티스 주용 개념 쿠버네티스와 컨테이너 오케스트레이션 쿠버네티스(Kubernetes, k8s)란? - 쿠버네티스(Kubernetes, k8s)란오픈소스로 만들어진 컨테이너 오케스트레이션 도구 - 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링하는 등의 관리 기능을 제공 - 각기 다른 환경(온프레미스 서버, VM, 클라우드)에 대응 가능 무엇을 오케스트레이션 한다는 것인가? 즉 컨테이너 오케스트레이션 도구는, 수십~수백 개의 컨테이너를 관리하고자 할 때 보다 더 잘 관리하기 위한 툴입니다, 단 어떻게 수십~수백 개의 컨테이너가 생길 수 있을까요? - 이는 아키텍처의 트렌드가 모놀리식에서 마이크로서비스로 바뀌고, - 이로 인해서 컨테이너의 개수가 증가하고, - 여기에 확장성을 고려해 스케일링까지 더할 경우에 발생할 수 있.. 2023. 5. 18.