Wordpress

Stärkung von Ingenieuren durch produktorientierte Plattformen

Bei WP Engine wendet unsere Produkt- und Engineering-Organisation einen kontinuierlichen Verbesserungsprozess an, um ein Spitzenniveau der Softwareentwicklungs- und Bereitstellungsleistung aufrechtzuerhalten.

Dazu gehört ein starker Fokus auf Agilität, dargestellt durch DevOps Research and Assessment (DORA)-Metriken für Geschwindigkeit, Stabilität und Qualität.

Um ihre Ziele zu erreichen, verlassen sich unsere Ingenieurskollegen auf die interne Catalyst Software Delivery Platform (SDP) von WP Engine – und auf uns, das engagierte Catalyst-Team, das diese Plattform entwickelt und wartet – um eine einheitliche Grundlage für Produktentwicklung, -freigabe und -verwaltung zu bieten .

Das Ziel des Catalyst SDP besteht darin, die betriebliche und kognitive Belastung unserer internen Teams zu reduzieren und gleichzeitig die Beobachtbarkeit, Sicherheit und Geschwindigkeit der Bereitstellung der Dienste erheblich zu verbessern. Da der Wert der Plattform für Benutzer in den letzten zwei Jahren gestiegen ist, hat sich die Vielfalt der Workloads auf mehr als 30 Anwendungen und Dienste ausgeweitet. Alle paar Wochen werden weiterhin neue Teams und Produkte integriert.

In den frühen Tagen des SDP hatten Ingenieure, die erfolgreich Produktionsdienste auf der Plattform etablierten, jedoch auch mit dem Anwendungskonfigurationsmanagement zu kämpfen. Während sich das Catalyst-Team für einen Workflow entschieden hatte, der deklarative Konfigurationstools nutzte, hatten wir nicht die richtige Balance zwischen Flexibilität und Benutzerfreundlichkeit erreicht.

Wir mussten die Herausforderungen der SDP-Benutzer genauer bewerten und Maßnahmen ergreifen. Als wir mit Ingenieuren zusammenarbeiteten, erfuhren wir, dass die App-Entwicklung tatsächlich durch die Komplexität der Konfigurationstools verlangsamt wurde; Insbesondere fanden es die Benutzer schwierig, Kubernetes-Konfigurationen zu erstellen, die den Sicherheitsanforderungen von WP Engine entsprachen.

Wir haben verstanden, wie hoch die Belastung ist, die durch die Verwendung mehrerer Tools, benutzerdefinierter Skripts und komplexer Konfigurationspatches für die Anpassung von Ressourcen entsteht, wie es für unsere Konfigurationsmanagementlösung erforderlich ist. Wir haben auch festgestellt, dass mehrere Teams doppelte Anstrengungen unternommen haben, um gemeinsame Schwachstellen unabhängig voneinander zu lösen.

Um den Fokus der Produktteams auf erstklassige Softwareentwicklung und -bereitstellung wiederherzustellen, hatten wir eine Aufgabe zu erledigen. Auch als Gewinner des DevOps Award 2021 von Google für „Entfesselung der vollen Leistungsfähigkeit der Cloud“ konnten wir unseren Ruf aufrechterhalten!

Lassen Sie uns die Änderungen untersuchen, die wir am Konfigurationsmanagement-Workflow auf SDP vorgenommen haben, unseren Rollout-Ansatz und die Auswirkungen dieser Änderungen auf das Engineering-Erlebnis.

Reduzierte Komplexität

Um die Notwendigkeit von Overlay-Mustern, komplexen Patches oder benutzerdefinierten Skripten zu beseitigen, haben wir die erforderlichen Tools für die Bearbeitung von Konfigurationen konsolidiert. Ingenieure können jetzt grundlegende Anwendungsfälle mit einem einzigen Tool, kpt, bearbeiten, das funktionale Konfigurationsänderungen durch sein Konfiguration-als-Daten-Paradigma vereinfacht.

Gemeinsame Funktionen

Unser wirkungsvollstes Ergebnis war eine Bibliothek wiederverwendbarer Kubernetes-Ressourcendefinitionen als KPT-Funktionen. Ingenieure können jetzt Anwendungen mit interoperablen funktionalen Konfigurationseinheiten erstellen und gepackte, bewährte k8s-Konfigurationen nutzen, wodurch Codeduplizierung reduziert und die Wartbarkeit erhöht wird.

Dokumentierte Beispiele

Um die Implementierung gängiger funktionaler Anwendungsfälle wie die Konfiguration und Authentifizierung bei einer Datenbank weiter zu optimieren, haben wir dokumentierte Beispiele für den Aufruf unserer kpt-Funktionen bereitgestellt. Mithilfe einer konsistenten und zuverlässigen Ausgangslage können Ingenieure sicher und schnell mit ihrer wertschöpfenden Arbeit fortfahren.

Sicherheit standardmäßig

