Home / Project Guides Artigo original

Projeto de arquitetura de microservices Cloudtop

A arquitetura flexível e evolutiva do sistema de distribuição é construída sobre a base de Kubernetes, a grade de serviço, as camadas de comunicação e as características observacionais.

ZHIHUA OIGINAL Prática profissionalDesagregado do campo à governança de serviços, construindo uma base tecnológica resiliente, estável e sustentávelAs nuvens são uma estrutura, ZhiHua Tech original.

Aplicar a cena

A capacidade de correspondência organizacional e de transporte técnico de aplicações tradicionais de monómeros pode ser significativamente reduzida à medida que a empresa evolui de uma única linha de produtos + monoestrutura para uma linha de produtos multi-fase de desenvolvimento de equipes multi.Quanto mais longo o ciclo de implantação, mais custos de testes de regressão, a necessidade de pequenas alterações para um módulo não-core a ser reeditado para toda a aplicação— Estes sinais sugerem que a introdução de estruturas de micro-serviço já não é uma “super-projecção”, mas uma condição necessária para uma entrega eficiente contínua por equipas.

Os sinais típicos de ponto de viragem incluem: tempos de início de aplicação de mais de 30 segundos que levam a uma deterioração da experiência de atualização em movimento; variações significativas na frequência de mudanças em diferentes módulos de negócios (os módulos de transação de núcleo são atualizados uma vez por semana e os módulos de gerenciamento de back-office provavelmente se movem apenas uma vez por mês), mas um único corpo força todos os módulos a manter o mesmo ritmo de lançamento; várias equipes de desenvolvimento colaboram no mesmo armazém de código para consolidar conflitos e devolver riscos com o crescimento do índice de tamanho da equipe; e um módulo de memória ou ciclo de morte pode retardar toda a aplicação, e a falta de isolamento de recursos torna o raio de falha igual ao sistema inteiro.

Os cenários aqui descritos aplicam-se a empresas com altas taxas de desenvolvimento de negócios, colaboração multi-equipe, alta demanda por resiliência do sistema e entrega eficiente.ZhiHua TechFornecer serviços completos de transformação de microserviços, desde aconselhamento estruturado até a implementação da Impromação, não representando dados específicos do cliente.

Desafios operacionais típicos

1. Gargalos de eficiência de entrega em estruturas de forma única

  • Liberar um acoplamentoOs desenvolvedores de 30 anos compartilham um armazém de código e uma linha de streaming CI/CD. Qualquer combinação de códigos pode bloquear a liberação de outros. Correções urgentes para um Bug de pagamento, que deve esperar até que o backlog anterior de 5 MRs sejam todos consolidados e retornados ao teste seja concluído -- esses MRs não têm nada a ver com o módulo de pagamento.
  • Explosões de teste.: A faixa de teste de regressão para uma única aplicação é sobre a "aplicação completa". Mesmo que SQL é modificado com apenas uma interface de consulta, leva 40 minutos a 2 horas para executar o pacote de teste completo de ponta a ponta. O comprimento do ciclo de feedback do teste retarda a velocidade iterativa.
  • Bloqueio técnicoTodo o aplicativo está ligado a um armazém de tecnologia (como Java 8+ Spring), um novo cenário de negócios que é mais adequado para Go ou Node.js, mas a introdução de uma nova linguagem significa um novo sistema de construção, implantação e monitoramento, e equipes muitas vezes escolhem "trabalhar juntos".

