Die sieben hĂ€ufigsten Fehler beim Übergang zu CI/CD

Die sieben hĂ€ufigsten Fehler beim Übergang zu CI/CD
Wenn Ihr Unternehmen gerade erst DevOps oder CI/CD-Tools einfĂŒhrt, kann es hilfreich sein, sich mit den hĂ€ufigsten Fehlern vertraut zu machen, um sie nicht zu wiederholen und nicht auf die gleichen Schrauben zu treten. 

Team Mail.ru Cloud Solutions Übersetzte den Artikel Vermeiden Sie diese hĂ€ufigen Fallstricke, wenn Sie zu CI/CD wechseln von Jasmine Chokshi mit ErgĂ€nzungen.

Unvorbereitetheit auf den Wandel von Kultur und Prozessen

Wenn man sich das zyklische Diagramm anschaut DevOps, sieht man, dass im DevOps-Praktiken das Testen eine kontinuierliche Aufgabe ist, die fundamentaler Bestandteil jeder einzelnen Bereitstellung ist.

Die sieben hĂ€ufigsten Fehler beim Übergang zu CI/CD
Endloses zyklisches Diagramm von DevOps

Testen und QualitÀtssicherung im Entwicklungs- und Lieferprozess sind ein integraler Bestandteil davon, was Entwickler tun. Dies erfordert einen Wandel in der Denkweise, um das Testen in jede Aufgabe zu integrieren.

Das Testen wird Teil der tĂ€glichen Arbeit jedes Teammitglieds. Der Übergang zu kontinuierlichem Testen verlĂ€uft nicht leicht, man muss darauf vorbereitet sein.

Fehlendes Feedback

Die EffektivitĂ€t von DevOps hĂ€ngt von kontinuierlichem Feedback ab. Kontinuierliche Verbesserungen sind unmöglich, wenn es keinen Raum fĂŒr Zusammenarbeit und Kommunikation gibt.

Unternehmen, die keine Retrospektivmeetings organisieren, haben es schwer, eine Kultur des kontinuierlichen Feedbacks in CI/CD zu integrieren. Retrospektivmeetings finden am Ende jeder Iteration statt, bei denen die Gruppenmitglieder besprechen, was gut und was schlecht gelaufen ist. Retrospektivmeetings sind ein Fundament von Scrum/Agile, aber sie sind auch fĂŒr DevOps notwendig. 

Das liegt daran, dass Retrospektivmeetings die Gewohnheit fördern, Feedback und Meinungen auszutauschen. Ein wichtiger Punkt zu Beginn ist die Organisation von wiederkehrenden Retrospektivmeetings, damit sie fĂŒr das gesamte Team verstĂ€ndlich und gewohnheitsmĂ€ĂŸig werden.

Wenn es um die QualitĂ€t der Software geht, sind alle Teammitglieder verantwortlich fĂŒr deren Sicherstellung. Zum Beispiel können Entwickler Modultests schreiben und dabei Code unter BerĂŒcksichtigung der Testbarkeit verfassen, was hilft, Risiken von Anfang an zu minimieren.

Eine der einfachsten Möglichkeiten, die VerĂ€nderung der Vorstellungen ĂŒber das Testen widerzuspiegeln, besteht darin, Tester nicht QA, sondern Softwaretester oder QualitĂ€tsingenieur zu nennen. Diese Änderung mag zu einfach oder sogar dumm erscheinen. Doch wenn jemand als "Spezialist fĂŒr SoftwarequalitĂ€t" bezeichnet wird, vermittelt das ein falsches Bild davon, wer fĂŒr die QualitĂ€t des Produkts verantwortlich ist. In den Praktiken Agile, CI/CD und DevOps tragen alle die Verantwortung fĂŒr die SoftwarequalitĂ€t.

Ein weiterer wichtiger Punkt ist, zu verstehen, was QualitĂ€t fĂŒr das gesamte Team und jedes seiner Mitglieder sowie fĂŒr die Organisation und die Interessengruppen bedeutet.

Falsches VerstÀndnis der VollstÀndigkeit eines Phasenabschlusses

Wenn QualitĂ€t ein kontinuierlicher und gemeinsamer Prozess ist, benötigt man ein gemeinsames VerstĂ€ndnis fĂŒr den Abschluss einer Phase. Wie erkennt man, dass eine Phase abgeschlossen ist? Was passiert, wenn eine Phase auf dem Trello-Board oder einem anderen Kanban-Board als erledigt markiert wird?

Die Definition des 'Definition of Done' (DoD) ist ein mÀchtiges Werkzeug im Kontext von CD DevOps/CI. Sie hilft, die QualitÀtsstandards dessen, was und wie das Team baut, besser zu verstehen.

Das Entwicklerteam muss entscheiden, was "Fertig" bedeutet. Sie mĂŒssen sich zusammensetzen und eine Liste von Merkmalen erstellen, die erfĂŒllt sein mĂŒssen, damit eine Phase als abgeschlossen gelten kann.

Die DoD macht den Prozess transparenter und erleichtert die EinfĂŒhrung von CI/CD, wenn sie allen Teammitgliedern klar und gegenseitig vereinbart ist.

Fehlende realistische, klar definierte Ziele

Das ist einer der am hĂ€ufigsten zitierten RatschlĂ€ge, aber er verdient es, wiederholt zu werden. FĂŒr den Erfolg eines jeden ernsthaften Vorhabens, einschließlich der Implementierung von CI/CD oder DevOps, mĂŒssen realistische Ziele festgelegt und die Leistung daran gemessen werden. Was versuchen Sie mit CI/CD zu erreichen? Ermöglicht es Ihnen, schneller Releases mit besserer QualitĂ€t herauszubringen?

