architecture (6) 썸네일형 리스트형 [Architecture]개략적인 규모를 추정하는 방법 목차개략적인 규모 추정의 중요성응답 지연 값의 이해가용성에 관한 핵심 지표실제 예제: 트위터 시스템 규모 추정효과적인 규모 추정을 위한 팁개략적인 규모 추정의 중요성개략적인 규모 추정은 시스템 설계의 핵심 단계 중 하나입니다. 이는 제안된 설계가 요구사항을 충족시킬 수 있는지를 판단하는 데 필수적입니다. 효과적인 추정을 위해서는 다음 요소들에 대한 이해가 필요합니다:2의 제곱수응답 지연(latency) 값가용성 관련 수치이러한 요소들을 이해하고 활용함으로써 더 정확하고 신뢰할 수 있는 시스템 설계를 할 수 있습니다.응답 지연 값의 이해2010년 구글의 제프 딘이 발표한 응답 지연 값은 현대 컴퓨터 시스템의 성능을 이해하는 데 중요한 지표가 되었습니다. 이 값들을 바탕으로 몇 가지 핵심 인사이트를 도출할 .. [Architecture]처리율 제한 장치 설계(Rate limiting) 개요 처리율 제한 장치(rate limiter)는 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위한 장치입니다. 이 기술은 서비스나 애플리케이션에 너무 많은 요청이 한꺼번에 몰리는 것을 방지하여, 서버가 안정적으로 운영될 수 있도록 돕습니다. 예시: 특정 기간 내에 전송되는 클라이언트의 요청 횟수를 제한 사용자는 초당 2회 이상의 새 글을 올릴 수 없습니다. 같은 IP 주소로는 하루에 10개 이상의 계정을 생성할 수 없습니다. 같은 디바이스로 주당 5회 이상 리워드(reward)를 요청할 수 없습니다. API 처리율 제한 장치를 두면 좋은점 DoS(Denial of Service) 공격에 의한 자원 고갈(Resource Starvation)을 방지할 수 있습니다. 비용을 절감할 .. [Architecture]안정 해시 설계(consistent hash) 개요 수평적 규모 확작성을 달성하기 위해서는 요청 또는 데이터를 서버에 균등하게 나누는게 중요합니다. 안정 해시는 이 목표를 달성하기 위해 보편적으로 사용하는 기술입니다. 당면한 문제 : 해시 키 재배치(rehash) 문제 전통적인 해시 테이블에서 서버(노드)를 추가하거나 제거할 때 대부분의 키가 재배치되어야 하는 문제가 발생합니다. 이는 시스템에 큰 부하를 주고, 수평적 확장성을 제한하는 주요 원인이 됩니다. 서버의 개수 변하지 않을때: 문제 없음 서버의 개수가 변할때: 대규모 캐시 미스 발생 문제가 발생한 1번 서버에 보관되어 있는 키 뿐만 아니라 대부분의 키가 재분배 되었다. 1번 서버가 죽으면 대부분 캐시 클라이언트가 데이터가 없는 엉뚱한 서버에 접속하게 된다. 해결 방법: 안정 해시(consis.. [Architecture]대규모 애플리케이션을 위한 아키텍처 설계 가이드 개요 데이터베이스 선택, 애플리케이션의 확장, 로드밸런싱, 캐싱, CDN 활용, 데이터베이스 샤딩 등의 전략을 통해 효율적이고 확장 가능한 웹 시스템 아키텍처를 설계할 수 있습니다. 요약: 사용자 수에 따른 규모 확장성 웹 계층은 Stateless해야 합니다. 이는 시스템이 더 많은 사용자와 트래픽을 수용할 수 있도록 만듭니다. 모든 계층에 다중화를 도입합니다. 이는 시스템의 부하를 분산시키고 가용성을 높입니다. 가능한 한 많은 데이터를 캐시합니다. 이는 응답 시간을 단축하고 시스템의 전반적인 성능을 향상합니다. 정적 콘텐츠는 CDN을 통해 서비스합니다. 이는 전 세계적으로 빠른 콘텐츠 전달을 가능하게 합니다. 데이터 계층은 샤딩을 통해 확장합니다. 이는 데이터 관리를 보다 효율적으로 만듭니다. 각 계층.. [Architecture]멀티 테넌트 아키텍처 이해하기 멀티 테넌트(Multi-Tenant) 아키텍처는 단일 소프트웨어 인스턴스가 여러 사용자 그룹(테넌트)에 의해 공유되는 구조를 말합니다. 이는 클라우드 컴퓨팅과 SaaS(Software as a Service) 모델에서 널리 사용됩니다. 멀티 테넌트 개념 멀티 테넌트 시스템에서는 다수의 고객이나 사용자 그룹이 동일한 애플리케이션을 공유합니다. 중요한 점은, 각 테넌트의 데이터와 설정이 서로 격리되어 있다는 것입니다. https://blogs.sap.com/2022/08/27/fundamentals-of-multitenancy-in-sap-btp/ 예시: 로그 관리 시스템 시나리오: 단일 로그 관리 시스템이 여러 회사(회사 A, B, C)에 의해 사용됩니다. 이 시스템은 각 회사의 로그를 수집하고 관리합니다.. [ArgoCD]ArgoCD Architecture API server API 서버는 웹 UI, CLI 및 CI/CD 시스템에서 사용하는 API를 노출하는 gRPC/REST 서버입니다. 다음과 같은 책임이 있습니다. 애플리케이션 관리 및 상태 보고 애플리케이션 작업 호출(예: 동기화, 롤백, 사용자 정의 작업) 리포지토리 및 클러스터 자격 증명 관리(K8s에 secret으로 저장됨) 외부 ID 공급자에 대한 인증 및 인증 위임 RBAC 시행 Git 웹훅 이벤트에 대한 리스너/포워더 Repository Server 리포지토리 서버는 애플리케이션 매니페스트를 보유하는 Git 리포지토리의 로컬 캐시를 유지 관리하는 내부 서비스입니다. 다음 입력이 제공될 때 Kubernetes 매니페스트 생성 및 반환을 담당합니다. 저장소 URL revision (commit,.. 이전 1 다음