DevOps-Echtzeitszenarien - Wissen, was in Echtzeit passiert



Dieser Blog beschreibt die Echtzeitszenarien von DevOps, um Ihnen zu helfen, die Herausforderungen zu verstehen, denen Sie in Echtzeit begegnen könnten, und wie Sie diese bewältigen können.

Viele von Ihnen kennen möglicherweise alle Theorien, die damit zusammenhängen . Aber wissen Sie, wie man DevOps-Prinzipien im wirklichen Leben umsetzt? In diesem Blog werde ich die DevOps-Echtzeitszenarien diskutieren, die Ihnen helfen, ein kurzes Verständnis der Funktionsweise in Echtzeit zu erlangen.

Die Hinweise, die ich hier behandeln werdeArtikel über DevOps-Echtzeitszenariensind:





Beginnen wir also mit unserem ersten Thema.

Was ist DevOps?

devops-devops Echtzeitszenarien-EdurekaDevOps ist ein Softwareentwicklungsansatz, der kontinuierliche Entwicklung, kontinuierliches Testen, kontinuierliche Integration, kontinuierliche Bereitstellung und kontinuierliche Überwachung der Software während ihres gesamten Entwicklungslebenszyklus umfasst. Diese Aktivitäten sind nur in DevOps möglich, nicht in Agile oder Wasserfall. Aus diesem Grund haben Facebook und andere Top-Unternehmen DevOps als Weg für ihre Geschäftsziele gewählt.DevOps wird hauptsächlich für die Entwicklung hochwertiger Software in kürzeren Entwicklungszyklen bevorzugt, was zu einer höheren Kundenzufriedenheit führt.



Im nächsten Abschnitt davonIm Artikel über Echtzeitszenarien von DevOps werden wir uns die verschiedenen von DevOps gelösten Probleme ansehen.

Von DevOps gelöste Probleme

1. Liefern Sie Wert an Kunden

  • DevOps minimiert die Zeit Es braucht, um den Kunden einen Mehrwert zu bieten. Die Zykluszeit von der Fertigstellung einer Story / Aufgabe durch den Entwickler bis zur Produktion verringert sich erheblich, sodass der Wert so schnell wie möglich realisiert werden kann.
  • Der wichtigste Wert, der durch DevOps erzielt wird, besteht darin, dass IT-Organisationen dies tun können konzentrieren sich auf ihre „Kern“ -Geschäftsaktivitäten . Durch Entfernen von Einschränkungen innerhalb des Wertstroms und Automatisieren von Bereitstellungspipelines können sich Teams auf die Aktivitäten konzentrieren. Dies hilft bei der Schaffung von Kundennutzen, anstatt nur Bits und Bytes zu verschieben. Diese Aktivitäten erhöhen den nachhaltigen Wettbewerbsvorteil eines Unternehmens und führen zu besseren Geschäftsergebnissen.



2. Reduzierte Zykluszeit

  • Intern ist DevOps der einzige Weg, um die Flexibilität zu erreichen, sicheren Code mit Erkenntnissen bereitzustellen. Es ist wichtig, Tore und einen gut ausgearbeiteten DevOps-Prozess zu haben. Wenn Sie eine neue Version bereitstellen, kann diese neben der aktuellen Version ausgeführt werden. Sie können auch Metriken vergleichen, um das zu erreichen, was Sie wollten, mit Anwendungs- und Leistungsmetriken.

    Was ist Echo in PHP
  • DevOps treiben Entwicklungsteams voran kontinuierliche Verbesserung und schnellere Freisetzungszyklen . Wenn dies gut gemacht wird, ermöglicht dieser iterative Prozess im Laufe der Zeit eine stärkere Konzentration auf die Dinge, die wirklich wichtig sind. Zum Beispiel Dinge, die den Benutzern großartige Erlebnisse bieten - und weniger Zeit für die Verwaltung von Tools, Prozessen und Technologien.

3. Time to Market