Alle festgelegten Ziele sollten nicht nur transparent und realistisch sein, sondern auch mit den aktuellen AktivitĂ€ten des Unternehmens ĂŒbereinstimmen. Zum Beispiel, wie oft benötigen Ihre Kunden neue Updates oder Versionen? Es besteht keine Notwendigkeit, die Prozesse zu ĂŒberlasten und Releases schneller bereitzustellen, wenn dies keinen zusĂ€tzlichen Vorteil fĂŒr die Nutzer bietet.

DarĂŒber hinaus mĂŒssen Sie nicht immer sowohl CD als auch CI implementieren. Zum Beispiel können stark regulierte Unternehmen wie Banken und medizinische Kliniken nur mit CI arbeiten.

CI ist ein guter Ausgangspunkt fĂŒr jedes Unternehmen, das DevOps einfĂŒhrt. Bei der EinfĂŒhrung Ă€ndert sich der Ansatz zur Bereitstellung von Software erheblich. Nachdem CI beherrscht ist, kann man ĂŒber die Verbesserung des gesamten Prozesses, die Erhöhung der Bereitstellungsgeschwindigkeit und andere Änderungen nachdenken.

FĂŒr viele Organisationen reicht ein CI aus, und CD sollte nur implementiert werden, wenn es einen zusĂ€tzlichen Nutzen bringt.

Fehlende geeignete Dashboards und Metriken

Sobald Sie Ziele festgelegt haben, kann das Entwicklerteam ein Dashboard zur Messung der KPI erstellen. Vor der Entwicklung sollten die zu verfolgenden Parameter bewertet werden.

Verschiedene Berichte und Anwendungen sind fĂŒr verschiedene Teammitglieder nĂŒtzlich. Scrum Master sind mehr an Status und Abdeckung interessiert. WĂ€hrend das obere Management möglicherweise an der Burnout-Rate der Mitarbeiter interessiert ist.

Einige Teams verwenden auch Dashboards mit roten, gelben und grĂŒnen Indikatoren zur Bewertung des CI/CD-Status, um zu verstehen, ob sie alles richtig machen oder ob ein Fehler aufgetreten ist. Rot bedeutet, dass man auf das Geschehen achten sollte.

Wenn die Informationspanels jedoch nicht standardisiert sind, können sie irrefĂŒhrend sein. Analysieren Sie, welche Daten fĂŒr alle erforderlich sind, und erstellen Sie dann eine standardisierte Beschreibung dessen, was sie bedeuten. Finden Sie heraus, was fĂŒr die Stakeholder sinnvoller ist: Grafiken, Texte oder Zahlen.

Fehlende manuelle Tests

Die Automatisierung von Tests legt die Grundlage fĂŒr eine gute CI/CD-Pipeline. Aber automatisiertes Testen in allen Phasen bedeutet nicht, dass Sie keine manuellen Tests durchfĂŒhren sollten. 

Um eine effektive CI/CD-Pipeline aufzubauen, sind auch manuelle Tests erforderlich. Es wird immer Aspekte des Testens geben, die eine menschliche Analyse erfordern.

Es sollte ĂŒberlegt werden, die Anstrengungen bei manuellen Tests in die Pipeline zu integrieren. Nachdem manuelle Tests bestimmter TestfĂ€lle abgeschlossen sind, können Sie zur Bereitstellungsphase ĂŒbergehen.

Versuchen Sie nicht, die Tests zu verbessern.

Ein effizienter CI/CD-Prozess erfordert Zugriff auf die richtigen Werkzeuge, sei es Testmanagement oder kontinuierliche Integration und Monitoring.

Der Aufbau einer starken, qualitÀtsorientierten Kultur zielt ab auf die Implementierung von Tests, das Monitoring der Kundeninteraktionen nach dem Deployment und die Verfolgung von Verbesserungen. 

Hier sind einige praktische Tipps, die Sie leicht umsetzen können:

  1. Stellen Sie sicher, dass die Tests einfach zu schreiben sind und ausreichend flexibel, um bei Code-Änderungen nicht zu brechen.
  2. Entwicklungsteams sollten in den Testprozess einbezogen werden – sie sollten die Liste der Benutzerprobleme und Anfragen sehen, die wichtig fĂŒr die ÜberprĂŒfung wĂ€hrend der CI-Pipelines sind.
  3. Sie mĂŒssen möglicherweise nicht 100%ige Testabdeckung erreichen, aber achten Sie immer darauf, dass wichtige Workflows fĂŒr die Nutzererfahrung und die Kundeninteraktion getestet werden.

Zu guter Letzt

Der Übergang zu CI/CD wird oft von unten nach oben initiiert, erfordert jedoch letztendlich das Engagement des Managements sowie Zeit- und Ressourcenaufwand seitens des Unternehmens. CI/CD ist schließlich ein Set von FĂ€higkeiten, Prozessen, Werkzeugen und einem kulturellen Wandel, und solche VerĂ€nderungen können nur systematisch umgesetzt werden.

Was gibt es noch zu lesen:

  1. Wie technischer Schulden Ihre Projekte ruinieren.
  2. Wie man DevOps verbessert.
  3. Die neun wichtigsten DevOps-Trends im Jahr 2020.

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster