devops automation how is automation applied devops practice
Automatisierung in DevOps:
Im letzten Tutorial haben wir die Wichtigkeit von gelernt Quellcodeverwaltung in DevOps . In diesem Tutorial erfahren Sie mehr über die Automatisierung in DevOps.
Automatisierung ist das ultimative Bedürfnis nach DevOps-Übung und „Alles automatisieren“ ist das Schlüsselprinzip von DevOps. In DevOps beginnt der Automatisierungskick mit der Codegenerierung auf dem Entwicklercomputer, bis der Code in den Code übertragen wird, und sogar danach, um die Anwendung und das System in der Produktion zu überwachen.
Empfohlene Lektüre => Informative DevOps Tutorial-Reihe
Die gesamte DevOps-Pipeline mit kontinuierlicher Integration, kontinuierlichem Testen und kontinuierlicher Bereitstellung, einschließlich der Überwachung der Anwendungsleistung in Live, ist automatisiert.
Die Automatisierung der Einrichtung und Konfiguration der Infrastruktur sowie der Softwarebereitstellung ist das wichtigste Highlight der DevOps-Praxis. Die DevOps-Praxis ist stark von der Automatisierung abhängig, um Lieferungen über einen Zeitraum von wenigen Stunden und häufige Lieferungen über Plattformen hinweg durchzuführen.
Die Automatisierung in DevOps fördert somit die Geschwindigkeit, Genauigkeit, Konsistenz und Zuverlässigkeit und erhöht die Anzahl der Lieferungen. Letztendlich umfasst die Automatisierung in DevOps alles vom Erstellen, Bereitstellen und Überwachen.
VIDEO Teil 2 Block 3: DevOps-Automatisierung- 16 Minuten 40 Sekunden
Lassen Sie uns die Bedeutung der Automatisierung in der DevOps-Praxis in diesem Lernprogramm im Detail verstehen.
Hier werden wir diskutieren:
- Wie wird Automatisierung in der DevOps-Praxis angewendet?
- Bedarf und Rolle der Automatisierung?
- Was ist zu automatisieren?
- Tools und Framework, kontinuierliche Tests?
Ich habe ein bisschen Angst, über Automatisierung zu sprechen. Denn wie viel ich über Automatisierung spreche, ist meiner Meinung nach überhaupt nicht vollständig.
Selbstverständlich geht die Automatisierung einfach von den manuellen Aufgaben weg. Die Menschen möchten ihre Beteiligung an alltäglichen Routineaufgaben reduzieren und ihre Zeit und Intelligenz für etwas Neues oder Innovatives einsetzen.
Trotzdem ist die Rolle der Automatisierung in DevOps sehr wichtig und sehr wichtig, um dem Kunden kontinuierlich Mehrwert zu bieten.
Lassen Sie uns gemeinsam beantworten, wie die Automatisierung in der DevOps-Praxis angewendet wird und was automatisiert werden soll, da beide Fragen gemeinsam beantwortet werden.
Was ist zu automatisieren?
Ich denke, dass für die Beantwortung dieser Frage in diesem Zeitalter der Automatisierung nicht viel Erklärung erforderlich ist. Überall, wo wir hingehen, sehen wir Dinge, die automatisiert werden, entweder mit minimalem oder ohne menschliches Eingreifen. DevOps ist also keine Ausnahme.
Bei einer herkömmlichen Softwareentwicklungsmethode wurden nur das Entwicklungsteam und seine Aktivitäten automatisiert, insbesondere das Testen. Früher bedeutete Automatisierung das Testen und Automatisieren von Testfällen, auch nur Funktionstestfälle, aber nicht einmal nichtfunktionale Tests wie Leistung und Sicherheit.
Und keine der anderen Aktivitäten, insbesondere Ops-Aktivitäten, wurden zur Automatisierung verwendet. Der Fehler bei der manuellen Bereitstellung auf einem riesigen Cluster mit 8 Servern und der dadurch verursachte Verlust ist sehr gut Beispiel Die Komplexität der Bereitstellungen erklärt deutlich die Notwendigkeit der Automatisierung für Devops-Aktivitäten.
Wie macht man eine gefälschte E-Mail-Adresse?
Ich habe selbst gesehen, dass Organisationen hochqualifizierte und intelligente Mitarbeiter einstellen, indem sie ein riesiges Gehaltspaket zahlen, um die Netzwerke und Umgebungen zu konfigurieren, die früher auf der Grundlage ihrer Intelligenz, ihres Wissens auf dem jeweiligen Gebiet, ihrer Erfahrung und ihres Fachwissens durchgeführt wurden eine komplette manuelle Arbeit.
Die manuelle Konfiguration ist bekanntlich immer fehleranfällig. Was bei der manuellen Einrichtung im Allgemeinen passiert ist, ist, dass diese intelligenten Leute, Netzwerkkonfiguratoren, über einen bestimmten Zeitraum hinweg, nachdem sie immer wieder dieselbe Arbeit ausgeführt haben, sich über diese Aktivitäten langweilen und fällige Fehler begehen zur Fahrlässigkeit.
Sie wissen, dass sie sehr brillant sind und diese Aktivitäten für sie sehr einfach und uninteressant sein werden. Sie brauchen jeden Tag neue Herausforderungen und nicht diese langweilige Aufgabe.
Die Einführung der Automatisierung für die Softwareinstallation und die Versionskontrolle des Infrastrukturteils wurde zu einem enormen Gewinn und reduzierte neben der Zeitersparnis viele menschliche Fehler und ermöglichte es jedem normalen Menschen, dies zu tun, wodurch die Abhängigkeit von Fachleuten beseitigt wurde.
Wenn Sie Prozesse durchlaufen, wenn eine neue Umgebung eingerichtet werden soll, z. B. das Ticket für die Einrichtung einer neuen Umgebung zu erhöhen, das IT-Team bei der Einrichtung von hinten arbeitet, werden all diese Probleme beseitigt.
Somit sind einzelne Teammitglieder befugt, die Aufgaben auszuführen. Stellen Sie sich vor, wie schnell, zuverlässig und konsistent die Automatisierung ist. Die Automatisierung hat also furchtbar zugenommen, die Anzahl der Lieferungen an die Produktion.
In der DevOps-Praxis hat das Operations-Team nun auch mit der Automatisierung aller seiner Arbeiten begonnen, was zum Schlüssel für den Erfolg von DevOps geworden ist.
In der DevOps-Praxis beginnt der Automatisierungskick von der Codegenerierung auf dem Entwicklercomputer bis zur Veröffentlichung des Codes und sogar danach bei der Überwachung der Anwendung im Live-Modus. Dies ist ein typischer DevOps-Zyklus.
Das Entwicklungs- und Ops-Team überprüft den Code und die Umgebungskonfigurationen in der Quellcodeverwaltung, von wo aus die Automatisierung zum Auslösen des Builds, Ausführen von Komponententestfällen und anderen grundlegenden Codequalitäten, Abdeckungstestfällen, sicherheitsrelevanten Testfällen usw. startet.
Sobald der Code damit fertig ist, wird der Code automatisch kompiliert, in der Versionskontrolle gespeichert und automatisch für weitere Tests und letztendlich für die Produktionsversion in den weiteren Umgebungen bereitgestellt.
Wir können sehen, dass die Automatisierung in jeder Phase der Entwicklung ausgeführt wird, beginnend mit dem Auslösen des Builds, dem Durchführen von Komponententests, dem Verpacken, dem Bereitstellen in den angegebenen Umgebungen, dem Durchführen von Buildverifizierungstests, Rauchtests, Abnahmetestfällen und dem endgültigen Bereitstellen auf die endgültige Produktionsumgebung.
Selbst wenn wir von der Automatisierung von Testfällen sprechen, handelt es sich nicht nur um Komponententests, sondern auch um Installationstests, Integrationstests, User Experience-Tests, UI-Tests usw.
DevOps zwingt das Betriebsteam zusätzlich zu den Entwicklungsaktivitäten, alle Aktivitäten zu automatisieren, z. B. die Bereitstellung der Server, die Konfiguration der Server, die Konfiguration der Netzwerke, die Konfiguration der Firewalls und die Überwachung der Anwendung im Produktionssystem.
Um zu beantworten, was zu automatisieren ist, ist es Build-Trigger, Kompilieren und Erstellen, Bereitstellen oder Installieren, Automatisieren der als codiertes Skript eingerichteten Infrastruktur, Umgebungskonfigurationen als codiertes Skript, natürlich Testen, Überwachung der Lebensleistung nach der Bereitstellung im Leben, Protokollüberwachung, Überwachung von Warnungen, Übermittlung von Benachrichtigungen an das Leben und Abrufen von Warnungen von der Live-Funktion bei Fehlern und Warnungen usw.
Letztendlich werden alle projektbezogenen Dokumente automatisiert.
Ich kann also sagen, dass Automatisierung in der DevOps-Sprache kontinuierliche Integration, kontinuierliches Testen, kontinuierliche Bereitstellung und kontinuierliche Bereitstellung bedeutet. Wir werden jeden von ihnen in den kommenden Teilen im Detail untersuchen.
Insgesamt ermöglicht DevOps, wo immer möglich, jede Aktivität der Entwicklung und des Betriebs, je nachdem, welche automatisierbar ist, welche wiederholbar ist, wo immer Genauigkeit gefordert wird, je nachdem, was lange dauert, automatisiert wird.
Wenn wir jedoch die für die Automatisierung zu verwendenden Tools nicht erwähnen, ist die Diskussion über die Automatisierung unvollständig.
Die Auswahl eines richtigen Frameworks und Automatisierungstools ist daher die Hauptanforderung für die Automatisierung in DevOps.
Auf dem Markt sind viele Tools verfügbar, sowohl Open Source- als auch lizenzierte Tools, die die End-to-End-Automatisierung der gesamten Bereitstellungspipeline unterstützen, einschließlich Aktivitäten des Ops-Teams, Bereitstellung von Maschinen, Drehen automatisierter Server, Konfigurieren von Netzwerken, Firewalls, und sogar die Leistung der Software überwachen.
Außerdem haben bestimmte Organisationen ein eigenes Framework entwickelt, um den End-to-End-Prozess von DevOps zu integrieren, der vom Code-Commit bis zur Code-Bereitstellung reicht, einschließlich der Dokumentation, die ein einziges integriertes Tool darstellt, und das Team muss das Framework nicht verlassen, um irgendetwas damit zu tun zu programmieren, sei es Versionskontrolle, Schreiben von Testfällen, Überprüfen, Dumping von Testfallergebnissen, Analyse usw.,
Z.B: Marionette, Azure-Ressourcenmanager, Koch usw.,
Vorteile der Automatisierung in DevOps
Wir haben frühere Releases gesehen, da es keine Automatisierung gibt, die Jahre braucht, um in die Produktion zu kommen, und in letzter Zeit auch mit Agilität, sei es schlank, scrum oder sicher, und wenn ein Prozentsatz der Automatisierung verbessert wird, werden die Release-Fristen auf einige Monate oder weniger verkürzt Wochen.
Die Automatisierung ist jedoch ein absolutes Muss, um die Veröffentlichungen in wenigen Stunden so schnell wie möglich zu machen. Ich denke, es ist unmöglich, so schnelle und häufige Releases zu erstellen, wenn wir nicht die gesamte Pipeline automatisieren.
Port-Triggerung vs. Port-Weiterleitung
Wenn wir also die Ziele von DevOps erreichen möchten, hohe Qualität und Wertschöpfung für Kunden durch häufige und schnelle Lieferungen, ist die Automatisierung alles ein Muss.
Wir wissen inzwischen, dass die Automatisierung manuelle Fehler beseitigt, von einer Person abhängig ist, schneller arbeitet und Genauigkeit erzielt, wodurch Konsistenz und Zuverlässigkeit erreicht werden. Die Automatisierung von allem ermöglicht dem Entwickler das Ziel einer qualitativ hochwertigen Lieferung, ermöglicht häufige und schnellere Veröffentlichungen.
Kurz gesagt, Automatisierung,
- Entfernt manuelle Fehler
- Teammitglieder werden ermächtigt
- Abhängigkeit entfernt
- Latenz entfernt
- Erhöht die Anzahl der Lieferungen
- Reduziert die Vorlaufzeit
- Erhöht die Häufigkeit von Veröffentlichungen
- Bietet schnelleres Feedback
- Ermöglicht Geschwindigkeit, Zuverlässigkeit und Konsistenz
Kurz gesagt, die Automatisierung in DevOps umfasst letztendlich alles, vom Erstellen, Bereitstellen und Überwachen.
PREV Tutorial | NÄCHSTES Tutorial
Literatur-Empfehlungen
- Bedeutung kleiner Inkremente von Lieferungen in DevOps
- Quellcodeverwaltung oder Versionskontrolle in DevOps (Video-Tutorial Teil 2 - Block 2)
- DevOps Tutorial: Der ultimative Leitfaden für DevOps (25+ Tutorials)
- DevOps-Praxis basierend auf agilem Manifest (Teil 2 - Block 1)
- DevOps-Test-Tutorial: Wie wirkt sich DevOps auf QS-Tests aus?
- AWS CodeCommit-Lernprogramm für die DevOps-Implementierung in der Cloud
- SeeTest Automation Tutorial: Ein Handbuch für mobile Testautomatisierungstools
- Kontinuierliche Lieferung in DevOps