Das wichtigste zu lösende Problem ist das Reduzierung der Komplexität des Prozesses. Dies trägt erheblich zu unserem Geschäftserfolg bei, indem wir die Markteinführungszeit verkürzen, schnelles Feedback zu Funktionen geben und besser auf die Bedürfnisse unserer Kunden eingehen.

4. Problemlösung

  • Der größte Wert einer erfolgreichen DevOps-Implementierung besteht in einem höheren Vertrauen in die Bereitstellung, Transparenz und Rückverfolgbarkeit der Vorgänge, sodass Sie Probleme schneller lösen können.

  • Ein weiterer wichtiger Vorteil von DevOps ist, dass keine Zeit verschwendet wird. Das Ausrichten der Mitarbeiter und Ressourcen eines Unternehmens ermöglicht schnelle Bereitstellungen und Aktualisierungen. Auf diese Weise können DevOps-Programme Probleme beheben, bevor sie zu Katastrophen werden.DevOps schafft eine Kultur der Transparenz, die den Fokus und die Zusammenarbeit zwischen Entwicklungs-, Betriebs- und Sicherheitsteams fördert.

CI (Continuous Integration) inDevOps-Echtzeitszenarien

1. Einzelpersonen sehen eine kontinuierliche Integration möglicherweise als kontraproduktiv an

Mitglieder eines Entwicklungsteams haben unterschiedliche Rollen, Verantwortlichkeiten und Prioritäten. Es ist möglich, dass die erste Priorität des Produktmanagers darin besteht, neue Funktionen zu starten. Die Projektmanager müssen sicherstellen, dass ihr Team die Frist einhält. Programmierer denken möglicherweise, dass sie langsamer werden, wenn sie jedes Mal aufhören, einen kleinen Fehler zu beheben. Sie könnten der Meinung sein, dass es eine zusätzliche Belastung für sie ist, den Build sauber zu halten, und sie werden nicht von ihren zusätzlichen Anstrengungen profitiert. Dies kann möglicherweise den Anpassungsprozess gefährden.

Um dies zu überwinden:

  • Stellen Sie zunächst sicher, dass Ihr gesamtes Team an Bord ist, bevor Sie eine kontinuierliche Integration durchführen.

  • CTOs und Teamleiter müssen den Teammitgliedern helfen, die Kosten und den Nutzen einer kontinuierlichen Integration zu verstehen.

  • Zeigen Sie auf, welche und wann Codierer davon profitieren, wenn Sie sich einer anderen Arbeitsmethode widmen, die etwas mehr Offenheit und Flexibilität erfordert.

2. Integration von CI in Ihren bestehenden Entwicklungsfluss

Die Einführung von CI erfordert zwangsläufig die wesentliche Änderung einiger Teile Ihres Entwicklungsworkflows. Es ist möglich, dass Ihre Entwickler den Workflow nicht reparieren, wenn er nicht beschädigt ist. Dies ist hauptsächlich möglich, wenn Ihr Team eine größere Routine bei der Ausführung seines aktuellen Workflows hat.

Wenn Sie den Workflow ändern möchten, müssen Sie dies mit großen Vorsichtsmaßnahmen tun. Andernfalls könnte die Produktivität des Entwicklungsteams und auch die Qualität des Produkts beeinträchtigt werden. Ohne ausreichende Unterstützung durch die Führung könnte das Entwicklungsteam etwas zögern, eine Aufgabe mit solchen Risiken zu übernehmen.

Um dies zu überwinden:

  • Sie müssen sicherstellen, dass Sie Ihrem Team genügend Zeit geben, um den neuen Workflow zu entwickeln. Dies geschieht, um eine flexible kontinuierliche Integrationslösung auszuwählen, die ihren neuen Workflow unterstützen kann.

  • Stellen Sie außerdem sicher, dass das Unternehmen den Rücken hat, auch wenn die Dinge zu Beginn möglicherweise nicht reibungslos verlaufen.

3. Rückfall in die früheren Testgewohnheiten

