Table of Contents
소개: 클라우드 기반 시스템의 개요
클라우드 컴퓨팅은 클라우드 컴퓨팅의 핵심 요소인 클라우드 컴퓨팅을 통해 클라우드 컴퓨팅의 모든 측면을 파악하고, 이를 통해 클라우드 컴퓨팅의 모든 측면을 파악하고, 이를 통해 클라우드 컴퓨팅의 모든 측면을 파악하고, 이를 통해 클라우드 컴퓨팅의 모든 측면을 파악하고, 이를 통해 클라우드 컴퓨팅의 모든 측면을 파악하고, 이를 통해 클라우드 컴퓨팅의 모든 측면을 파악하고, 이를 통해 클라우드 컴퓨팅의 모든 측면을 파악하고, 이를 통해 클라우드 컴퓨팅의 모든 측면을 파악하고, 이를 통해 클라우드 컴퓨팅의 모든 측면을 파악하고, 이를 통해 클라우드 컴퓨팅의 모든 측면을 파악하고, 이를 통해 클라우드 컴퓨팅의 모든 측면을 파악하고, 디지털 전환할 수 있습니다.
Cloud-Native Technologies에 대한 이해
Cloud-native는 단일 도구가 아니지만 4 개의 핵심 테일러에 내장 된 패러다임이 아닙니다. [FLT : 0] 컨테이너[FLT : 1], [FLT : 2]]microservices[FLT : 3]], [[FLT : 4]]]dynamic Orchestration[FLT : 5], [FLT : 6]] 자동화 된 배달[FLT : 7]]. Cloud Native Computing Foundation (CSR)은 각 조직의 클라우드 컴퓨팅을 정의하고, 개인의 클라우드 컴퓨팅을 정의 할 수 있습니다.
- Containers(예: Docker) 패키지 어플리케이션을 사용하여, 환경 전반에 걸쳐 일관성을 보장한다.
- Microservices 느슨하게 결합된 모놀리식 애플리케이션, 독립적으로 배포 가능한 서비스.
- Orchestration platform (예: Kubernetes) automate 배포, 스케일링 및 컨테이너화된 워크로드 관리.
- 자동 CI/CD 파이프라인은, 최소 수동 개입으로, 안정적인 출시를 가능하게 합니다.
이 기본을 넘어 생태계는 트래픽 관리 및 관측 가능성을위한 서비스 메시 (예 : Istio), 이벤트 구동 스케일링을위한 서버가없는 기능 및 GitOps 툴링 (예 : ArgoCD)를 포함합니다. 이러한 기술을 이해하는 Principal 엔지니어는 시스템의 고유 확장성 및 신뢰성 요구에 적합한 조합을 선택할 수 있습니다.
공식 정의 및 커뮤니티 리소스의 경우 ]CNCF Cloud Native Landscape를 참조하십시오.
Cloud-Native Approaches로 확장성을 강화
확장성은 시스템의 능력으로 인해 성능 희생 없이 부하를 처리하는 능력입니다. Cloud-native 기술은 수직 스케일링( 기존 노드에 더 많은 전력 추가)과 수평 스케일링(더 많은 노드 추가)를 제공합니다. 가장 영향력있는 기술은 다음과 같습니다.
자동차 확장 및 탄력성
쿠버네티스의 수평 포드 오토스케이너(HPA)는 CPU, 메모리, 또는 사용자 정의 메트릭스를 기반으로 하는 팟 복제의 수를 자동으로 조정합니다. 마찬가지로 클라우드 제공업체는 가상 머신 함대를 위한 자동 확장 그룹을 제공합니다. 적절한 임계값을 설정하고 실제 사용자의 수요를 반영하는 메트릭을 사용하여 병목을 방지합니다. 예를 들어 플래시 판매 중 HPA는 초당 50 개의 추가 인스턴스를 회전할 수 있으며 트래픽 하위 사이드 시에 찢어 냅니다.
Microservices-Driven 확장
모든 모노리딕 응용 프로그램을 스케일링하는 것보다, 마이크로 서비스는 부하에 따라 서비스 만 스케일을 허용. 검색 서비스는 권장 서비스 만 필요로하는 동안 10 개의 복제가 필요할 수 있습니다 2. 이 과립은 리소스를 절약하고 응답성을 향상시킵니다. Linkerd 또는 Istio와 같은 서비스 메쉬는 올바른 서비스 인스턴스에 지능적으로 트래픽을 도울 수 있습니다.
데이터베이스 Scaling Patterns
Stateless 서비스 규모는 쉽게이지만 데이터베이스는 종종 병목이됩니다. Cloud-native 솔루션에는 읽기 복제 (예 : Amazon Aurora), 분산 SQL 데이터베이스 (예 : CockroachDB) 및 캐싱 레이어 (예 : Redis)와 관리 된 데이터베이스가 포함됩니다. 정말로 수평 스케일링을 위해 Cassandra와 같은 NoSQL 데이터베이스를 사용하여 스케치하거나 고려하십시오. 스케일링 할 때 항상 이벤트 일관성을 설계하십시오.
글로벌 도달을 위한 Edge Computing
전 세계 관객을 지원하는 시스템의 경우, Edge 컴퓨팅은 사용자에게 더 가까이 파악하고 저장합니다. AWS 아웃포스트 또는 Google Distributed Cloud와 같은 Cloud ‐native 플랫폼은 대기 시간 및 처리량을 줄이기 위해 쿠버네티스를 실행할 수 있습니다. IoT, 실시간 분석 및 콘텐츠 전달에 특히 관련이 있습니다.
]Kubernetes HPA 문서에 쿠버네티스 워크로드에 대해 자세히 알아보세요.
Cloud-Native 패턴을 통한 신뢰성 향상
신뢰성은 가동 시간 이상으로 간다 - 그것은 결함 포용력, 우아한 degradation, 및 예측할 수 있는 회복을 우회합니다. 구름 ‐ 부정적인 건축술은 일에서 마음에서 실패로 건설됩니다. 중요한 전략은 다음을 포함합니다:
분산 시스템 설계 및 중복
가용성 영역 (AZs) 또는 심지어 지역 전체에 걸쳐 여러 인스턴스를 배포하는 것은 실패의 단일 지점을 제거합니다. 지속적 볼륨을 가진 쿠버네티스 스테이트풀셋은 클라우드 중립 스토리지 솔루션과 결합 될 때 AZ 실패를 생존 할 수 있습니다. 건강한 팟만 수신 트래픽을 보장하기 위해 읽지 않고 수명 조사를 사용합니다.
Chaos 공학
이 웹 사이트는 귀하가 웹 사이트를 탐색하는 동안 귀하의 경험을 향상시키기 위해 쿠키를 사용합니다. 이 쿠키들 중에서 필요에 따라 분류 된 쿠키는 웹 사이트의 기본적인 기능을 수행하는 데 필수적이므로 브라우저에 저장됩니다. 또한이 웹 사이트의 사용 방식을 분석하고 이해하는 데 도움이되는 제 3 자 쿠키를 사용합니다. 이 쿠키는 귀하의 동의하에 만 브라우저에 저장됩니다. 이러한 쿠키를 거부 할 수도 있습니다. 이러한 쿠키 중 일부를 선택 해제하면 검색 환경에 영향을 미칠 수 있습니다.
관찰성 및 SLO
수많은 모니터링, 로깅 및 추적은 필수적입니다. 관찰의 세 가지 기둥을 구현하십시오. 통계 (Prometheus), 로그 (ELK stack) 및 추적 (Jaeger). 지연 시간, 오류율 및 가용성을위한 서비스 수준 개체 (SLOs). SLOs가 진동 될 때 자동화 된 경고는 배포를 스케일링하거나 롤링과 같은 재약을 유발합니다. Grafana 및 Datadog과 같은 도구는 실시간 클라우드 서비스 시스템에서 실시간 실시간 실시간 실시간 모니터링을 제공합니다.
Immutable 인프라
환경의 변화는 변화하는 환경의 변화에 따라 변화하는 환경의 변화에 따라 변화되고 있습니다. 이 시기를 활용하여 환경의 변화에 따라 환경의 변화에 따라 환경의 변화에 따라 환경의 변화에 따라 환경의 변화에 따라 환경의 변화에 따라 환경의 변화에 영향을 미칩니다. 이러한 변화는 환경의 변화에 영향을 미칩니다.
재난 복구 및 백업 자동화
지역 전체 아웃시 계획. Cloud-native Disaster Recovery (DR) 전략은 DNS (예 : Route53)를 사용하여 자동화 된 고장으로 인한 활성 활성 배포 (지역 전역의 공격) 또는 활성적 인 분산을 포함합니다. Velero와 같은 클라우드 중립적 인 데이터를 사용하여 영구적 인 백업 및 복구하는 것은 쿠버네티스 백업 또는 관리 된 데이터베이스 스냅 샷을 제공합니다. DR 계획을 검증하는 데 필요한 복구 시간 목표 (RTO) 및 복구 포인트 목표 (RPO)을 테스트합니다.
더 깊은 다이빙을 위해 AWS Well-Architected Framework의 신뢰성 Pillar는 종합적인 지도를 제공합니다.
Cloud-Native Environments의 Principal 엔지니어를위한 모범 사례
기술 지식은 혼자 충분하지 않습니다. 포인스 엔지니어로서 문화, 과정, 건축 결정에 대해 알아야합니다. 여기에는 가장 높은 수준의 관행이 있습니다.
실패를위한 디자인 - Embrace Controlled Chaos
모든 구성 요소가 실패 할 수 있도록 할당 된 파티션, 디스크 실패, misconfigurations, 인간의 오류. 폭발 백 오프와 함께 retries를 구축, 회로 차단기 (예 : Hystrix), 그리고 실패를 격리하는 대량 머리. 당신의 시스템은 분명히 말할 수 있다는 것을 보증: 권장 서비스는 아래로, 오류 페이지보다 캐시 또는 기본 결과를 표시.
Automate Code to Production의 모든 것
수동 프로세스는 신뢰성의 적입니다. 단위 테스트, 통합 테스트, 보안 검사 및 운하 배포를 포함하는 완전 자동화 된 CI / CD 파이프라인을 구현합니다. GitOps를 사용하여 원하는 상태를 라이브 시스템에 동기화하십시오. 예를 들어, 쿠버네티스가 표시된 풀 요청은 시효 환경에 자동으로 배치 할 수 있으며 연기 테스트를 실행하고 모든 검사가 통과되면 생산에 홍보합니다.
모니터, 측정 및 지속 개선
모든 서비스에는 구조화된 로그 및 배포된 추적이 있습니다. 시스템 메트릭(예: 데이터베이스 대기 시간)을 가진 비즈니스 메트릭(예: 주문 처리량)을 구성하는 대시보드를 만듭니다. 루트 원인을 식별하지 않고 일정한 “파일레 금요일” 또는 사고 리뷰를 파악하고 재발을 방지합니다. 데이터를 사용하여 스케일링 정책, 튜닝 성능 및 SLO 업데이트를 조정하십시오.
Reliability Concern로 최적화 비용
신뢰성을 위한 ‐ 감독은 unsustainable 비용으로 지도할 수 있습니다. 예를들면, Kubecost, AWS Compute Optimizer)를 사용하여 실제 사용으로 인스턴스 유형과 일치할 수 있습니다. 표준 작업 부하를 위한 스포트 인스턴스를 구현하여 용어의 우아한 취급을 통해 가용성을 유지하면서 비용을 절감할 수 있습니다. 균형이 있는 비용과 신뢰성은 예산이 없는 시스템을 확장할 수 있습니다.
Cloud-Native Stacks의 디자인 보안
보안은 신뢰성에 기반을두고 있습니다. 최소한의 privilege IAM 역할, 나머지 및 transit에서 데이터를 암호화하고 취약점을위한 컨테이너 이미지를 스캔하고 쿠버네티스의 네트워크 정책을 시행합니다. OPA (Open Policy Agent)와 같은 도구는 클러스터 전반에 대한 준수 규칙을 시행 할 수 있습니다. 안전한 시스템은 신뢰할 수있는 시스템입니다. 위반은 가용성을 손상하는 캐스케이프 실패를 일으킬 수 있습니다.
클라우드 기반 엔지니어링 문화
환경 실험 및 학습. 클라우드 중립 전문가와 쌍 주니어 엔지니어, 팀과 협력하여 쿠버네티스에 새로운 서비스를 구축하고 내부 문서 및 실행 책을 만들 수 있습니다. 전체 조직이 클라우드 중립적 원칙을 이해하고, 확장성 및 신뢰성에 대한 결정은 최고 수준의 제한보다 오히려 협업됩니다.
결론: Confidence로 이동을 지도
클라우드는 은총알이 아니지만, 적용된 것이 생각이 없을 때, 조직이 성장과 탄력성을 처리하는 방법을 변화시킵니다. Principal 엔지니어로서, 이 관행을 채택하여 가이드팀이 자동화된 복구를 통해 복잡한 마이크로서비스를 관할하는 데 필요한 역할을 합니다. 이 결과는 로드 아래에 제대로 스케일링하고 불쾌하게도 복구하는 시스템입니다. 클라우드 기반 아키텍처에 투자함으로써, 미래 ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ─ ─ ─ ─ ─ ─ ──────────────────────────────────────────────────────────────────────────────────────────────