LFCA lernen die grundlegenden Konzepte von DevOps - Teil 21
- 3194
- 532
- Hr. Moritz Bozsik
DevOps ist seit einiger Zeit ein Trendthema und hat es geschafft, die Aufmerksamkeit von Technologiefachleuten und Unternehmen gleichermaßen auf sich zu ziehen. Als Anfänger kann es schwierig sein, sich um das Konzept von zu wickeln DevOps, Und in diesem Thema werden wir die grundlegenden Konzepte dieses Internet -Schlagworts ausführen.
Starten, DevOps ist ein Portmanteau von zwei Wörtern: Entwicklung Und Operationen. Es handelt sich um eine Reihe von Praktiken und Tools, die die Zusammenarbeit zwischen Entwicklungsteams fördern (Entwickler) und Operationen (Ops). Das Ziel von DevOps soll den Lebenszyklus der Softwareentwicklung rationalisieren, die Ausfallraten minimieren, die Häufigkeit der Bereitstellungen skalieren und eine qualitativ hochwertige Software erreichen.
Ein besseres Verständnis von zu bekommen DevOps Lassen Sie uns in der heutigen modernen IT -Umgebung einen Blick darauf werfen, wie das Einsatzmodell vor dem Aufkommen von DevOps war.
Traditionelle IT -Praktiken
Vor DevOps, Entwicklungsteams und QS -Ingenieure verwendeten das klassische Wasserfallmodell. Die Arbeitslandschaft war größtenteils gegliedert und das Testen und die Einstellung von Anwendungen ereigneten sich in völliger Isolation. Dies führte zu Überschneidungen, Lücken, Verzögerungen bei Feedback und anderen Ineffizienzen, die zusätzliche Zeit benötigten, um das Projekt abzuschließen. Ein begrenztes und verzögertes Feedback führte dazu, dass die Qualität der Software erst in der letzten Entwicklungsphase gründlich geprüft wurde.
Darüber hinaus wurde die manuelle Bereitstellung von Code durch menschliche Fehler verursacht und forderte daher mehr Zeit bei Debugging -Anwendungen. Außerdem hatten verschiedene Teams verschiedene Zeitpläne für die Erledigung ihrer Aufgaben, und es war nicht ungewöhnlich.
Geben Sie DevOps ein
Das Konzept von DevOps wurde zwischen 2007 und 2010 irgendwann von zwei Entwicklern konzipiert: Andrew Shafer Und Patrick Debois. Seit seiner Gründung hat es in jedem Schritt des Lebenszyklus der Softwareentwicklung eine reibungslose Zusammenarbeit zwischen Betriebs- und Entwicklungsteams gefördert. Diese kündigten neue Konzepte wie Kontinuierliche Integration ( CI ) & Kontinuierliche Lieferung ( CD ) und viele andere, die zur schnellen Bereitstellung von Software beitragen.
DevOps Modell und Praktiken
DevOps Es geht nicht nur um Zusammenarbeit und die richtige Einstellung zur Erreichung eines Ziels. Es umfasst Best Practices, die dazu beitragen sollen, qualitativ hochwertige und marktfertige Software in kürzester Zeit zu liefern. Schauen wir uns einige dieser Best Practices an, mit denen Sie die Effizienz und eine schnelle Abgabe von Code steigern können.
Kontinuierliche Integration (CI)
Kontinuierliche Integration ist eine Softwareentwicklungspraxis, in der Entwickler Änderungen in einem zentralen Repository zusammenführen. Danach werden automatisierte Tests und Builds im Code ausgeführt. Ziel der kontinuierlichen Integration ist es, das Debuggen von Anwendungen zu beschleunigen, die Zeit zu verkürzen,.
Kontinuierliche Lieferung (CD)
Kontinuierliche Lieferung (CD) ist eine weitere Praxis, bei der automatisch Änderungen im Code erstellt und für kräftige Tests eingesetzt werden. Später werden automatisierte Tests gegen den bereitgestellten Code durchgeführt, damit die Entwickler die Fehler identifizieren und beheben können. Normalerweise wird der Code zunehmend mehreren Testumgebungen ausgesetzt.
Zu den beliebten CI/CD -Tools gehören Jenkins, Travis CI, Circle CI, Azure DevOps und AWS Code Build.
Kontinuierliche Tests
Das Ziel kontinuierlicher Tests ist es, Fehler und mögliche Risiken in den frühen Phasen des Lebenszyklus der Softwareentwicklung zu identifizieren, um Fehler zu minimieren, die sich im Endprodukt manifestieren würden. Wenn Code die kräftigen Tests fehlschlägt, wird er normalerweise zur Überarbeitung an den Entwickler zurückgesandt, bevor er an die Qualitätssicherungsabteilung weitergegeben wird, um Bewertungen und Funktionstests. Zu den weit verbreiteten kontinuierlichen Testwerkzeugen gehören Travis und Selen.
Kontinuierliche Überwachung & Loggin
Wie zu erwarten, erfordern Anwendungen und die zugrunde liegende Infrastruktur eine kontinuierliche Überwachung, um ihre Leistungidentität alle Fehler oder Mängel zu überprüfen und die Einhaltung verschiedener Branchenstandards sicherzustellen. Eine Vielzahl von Metriken wird überwacht, einschließlich:
- Speicher- und CPU -Nutzung
- Speicherplatznutzung
- Gebrauchsnutzung
- Interaktion mit dem Kunden
Durch Überwachung und Analyse von Daten und Protokollen, die von Anwendungen generiert werden, können Entwickler problemlos Einblicke in die Auswirkungen von Funktionen oder Konfigurationen erhalten. Darüber hinaus hilft das Konfigurieren von Warnungen bei der Identifizierung von Fehlern oder unerwünschten Änderungen bei jedem Schritt des Weges. Letztendlich stellt die kontinuierliche Überwachung die hohe Verfügbarkeit von Anwendungen sicher und führt zu Vertrauen, dass die Dinge wie erwartet funktionieren.
Zu den beliebten Überwachungstools gehören Prometheus, Grafana, Nagios, Zabbix und Netdata, um einige zu erwähnen.
Infrastruktur als Code
Abgekürzt wie IAC, Infrastruktur als Code wird als Bereitstellung und Verwaltung von Ressourcen wie virtuellen Servern beschrieben und Balancer mithilfe von Maschinenleselungskonfigurationsdateien im Gegensatz zu interaktiven Konfigurations-Tools laden. Dies ist besonders in Cloud -Umgebungen wie AWS von wesentlicher Bedeutung, in denen Sie Berechnungsinstanzen leicht anspannen können, indem Sie die Details der Instanz in einer Konfigurationsdatei definieren und Tools wie Terraform zur Bereitstellung der Ressourcen nutzen.
Zum Beispiel, Amazon AWS Bietet APIs, mit denen Benutzer programmatisch mit der Cloud -Plattform aus der Befehlszeile interagieren können. Dies erleichtert eine schnelle Bereitstellung von Ressourcen, indem man manuelle Prozesse und Slack beseitigt. Einfach ausgedrückt wird IAC innerhalb kurzer Zeit mehr Arbeit erledigt.
Microservices
In der Microservices-Architektur ist eine einzelne Anwendung eine Integration oder eine Verschmelzung verschiedener kleinerer lose gekoppelter Dienste. Jeder Dienst läuft unabhängig und kommuniziert mit den restlichen Anwendungen mithilfe von HTTP-basierten APIs. Microservices können als S -Dienstegruppe oder als einzelner Dienst bereitgestellt werden
Die Microservices -Architektur unterscheidet sich stark von der traditionellen monolithischen Architektur. In der traditionellen Architektur sind Anwendungen einstufig und alle Komponenten, einschließlich des Codes und der Benutzeroberfläche, werden in ein einzelnes Programm gebündelt.
Microservices ermöglichen die unabhängige Bereitstellung und das Management von Ressourcen. Sie gewährleisten auch eine hohe Verfügbarkeit, indem sie einen einzelnen Fehlerpunkt verhindern. Wenn eine einzige Anwendung abstürzt, wird der Rest weiter ausgeführt.
Vorteile des DevOps -Modells
Angesehen DevOps Best Practices, konzentrieren wir uns nun auf die Vorteile der Einführung des DevOps -Modells.
Verbesserte Effizienz und Produktivität zwischen Teams
Die Zusammenarbeit zwischen Entwicklungs- und Betriebsteams führt zu einer gemeinsamen Verantwortung, die letztendlich die Produktivität steigert und das Team Engagement für das Team fördert.
Reduzierte Wahrscheinlichkeit eines Produktversagens
Mit der Zusammenarbeit können Teams auch in jeder Phase problemlos Code debuggen, bevor sie in die letzte Phase gelangen. Dies ergibt eine qualitativ hochwertige und marktfertige Software.
Schnelle Softwarezustellung
Die Anwendungsbereitstellung ist dank der Automatisierungswerkzeuge, die DevOps (z.
Mehr Produkttransparenz
Da sich das Produktwissen über verschiedene Abteilungen in Bezug auf das Produkt ausgebreitet ist
Zusammenfassung
Die tief verwurzelte Überzeugung, dass Entwicklungs- und Betriebsteams für immer separat arbeiten müssen, ist lange veraltet und Fehler. Die Siled -Philosophie mag in einigen Branchen immer noch am Leben sein, aber dies hat zu grellen Ineffizienzen geführt.
DevOps versucht, Entwicklungs- und Betriebsteams zu integrieren und eine kulturelle Veränderung von der alten Arbeitsweise in Silos zur Arbeit zusammen zu fördern, um die Fehlerfehler zu reduzieren, die Qualität der Software zu verbessern, die Lieferzeiten zu beschleunigen und die Gesamtproduktivität zu steigern. Letztendlich endet der Endbenutzer zeitnah mit einem hochwertigen Produkt.
Werden Sie ein Linux Foundation Certified IT Associate (LFCA)- « So begrenzen Sie die Nutzung der Netzwerkbandbreite unter Linux mit Trickle
- So durchführen Sie die Sicherheitsprüfung des Linux -Systems mithilfe von Lynis -Tool »