Qualität und Effizienz der Autohome-Montagelinie – ein wichtiger Meilenstein für die zukünftige Softwarebereitstellung

1. Definition der Pipeline

Montagelinie ist die Nominalisierung des Produktfreigabeprozesses. Gemäß der vom Unternehmen definierten Sequenzbeziehung kann die Ausführung der Pipeline als die sequenzielle Ausführung der entsprechenden Verarbeitungs- oder Qualitätsüberprüfungsverhaltensweisen definiert werden. Derzeit verbessert sich der gesamte Softwarebereitstellungslebenszyklus mit der Geschäftsentwicklung ständig. Die Einführung und Anwendung des agilen Konzepts hat die Effizienz der Softwareentwicklung und die Geschwindigkeit von Versionsaktualisierungen erheblich verbessert, ihre Wirkung beschränkt sich jedoch auf den Forschungs- und Entwicklungsprozess und es sind neue Engpässe im Produktfreigabeprozess aufgetreten.
In den letzten Jahren hat das Aufkommen von CI/CD- und DevOps-Konzepten Informationssilos und Kommunikationsbarrieren abgebaut, die Zusammenarbeit zwischen Mitarbeitern in mehreren Positionen vertieft und die Geschwindigkeit und Qualität der Softwarebereitstellung beschleunigt. Autohome ist auch in DevOps in mehrere Phasen unterteilt. Vom ursprünglichen traditionellen Online-Prozess bis zur aktuellen Qualitäts- und Effizienz-Fließbandphase wurden nach und nach F&E-, Betriebs- und Wartungs- sowie QS-Personal vereint und der Qualitätsprüfung und Effizienzverbesserung mehr Aufmerksamkeit geschenkt in jedem Glied des Fließbandprozesses. . In Zukunft werden wir LLM noch stärker in unsere Pläne einbeziehen und das Zeitalter der intelligenten Montagelinien einläuten.
Fügen Sie hier eine Bildbeschreibung ein
Entwicklungsgeschichte und Planung der Zhijia-Montagelinie

2. Entwicklungsprozess

2.1 Traditioneller Online-Prozess

Der traditionelle Freigabeprozess ist relativ primitiv und einfach. Nachdem der Produktcode vom Forschungs- und Entwicklungspersonal bestätigt wurde, kommuniziert und koordiniert er offline mit den Testern. Sobald er von den Testern überprüft wurde, wird er online veröffentlicht, und dann kontaktiert der Produktleiter den Betrieb und Wartung offline, um das Produkt zu überwachen. Und Wartung. Die Ausführung und Übertragung von Aufgaben erfolgt in dieser Phase grundsätzlich offline. Es gibt keine einheitliche Plattform für Verwaltung und Zurückhaltung, was die Arbeit umständlich macht und auch die Zusammenarbeit des Personals in verschiedenen Positionen eingeschränkt ist, was zu einer geringen Arbeitseffizienz und einer langsamen Produktlieferung führt. Und da die Messindikatoren und Arbeitsprioritäten der F&E-Seite und der Betriebs- und Wartungsseite unterschiedlich sind, strebt die eine Seite nach „neuen Funktionen“ und die andere nach „Stabilität“, sodass es oft zu Streitigkeiten zwischen beiden kommt. Mit der Entstehung des DevOps-Konzepts (Development+Operations) vereint Zhijia F&E- sowie Betriebs- und Wartungspersonal, und die Produktprozessentwicklung ist in die Ära einfacher Montagelinien eingetreten.

2.2 Grundlegende Pipeline

