Steigern Sie Ihren Automatisierungsgrad

2. Januar 2018

René Weseler

CTO

Unser Cloud-Services-Geschäft brachte uns dazu, eine vollautomatische Build- und Test-Pipeline zu implementieren, um neuen Code schnell in die Produktion zu bringen.

 

Die Entwicklung und Verteilung von Software in kleinen DevOps-Teams stellt neue Herausforderungen an Stabilität, Leistung und Verantwortung für alle Beteiligten für schnellere Lieferzyklen. Um diese Ziele zu erreichen, müssen Sie über schlankere Prozesse nachdenken. Manuelle Tests und Deployments reichen nicht mehr aus, um die schnelle, kontinuierliche Integration und kontinuierliche Bereitstellung zu gewährleisten, um eine echte Agilität zu erreichen.

Eines der Hauptziele eines solchen automatisierten kontinuierlichen Integrations- und Lieferprozesses ist es, Teams in die Lage zu versetzen, neue Funktionen mit sehr kurzen Release-Zyklen, geringeren Kosten und Risiken zu entwickeln und schnell in die Produktion einzuführen.

 

Typische CI/CD-Pipeline-Strukturen

  • Commit & Build-Automatisierung
  • Tests automatisch ausführen
  • Automatisches Deployment
  • Überwachung und Informationsautomatisierung

Die Entwicklungs-, Test- und Betriebsteams müssen eng zusammenarbeiten, um einen schlanken und standardisierten Freigabeprozess zu schaffen.

 

Automatisierung ist der Schlüssel

Nachdem der Entwickler die Arbeit beendet und die Änderungen in das Versionskontrollsystem übernommen hat, beginnt die automatisierte Build Pipeline mit der Erstellung der Binärdateien zur Erstellung der Ergebnisse. Die neuen Features werden sofort durch Unit-Tests getestet. Dies ist der direkteste Feedback-Zyklus, der das Entwicklungsteam über die Qualität seines Software-Codes informiert.

Tests sollten alle Aspekte der Softwareentwicklung abdecken, wie Performance, Edge-Cases, Fehler, Sicherheit und Stabilität. Manuelle Testaktivitäten sollten auf ein Minimum beschränkt werden. Was automatisiert werden kann, sollte automatisiert werden.

 

Deployment

Nach erfolgreichem Abschluss der Tests wird das Deployment der neuen Funktion sofort gestartet. Wenn Sie Ihren Testfällen vertrauen, gibt es keinen Grund, das neue Feature nicht automatisch in der Produktion einzusetzen. Wenn Sie eine skalierbare Infrastruktur betreiben, die auf einer Container-Management-Komponente wie Kubernetes for Docker oder AMI-Images von Amazon Webservices basiert, sollten Sie in der Lage sein, Ihre neuen Funktionen ohne Ausfallzeiten Ihrer Dienste zu installieren.

Bei diesem Automatisierungsgrad geht es darum, dass Ihre Entwicklung schnell und zuverlässig neue Features in die Produktion bringt. Jedes einzelne Feature muss getestet werden, bevor es zum Rollout freigegeben wird.

Wenn Sie größere Teams leiten, die neue Funktionen in einer höheren Frequenz entwickeln, erhalten Sie möglicherweise mehrmals täglich Produktionsversionen. In solchen Fällen wird dringend empfohlen, einen automatisierten Informationsprozess einzurichten, der alle Beteiligten über Änderungen in den einzelnen Phasen informiert. Wir nutzen Slack mit mehreren Kanälen, um die verschiedenen Personen rechtzeitig zu informieren.

Bei Buildsimple implementieren wir kontinuierliche Lieferung und kontinuierliche Integration durch Design. Kein Dienst wird es in die Produktion bringen, ohne eine vollautomatische Build Pipeline und einen Informationsprozess zu haben.