Appliquer la scène
L'équipe de développement de logiciels rencontre presque inévitablement des « goulets d'étranglement de livraison » dans le processus de mise à niveau : la fréquence des soumissions de code augmente, mais la vitesse d'accès est plus lente; différents outils et processus sont en cours de développement, de test et de fonctionnement l'un à la fois, exigeant un contact manuel entre trois personnes et le système à la fois; les différences environnementales font de « courir sur ma machine » un argument verbal; et la défaillance des lignes de ligne, qui nécessitent un nombre de logs, et la perte d'utilisateurs lorsque des problèmes sont découverts.
Le problème n'est pas que l'équipe ne travaille pas dur, mais que c'est le cas.Absence de système automatisé et de normes de collaboration reliant développement, essais, déploiement, transport et communication. Les scènes décrites ici sont pour les équipes de logiciels qui s'attendent à construire des pratiques standard DevOps et des capacités de livraison continue, et sont affichées sur les pagesZhiHua Tech (Shanghai e-Seok-shu Hsien-Shui Information Technology Ltd.)Les méthodes de construction et de livraison du système DevOps disponibles ne représentent pas la divulgation de données pour des clients particuliers.
Problèmes opérationnels typiques
1. Long cycle de sortie, multiples opérations manuelles et taux d'erreur élevé
- Construisez et déployez manuellementLe paquet manuel, serveur de téléchargement manuel, service de redémarrage manuel après le développement du code – une version simple peut prendre une demi-heure pour mettre à jour. Chaque version est une opération stressante, et une légère fuite peut échouer.
- Incohérence environnementaleIl existe des différences cachées entre l'environnement de développement, l'environnement de test, l'environnement de prépublication et l'environnement de production - la version du système d'exploitation, la configuration intermédiaire, la dépendance à l'égard des petits numéros de version de la bibliothèque.
- Absence de mécanismes normalisés de retour en arrière: Lorsqu'un défaut grave est détecté après la libération, le renversement dépend des opérations manuelles et même de la récupération de sauvegarde, et le temps de renversement est mesuré en heures plutôt qu'en minutes.
2. Rétroaction retardée des tests et qualité manuelle ascendante
- La chaîne d'essai est un goulot d'étranglement.: La période de test peut durer une semaine après avoir développé le code soumis. L'équipe de développement continue à écrire le code en avant, et au moment où le test revient, le développement a beaucoup progressé, basé sur l'ancien code, et la réparation de Bug est devenue une douloureuse "soumission psychologique".
- La couverture du test de régression est insuffisante• Les cas de runback manuel avant la libération, limités au temps et à la main-d'œuvre, ne couvrant généralement que le processus principal.
3. Faible réponse en ligne et passive à la défaillance observée
- Les journaux sont dispersés et difficiles à connecterDans l'architecture des microservices, une demande d'utilisateur peut s'étendre sur 5-10 exemples de services. Les journaux de services sont dispersés sur différents serveurs, et les problèmes sont vérifiés sur une base log-par-ligne, sans série de trackID.
- On est en retard pour la surveillance.Les règles de l'alarme sont larges — souvent seulement lorsque le nombre d'utilisateurs a diminué de manière significative et que l'entreprise a été endommagée — et déclenche l'alarme. Il n'y a pas d'analyse des liens et d'alerte rapide pour les indicateurs opérationnels (baisse de la quantité, taux de succès des paiements) et les indicateurs d'infrastructure.
Conception des programmes
1. Construction de conduites de débit normalisées CI/CD
- Déclencheurs de soumission de code: Le développement d'un code Push vers une branche spécifique déclenche automatiquement la construction d'une ligne de flux - compiler, tester l'unité, scanner le code (SonarQube), scanner sécurisé, construction miroir. Si un lien échoue, le développeur reçoit une notification instantanée dans IDE ou Enterprise IM.
- Libre service environnemental: L'environnement de test et l'environnement de pré-dispatch sont définis par la définition standard de l'infrastructure, ou code (terraform/Ansible), et tout membre de l'équipe peut créer l'environnement complet par une seule clé.
- Déploiement à l'échelle grise et déploiement canari: Les rejets de production sont déployés pour la première fois à 5-10 %, et l'observation des indicateurs de base (erreurs, retards, données d'affaires) est normale et s'étend jusqu'à plein volume.
2. Mise en place de systèmes automatisés de stratification des essais
- Pyramide d'essai: Un grand nombre de tests unitaires (rapides, crédibles) Un test d'intégration approprié Un petit nombre de tests de bout en bout. Chaque ligne de streaming est exécutée d'abord par tests unitaires (secondes) et ensuite seulement après le passage est test intégré.
- Automatisation de l ' essai de régression: La base de données de performance de l'interface clé est automatiquement testée dans chaque construction. Si une soumission entraîne un retard dans une interface P99 dépassant le seuil, la construction marque automatiquement une défaillance.
3. Mise en place d ' une détectabilité intégrale de la chaîne
- Suivi unifié du journal et des liens: Basé sur ELK/Loki + OpenTelemetry, tous les journaux de service sont collectés et insérés dans TraceID. Saisissez un TraceID lors de la recherche d'une question pour voir le temps nécessaire pour appeler le lien complet et chaque noeud.
- D.D. Watch et alarme intelligente.Surveillance de l'infrastructure (CPU/RAM/disque/réseau) + Surveillance de l'application (QPS/délais/erreurs) + Surveillance opérationnelle (faible/pertinence de paiement) est liée à trois couches. Les règles d'alarme soutiennent la détection du même-à-symétrie/anneau pour éviter les déclarations erronées et la déclaration insuffisante de seuils fixes.
Portée des capacités du système
Gestion du code et de la construction
- GitFlow/Trunk-Based
- Construction intégrée et mise sur la gestion pour des projets multimodules
- Barre de porte de qualité du code : balayage statique, détection des lacunes de sécurité, contrôle de la couverture d'essai
- Gestion intégrée de l'entrepôt de produits (rétroviseur Docker/JAR/WAR/NPM)
• Intégration et déploiement continus
- Jenkins / Gitlab CI / GitHub Actions Ligne d'eau
- Déploiement automatique multi-environnemental (développement/essai/prépublication/production)
- Sortie Greyscale, déploiement Blue Green, stratégie de mise à jour en continu
- Délivrance du débit d ' homologation et automatisation des enregistrements de changement
Essais d'automatisation
- Module Test / Test intégré / Politique de la couche d'essai de bout en bout
- Essais de référence et de régression
- Test d'interface des contrats (Pact) pour assurer l'interopérabilité des services
- Essai de Chaos Mesh pour vérifier la résilience
• Plates-formes observables
- ELK / Plateforme centrale de connexion de Grafana Loki
- Prométhée + Surveillance et visualisation des indicateurs de Grafana
- OpenTelemetry, suivi de liaison complète.
- + Notification multicanaux (croisure/micro/livre volant/PagerDuty)
L'infrastructure est un code
- Terraform / Organisation de ressources en nuage Pulumi
- Gestion de la configuration Ansible / SaltStack
- Kubernetes Gestion de grappes et Auto-Scalp
- Déploiement d'applications standard du diagramme de Helm
Produits livrables
| Phase | Livraison | Principaux éléments |
|---|---|---|
| Évaluation de DevOps | Diagnostic de la situation actuelle | Processus actuels de recherche et développement et évaluation de la chaîne d'outils, quantification des points de douleur, évaluation de la maturité et feuille de route pour l'amélioration |
| La conduite d'eau fonctionne. | CI/CD ligne courante | Construction, essai et déploiement de lignes de streaming, y compris la numérisation de code, les tests de sécurité et l'intégration automatisée des tests |
| Système de contrôle | Plateforme d'observation | Logs/indicateurs/liens complétés, configurations de règles d'alerte clés déployées, grande distribution de disque surveillée |
| Règlementer le document | Manuel de codes DevOps | Politique de la Direction générale, processus d'examen du Code, processus de mainlevée, processus de réintroduction, normes de devoir et d'intervention d'urgence |
| L'autonomisation des équipes. | Formation et exercice | Formation sur l'exploitation de la chaîne d'outils, Défice d'urgence (Journée du jour), modèle de relais de fragrment et suivi amélioré |
Orientation de la valeur prévue
- Fréquence et fiabilité de la libération: Jusqu'à et encore plus fréquemment, les sorties mensuelles sont émises sur demande, chaque sortie étant considérablement réduite par un petit ensemble de changements.
- 70% +• Élimination des connexions artificielles et des liaisons d'attente par des lignes de flux automatisées.
- Temps moyen de réparation des défauts de fonctionnement (MTTR) comprimé d'un parent à une minute: suivi de chaîne complet + alarme intelligente, position racine plus de devinée.
- Les équipes sont passées de "série et ainsi de suite" à "grappe ensemble".: Self-service environnemental, retour d'expérience automatisé, développement et QA ne s'attendent plus.
En savoir plus :
- Transport de livraison de produits — Automatisation du déploiement de ZhiHua Tech, surveillance des alertes et des services d'hébergement de transport
- Développement de logiciels de garde - Conception et développement spécifiques au système pour les processus opérationnels uniques
- Guide de coopération et d'exécution du projet - processus de collaboration complet, de la communication avec la demande à l'acceptation et à l'inspection
- Conseil gratuit - communiquer vos besoins spécifiques avec l'équipe ZhiHua Tech
Nécessité d'une analyse plus approfondie dans le contexte de l'état actuel de l'entreprise?
Nous fournissons des conseils techniques en informatique, la construction d'informations d'entreprise, le projet logiciel Outlook, l'entreprise FDE AI application et logiciel conception et de livraison de produits.