Die Bewegung DevOps

[ARCHIVIERT] Zuletzt aktualisiert von Joe Schaefer auf Fr., 26 Apr. 2024    Quelle
 

Mehr als nur den Entwicklern Root-Zugriff zu geben!

Oder auch nicht. Die große Idee hinter der “Bewegung” ist nicht nur, den Entwicklern mehr Seil zu geben

Constraint-Management ist der Schlüssel zum Prozess. Indem Sie zunächst alle Engpässe im System identifizieren, können Sie Ihre Bemühungen auf die Optimierung dieser Ressourcen konzentrieren, um eine maximale Leistung zu erzielen. Optimierungen jenseits dieser Bereiche sind fast immer nicht die Mühe wert —

Trunk-basierte Entwicklung

Die Förderung inkrementeller Änderungen mit automatisierten Test-, Promotion- und Freigabeprozessen in einem geplanten Intervall ist eine großartige Möglichkeit, den Ball ins Rollen zu bringen, aber ein großer Teil der Qualitätskontrolle in SaaS/PaaS-Bereitstellungen umfasst die Einführung von *Trunk-basierte Entwicklung.

Im Wesentlichen das Multiversum der langfristigen Git

        Surgery on a patient must result
        in good outcomes (at all times) for
        that patient, not just for siblings
        or future generations.

CI/CD-Pipelines

Trunk Based Development ist die Basis für alle konsequent automatisierten Change Control Pipelines, die in den letzten zwei Jahrzehnten gewachsen sind.

Code ist Gesetz (Entwicklung + Infrastruktur + Konfiguration).

Ein bisschen historische Perspektive zuerst; die Pointe folgt diesen vier Absätzen. Der gemeinsame Thread hier ist, dass Apache seiner Zeit fast immer voraus war.

Zurück in die Pre-CFEngine.

Der Workflow war weniger als ideal: Neben dem Aufbau unserer eigenen lokal gepatchten FreeBSD-Ports-Bäume in bereitstellbare (binäre) Pakete von Grund auf mussten die Mitarbeiter bei der Bereitstellung von Änderungen an der Produktion schwer durchsetzbare disziplin üben, indem sie sich zunächst zur Versionskontrolle verpflichten, sich beim Zielserver anmelden, den Checkout aktualisieren und den Service möglicherweise neu starten. —

Heutzutage halten sie alles in einem Git-unterstützter Marionettenquellbaum und Bereitstellung/Bereitstellung/Konfiguration direkt in der Cloud mit generischen Upstream-Ubuntu-Paketen, was ein etwas moderner Ansatz für ihre IT-Betrieb ist, da geplant Git

Auf der anderen Seite war eine frühe, bahnbrechende CI-ähnliche Initiative bei The ASF (für tatsächliche Apache-Software-TLP-Projekte) Apache Gump.

Hier ist der Punkt in Kürze: Alle Ihre Quellen (Entwicklung, Infrastruktur und Konfiguration) gehören zur Versionskontrolle (nicht unbedingt das gleiche Repository), das von allen Devops-Mitarbeitern überprüft werden kann, und sind Teil Ihrer vollständigen Testautomatisierungspipelines zwischen Patchrevisionen und Produktionsbereitstellungen. Eine Umfrage zum Stand der Technik, bei der Änderungen auf Anfrage in den Einstellungen von IaC/CaC getestet/bereitgestellt/bereitgestellt werden, ist auf der Website meines Freundes und Visionärs Paul Hammant hier.

Virtualisierung vs. Containerisierung: a Haustiere vs. Rinder.

Containersysteme wie Docker sind anpassbare, erneut bereitstellbare Virtualisierungstechnologien, die in der Regel zur Unterstützung eines Anwendungscluster-Frameworks der MicroService-Architektur (MSA) wie Kubernetes verwendet werden. Sie greifen dort auf, wo Virtualisierungssysteme aufgehört haben, und handeln mit unbegrenzter Unterstützung von (vollständig) isolierten pro-VM-Betriebssystemen für Linux-Kernel-basierte VMs, die wesentlich programmierbarere Anpassungen und Integration mit dem übergeordneten Linux-Host haben, auf dem sie ausgeführt werden. Darüber hinaus können sie wieder aufgebaut und in einen zentralen Distributionsservice (wie Artifactory) hochgeladen werden, um sie in großem Maßstab über mehrere Abhängigkeitsketten und ausführbare Raw-Serverbereitstellungen hinweg wiederzuverwenden.

Vertikale vs. horizontale Skalierung

Rekonfigurierbare Container, die von einem zentralen Server heruntergeladen werden können, ermöglichen mit der grundlegenden Virtualisierungstechnologie nur schwer realisierbare Möglichkeiten. Sie sind nicht an die Hardwarelimits eines einzelnen Servers gebunden, um Ihre Services nach Bedarf zu skalieren. Mit anderen Worten: Die horizontale Skalierung durch die Bereitstellung desselben Containers über mehrere Hostsammlungen hinweg, auf Anforderung, ist ein sofort erreichbares erstklassiges Feature von MSA-Frameworks auf Basis von Docker. Ebenso wie die Bereitstellung von Dutzenden mehr Containern als CPU-Cores auf dem * gleichen* Host.