Die kontinuierliche Integration führt unmittelbar dazu, dass Ihr Team häufiger Tests durchführt. Für mehr Tests sind mehr Testfälle erforderlich, und das Schreiben von Testfällen kann zeitaufwändig sein. Daher müssen Entwickler ihre Zeit häufig zwischen dem Beheben von Fehlern und dem Schreiben von Testfällen aufteilen.

Vorübergehend können Entwickler möglicherweise Zeit sparen, indem sie manuell testen, aber es kann auf lange Sicht mehr schaden. Je länger sie das Schreiben von Testfällen hinauszögern, desto schwieriger wird es, den Fortschritt der Entwicklung nachzuholen. Im schlimmsten Fall kehrt Ihr Team möglicherweise zu seinem alten Testprozess zurück.

Um dies zu überwinden:

Vorteile von jquery gegenüber Javascript
  • Sie müssen betonen, dass das Schreiben von Testfällen von Anfang an viel Zeit für Ihr Team sparen und eine hohe Testabdeckung Ihres Produkts gewährleisten kann.

  • Betten Sie außerdem die Idee in Ihre Unternehmenskultur ein, dass Testfälle genauso wertvoll sind wie die Codebasis selbst.

4. Entwickler ignorieren Fehlermeldungen

Es ist ein häufiges Problem, dass bei der Zusammenarbeit größerer Teams die Anzahl der CI-Benachrichtigungen überwältigend wird und Entwickler beginnen, sie zu ignorieren und stummzuschalten. Daher ist es möglich, dass sie die für sie relevanten Updates verpassen.

Dies kann zu einem Stadium führen, in dem Codierer eine relative Immunität gegen fehlerhafte Builds und Fehlermeldungen entwickeln. Je länger sie relevante Benachrichtigungen ignorieren, desto länger entwickeln sie sich ohne Rückmeldung in die falsche Richtung. Dies kann möglicherweise zu großen Rollbacks, Geld-, Ressourcen- und Zeitverschwendung führen.

Um dies zu überwinden:

  • Sie sollten nur kritische Updates senden.

  • Senden Sie die Benachrichtigung nur an die jeweiligen Entwickler, die für die Behebung verantwortlich sind.

