Apply scene
El partido organizativo y la capacidad de carga técnica de las aplicaciones monomer tradicionales pueden reducirse significativamente a medida que la empresa evoluciona desde una línea de productos única + monoestructura a una fase de desarrollo multiproducto + multi-team.Cuanto más tiempo sea el ciclo de despliegue, más costos de las pruebas de regresión, más necesidad de cambios menores a un módulo complementario que se reeditará para toda la aplicación— Estas señales sugieren que la introducción de estructuras de microservicio ya no es una condición “sobre-diseñada” sino una condición necesaria para que los equipos sigan prestando servicios eficientes.
Las señales de punto de inflexión típicas incluyen: tiempos de inicio de aplicaciones de más de 30 segundos que conducen a un deterioro de la experiencia de actualización de onda; variaciones significativas en la frecuencia de cambios en diferentes módulos de negocios (los módulos de transacción de núcleo se actualizan una vez por semana y los módulos de gestión de back-office probablemente se muevan una vez al mes), pero el sistema de aislamiento único obliga a mantener el mismo ritmo de liberación;
Los escenarios aquí descritos se aplican a las empresas con altas tasas de desarrollo empresarial, colaboración con varios equipos, alta demanda de resiliencia del sistema y entrega eficiente.ZhiHua TechProporcionar servicios completos de transformación de microservicios desde asesoramiento estructurado a la implementación de la Impromación, no representando datos específicos de los clientes.
Problemas operacionales típicos
1. Botellas de eficiencia de entrega en estructuras de forma única
- Libera un acoplamiento:30 desarrolladores comparten un almacén de código y una línea de transmisión CI/CD. Cualquier combinación de códigos puede bloquear la liberación de otros. Arreglos urgentes para un error de pago, que debe esperar hasta que el atraso anterior de 5 MRs se consoliden y se devuelven a la prueba se completan - estos MR no tienen nada que ver con el módulo de pago.
- Explosiones de prueba.: El rango de prueba de regresión para una sola aplicación es sobre la "aplicación completa". Incluso si SQL se modifica con una única interfaz de consulta, se tarda 40 minutos a 2 horas para ejecutar el paquete completo de prueba de extremo a extremo. La duración del ciclo de retroalimentación de prueba disminuye la velocidad iterativa.
- Cerradura técnicaToda la aplicación está vinculada a un almacén de tecnología (como Java 8+ Spring), un nuevo escenario de negocios que es más adecuado para Go o Node.js, pero la introducción de un nuevo idioma significa un nuevo sistema de construcción, despliegue y monitoreo, y los equipos a menudo eligen "trabajar juntos".
2. Complejidad provocada por la distribución
- La red es inconfiable.: El cuerpo uni es llamado por método, y los microservicios están conectados a la red. Las redes horas extras, sin empaquetar, particionados -- estos patrones de falla que no existen en un cuerpo único son rutinaria bajo estructuras de microservicio. Sin tiempo razonable, re-prueba y estrategias de fusión, un servicio vibra como un domino.
- Congruencia de datos: ACID es la base de los servicios de base de datos de un solo proveedor. Bajo microservicios cada servicio tiene su propia base de datos, y las operaciones de servicio cruzado (a continuación: servicio de pedidos + servicio de pago + servicio de pago) deben depender de programas de servicio distribuidos como Saga o TCC para asegurar la consistencia final. Este cambio de pensamiento – desde la "conclusión del negocio" a "la compensación puede ser posible para cada paso" – es el umbral cognitivo más difícil para que un equipo se cruza.
- Depuración y disuasión: Una solicitud puede cruzar 5-8 microservicios. Cuando un usuario reporta un "orden de abajo" usted necesita collide una cadena de llamadas completa de un registro de entrada, registro de servicio de pedidos, registro de servicios de inventario, registro de servicio de pago, sin un seguimiento distribuido (por ejemplo Jaeger, SkyWalking), el problema de posicionamiento es como una aguja.
3. Falta de infraestructura y movilidad
- Containerization and organizationLos microservicios son naturales para el despliegue de contenedores, pero Kubernetes tiene una curva de aprendizaje empinada. Red Pod, descubrimiento de servicios, ruta de entrada, ConfigMap, gestión secreta, esguince de HPA resistente - conceptos que son cero para los equipos tradicionales.
- CI/CD Complexity: Desde una línea de corriente a una línea N (una para cada servicio), la construcción de espejo, el empuje, el despliegue, la revolver requiere estandarización. Sin una plantilla de línea de corriente uniforme y la gestión de productos, la fragmentación del proceso de entrega puede ser causada por equipos separados.
- ObservabilidadLogging, indicators, and tracking – los tres pilares son uno. Bajo las estructuras de microservicio, la ausencia de cualquiera de los pilares puede conducir a una reducción significativa en la capacidad de extricar.
Planificación de programas
1. Dividencia progresiva en lugar de la reescritura Big Bang
ZhiHua Tech insistió en la transformación del microservicioHangler Fig Patterson• Movilización progresiva hacia los módulos funcionales en la nueva arquitectura manteniendo el funcionamiento normal del sistema antiguo, que coexiste a través de capas de ruta hasta que el sistema antiguo sea completamente reemplazado:
- Primero, eliminamos el módulo de cambio HF.Se da prioridad a la separación de los módulos más frecuentes e independientes de la empresa (por ejemplo, centros de usuario, centros de productos básicos). Una vez desmantelados, disfrutan de los dividendos del despliegue independiente, los cambios ya no se limitan con el ritmo de liberación de otros módulos.
- Entrada unificada de entrada APILa puerta de entrada es responsable de la distribución de rutas, autenticación de la limpieza, restricción de flujo y registros de registro de registros. Solicite que la puerta de entrada al mono o microservicio correspondiente prefijando el camino, sin sentido del extremo frontal.
- Base de datos sigue la división: Cada microservicio separado tiene una base de datos independiente, Schema (incluso un ejemplo de una base de datos independiente), que en última instancia es compatible con la base de datos única sincronizando datos o llamando a API. El desmantelamiento en etapas reduce el riesgo utilizando la estrategia "Dub-Book +-Top-Le".
2. Servicios de gestión de las comunicaciones
Cuando el número de microservicios supera los 10, la gobernanza tradicional de los servicios de SDK (SDK para cada servicio introducido en el marco de RPC) comienza a exponer los costos de mantenimiento - la actualización de SDK requiere que todos los servicios sean reestructurados y publicados, los diferentes servicios de SSDK necesitan diferentes servicios de entrega y cambio de estrategia de gobernanza requiere cambios de código.
ZhiHua Tech recomienda la introducción después de la escala de servicio ha alcanzado un nivel determinado Servicio de malla (por ejemplo, Istio + Enviado), capacidad de gobernanza de servicios de baja distancia para el agente de Sidecar:
- Gestión de flujoLa liberación de Grayscale (por desviación de peso/Header/Cookie), las pruebas de inyección de fallos, los espejos de solicitud - estas capacidades se pueden lograr a través de las configuraciones de Istio Design Rule y Vital Services sin la necesidad de modificar los códigos de negocio.
- Comunicaciones seguras: MTLS (en dos direcciones TLS autenticación) se habilita automáticamente para comunicaciones interservicio, la emisión, rotación y revocación de certificados es gestionado automáticamente por Citadel, y los desarrolladores de negocios no necesitan percibir el mecanismo de seguridad de abajo arriba.
- Observabilidad: Sidecar recopila automáticamente datos de telemetría (deteriorados, exitosos, tasa de error) para todas las estaciones de entrada y salida, y salida a Prometheus (indicador) + Jaeger (link) + ELK (log), formando un triángulo observable completo.
Línea de entrega CI/CD y Gitoops
ZhiHua Tech ayuda a los clientes a construir un sistema de CI/CD estandarizado, siendo el principio principalUna plantilla para cubrir la construcción y el despliegue de todos los servicios:
- Plantilla de agua: Todos los microservicios comparten el mismo conjunto de plantillas CI/CD (Jenkinsfile o GitHub Actions plantilla de trabajo), que requieren sólo unas pocas variables (idioma, puerto, cuota de recursos) a tener acceso. Evite la fragmentación por cada equipo.
- Gitops Deployment: Una declaración de todos los recursos de Kubernetes (Deployment, Service, Ingress, ConfigMap) se almacena en el Repositorio Git, donde el ArgoCD monitorea continuamente los cambios en el Repositorio Git y sincroniza automáticamente a los grupos. Cualquier modificación manual de un clúster es removida por el controlador GitOps para asegurar que "Git Repository = Group Real".
- Liberación canaria: Entrega progresiva a través de Argo Rollouts - nueva versión de Pod desplegado 5% primero, tasa de error de observación y retraso 5 minutos, y la expansión normal del indicador a 25% 50% y 100%. Indicadores en cualquier etapa activan automáticamente la revolver.
Alcance de la capacidad del sistema
Zip, base containerizzate.
- Kubernetes Cluster PlanningDiseño de arquitectura de racimo multiambiental (desarrollo/prueba/preproducción/producción), selección de especificación de nodos, selección de plugins de red (Calico/Cilium), diseño del programa de almacenamiento (CSI).
- Gestión del espejo porterLos siguientes son algunos de los ejemplos de los recientes desarrollos en el área de espejo: construcción de almacén de espejo privado puerto, escaneo de seguridad espejo (Trivy), estrategia de delgada del espejo (construcción multietapa, espejo básico de disolacia).
- Extremación flexible: HPA (basado en escalado horizontal CPU/RAM Pod) + Cluster Autoscaler (escalamiento de nivel de nodos) + KEDA (basado en escalado de indicadores personalizados impulsados por eventos, como la profundidad de la cola de mensajes).
Gestión de los servicios y comunicaciones
- API Gateway: Armonizar la ruta, el flujo límite, la autenticación, el registro, el procesamiento de dominio cruzado. Admite la extensión de la pluginización a la lógica personalizada.
- Registro y Descubrimiento de Servicios: Desecho de servicio basado en Kubernetes DNS + Service, gestionando metadatos de servicio externo en conjunción con Consul/Nacos.
- Configure CenterNacos/Apollo gestiona centralmente las configuraciones del entorno, los cambios de configuración se envían en tiempo real, soportando la distribución en escala gris y la revolvencia.
• Sistema de observación
- Log: Fluentd/Filebeat coleccion →Kafka buffer → Tienda de investigación elástica → Pantalla Kibana. Los registros están asociados por TraceID.
- IndicadoresPrometeo + Grafana, que abarca indicadores de infraestructura (nodo/container/Pod) e indicadores de aplicación (QPS/delayed/wrong/operational indicators).
- Seguimiento de los vínculos: OpenTelemetry + Jaeger, mostrando la cadena de llamadas completa y el tiempo por salto entre los servicios solicitados.
- Llama a la policía.: Alertmanager Classified Alert (energgencia/encadenamiento/notificación), enviado a través de Enterprise Micro-Credits/Pertificación/Reserva de Alimentación, con una captura de pantalla de panel Grafana.
CI/CD Delivery
- Estandarización del repositorio de código (política del banco, CODEOWNERS, plantilla de solicitud de fusión)
- Automatización, pruebas unitarias, escaneo de código (SonarQube), entrega de la construcción del espejo
- Gitoops Deployment (ArgoCD)+Cyancant/Blue Green Release Strategy
Arquitectura de datos de distribución
- Política de división de bases de datos: Dividir verticalmente por campo + Dividir horizontalmente por tiempo/ID (SharingSphere). Leer y escribir por separado (escribir biblioteca principal, leer desde la biblioteca).
- Servicios de distribuciónEsta es una pequeña cantidad de hojas de prensa locales basadas en la información recibida y las hojas de prensa locales.
- Estructura de la caché: Caché de nivel multinivel de Redis (caché local + caché de distribución + base de datos), Cache Aside / Writer Behind.
Entregas
| Fase | Entrega | Principales elementos |
|---|---|---|
| Arquitectura | Estructura de diseño | Programa de desegregación de servicios, definición de límites de zona, interfaz compacta (API), estrategia de datos y arquitectura de infraestructura |
| Infraestructura | K8s de racimo + medio | Nivel de producción Kubernetes Implementación de equipos (incluyendo configuración de red/toraje/seguridad), puerta de entrada API, red de servicios, centro de configuración, centro de registro, etc. |
| Observabilidad | Vigilancia y sistema policial | Panel de monitoreo Prometheus + Grafana, plataforma de registro ELK, seguimiento de enlaces Jaeger, configuración de reglas de alarma y canal de notificación de jerarquía |
| CI/CD | Waterline + GitOps | Plantilla de línea de flujo de CI/CD estandarizada, configuración ArgoCD, estrategia de liberación canaria, mecanismo de revolver automatizado |
| Migración | Programa de migración y traspaso | Programa de migración de Hangers, scripts de migración de datos, manual de transporte, capacitación de equipo y seguridad en línea 7x24 |
Orientación de valor integmentada
- Aumentos significativos de la eficiencia en la prestaciónEl servicio se construye, prueba y desplega de forma independiente, y el ciclo de liberación de un solo servicio se reduce de un nivel "semana" a un nivel "hora".
- Aislamiento y elasticidad por defecto: La fuga de memoria de un servicio no reduce el sistema. Amplificación automática (HPA/KEDA) asegura que hay suficientes recursos bajo flujo máximo para reducir el costo de recuperación automática de recursos en valles bajos.
- Libertad de almacén de tecnología: Los diferentes servicios pueden seleccionar los mejores compartimentos tecnológicos de la escena, y la introducción de nuevas tecnologías ya no requerirá la reorganización completa.
- Cobertura observableEl blogger dice que el gobierno ha podido “mostrar el problema” de “no hay problema” a “no hay indicadores de anomalía vistos en Grafana antes de que el usuario se quejase”.
📎 Saber más:
- Diseño de software Custom - Diseño y desarrollo personalizado para procesos empresariales únicos
- Business Digital Platform - Creación de la base tecnológica eficiente y escalable a nivel empresarial
- Transporte de entrega de productos - garantía de entrega completa de la línea de flujo CI/CD al transporte de producción
- Consejos gratis - comunicar sus necesidades estructurales con el equipo ZhiHua Tech
¿Necesitas más análisis en el contexto del estado actual de la empresa?
Ofrecemos asesoramiento técnico de TI, construcción de información empresarial, proyecto de software Outlook, aplicación FDE AI y servicios de diseño y entrega de productos de software.