본문 바로가기

전체 글134

Devops Day 60 (5.31) 서비스 모니터링_모니터링의 목표와 측정 항목 모니토링의 목표 메트릭이란 : 시간에 따라 측정한 결과값입니다. 보다 넓은 의미로는 비즈니스 개념을 나타내는 수치 측정을 의미하기도 합니다. 모니터링의 목표 : 1. 시간을 기준으로 측정되는 주요 메트릭을 최소화하여 고가용성을 달성 2. 사용량을 추적하여, 배포에 앞서 세운 가설을 검증하고 개선 - 애자일에서는 “검증된 학습(Validated learning)을 적용한다”라고 합니다. - Validated learning : https://www.boldare.com/blog/lean-startup-validated-learning/ 주요 벤더들이 이야기하는 모니터링의 목표와 메트릭 구글이 이야기하는 모니터링의 목표는 다음과 같습니다. 장기적인 트렌드 분석 (Analyzing long-term trend.. 2023. 6. 1.
Devops Day 59 (5.30) Project 3_마이크로서비스_Day 4 야크쉐이빙 (Yak Shaving) Project 3 야크쉐이빙 : Day 3 Step 4 Stock-Lambda 생성하여 factory-api와 연결 하는 과정에서 문제가 발생했습니다. 1. Factory-api 와 연결 위한 코드 작성해서 배포 시도하려고 했으나…AWS Lambda console에 Stock-lambda 생성하여 코드 배포 방법이 없음 2. 그래서 Console로 Stock-Lambda 삭제하고 sls 으로 yaml 파일 작성 해서 이상없이 배포했음 3. 하지만 다른 문제가 발생했음…. Postman이나 AWS CLI 통해 Curl X Post 명령어로 Factory-api 연결 상태 확인했지만…error 메세지가 생김 4. Error 메시지 확인해서 코드 수정하려고 시작했지만… 문제.. 2023. 5. 30.
Devops Day 58 (5.26) Project 3_마이크로서비스_Day 3 Step 4 : 데이터베이스의 재고를 증가시키는 Lambda 함수 생성 - 데이터베이스의 재고를 증가시키는 Lambda 함수(stock-increase-lambda)를 배포 - stock_lambda에서 레거시 시스템(Factory API)에 제품 생산 요청 - 위의 Factory API 문서를 활용하여, 코드를 작성해야 합니다. - stock_lambda 프로젝트에 npm install axios 명령으로 axios 라이브러리를 설치해야 합니다. axios는 node.js에서 HTTP 명령을 보내는 라이브러리입니다. (fetch와 유사) - 코드 맨 윗줄에 const axios = require('axios').default를 추가합니다. 4.1 데이터베이스 폴더로 들어가 stock-increase-l.. 2023. 5. 30.
Devops Day 57 (5.25) Project 3_마이크로서비스_Day 2 Github - Repository for Project 목표 - 메시지 큐의 Pub/Sub 패턴과 Producer/Consumer 패턴의 차이를 이해한다 - DB와 서버와의 통신이 가능하도록 연결한다 - 특정 상황에서 SNS, SQS로 메시지가 전달되도록 시스템을 구성한다 - SQS에 들어온 메시지를 레거시 시스템(Factory API)으로 전달하는 시스템을 구성한다 - 레거시 시스템(Factory API)의 콜백 대상이 되는 리소스를 생성해 데이터베이스에 접근할 수 있게 한다 Step 1 - Lambda 서버(Sales API) - DB 연결 1. git clone 후 sales-api 디렉토리로 들어가 CLI에 “serverless deploy” 합니다. 2. Serverless deploy 후 M.. 2023. 5. 30.
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.