CT (Continuous Testing) imDevOps-Echtzeitszenarien

  1. Richtige Anforderungsspezifikation

    Wenn Sie Ihre Anforderungen richtig stellen, ist fast die Hälfte des Kampfes gewonnen. Wenn Sie also ein sehr spezifisches und genaues Verständnis der Anforderungen haben, können Sie Testpläne besser entwerfen und die Anforderungen gut abdecken.

    Viele Teams verbringen jedoch viel Zeit und Mühe damit, die Anforderungen zu klären. Dies ist eine sehr häufige Gefahr. Um dies zu vermeiden, können Teams modellbasierte Test- und verhaltensgesteuerte Entwicklungstechniken anwenden. Dies hilft, Testszenarien genau und angemessen zu entwerfen.

    Diese Praktiken werden definitiv dazu beitragen, die Lücken schneller zu schließen und zu schließen. Außerdem können sie bereits in der Anfangsphase eines Sprints automatisch mehr Testfälle generieren.

  2. Pipeline-Orchestrierung

    Die Vorteile der kontinuierlichen Prüfung und kontinuierliche Lieferung sind eng mit der Pipeline-Orchestrierung verbunden. Dies bedeutet direkt zu verstehen, wie es funktioniert, warum es funktioniert, wie die Ergebnisse analysiert werden und wie und wann skaliert werden muss. Alles hängt von der Pipeline ab. Daher müssen Sie die Pipeline in die Automatisierungssuite integrieren.

    Der Grund, warum Teams herumfummeln, ist, dass keine einzelne Lösung die vollständige Toolchain bereitstellt, die zum Erstellen einer CD-Pipeline erforderlich ist.

    Die Teams müssen normalerweise nach den für sie richtigen Puzzleteilen suchen. Es gibt keine perfekten Tools, normalerweise nur Best-of-Breed-Tools, die Integrationen zusammen mit mehreren anderen Tools bieten. Und natürlich eine API, die auch einfache Integrationen ermöglicht.

    Kurz gesagt, es ist unmöglich, kontinuierliche Tests ohne die Geschwindigkeit und Zuverlässigkeit einer standardisierten und automatisierten Pipeline durchzuführen.

  3. Komplexität skalieren und verwalten

    Ein weiteres wichtiges Szenario ist, dass kontinuierliche Tests komplexer werden, wenn sie sich in Richtung Produktionsumgebung bewegen. Die Anzahl und Komplexität der Tests nimmt zu, wobei der ausgereifte Code und die Umgebung immer komplexer werden.

    Sie müssen Tests jedes Mal aktualisieren, wenn Sie verschiedene Phasen und automatisierte Skripte aktualisieren. Infolgedessen nimmt die Gesamtzeit, die zum Ausführen der Tests benötigt wird, tendenziell auch in Richtung der Veröffentlichung zu.

    Die Lösung hierfür liegt in einer verbesserten Test-Orchestrierung, die in kürzeren Sprintzyklen die richtige Testabdeckung bietet und es den Teams ermöglicht, sicher zu liefern. Idealerweise muss der gesamte Prozess mit CT automatisiert werden, die in verschiedenen Phasen durchgeführt wird. Dies erfolgt mithilfe von Richtliniengattern und manuellen Eingriffen, bis der Code in die Produktion übertragen wird.

  4. Rückkopplungsschleifen erstellen

    Ohne häufige Rückkopplungsschleifen in jeder Phase des Entwicklungszyklus ist ein kontinuierliches Testen nicht möglich. Dies ist teilweise der Grund, warum die CT schwierig zu implementieren ist. Sie benötigen nicht nur automatisierte Tests, sondern auch die Sichtbarkeit der Testergebnisse und deren Ausführung.

    Herkömmliche Feedback-Schleifen wie Protokollierungstools, Codeprofiler und Tools zur Leistungsüberwachung sind nicht mehr wirksam. Weder arbeiten sie zusammen, noch bieten sie die nötigen Einblicke, um Probleme zu beheben. Echtzeit-Dashboards, die automatisch Berichte und umsetzbares Feedback über den gesamten SDLC generieren, helfen dabei, Software mit weniger Fehlern schneller in die Produktion freizugeben. Der Echtzeitzugriff auf Dashboards und der Zugriff für alle Teammitglieder unterstützt den kontinuierlichen Feedback-Mechanismus.

  5. Mangel an Umgebungen

    Kontinuierliches Testen bedeutet einfach, häufiger zu testen, und dies erfordert, dass mehrere Umgebungen häufiger getroffen werden. Dies stellt einen Engpass dar, wenn die genannten Umgebungen zum gewünschten Zeitpunkt nicht verfügbar sind. Einige Umgebungen sind über APIs und andere über verschiedene Schnittstellen verfügbar. Einige dieser Umgebungen können mit moderner Architektur erstellt werden, andere mit monolithischen Legacy-Client / Server- oder Mainframe-Systemen.

    Die Frage hier ist jedoch, wie Sie die Tests durch die verschiedenen Umgebungsbesitzer koordinieren. Es ist auch möglich, dass sie die Umgebungen nicht immer am Laufen halten. Die Antwort auf all das ist Virtualisierung . Durch die Virtualisierung der Umgebung können Sie den Code testen, ohne sich über Bereiche Gedanken machen zu müssen, die sich nicht ändern.Wenn Sie die Umgebungen durch Virtualisierung bei Bedarf zugänglich und verfügbar machen, können Sie einen erheblichen Engpass in Ihrer Pipeline beseitigen.

CD (Continuous Delivery) imDevOps-Echtzeitszenarien

  1. Bereitstellungen dauern zu lange

    Verteilte Anwendungen erfordern normalerweise mehr als das Kopieren und Einfügen von Dateien auf einen Server. Die Komplexität nimmt tendenziell zu, wenn Sie über eine Serverfarm verfügen. Die Unsicherheit darüber, was wo und wie bereitgestellt werden soll, ist ziemlich normal. Das Ergebnis? Lange Wartezeiten, um unsere Artefakte in die nächste Umgebung der Route zu bringen, um alles zu verzögern, zu testen, Zeit zu leben usw.

    Was bringt DevOps auf den Tisch? Entwicklungs- und IT-Betriebsteams definieren einen Bereitstellungsprozess in einer tadellosen Zusammenarbeitssitzung. Zuerst überprüfen sie, was funktioniert, und bringen es dann mit Automatisierung auf die nächste Stufe, um eine kontinuierliche Lieferung zu ermöglichen. Dies verkürzt das Timing für die Bereitstellung drastisch und ebnet den Weg für häufigere Bereitstellungen.

  2. Fehlende Artefakte, Skripte und andere Abhängigkeiten

    Nach der Bereitstellung einer neuen Version einer funktionierenden Software treten häufig Fehler auf. Dies wird häufig dadurch verursacht, dass fehlende Bibliotheken oder Datenbankskripte nicht aktualisiert werden. Dies wird normalerweise durch mangelnde Klarheit darüber verursacht, welche Abhängigkeiten bereitgestellt werden sollen und wo sie sich befinden. Die Förderung der Zusammenarbeit zwischen Entwicklung und Betrieb kann in den meisten Fällen zur Lösung dieser Art von Problemen beitragen.

    Wenn es um die Automatisierung geht, können Sie Abhängigkeiten definieren, die die Bereitstellung erheblich beschleunigen. Konfigurationsmanagement-Tools wie Marionette oder Chef mit einer zusätzlichen Definitionsebene für Abhängigkeiten beitragen. Wir können nicht nur Abhängigkeiten innerhalb unserer Anwendung definieren, sondern auch auf der Ebene der Infrastruktur und der Serverkonfiguration. Beispielsweise können wir eine virtuelle Maschine für einen Test erstellen und installieren / konfigurieren Kater bevor unsere Artefakte veröffentlicht werden.

  3. Ineffektive Produktionsüberwachung

Manchmal konfigurieren Sie Überwachungstools so, dass viele irrelevante Daten aus der Produktion erzeugt werden, manchmal produzieren sie jedoch nicht genug oder gar nichts. Es gibt keine Definition dafür, worauf Sie achten müssen und welche Metriken es gibt.

Sie müssen vereinbaren, was überwacht und welche Informationen erstellt werden sollen, und dann Kontrollen einrichten. Tools zur Verwaltung der Anwendungsleistung sind eine große Hilfe, wenn sich Ihr Unternehmen einen Blick auf AppDynamics, New Relic und AWS X-Ray leisten kann.

DevOps-Datenszenarien

Bei DevOps geht es darum, die mit der Entwicklung neuer Software verbundenen Risiken zu beseitigen: Die Datenanalyse identifiziert diese Risiken. Um den DevOps-Prozess kontinuierlich zu messen und zu verbessern, sollte sich die Analyse über die gesamte Pipeline erstrecken. Dies bietet dem Management wertvolle Einblicke in alle Phasen des Softwareentwicklungslebenszyklus.

1. Weniger Zeit zum Analysieren von Daten

Bei allen Daten, die zu einem bestimmten Zeitpunkt generiert werden, müssen Unternehmen akzeptieren, dass sie nicht alles analysieren können. Es ist einfach nicht genug Zeit am Tag - und leider sind Roboter noch nicht hoch genug, um alles für uns zu erledigen.

Was ist der Federrahmen

Aus diesem Grund ist es wichtig zu bestimmen, welche Datensätze am wichtigsten sind. In den meisten Fällen ist dies für jede Organisation anders. Bestimmen Sie also vor dem Eintauchen die wichtigsten Geschäftsziele und -ziele. In der Regel drehen sich diese Ziele um die Kundenbedürfnisse - in erster Linie um die wertvollsten Funktionen, die für Endbenutzer am wichtigsten sind. Für einen Einzelhändler steht beispielsweise die Analyse der Interaktion des Datenverkehrs mit der Checkout-Seite auf der Website und das Testen der Funktionsweise im Back-End ganz oben auf der Liste.