2. Complexidade provocada pela distribuição

  • A rede não é confiável.: O uni-body é chamado pelo método, e micro-services são conectados à rede. Redes horas extras, descompactadas, particionadas -- esses padrões de falha que não existem em um único corpo são rotina sob estruturas de micro-serviço. Sem tempo limite razoável, re-testando e estratégias de fusão, um serviço vibra como um domino.
  • Consistência dos dados: ACID é a base para serviços de banco de dados de origem única. Em microservices cada serviço tem sua própria base de dados, e operações de inter-serviço (a seguir é = serviço de encomenda + serviço de inventário + serviço de pagamento) deve confiar em programas de serviço distribuído, como Saga ou TCC para garantir a consistência final. Esta mudança de pensamento – de "completar negócios" para "compensação pode ser possível para cada passo" – é o limite cognitivo mais difícil para uma equipe para cruzar.
  • Depuração e Deterrência: Uma solicitação pode cruzar 5-8 micro-services. Quando um usuário relata uma "ordem de baixo falhou" você precisa colidir uma cadeia de chamadas completa de um log gateway, log de serviço de ordem, log de serviço de inventário, log de serviço de pagamento, sem um rastreamento distribuído (por exemplo, Jaeger, SkyWalking), o problema de posicionamento é como uma agulha.

3. Falta de infra-estrutura e mobilidade

  • Containerização e organizaçãoOs microservices são naturais para implantação de contêiner, mas o próprio Kubernetes tem uma curva de aprendizagem íngreme. Rede Pod, Serviço Discovery, Rota de Entrada, Mapa de Configuração, Gestão Secreta, HPA Resilient sprawl - conceitos que são zero para as equipes tradicionais.
  • Complexidade CI/CD: De uma linha de fluxo para uma linha N (um para cada serviço), a construção de espelho, push, implantação, rollback requer padronização. Sem um modelo de linha de fluxo uniforme e gestão de produto, a fragmentação do processo de entrega pode ser causada por equipes separadas.
  • ObservabilidadeLogging, indicadores e rastreamento – os três pilares são um. Sob estruturas de microserviço, a ausência de qualquer um dos pilares pode levar a uma redução significativa na capacidade de desvincular.

Pensamento de concepção do programa

1. Dividir progressiva em vez de Big Bang reescrever

ZhiHua Tech insistiu na transformação de micro-serviçoHangler Fig Patterson• Progressivamente se movendo para módulos funcionais na nova arquitetura, mantendo o funcionamento normal do antigo sistema, que coexiste através de camadas de rota até que o antigo sistema seja completamente substituído:

  • Primeiro, removemos o módulo de mudança HF.A separação dos módulos mais frequentes e independentes da empresa (por exemplo, centros de utilizadores, centros de mercadorias) é dada prioridade.
  • Entrada Unificada da Porta APIO gateway é responsável pela distribuição de rota, autenticação da depuração, restrição de fluxo e registros de log. Solicitar para encaminhar o gateway para o mono ou microservice correspondente, prefixando o caminho, sem sentido do front end.
  • A base de dados segue a divisão: Cada microservice separado tem um banco de dados independente, Schema (mesmo um exemplo de um banco de dados autônomo), que é, em última análise, consistente com o único banco de dados, sincronizando dados ou chamando API. Desmantelar em etapas reduz o risco usando a estratégia "Dub-Book +-Top-Lenda".

2. Serviços que gradeiam a governança da comunicação

Quando o número de micro-serviços excede 10, a governança tradicional de serviços SDK (SDK para cada serviço introduzido no quadro RPC) começa a expor custos de manutenção - a atualização do SDK requer que todos os serviços sejam reestruturados e publicados, diferentes serviços SSDK precisam de diferentes entrega e mudança de estratégia de governança requer mudanças de código.

ZhiHua Tech recomenda introdução após escala de serviço ter atingido um certo nível Mesh de serviço (por exemplo, Istio + Enviado), capacidade de gestão de serviços desfavorável para o agente Sidecar:

  • Gestão de fluxosLançamento em escala de cinza (por desvio peso/Header/Cookie), falha em testes de injeção, solicita espelhos - essas capacidades podem ser alcançadas através das configurações de Regras de Design e Serviços Vitais da Istio sem a necessidade de modificar códigos de negócios.
  • Comunicações seguras: MTLS (autenticação TLS bidirecional) é automaticamente habilitada para comunicações inter-serviço, a emissão, rotação e revogação de certificados é gerenciada automaticamente pela Citadel, e os desenvolvedores de negócios não precisam perceber o mecanismo de segurança bottom-up.
  • Observabilidade: Sidecar automaticamente coleta dados de telemetria (atrasado, bem sucedido, taxa de erro) para todas as estações de entrada e saída, e saída para Prometheus (indicador) + Jaeger (link) + ELK (log), formando um triângulo observável completo.

