OPS 5: Wie können Sie Fehler reduzieren, die Fehlerbehebung erleichtern und den Ablauf bis
zur Produktion verbessern?
Verwenden Sie Strategien, die die Übertragung von Änderungen auf die Produktionsumgebung
verbessern und Refactoring, schnelles Feedback zur Qualität sowie eine schnelle Fehlerbehebung
ermöglichen. Dadurch fließen nützliche Änderungen schneller in die Produktion ein
und es treten bei der Bereitstellung weniger Probleme auf. Zudem können Probleme,
die durch Bereitstellungsaktivitäten verursacht werden, schnell aufgespürt und gelöst
werden.
Ressourcen
CI/CD for Serverless Applications on AWS
Design with Ops in Mind
AWS Developer Tools
Bewährte Methoden:
-
Einsatz einer Versionskontrolle:
Ermöglichen Sie die Verfolgung von Änderungen und Releases mithilfe einer Versionskontrolle.
-
Testen und Validieren von Änderungen:
Testen und validieren Sie Änderungen, um Fehler zu reduzieren und zu erkennen. Automatisieren
Sie Tests, um Fehler aufgrund von manuellen Prozessen zu reduzieren und den Testaufwand
zu verringern.
-
Einsatz von Systemen zur Konfigurationsverwaltung:
Verwenden Sie Systeme zur Konfigurationsverwaltung, um Änderungen vorzunehmen und
zu verfolgen. Diese Systeme reduzieren Fehler aufgrund von manuellen Prozessen und
verringern den Testaufwand.
-
Einsatz von Systemen zur Build- und Bereitstellungsverwaltung:
Verwenden Sie Systeme zur Build- und Bereitstellungsverwaltung. Diese Systeme reduzieren
Fehler aufgrund von manuellen Prozessen und verringern den Testaufwand.
-
Durchführen der Patch-Verwaltung:
Führen Sie eine Patch-Verwaltung durch, um Funktionen zu erhalten, Probleme zu beheben
und die Konformität mit der Governance zu gewährleisten. Automatisieren Sie die Patch-Verwaltung,
um Fehler aufgrund von manuellen Prozessen zu reduzieren und den Aufwand für die Installation
von Patches zu verringern.
-
Gemeinsame Design-Standards:
Tauschen Sie teamübergreifend bewährte Methoden aus, um das Bewusstsein zu schärfen
und den Nutzen der Entwicklungsarbeit zu maximieren.
-
Implementieren von Verfahren zur Verbesserung der Codequalität:
Implementieren Sie Verfahren zur Verbesserung der Codequalität und Minimierung von
Fehlern. Geeignete Maßnahmen sind zum Beispiel testbasierte Entwicklungen, Codeprüfungen
und die Einführung von Standards.
-
Verwenden mehrerer Umgebungen:
Verwenden Sie mehrere Umgebungen, um Ihren Workload auszuprobieren, zu entwickeln
und zu testen. Verwenden Sie zunehmende Kontrollstufen, wenn Umgebungen sich der Produktion
nähern, um sicherzustellen, dass Ihr Workload bei der Bereitstellung wie beabsichtigt
funktioniert.
-
Vornehmen kleiner, häufiger und umkehrbarer Änderungen:
Häufige, kleine und umkehrbare Änderungen verringern den Umfang und die Auswirkung
einer Änderung. Dies erleichtert die Fehlersuche, ermöglicht eine schnellere Fehlerbehebung
und bietet die Möglichkeit, eine Änderung zurückzusetzen.
-
Vollständige Automatisierung von Integration und Bereitstellung:
Automatisieren Sie den Aufbau, die Bereitstellung und die Tests des Workloads. Dadurch
werden Fehler aufgrund von manuellen Prozessen und der Aufwand für die Bereitstellung
von Änderungen verringert.
Verbesserungsplan
Einsatz einer Versionskontrolle
Einsatz einer Versionskontrolle:
Bewahren Sie Ressourcen in Repositorys mit Versionskontrolle auf. Dies ermöglicht
die Nachvollziehung von Änderungen, die Bereitstellung neuer Versionen, die Erkennung
von Änderungen an bestehenden Versionen und die Rückkehr zu vorherigen Versionen (zum
Beispiel bei einem Fehler die Zurücksetzung auf einen bekanntermaßen funktionierenden
Zustand). Integrieren Sie die Versionskontrollfunktionen Ihrer Konfigurationsverwaltungssysteme
in Ihre Verfahren.
Introduction to AWS CodeCommit
What is AWS CodeCommit?
Testen und Validieren von Änderungen
Testen und Validieren von Änderungen:
Sie sollten in allen Phasen des Lebenszyklus (zum Beispiel bei Entwicklung, Test und
Produktion) die Änderungen testen und die Ergebnisse validieren. Prüfen Sie anhand
der Testergebnisse neue Funktionen und minimieren Sie das Risiko und die Auswirkung
fehlgeschlagener Bereitstellungen. Automatisieren Sie Testverfahren und Validierungen,
um eine einheitliche Prüfung zu gewährleisten, Fehler aufgrund von manuellen Prozessen
zu reduzieren und den Aufwand zu verringern.
What is AWS CodeBuild?
Local build support for AWS CodeBuild
Einsatz von Systemen zur Konfigurationsverwaltung
Einsatz von Systemen zur Konfigurationsverwaltung:
Verwenden Sie Systeme zur Konfigurationsverwaltung für die Nachverfolgung und Implementierung
von Änderungen, Reduzierung von Fehlern, die durch manuelle Prozesse entstehen, und
zur Verringerung des Aufwands.
Infrastructure configuration management
AWS Config
What is AWS Config?
Introduction to AWS CloudFormation
What is AWS CloudFormation?
AWS OpsWorks
What is AWS OpsWorks?
Introduction to AWS Elastic Beanstalk
What is AWS Elastic Beanstalk?
Einsatz von Systemen zur Build- und Bereitstellungsverwaltung
Einsatz von Systemen zur Build- und Bereitstellungsverwaltung:
Verwenden Sie Systeme zur Build- und Bereitstellungsverwaltung für die Verfolgung
und Implementierung von Änderungen, die Reduzierung von Fehlern, die durch manuelle
Prozesse entstehen, sowie zur Verringerung des Aufwands. Nutzen Sie eine vollständig
automatisierte Integrations- und Bereitstellungs-Pipeline vom Einchecken des Codes
über das Testen und die Bereitstellung bis hin zur Validierung. Dies verkürzt die
Vorlaufzeit, ermöglicht häufigere Änderungen und verringert den Aufwand.
What is AWS CodeBuild?
Continuous integration best practices for software development
Slalom: CI/CD for serverless applications on AWS
Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
What is AWS CodeDeploy?
Durchführen der Patch-Verwaltung
Patch-Verwaltung:
Installieren Sie auf Ihren Systemen Patches zur Behebung von Problemen, zur Erlangung
der gewünschten Funktionen oder Fähigkeiten sowie zur kontinuierlichen Einhaltung
der Governance-Richtlinien und der Anforderungen des Lieferantensupport. Nehmen Sie
in unveränderlichen Systemen eine Bereitstellung mit einer geeigneten Patch-Gruppe
vor, um das gewünschte Ergebnis zu erzielen. Automatisieren Sie den Mechanismus der
Patch-Verwaltung, um die Patch-Zeit zu verkürzen, Fehler aufgrund von manuellen Prozessen
zu reduzieren und den Aufwand für die Installation von Patches zu verringern.
AWS Systems Manager Patch Manager
Gemeinsame Design-Standards
Gemeinsame Design-Standards:
Tauschen Sie bestehende Best Practices, Design-Standards, Checklisten, Betriebsverfahren
sowie Richtlinien und Governance-Anforderungen in Teams aus, um die Abläufe unkomplizierter
zu gestalten und den Nutzen der Entwicklungsarbeit zu maximieren. Stellen Sie sicher,
dass es Verfahren für die Beantragung von Änderungen, Ergänzungen und Ausnahmen von
Design-Standards gibt. Auf diese Weise schaffen Sie Raum für kontinuierliche Verbesserungen
und Innovationen. Sorgen Sie dafür, dass die Teams veröffentlichte Inhalte kennen,
damit sie davon profitieren, weniger Überarbeitungen erforderlich sind und keine Ressourcen
vergeudet werden.
Delegating access to your AWS environment
Share an AWS CodeCommit repository
Easy authorization of AWS Lambda functions
Sharing an AMI with specific AWS accounts
Speed template sharing with an AWS CloudFormation designer URL
Using AWS Lambda with Amazon SNS
Implementieren von Verfahren zur Verbesserung der Codequalität
Implementieren von Verfahren zur Verbesserung der Codequalität:
Implementieren Sie Verfahren zur Verbesserung der Codequalität, um Fehler und das
Risiko der Implementierung von Fehlern zu minimieren. Geeignete Maßnahmen sind zum
Beispiel testbasierte Entwicklungen, Paarprogrammierung, Codeprüfungen und die Einführung
von Standards.
Verwenden mehrerer Umgebungen
Verwenden mehrerer Umgebungen:
Stellen Sie den Entwicklern Sandbox-Umgebungen mit weniger Kontrollen zur Verfügung,
in denen sie experimentieren können. Richten Sie individuelle Entwicklungsumgebungen
ein, damit parallele Arbeit möglich ist. Dadurch steigern Sie die Agilität der Entwicklung.
Implementieren Sie strengere Kontrollen erst in den Umgebungen, die kurz vor der Produktionsaufnahme
stehen, damit Entwickler die nötige Freiheit für Innovationen erhalten. Nutzen Sie
die Infrastruktur als Code sowie Konfigurationsverwaltungssysteme, um Umgebungen bereitzustellen,
die mit den in der Produktion vorhandenen Kontrollen einheitlich konfiguriert sind.
Auf diese Weise können Sie sicherstellen, dass die Systeme bei der Bereitstellung
wie erwartet funktionieren. Wenn Umgebungen nicht in Gebrauch sind, schalten Sie sie
ab, um Kosten für ungenutzte Ressourcen zu vermeiden (z. B. Entwicklungssysteme am
Abend und am Wochenende). Stellen Sie beim Belastungstest produktionsgleiche Umgebungen
bereit, um stichhaltige Ergebnisse zu erzielen.
What is AWS CloudFormation?
How do I stop and start Amazon EC2 instances at regular intervals using AWS Lambda?
Vornehmen kleiner, häufiger und umkehrbarer Änderungen
Vornehmen kleiner, häufiger und umkehrbarer Änderungen:
Häufige, kleine und umkehrbare Änderungen verringern den Umfang und die Auswirkung
einer Änderung. Dies erleichtert die Fehlersuche, ermöglicht eine schnellere Fehlerbehebung
und bietet die Möglichkeit, eine Änderung zurückzusetzen. Außerdem profitiert Ihr
Unternehmen schneller von neuen Entwicklungen.
Vollständige Automatisierung von Integration und Bereitstellung
Einsatz von Systemen zur Build- und Bereitstellungsverwaltung:
Verwenden Sie Systeme zur Build- und Bereitstellungsverwaltung für die Verfolgung
und Implementierung von Änderungen, die Reduzierung von Fehlern, die durch manuelle
Prozesse entstehen, sowie zur Verringerung des Aufwands. Nutzen Sie eine vollständig
automatisierte Integrations- und Bereitstellungs-Pipeline vom Einchecken des Codes
über das Testen und die Bereitstellung bis hin zur Validierung. Dies verkürzt die
Vorlaufzeit, ermöglicht häufigere Änderungen und verringert den Aufwand.
What is AWS CodeBuild?
Continuous integration best practices for software development
Slalom: CI/CD for serverless applications on AWS
Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
What is AWS CodeDeploy?