Für Standardanwendungsfälle wie die Offenlegung einer Anwendung im Internet oder die Weiterleitung des Datenverkehrs zwischen Diensten innerhalb des Mesh-Netzwerks haben wir die grundlegende Einhaltung der Unternehmenssicherheit in die kpt-Funktionen selbst gepackt. Bei der Anwendung unserer Funktionen auf ihre Anwendungsfälle profitieren Produktteams von der von uns durchgesetzten Sicherheitslage „Standard geschlossen“ und „geringste Privilegien“ und erreichen so eine verbesserte Anwendungssicherheit ohne Engineering-Aufwand.

Versionierung und Pinning

Wir haben semantische Versionierung auf unsere Catalyst-Cloud-Builder und KPT-Funktionen angewendet. Jetzt können Ingenieure ihre Image-Versionen anheften und automatisch unsere neuesten geschützten Änderungen abrufen, ohne die Details jeder Änderung verstehen zu müssen.

Bewusstsein ändern

Im Rahmen der Einführung unserer neuen Konfigurationsmanagementlösung haben wir ein Dienstprogramm zur Beschreibung der logischen Unterschiede zwischen der vorherigen Konfiguration des Benutzers und der neuen Konfiguration bereitgestellt, die durch die kpt-Funktionen eingeführt wurde. Mithilfe des Dienstprogramms können Ingenieure die funktionalen Änderungen an ihren Anwendungen leicht nachvollziehen.

Benutzerengagement und Ergebnisse

Wir haben mit Anwendungsteams zusammengearbeitet, um diese Änderungen auf 30 Workloads auf SDP auszurollen. Nachdem wir erste Aktualisierungen direkt an Benutzerpipelines in einer Entwicklungsumgebung vorgenommen hatten, luden wir Anwendungseigentümer ein, unsere Pull-Anfragen zu genehmigen und dann ihre Anwendungen mit den Aktualisierungen zu testen.

Das direkte Feedback zu diesen Änderungen zeigt, dass wir erhebliche Probleme im Konfigurationsmanagement erfolgreich gelöst haben und dass der Übergang zu verbesserter Sicherheit und Zuverlässigkeit nur minimalen Aufwand für die Ingenieure erforderte. Im Gegenzug waren unsere Ingenieurskollegen dankbar für unsere Bemühungen, ihre Grundlagenarbeit zu vereinfachen und sie wieder auf die Entwicklung wertvoller Produkte zu konzentrieren.

„Die Verwendung der neuen Konfigurationsmanagement-Tools mit kpt war eine enorme Verbesserung und viel einfacher“, sagte Adam Lassek, Sr. Staff Software Engineer bei WP Engine.

„Wir haben innerhalb eines Sprints eine ganze Umgebung zum Laufen gebracht, was ich vorher nie für möglich gehalten hätte.“

Auch der Software-Ingenieur Piotr Purwin lobte die Änderungen und stellte fest, dass die Plattform es seinem Team ermöglichte, die Best Practices von Kubernetes mit weniger Codezeilen zu implementieren.

„Manchmal haben wir Lust, etwas Ausgefallenes zu kochen, wofür natürlich grundlegende Küchenutensilien, aber auch komplexere und anspruchsvollere Werkzeuge erforderlich sind, die möglicherweise nicht jedem zu Hause zur Verfügung stehen“, sagte Purwin.

„Beim SDP zu arbeiten ist, als würde man eine große, voll ausgestattete Küche betreten und einfach die Zubereitung des Gerichts genießen.“

Was steht bevor?

Wir können noch mehr tun, um das Anwendungskonfigurationsmanagement für unsere Benutzer zu optimieren. Wir werden weiterhin kpt-Funktionen für häufige Konfigurationsanwendungsfälle entwickeln, beispielsweise das Hinzufügen einer Caching-Ebene zu einer Anwendung. Wir möchten die Benutzererfahrung auch in anderen Bereichen verbessern, einschließlich der Beobachtbarkeit.

Während Innovationen bei der Softwarebereitstellung über das SDP an unsere internen Teams weitergegeben werden, kommt der Vorteil den WP Engine-Kunden durch die schnellere Lieferung neuer Produkte zugute.

Unsere Vision für SDP ist umfassend und tiefgreifend, und die Führungskräfte unserer Engineering-Organisation haben hohe Erwartungen an den zukünftigen Einsatz. Mit mehr wiederverwendbarer Software, sofort einsatzbereiten Funktionen für Anwendungen und Plattformverbesserungen wird das Catalyst SDP die Geschwindigkeit des Entwicklungsteams weiter steigern und WP Engine-Kunden dabei helfen, jeden Tag online erfolgreich zu sein.

WP Engine Sr. Staff Software Engineer Rahul Dhir hat zu diesem Artikel beigetragen.

Related Articles

4 Comments

  1. I’ll right away grab your rss as I can’t find your e-mail subscription hyperlink or
    e-newsletter service. Do you have any? Kindly permit me understand
    in order that I may subscribe. Thanks.

  2. Today, I went to the beach front with my children. I found a sea
    shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She placed the shell to her ear and screamed.
    There was a hermit crab inside and it pinched her ear. She never wants to go back!
    LoL I know this is completely off topic but I had to tell someone!

  3. Its like you read my mind! You seem to know a lot about this,
    like you wrote the book in it or something. I think that you can do
    with a few pics to drive the message home a bit, but other than that, this is wonderful blog.
    An excellent read. I will definitely be back.

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button