Linha de entrega CI/CD e Gitoops

ZhiHua Tech ajuda os clientes a construir um sistema CI/CD padronizado, sendo o princípio principalModelo para cobrir a construção e implantação de todos os serviços:

  • Modelo de linha de água: Todos os micro-services compartilham o mesmo conjunto de modelos CI/CD (Jenkinsfile ou GitHub Actions workwork template), que requerem apenas algumas variáveis (língua, porto, quotas de recursos) para serem acessadas. Evite fragmentação por cada equipe.
  • Implantação do Gitops: Uma declaração de todos os recursos do Kubernetes (Deployment, Service, Ingress, ConfigMap) é armazenada no Git Repository, onde o ArgoCD monitora continuamente as alterações no Git Repository e sincroniza-as automaticamente com clusters. Qualquer modificação manual de um cluster é rolada pelo controlador GitOps para garantir que "Git Repository = Group Real".
  • Libertação de canário: Entrega progressiva através de Rollouts Argo - nova versão do Pod implantado 5% primeiro, taxa de erro de observação e atraso 5 minutos, e expansão normal do indicador para 25% 50% e 100%. Indicadores em qualquer fase automaticamente gatilho rollback.

Âmbito de aplicação da capacidade do sistema

Zip, base em contentores.

  • Planejamento de Aglomerados KubernetesProjeto de arquitetura de cluster multi-ambiental (desenvolvimento/teste/pré-produção/produção), seleção de especificação de nó, seleção de plugins de rede (Cálico/Cilium), projeto de programa de armazenamento (CSI).
  • Gestão de espelhos porteiroA seguir estão alguns dos exemplos dos recentes desenvolvimentos na área de espelhamento: Harbor privada espelho armazém construção, espelho de segurança digitalização (Trivy), espelho estratégia de magreza (construção multiestágio, espelho básico dissolação).
  • Estiramento flexível: HPA (baseado na escaldadura horizontal CPU/RAM Pod) + Cluster Autoscaler (nível de nó escaldante) + KEDA (baseado na escaldagem de eventos de indicadores personalizados, como profundidade da fila de mensagens).

Governação e comunicações de serviços

  • API Gateway: Harmonizar a rota, fluxo limite, autenticação, log, processamento de domínio cruzado. Suporta extensão de pluginização para lógica personalizada.
  • Inscrição e Descoberta de Serviços: Serviço de descoberta baseado em Kubernetes DNS + Service, gerenciando metadados de serviço externo em conjunto com Consul/Nacos.
  • Configurar centroNacos/Apollo gerencia centralmente as configurações de ambiente, as mudanças de configuração são enviadas em tempo real, suportando distribuição em escala de cinza e rollback.

• Sistema de observação

  • Registo: Fluentd / Filebeat colecionar → Tampão Kafka → Loja de pesquisa elástica → Exibição Kibana. Os logs estão associados pelo TraceID.
  • IndicadoresPrometheus + Grafana, abrangendo indicadores de infra-estrutura (node/container/Pod) e indicadores de aplicação (QPS/atrasado/errado/indicadores operacionais).
  • Rastreamento de ligações: OpenTelemetry + Jaeger, exibindo a cadeia completa de chamadas e o tempo por salto entre os serviços solicitados.
  • Chama a polícia.: Alerta de alerta (emergência/alertamento/notificação), enviado através de Enterprise Micro-Credits/Pertification/Flying Book, com uma imagem do painel Grafana.