Einige schnelle Tipps, um festzustellen, welche Daten für die Analyse am wichtigsten sind:

  • Erstellen Sie ein Diagramm: Bestimmen Sie die Auswirkungen von Ausfällen auf Ihr Unternehmen und stellen Sie Fragen wie „Wenn X bricht Welche Auswirkungen wird es auf andere Funktionen haben? “

  • Historische Daten anzeigen: Ermitteln Sie, wo in der Vergangenheit Probleme aufgetreten sind, und analysieren Sie weiterhin Daten aus Tests und erstellen Sie diese, um sicherzustellen, dass sie nicht erneut auftreten.

2. Schwierige Kommunikation

Noch heute arbeiten die meisten Organisationen mit unterschiedlichen Teams und Personen, die ihre eigenen Ziele identifizieren und ihre eigenen Tools und Technologien verwenden. Jedes Team agiert unabhängig, getrennt von der Pipeline und trifft sich nur während der Integrationsphase mit anderen Teams.

Wenn es darum geht, das Gesamtbild zu betrachten und herauszufinden, was funktioniert und was nicht, bemüht sich das Unternehmen, eine Lösung zu finden. Dies liegt hauptsächlich daran, dass nicht alle die Gesamtdaten gemeinsam nutzen können, was eine Analyse unmöglich macht.

Um dieses Problem zu lösen, überarbeiten Sie den Kommunikationsfluss, um sicherzustellen, dass alle im gesamten SDLC zusammenarbeiten, nicht nur während des Integrationsprozesses.

  • Stellen Sie zunächst sicher, dass die DevOps-Metriken von Anfang an stark synchronisiert sind. Der Fortschritt jedes Teams sollte in einem einzigen Dashboard angezeigt werden, wobei dieselben Key Performance Indicators (KPIs) verwendet werden, um dem Management Einblick in den gesamten Prozess zu geben. Dies geschieht, damit sie alle notwendigen Daten sammeln können, um zu analysieren, was schief gelaufen ist (oder was erfolgreich war).

  • Über das anfängliche Metrikgespräch hinaus sollte eine ständige Kommunikation über Teambesprechungen oder digitale Kanäle wie Slack stattfinden.

3. Mangel an Arbeitskräften

Bei Personalmangel benötigen wir intelligentere Tools, die Deep Learning nutzen, um die von uns gesammelten Daten einzufügen und schnell Entscheidungen zu treffen. Schließlich hat niemand Zeit, sich jede einzelne Testausführung anzusehen (und für einige große Unternehmen können es an einem bestimmten Tag etwa 75.000 sein). Der Trick besteht darin, das Rauschen zu beseitigen und die richtigen Dinge zu finden, auf die man sich konzentrieren kann.

Hier können künstliche Intelligenz und maschinelles Lernen helfen. Viele Tools auf dem heutigen Markt verwenden AI und ML, um beispielsweise Folgendes zu tun:

  • Entwickeln Sie Skripte und Tests, um verschiedene Daten zu verschieben und zu validieren

  • Bericht über die Qualität basierend auf zuvor erlernten Verhaltensweisen

  • Arbeiten Sie als Reaktion auf Änderungen in Echtzeit.

Damit sind wir am Ende dieses Artikels über DevOps-Echtzeitszenarien angelangt.

Nachdem Sie die DevOps-Echtzeitszenarien verstanden haben, sehen Sie sich dies an von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Edureka DevOps-Zertifizierungskurs hilft den Lernenden, DevOps zu verstehen und Kenntnisse in verschiedenen DevOps-Prozessen und -Tools wie Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack und GIT zu erwerben, um mehrere Schritte in SDLC zu automatisieren.

Hast du eine Frage an uns? Bitte erwähnen Sie es in den KommentarenArtikel über DevOps-Echtzeitszenarienund wir werden uns bei Ihnen melden.