Messung, Eindämmung und Kontrolle Brandbekämpfung Bemühungen, sowohl real und praktiziert

Eines der anderen wichtigen Dinge, die Sie erkennen müssen, ist die Unterscheidung zwischen geplanter und * ungeplanter* Arbeit in einer Ihrer Produktivitätsverfolgungsmetriken und der Zuweisung von Ressourcen zu diesen Aufgaben. Ungeplante Arbeit bedeutet Feuerbekämpfung, und wenn zu viel Zeit (mehr als ~20%) für diese Aufgaben aufgewendet wird, wird die geplante Arbeit, die der eigentliche Geschäftsbedarf für das Unternehmen ist, zurückgebucht.

Die Engpässe im System können nur selten ungeplante Arbeiten bewältigen, daher ist es wichtig, über genügend zusätzliche Ressourcen zu verfügen, um die erhöhte Belastung und den daraus resultierenden Rückstand zu bewältigen.

Eine der wichtigsten Rückwurflektionen von COVID-19 Anfang 2020, als Krankenhauskapazität in Bezug auf die IT, ist, dass es so etwas wie “zu schlank” gibt, zumindest wenn es um das Personal von Devops geht (Hardware ist eine andere Geschichte). Die Notfallplanung für einen regnerischen Tag, entweder mit “redundantem” Personal oder Cross-Training-Initiativen, kombiniert mit regelmäßigen vorbereitenden Übungen, hält den Arzt nicht nur fern, sondern ist tatsächlich missionskritisch.

Anreise mit dem Programm

Auf Managementebene ist eine globale Change Management-Perspektive zwischen Entwicklungs- und Operations-Änderungen von entscheidender Bedeutung. Beide Teams müssen sich der Veränderungen des jeweils anderen bewusst sein. Idealerweise mit Planungsdetails, die auf dem Weg zur Verfügung gestellt werden. Große Dinge können passieren, wenn die Teams eine gesunde Mischung aus Entwicklungs- und Betriebsmitarbeitern in einer datengesteuerten, transparenten Kultur der Zusammenarbeit sind.

Die Philosophie der Einbeziehung vielfältiger Stakeholder in die Erstellung und Evolution eines konkreten Arbeitsprodukts hat Auswirkungen weit über die reine dev- und ops-Teams hinaus, die Kontrolle und Verantwortung für einen Server-Engineering-Aufwand teilen. Diese Lektion wiederholt sich in der modernen Unternehmenswelt, da neue Bereiche für kreativen menschlichen Ausdruck im Geschäftsbereich entstehen und alte Geschäftsweisen neu erfinden.

Permalink  #Devops  

 

 

Kommentare  


Anhänge  

Links  


Index

Sonnenstaronly


COVID-19 März 2020

  • Exponentielles Wachstum und COVID-19 — Nehmen Sie sich Zeit für den Abschnitt The Mathe — Es ist wichtig, ein gebildeter Verbraucher von Statistiken zu sein, die für die aktuelle Pandemie relevant sind … Do., 06 März 2025

 


Heyoka



NonFunctional Tests


 

  • Verteilerlisten — Diese temporären Adressen sind ein Anathema für ezmlm-idx‘s Abo- und Moderationssysteme … Sa., 27 Apr. 2024

 

  • Informationssicherheits-Primer — Alle Daten, die aus einem UNIX Systemaufruf zur Laufzeit stammen, müssen als erhalten behandelt werden … Sa., 27 Apr. 2024

 

  • Die Freude der DTrace — Messen Sie zweimal, schneiden Sie einmal, bevor Sie mit einer Codeoptimierung beginnen … Mi., 17 Apr. 2024

 


 

  • Über das Spam-Problem… — Das beste Plugin für qpsmtpdObwohl es schwierig ist zu verstehen, warum … So., 29 Jan. 2023

Hyperbolische Wabe


 

  • Spaß mit htop — Erweiterte htop-Funktionen auf beliebten Unix-Plattformen … Do., 19 Jan. 2023

Informationsarchitektur

  • Informationsarchitektur — Die gesamte Bandbreite an Technologien, die für das Design, die Präsentation, die Beziehungen und die architektonischen Einschränkungen relevant sind, die jede von Ihnen bereitgestellte URL abdecken … Mo., 11 März 2024

geteert und gefiedert


Englischsprachige Abhängigkeiten


 

  • Anwendungsperformance — Viele Entwickler fallen in die Falle des Denkens, dass es bei der Leistungsoptimierung darum geht, jede Codezeile so effizient wie möglich zu machen. … Fr., 26 Apr. 2024