Entrega de IC/CD

  • Padronização do repositório de código (política de ramo, CÓDEOWNERS, modelo de pedido de mesclagem)
  • Automação, teste de unidade, varredura de código (SonarQube), entrega de construção de espelho
  • Implantação de Gitoops (ArgoCD)+Estratégia de Lançamento de Ciants/Verde Azul

Arquitetura de dados distribucionais

  • Política de Dividimento de Bancos de Dados: Dividir verticalmente por campo + Dividir horizontalmente por tempo/ID (SharingSphere). Leia e escreva separado (escrita principal da biblioteca, leitura da biblioteca).
  • Serviços de distribuiçãoEste é um pequeno número de folhas de notícias locais com base nas informações recebidas e nas folhas de notícias locais.
  • Estrutura de cache: Redis Cluster Multi-level Cache (Cafsee local + Distribuição Cache + Banco de Dados), Cache Aside / Writer Behind.

Entregas

Fase Entrega Elementos principais
Arquitetura Documento de Desenho da Estrutura Serviços de dessegregação programa, definição de área limite, interface compacta (API), estratégia de segregação de dados e arquitetura de infraestrutura
Infra-estruturas Aglomeração K8s + Meio Nível de produção Implantação de clusters Kubernetes (incluindo configuração de rede/armazenamento/segurança), gateway API, grade de serviço, centro de configuração, centro de registro, etc.
Observabilidade Sistema de vigilância e polícia Prometheus + Grafana painel de monitoramento, plataforma de log ELK, Jaeger link tracking, configuração de regra de alarme e hierarquia canal de notificação
CI/CD Linha de Água + GitOps Modelo de linha de fluxo CI/CD padronizado, configuração ArgoCD, estratégia de liberação de canário, mecanismo de rollback automatizado
Migração Programa de migração e transferência Programa de migração de hangers, scripts de migração de dados, manual de transporte, treinamento de equipe e segurança online 7x24

Orientação do valor pretendido

  • Ganhos significativos de eficiência na entregaO serviço é construído, testado e implantado de forma independente, e o ciclo de liberação de serviço único é reduzido de um nível "semanal" para um nível "hourly".
  • Isolamento e elasticidade da falha: O vazamento de memória de um serviço não derruba o sistema.A amplificação automática (HPA/KEDA) garante que existem recursos suficientes sob pico de fluxo para reduzir o custo da recuperação automática de recursos em vales baixos.
  • Liberdade de depósito tecnológico: Diferentes serviços podem selecionar os melhores compartimentos de tecnologia da cena, e a introdução de novas tecnologias não exigirá mais a reengenharia completa.
  • Cobertura observávelO blogueiro diz que o governo conseguiu “mostrar o problema” de “sem problema” a “nenhuma anomalia de indicadores vistos no Grafana antes que o usuário se queixasse”.

□ Saiba mais:

  • Design de Software de Custom - Design e desenvolvimento personalizado para processos de negócios exclusivos
  • Plataforma Digital de Negócios - Construindo a base tecnológica eficiente e escalável
  • Transporte de entrega de produtos - garantia completa de entrega da linha de fluxo CI/CD para o transporte de produção
  • Conselho gratuito - comunicar as suas necessidades estruturais com a equipa ZhiHua Tech
Serviços profissionais para ZhiHua Tech

Necessidade de uma análise mais aprofundada no contexto do estado actual da empresa?

Nós fornecemos consultoria técnica de TI, construção de informações empresariais, projeto de software Outlook, FDE empresa AI aplicação e software design de produtos e serviços de entrega.

Consultores de ligação
Declaração de responsabilidade pelo conteúdo

O corpo de publicação: Xangai, como o ZhiHua Tech. Este artigo é utilizado para fins técnicos e de tomada de decisão de projetos; fatos, dados e perspectivas externas são apresentados na página e podem ser verificados em escopo e não constituem um compromisso com os resultados de um projeto específico.Verificação da autorização de conteúdo, fonte de informação e política de correcção