Cloudtop microservice 건축 디자인

유연한 진화 배포 시스템 아키텍처는 쿠버네티스의 기초에 구축되어 서비스 그리드, 통신 층 및 관측 기능.

ZHIHUA OIGINAL 전문 연습현장에서 서비스 관리에 이르기까지, 탄력적이고 안정적이고 지속 가능한 기술 기반 구축구름은 구조, ZhiHua Tech 원본입니다.

딜리버리

전통적인 모노머 응용 프로그램의 조직적인 경기 및 기술적인 수용력은 기업이 단 하나 제품 선 + monostructure에서 다 제품 선 + 다 팀 발달 단계에 진화하는 것처럼 두드러지게 감소될 수 있습니다.더 긴 배포주기, 더 높은 회귀 테스트의 비용, 부족한 변경에 대한 필요 비핵 모듈 전체 응용 프로그램에 대한 재발— 이 신호는 마이크로 서비스 구조의 소개가 더 이상 "over-designed"하지만 팀의 지속적인 효율적인 배달에 필요한 조건을 제안한다.

일반적으로 회전 포인트 신호는 다음과 같습니다 : 응용 프로그램 시작 시간은 30 초 이상 회전 업데이트 경험의 악화에 이어; 다른 비즈니스 모듈의 변화의 빈도에 상당한 변화 (핵심 거래 모듈은 일주일에 한 번 업데이트되고 백 오피스 관리 모듈은 한 번만 이동할 가능성이 있습니다), 단일 바디는 모든 모듈을 강제로 동일한 릴리스 리듬을 유지; 여러 개발 팀은 동일한 코드 창고에 협력하고 충돌을 통합하고 팀 크기의 성장과 위험을 반환; 그리고 실패의 전체 시스템의 손실 또는 실패를 방지 할 수 있습니다.

이 시나리오는 여기에 비즈니스 개발, 멀티 팀 협업, 시스템 탄력 및 효율적인 배달에 대한 높은 수요와 기업에 적용됩니다.ZhiHua Tech특정 클라이언트 데이터를 나타내는 Impromation의 구현에 구조화된 자문에서 완전한 microservice 변환 서비스를 제공합니다.

일반적인 작업 도전

1. 단 하나 모양 구조에 있는 납품 효율성 bottlenecks

  • 연결 해제:30 개발자는 코드 창고와 CI/CD 스트리밍 라인을 공유합니다. 코드의 모든 조합은 다른 사람의 출시를 차단할 수 있습니다. 지불 버그에 대한 긴급 수정, 이는 5 MR의 이전 백로가 완료되고 테스트가 완료 될 때까지 기다리는 것은 -- 이러한 MRs는 지불 모듈과 함께 할 아무것도 없습니다.
  • 폭발을 시험하십시오.: 단일 응용 프로그램에 대한 회귀 테스트 범위는 "전체 응용 프로그램"에 관한 것입니다. SQL이 하나의 쿼리 인터페이스로 변경되는 경우에도 완료 엔드 투 엔드 테스트 패키지를 실행하는 데 40 분이 걸립니다. 테스트 피드백주기의 길이는 결정 속도를 느립니다.
  • 기술 자물쇠전체 응용 프로그램은 기술 창고 (예 : Java 8 + Spring)에 묶여 있지만 Go 또는 Node.js에 더 적합하지만 새로운 언어의 도입은 새로운 건설, 배포 및 모니터링 시스템 및 팀에 종종 "작업"을 선택합니다.

2. 유통에 의해 가져 된 복잡성

  • 네트워크는 신뢰할 수 없습니다.: 단체는 방법으로 불립니다. 마이크로 서비스 네트워크 연결. 네트워크 가동 중단, 포장되지 않은, 파티션 -- 단일체에 존재하지 않는 이러한 실패 패턴은 마이크로 서비스 구조에서 일상적입니다. 합리적인 타임 아웃없이, 재 테스트 및 용해 전략, domino domino와 같은 서비스 vibrates.
  • 데이터 일관성: ACID는 단일 소스 데이터베이스 서비스에 대한 기초입니다. 마이크로 서비스에서 각 서비스는 자체 데이터베이스를 가지고 있으며, 크로스 서비스 운영 (다음은 주문 서비스 + 재고 서비스 + 지불 서비스)는 사가 또는 TCC와 같은 분산 서비스 프로그램에 의존해야합니다 최종 일관성을 보장하기 위해. 이 사고로 인해 "비즈니스 완료"에서 "컴퓨션은 모든 단계에 가능 할 수 있습니다"- 팀에 대한 가장 어려운인지 임계 값입니다.
  • 부채 및 결정: 요청은 5-8 마이크로 서비스 교차 할 수 있습니다. 사용자가 게이트웨이 로그, 주문 서비스 로그, 재고 서비스 로그, 결제 서비스 로그, 배포 추적없이 (예 : Jaeger, SkyWalking)에서 전체 통화 체인을 충돌해야하는 "다운 주문 실패"를보고하면 위치의 문제는 바늘처럼됩니다.