DevOps ist eine Idee oder Methodik. Es ist eine Sammelbezeichnung für eine Reihe von Prozessen, Methoden und Systemen. Es wird verwendet, um die Kommunikation, Zusammenarbeit und Integration zwischen F&E-, Betriebs- und Wartungsabteilungen sowie Qualitätssicherungsabteilungen zu fördern, wobei der Schwerpunkt auf dem liegt Einsatz automatisierter Methodenverwaltung. Softwareänderungen und Softwareintegration. Der grundlegende Kern von DevOps ist CI/CD. Um Konflikte zwischen F&E und Betriebs- und Wartungspersonal zu priorisieren, greift Zhijia auf CI/CD-Ideen zurück, um den Produktprozess zu transformieren.
CI (Continuous Integration) ist eine kontinuierliche Integration. Es erkennt und extrahiert automatisch Code, kompiliert und erstellt ihn und generiert stabile und zuverlässige Produkte mit mehreren Versionen, die Entwickler schnell verwenden können, und stellt so die anschließende Softwarebereitstellung sicher . Qualität und Produktivität. Die Plattform unterstützt mehrere F&E-Sprachen, verwaltet Code und externe Abhängigkeiten auf einheitliche Weise, bietet eine Vielzahl flexibler und zuverlässiger Produktgenerierungsmethoden und gewährleistet Produktsicherheit und -qualität. Dies ist ein automatisierter Prozess für F&E-Personal.
CD (Continuous Deployment) bedeutet kontinuierliche Bereitstellung, was bedeutet, dass die Plattform die von Entwicklern vorgenommenen Änderungen automatisch aus dem Repository in die Produktionsumgebung freigibt und dabei vielfältige Bereitstellungsmethoden und standardisierte Bereitstellungsprozesse bereitstellt, um die Qualität sicherzustellen der Softwarebereitstellung und -effizienz. Hauptsächlich um das Problem manueller Prozesse zu lösen, die die Anwendungsbereitstellung verlangsamen und das Betriebs- und Wartungsteam überlasten.
In die Basismontagelinie wurden nach und nach Forschungs- und Entwicklungsarbeiten sowie Betriebs- und Wartungsarbeiten integriert, wodurch die Kommunikation und Zusammenarbeit zwischen den Teams effektiv vertieft wurde. Das Betriebs- und Wartungspersonal wird während der Projektentwicklungsphase in den Entwicklungsprozess einbezogen, um die Systemarchitektur und die vom F&E-Personal verwendeten technischen Routen zu verstehen und geeignete Betriebs- und Wartungspläne zu formulieren. Das Forschungs- und Entwicklungspersonal wird sich auch in den frühen Phasen des Betriebs und der Wartung an der Systembereitstellung beteiligen und Optimierungsvorschläge für die Systembereitstellung unterbreiten. Darüber hinaus haben wir damit begonnen, die Automatisierungsplattform zu nutzen, um die Arbeit zu unterstützen, automatische Servicebereitstellung und Online-Funktionen zu realisieren und eine schnellere und zuverlässigere Produktfreigabe zu unterstützen. Mit der Entwicklung der Plattform wurde der Servicequalität immer mehr Aufmerksamkeit geschenkt. Neben der Effizienz ist auch die Sicherstellung der Qualität zu einem wichtigen Bestandteil geworden. Zhijia vereint das QS-Personal weiter und tritt in die aktuelle Ära der Qualitäts- und Effizienzmontagelinien ein.

2.3 Qualitäts- und Effizienzpipeline

CT (Continuous Test) ist kontinuierliches Testen. Es ist eng in den Prozess der kontinuierlichen Integration (CI) integriert. Es verwendet automatisierte Tests, um Testfälle schnell und genau auszuführen, Codequalitätsprobleme umgehend zu erkennen, die Testeffizienz und Softwarequalität zu verbessern und eine Qualitätssicherung zu ermöglichen Mitarbeiter können ihre Energie bündeln und automatisierte Testfälle und -szenarien optimieren.

Auf dieser Grundlage unterscheidet die Pipeline nicht mehr klar zwischen der Testpipeline und der F&E-Pipeline, sondern integriert verschiedene Arten von Tests in jeden Link der Hauptleitungspipeline. Auf diese Weise müssen Entwickler nicht auf Feedback von der Qualitätssicherung warten, sondern können Probleminformationen aus automatisierten Tests erhalten und zeitnah Anpassungen vornehmen. Um die automatisierten Testkategorien schnell zu bereichern und zu verbessern, nutzt die Plattform die Ressourcen vieler Testplattformen innerhalb des Unternehmens und integriert deren Testfunktionen. Zu den bisher verbundenen Testkategorien gehören Unit-Tests, statische Code-Scans, Schnittstellentests, PC/M-Front-End-Wähltests, APP H5-Leistungstests, Stresstests und Abdeckungstests usw.

Basierend auf diesen umfangreichen Testkategorien bettet die Plattform verschiedene Tests in verschiedene Links der Pipeline ein und erkennt automatisch und in Echtzeit die Qualität jedes Links. Beispielsweise werden Unit-Tests und Code-Scans während der Code-Übermittlungsphase durchgeführt, und Schnittstellentests, Leistungstests und Abdeckungstests werden während der Testbereitstellungsphase durchgeführt. Indem wir sofortiges Feedback zu Testergebnissen geben und die Zugangskontrolle entsprechend den Qualitätskontrollstandards einrichten, können wir den Prozess der Montagelinie effektiv steuern und die Servicequalität streng kontrollieren.
Fügen Sie hier eine Bildbeschreibung ein
Wir haben die grundlegende Pipeline im Kontext von CI/CD weiter transformiert. In der CI-Phase unterstützt die Plattform mehrere F&E-Sprachen, verwaltet Code und externe Abhängigkeiten auf einheitliche Weise, bietet eine Vielzahl flexibler und zuverlässiger Produktgenerierungsmethoden und gewährleistet Produktsicherheit und -qualität. Code- und Versionskontrolle sind der erste Schritt in der Qualitäts- und Effizienzpipeline. Wenn Anforderungen in die Entwicklungsphase eintreten, werden Anwendungscodeversionen einheitlich mithilfe des Git-Systems verwaltet. Die Plattform verwendet Attribute wie die Anwendungsimplementierungssprache, um den Erkennungsmechanismus für nachfolgende Online-Anwendungen aufzuteilen Anwendungen. Um die Kompilierungseffizienz (mit Agenten und lokalen Speichermethoden) und die Sicherheit (Kontrolle externer Zugriffsadressen) in der Entwicklungs- und nachfolgenden CI-Phase zu verbessern, verwendet die Plattform einheitlich private Nexus-Server, um Pakete von Drittanbietern und Business-Basispakete zu verwalten, die programmiert werden Verlassen Sie sich auf die Unterstützung von Java, NodeJS, Go, .net und anderen Sprachen. Die wichtigsten Bearbeitungs- und Konstruktionsaufgaben werden auf Basis des Jenkins-Clusters implementiert und unterstützen zwei Konstruktionsumgebungen: virtuelle Maschinen und Container. Die beiden ergänzen sich und arbeiten unabhängig voneinander. Es unterstützt zwei Aufgabenkategorien: universell und personalisiert, Anpassung an spezielle Abhängigkeiten Umgebungsaufbau; unterstützt Spiegelung, komprimierte Pakete sind zwei Produktausgaben, die mit Container- und virtuellen Maschinenbereitstellungsmethoden umgehen können. Der Anteil der Bildprodukte an der Kompilierung und Erstellung beträgt 89,7 %, und die Plattform bietet auch die größte Unterstützung dafür. Sie bietet drei Arten von Grundbildern: Plattform, Geschäft und Privat. Sie unterstützt die benutzerdefinierte Anordnung und Vorschau von Docker-Dateien und ermöglicht eine schnelle Realisierung und flexible Bildkonfiguration und verbessert den Benutzerkomfort. Zugriffseffizienz. Bearbeiten und erstellen Sie das Produkt, übertragen Sie das Image an das Harbor Image Warehouse und übertragen Sie das komprimierte Paket an OSS. Verwenden Sie dabei die zugrunde liegende Mehrfachkopiefunktion, um die Sicherheit des Produkts zu gewährleisten.
Fügen Sie hier eine Bildbeschreibung ein
Um die Konfiguration verschiedener Umgebungen zu vereinheitlichen und die Betriebseffizienz zu verbessern, verwendet die Plattform in der CD-Phase Vorlagenkonfigurationen und Standardwerte, um Benutzerkonfigurationsvorgänge zu reduzieren. Darüber hinaus bietet es auch eine Umgebungsreplikationsfunktion zum schnellen Generieren derselben Umgebung und ermöglicht den Zugriff auf Eagle Eye-Protokolle und Cloud-Protokolle mit einem Klick, um zu vermeiden, dass Benutzer zwischen verschiedenen Plattformen hin und her wechseln.
Derzeit verfügt die Plattform über mehr als 19.000 gültige Umgebungen. Kontrollieren Sie die Qualität der Anwendungsstarts streng, indem Sie verschiedene Compliance-Zugriffskontrolltests und wichtige Genehmigungen für den Anwendungsbereitstellungsprozess durchführen. Seit diesem Jahr wurden mehr als 26.000 Online-Genehmigungen abgeschlossen. Die Plattform unterstützt zwei Ressourcentypen: Host und Container und bietet mehrere Bereitstellungsmethoden, um Online-Risiken zu reduzieren.
Die Host-Bereitstellung basiert auf Technologien wie OpenStack und Salt und unterstützt 10 Bereitstellungsmethoden, z. B. Tomcat Multi-Instanz/Multi-Anwendung, ausführbare Datei, Springboot, .net-Website, Win-Service und Yum , usw. Die Containerbereitstellung basiert auf Cloud-nativen Technologien wie Kubernetes und Containern. Die Plattform unterstützt drei Bereitstellungsmethoden: vollständig, Graustufen und Blaugrün sowie die Bereitstellung von Service Mesh-Anwendungen (Service Mesh) in speziellen Containerumgebungen.
Fügen Sie hier eine Bildbeschreibung ein
Der CD-Link stellt als Erweiterung des Bereitstellungslinks einen CDN-Aktualisierungslink für Front-End-Dienste bereit, um die Aktualisierungsgeschwindigkeit neuer Versionen zu fördern. Wenn Plattformanwendungen bereitgestellt werden, werden grundlegende Überwachungsfunktionen wie Hosts und Container standardmäßig verbunden, und der Ein-Klick-Zugriff auf Cloud-Plattformprotokolle und Eagle-Eye-Protokolle wird unterstützt, um die Effizienz des Servicegarantie-Zugriffs zu verbessern. Die Anwendungsverwaltung bietet Serviceüberwachung und Protokollierung schneller Verbindungen zu Erleichtern Sie den Benutzern das Verständnis des Servicestatus. Details; stellen Sie ein einheitliches Dashboard für Systemanwendungen bereit, zeigen Sie Servicegeschäfts- und technische Indikatoren aus einer globalen Perspektive an, unterstützen Sie die Überwachung steigender Ereignisse und verbessern Sie die Effizienz der Benutzer bei der Lokalisierung von Problemen. (Die Rolle jeder Überwachungsplattform)
Fügen Sie hier eine Bildbeschreibung ein
In der Phase der Qualitätseffizienz-Pipeline stellt die Plattform verschiedene Arten von Standard-Pipeline-Orchestrierungsvorlagen bereit, z. B. Schnittstellen-Service-Pipelines, Front-End-Service-Pipelines, Pipelines für maschinelles Lernen, und Anpassung, um die Qualität der Benutzerorchestrierung zu verbessern. und Effizienz; Basierend auf der Ähnlichkeit der Front-End-Anwendungspipelines desselben Geschäftstyps wird die Erstellung von Anwendungen mit einem Klick in Form von voreingestellten Vorlagen realisiert. Das System generiert die automatisch gesamten Prozess der Bereitstellungsumgebung, Pipelines usw. und die Effizienz wird im Vergleich zur manuellen Erstellung um mehr als das Dreifache gesteigert.
Fügen Sie hier eine Bildbeschreibung ein
Darstellung des Gesamtprozesses der Qualitäts- und Effizienzpipeline

3. Zukunftsplanung

Da sich die Plattform weiter verbessert, planen wir, die Qualitäts- und Effizienzpipeline weiter zu transformieren, eine Kombination mit dem großen Sprachmodell LLM (Large Language Model) in Betracht zu ziehen und in die Ära der intelligenten Pipelines aufzurüsten. Wir erwägen eine Erweiterung unter folgenden Aspekten:
Intelligente Orchestrierung: Derzeit wird die gesamte Prozessorchestrierung der Pipeline manuell durchgeführt, die Verknüpfungen sind gefestigt und es mangelt an Flexibilität. Wir werden darüber nachdenken Die zukünftige Einführung künstlicher Intelligenz basiert auf dem tatsächlichen Betriebsstatus der Pipeline-Aufgaben und der gesamten Ressourcennutzung, passt die Anordnung dynamisch an, nutzt die Ressourcen vollständig aus und verbessert die Gesamteffizienz.
Intelligentes Testen: Verwenden Sie große Modelle, um automatisch Komponententests, Schnittstellentestfälle und UI-Automatisierungstestfälle zu generieren und die Testabdeckung und -effizienz durch intelligente Qualitätstestaufgaben am Fließband zu verbessern.
Intelligente Bereitstellung: Geben Sie wirksame Empfehlungen auf der Grundlage von Geschäftsbedingungen und gängigen Bereitstellungsmethoden für Anwendungsdienste ab und beheben Sie auf intelligente Weise, wenn die Bereitstellung fehlschlägt, um einen stabilen und effizienten Betrieb von Softwareversionen sicherzustellen.

4. Zusammenfassung

Die Plattform-Pipeline hat von der traditionellen Veröffentlichung bis zur Gegenwart zwei Hauptphasen durchlaufen: Die Basis-Pipeline realisiert kontinuierliche Integration und kontinuierliche Bereitstellung und kombiniert effektiv F&E- und Betriebsarbeit; unter Berücksichtigung der Bedeutung der Servicequalität vereint die Qualitäts- und Effizienz-Pipeline die Qualitätssicherung weiter Personal, Integrieren Sie automatische Tests in jeden Link. In Zukunft werden Plattformanwendungen weiter wachsen und verschiedene Details werden weiterhin verarbeitet, was einen großen Druck auf F&E, Betrieb und Wartung sowie QS-Personal ausüben wird. Glücklicherweise haben wir Wir befinden uns in einer Ära der rasanten Entwicklung der KI. Sprachmodelle können uns dabei helfen, verschiedene Aufgaben wie Funktionsentwicklung, Servicetests, Orchestrierung und Bereitstellung schnell umzusetzen. Das ist eine wunderbare Sache, und es ist auch das intelligente Zeitalter, auf das wir uns alle freuen Zu.

Supongo que te gusta

Origin blog.csdn.net/autohometech/article/details/134515833
Recomendado
Clasificación