3. 인프라 및 이동성의 부족

  • 컨테이너화 및 조직Microservices는 컨테이너화 배포에 자연적이지만 쿠버네티스 자체는 가파른 학습 곡선을 가지고 있습니다. Pod Network, Service Discovery, Ingress Route, ConfigMap, Secret Management, HPA Resilient sprawl - 전통적인 팀에 대한 0 개념.
  • CI/CD 복합성: 스트림 라인에서 라인 N (각 서비스 용), 미러 건설, 푸시, 배포, 롤백 표준화를 필요로합니다. 균일 한 스트림 라인 템플릿 및 제품 관리없이, 배달 프로세스의 파편은 별도의 팀에 의해 발생할 수 있습니다.
  • 옵션 정보로깅, 지표 및 추적 - 세 기둥은 하나. 마이크로 서비스 구조에서, 기둥의 모든 하나가 복잡하게 감소 할 수있는 능력에 상당한 감소로 이어질 수 있습니다.

프로그램 디자인 사고

1. Big Bang 대신의 진보적인 균열

ZhiHua Tech은 마이크로 서비스 변환에 주장Hangler Fig 파테르슨• 기존 시스템의 정상적인 기능을 유지하면서 새로운 아키텍처의 기능 모듈을 통해 진행적으로 이동하여 이전 시스템까지 경로를 통해 공동 작업을 완전히 대체합니다.

  • 첫째로, 우리는 HF 변화 단위를 제거합니다.우선은 비즈니스의 가장 빈번하고 독립적 인 모듈의 분리에 주어 (예 : 사용자 센터, 필수 센터). 그들은 해체되면 독립적 인 배포의 배당을 즐길 수 있습니다 - 변경은 다른 모듈의 출시의 속도로 더 이상 제한되지 않습니다.
  • API Gateway 통합 입력게이트웨이는 경로 배포, 정리 인증, 흐름 제한 및 로그 기록에 대한 책임입니다. 게이트웨이를 앞쪽 끝의 감각 없이 경로에 접목하여 해당 모노 또는 마이크로 서비스로 전달할 수 있습니다.
  • Database는 분할을 따릅니다: 각 분리형 마이크로 서비스는 독립적 인 데이터베이스, Schema (전복형 데이터베이스의 예 일), 이는 궁극적으로 데이터 동기화 또는 API을 호출하여 단일 데이터베이스와 일관성있는. 단계의 의식은 "Dub-Book +-Top-Read"전략을 사용하여 위험을 줄일 수 있습니다.

2. 서비스 그리드 통신 관리

마이크로 서비스 수가 10을 초과하면 기존 SDK 서비스 관리 (RPC 프레임 워크에 도입된 각 서비스용 SDK)는 유지 보수 비용을 노출하기 시작합니다. SDK의 업그레이드는 재 구조화 및 출판 될 모든 서비스가 필요하며, 다른 SSDK 서비스는 다른 납품 및 지배 전략의 변경이 필요합니다.

ZhiHua Tech은 서비스 규모가 특정 수준에 도달 한 후 도입을 권장합니다. 서비스 메쉬 (예 : Istio + Envoy), sidecar 대리인에 downside 서비스 지배 수용량:

  • 유량 관리Grayscale release (무게/헤더/쿠키 다변화에 의하여), 실패 주입 테스트, 요구 거울 - 이 기능은 Istio의 디자인 규칙 및 Vital 서비스 구성을 통해 사업 코드를 수정할 필요가 없습니다 달성될 수 있습니다.
  • 보안 통신: MTLS(Two-way TLS 인증)은 간 서비스 통신, 발급, 교체 및 인증서의 재발생을 위해 자동으로 Citadel에 의해 관리되고, 비즈니스 개발자는 하단 보안 메커니즘을 인식할 필요가 없습니다.
  • 옵션 정보: Sidecar는 모든 들어오는 역 및 나가는 역을 위한 원격 측정 자료 (감각, 성공, 과실 비율)를 자동 수집하고 Prometheus (indicator) + Jaeger (링크) + ELK (로그)에 출력합니다, 완전한 관찰 가능한 삼각형을 형성하.

CI/CD 및 Gitoops 납품 선

ZhiHua Tech은 클라이언트가 표준 CI/CD 시스템을 구축하는 데 도움이되며 핵심 원칙은모든 서비스의 건설 및 배포를 커버하는 템플릿:

  • 물방울 템플릿: 모든 마이크로 서비스 CI/CD 템플릿 (Jenkinsfile 또는 GitHub Actions workworkworkwork Template)의 동일한 세트를 공유하며, 접근할 수 있는 몇 가지 변수 (언어, 포트, 리소스 인용)만 필요로 합니다. 각 팀의 파편을 피하십시오.
  • Gitops 배포: ArgoCD가 지속적으로 Git Repository의 변화를 모니터링하고 클러스터에 자동으로 동기화하는 GitOps 컨트롤러에 의해 구동되는 GitOps 컨트롤러에 의해 클러스터를 동기화하는 모든 쿠버네티스 리소스 (Deployment, Service, Ingress, ConfigMap)의 문헌이 저장됩니다. 클러스터의 수동 수정은 GitOps 컨트롤러에 의해 다시 회전되어 "Git Repository = Group Real"을 보장합니다.
  • 수의사: Argo Rollouts를 통한 진행적 납품 - Pod의 새로운 버전은 5%를 처음 배포, 관측 오류율 및 지연 5 분, 및 지표의 정상 확장은 25% 50% 및 100%로 확장됩니다. 어떤 단계에 표시는 자동으로 롤백을 유발합니다.

시스템 용량 범위

Zip, 컨테이너로 수송된 기초.

  • Kubernetes 클러스터 계획Multi-environmental (development/test/pre-production/production) 클러스터 건축 설계, 노드 사양 선택, 네트워크 플러그인 (Calico/Cilium) 선택, 스토리지 프로그램 (CSI) 디자인.
  • Porter 미러 관리다음은 미러링의 영역에서 최근 개발의 예입니다 : 하버 개인 미러 창고 건설, 미러 보안 스캐닝 (Trivy), 미러 얇은 전략 (다단 건설, dissolacy 기본 거울).
  • 가동 가능한 stretching: HPA (CFP/RAM Pod 수평 확장에 근거) + 클러스터 Autoscaler (노드 레벨 확장) + KEDA (메시 큐 깊이와 같은 사용자 정의 지표의 구동 확장에 근거).

서비스 관리 및 통신

  • API 게이트웨이: 경로, 제한 흐름, 인증, 로그, 크로스 도메인 처리. 사용자 정의 논리에 플러그인 확장을 지원한다.
  • 서비스 및 서비스: Kubernetes DNS + Service를 기반으로 한 서비스 발견, Consul/Nacos와 함께 외부 서비스 메타데이터 관리.
  • 본문 바로가기Nacos/Apollo는 중앙으로 환경 윤곽을, 윤곽 변화 간색한 배급 및 rollback를 지원하는 즉시에서 보내집니다.

• 관측 시스템

  • Log: Fluentd/Filebeat 수집 →Kafka 버퍼 → Elasticsearch store → Kibana 디스플레이. 로그는 TraceID에 의해 관련됩니다.
  • 의논문Prometheus + Grafana, 인프라 지표 (node/container/Pod) 및 응용 지표 (QPS/delayed/wrong/operational Indicator)를 포함.
  • Linkage 추적: OpenTelemetry + Jaeger, 요청된 서비스 사이에 완전한 통화 체인과 시간을 표시.
  • 경찰에 전화.: Alertmanager Classified Alert (emergency/warning/notification), Grafana 패널 스크린 샷과 함께 엔터프라이즈 Micro-Credits/Pertification/Flying Book을 통해 전송.

CI/CD 납품

  • Code 저장소 표준화 (branch 정책, CODEOWNERS, Merge 요청 템플릿)
  • 자동화, 단위 테스트, 코드 스캔 (SonarQube), 미러 빌드 납품
  • Gitoops 배포 (ArgoCD) + Cyancant / 블루 그린 릴리스 전략

분산 데이터 아키텍처

  • Database 분할 정책: 필드 + 분할에 의해 수직으로 수평으로 시간 / ID (공동 영역). 읽기 및 쓰기 별도 (주요 도서관 쓰기, 도서관에서 읽기).
  • 유통 서비스이 페이지는 자동으로 번역 되었다. 원문 언어: How to the Small Number of Local newssheets
  • 캐시 구조: Redis Cluster Multi-level Cache (현지 Cafsee + Distribution Cache + Database), Cache Aside / 작가 뒤에.

제품 정보

Phase Delivery 주요 요소
의정부 구조 설계 문서 서비스 탈의 프로그램, 지역 경계 정의, 인터페이스 컴팩트 (API), 데이터 분리 전략 및 인프라 아키텍처
연혁 K8s 클러스터 + 중간 생산 수준 쿠버네티스 클러스터 배치 (네트워크/소토지/보안 구성 포함), API 게이트웨이, 서비스 그리드, 구성 센터, 등록 센터 등
옵션 정보 감시와 경찰 시스템 Prometheus + Grafana 모니터링 패널, ELK 로그 플랫폼, Jaeger 링크 추적, 알람 규칙 구성 및 계층 알림 채널
CI/CD 워터 라인 + GitOps 표준화된 CI/CD 플로우 라인 템플릿, ArgoCD 구성, 캐러리 릴리스 전략, 자동화된 롤백 메커니즘
의정부 마이그레이션 프로그램 및 handover Hangers 마이그레이션 프로그램, 데이터 마이그레이션 스크립트, 수송 설명서, 팀 훈련 및 7x24 온라인 보안

의 값 방향

  • 납품에 있는 Significant 효율성 이익서비스는 독립적으로 건설, 테스트 및 배포, 단일 서비스 릴리스 사이클은 "주간"에서 "시간"수준으로 감소됩니다. 비상 수리는 다른 모듈에 의해 더 이상 차단되지 않습니다.
  • Fault 고립과 신축성: 서비스의 메모리 누설은 시스템을 가져 오지 않습니다. 자동 증폭 (HPA / KEDA)는 피크 흐름에 따라 충분한 리소스가 낮은 계곡에서 자동 자원 복구 비용을 줄이기 위해 보장한다.
  • 기술 창고 자유: 다른 서비스는 장면에서 최고의 기술 격실을 선택할 수 있으며 새로운 기술의 도입은 더 이상 전체 재설계가 필요하지 않습니다.
  • 옵션 선택블로거는 정부가 "문제"에서 "문제"를 표시 할 수 있다고 말합니다. "사용자가 불만을하기 전에 Grafana에서 본 간략한 지표가 없습니다.

📎 더 알고:

  • Custom Software Design - 비즈니스 고유의 비즈니스 프로세스를 위한 맞춤형 디자인 및 개발
  • Business Digital Platform - efficacious 및 확장 가능한 기업 수준의 기술 기반 구축
  • 제품 납품 수송 - 생산 수송에 CI/CD 교류 선에서 완전한 납품 보험
  • 무료 조언 - ZhiHua Tech 팀과 구조적 요구를 전달
ZhiHua Tech에 대한 전문 서비스

기업의 현재 상태의 상황에 더 분석이 필요합니까?

우리는 IT 기술적인 통보, 기업 정보 건축, 소프트웨어 프로젝트 전망, FDE 기업 AI 신청 및 소프트웨어 제품 디자인 및 납품 서비스를 제공합니다.

Liaison 컨설턴트
내용 책임 성명

간행물: 상해, ZhiHua Tech 같이. 이 종이는 기술 및 프로젝트 결정 목적을 위해 이용됩니다; 사실, 자료 및 외부 관점은 페이지에 선물되고 범위에서 확인되고 특정한 프로젝트의 결과에 투입하지 않습니다.콘텐츠 정리, 정보 및 교정 정책의 소스 확인