{"id":13528,"date":"2023-05-20T16:48:23","date_gmt":"2023-05-20T16:48:23","guid":{"rendered":"https:\/\/devologyx.io\/6-die-naechste-welle-der-kommunikation-fuer-entwickler\/"},"modified":"2023-07-18T10:10:49","modified_gmt":"2023-07-18T10:10:49","slug":"6-die-naechste-welle-der-kommunikation-fuer-entwickler","status":"publish","type":"post","link":"https:\/\/devologyx.io\/de\/6-die-naechste-welle-der-kommunikation-fuer-entwickler\/","title":{"rendered":"Automatisierung der Bereitstellung [WAS, WARUM UND WIE]"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Die Automatisierung der Bereitstellung ist eine Reihe von F\u00e4higkeiten, die zu einer besseren Softwarebereitstellung und Unternehmensleistung f\u00fchren. Durch die Automatisierung der Bereitstellung k\u00f6nnen Unternehmen neue Funktionen schneller und h\u00e4ufiger ver\u00f6ffentlichen. Diese F\u00e4higkeiten wurden durch das DORA State of DevOps Forschungsprogramm entdeckt, eine unabh\u00e4ngige und akademische Untersuchung der Praktiken und F\u00e4higkeiten, die zu einer besseren Leistung f\u00fchren.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>\n  <em>Automatisierung des Einsatzes<\/em>\n<\/strong> ist eine Praxis, die es Softwareentwicklern erm\u00f6glicht, ihre Geschwindigkeit zu erh\u00f6hen, indem sie den Code vollst\u00e4ndig oder teilweise \u00fcber die jeweiligen Stufen des Entwicklungsprozesses hinweg ausliefern.<\/p>\n\n<figure class=\"wp-block-image size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-42.png\" alt=\"\" class=\"wp-image-13874\" width=\"481\" height=\"186\" srcset=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-42.png 650w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-42-300x116.png 300w\" sizes=\"(max-width: 481px) 100vw, 481px\" \/><\/figure>\n\n<p class=\"wp-block-paragraph\">Unternehmen m\u00fcssen flexibel genug sein, um sich an die zunehmende Geschwindigkeit der Softwareentwicklung anzupassen. Verschiedene technologische Innovationen haben die Methoden zur Erstellung, zum Testen und zum Versand von Software verbessert. Damit Ihr Unternehmen einen Wettbewerbsvorteil hat, m\u00fcssen Ihr Entwicklungsprozess, Ihre Systeme und Ihre Unternehmenskultur aufeinander abgestimmt sein und effizient funktionieren. Die Automatisierung der Bereitstellung ist eine Innovation, die Ihr Unternehmen dazu motivieren kann, die Geschwindigkeit der Bereitstellung neuer Funktionen zu erh\u00f6hen.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Warum sollten Sie sich f\u00fcr Deployment Automation entscheiden?<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">Die Automatisierung der Bereitstellung erm\u00f6glicht es Ihnen, zu pr\u00fcfen und zu testen, ob neue Funktionen wie erwartet funktionieren; dies kann durch die Durchf\u00fchrung von Unit- oder Integrationstests geschehen. Mit der automatisierten Bereitstellung k\u00f6nnen Sie Ihre Anwendung in einer realen Umgebung positionieren und das Verhalten der Anwendung bei der Interaktion mit all Ihren Tools und Abh\u00e4ngigkeiten m\u00fchelos \u00fcberwachen.<\/p>\n\n<p class=\"wp-block-paragraph\">Wenn Sie die Genauigkeit verbessern wollen, ist die Automatisierung der Bereitstellung der Schl\u00fcssel. Bei einigen Unternehmen m\u00fcssen Sie Testumgebungen manuell erstellen, Befehle aus einer Word-Datei kopieren und einzeln ausf\u00fchren sowie Testdatenbanken und andere Tools bereitstellen, die mit Ihrer Anwendung interagieren. Das kostet viel Zeit und schafft Raum f\u00fcr menschliche Fehler. Die Einsatzautomatisierung l\u00f6st dieses Problem, indem sie all diese Aufgaben automatisiert, sogar die Erstellung und Bereitstellung von Datenbanken. Es eliminiert vollst\u00e4ndig manuelle Prozesse.<\/p>\n\n<p class=\"wp-block-paragraph\">Ohne Automatisierung der Bereitstellung m\u00fcssen Sie auf das Feedback der Anwendung warten, wenn der Teamleiter beschlie\u00dft, eine neue Version zu kennzeichnen und in die Qualit\u00e4tssicherungsphase zu \u00fcberf\u00fchren. Nur so k\u00f6nnen Sie diese Art von Erkenntnissen gewinnen. Mit anderen Worten: Sie k\u00f6nnen Fehler viel schneller erkennen und durch das schnellere Feedback-Modell Zeit sparen. Durch die Automatisierung der Bereitstellung wird die M\u00f6glichkeit von Fehlern reduziert.<\/p>\n\n<p class=\"wp-block-paragraph\">Einmal konfiguriert, sorgt die Bereitstellungsautomatisierung f\u00fcr Konsistenz und Wiederholbarkeit; der Prozess ist jedes Mal derselbe, wenn Sie eine Ver\u00f6ffentlichung initiieren. Dies tr\u00e4gt zu h\u00e4ufigeren und stabileren Ver\u00f6ffentlichungen bei. Diese Konsistenz hilft erheblich bei der Fehlerdiagnose, da sie die m\u00f6glichen Variablen reduziert.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Wie implementiert man die Einsatzautomatisierung?<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">Bei der Gestaltung Ihres automatisierten Bereitstellungsprozesses m\u00fcssen Sie die folgenden sechs empfohlenen Best Practices befolgen.<\/p>\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-43-1024x507.png\" alt=\"\" class=\"wp-image-13876\" width=\"445\" height=\"219\" srcset=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-43-1024x507.png 1024w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-43-300x149.png 300w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-43-768x380.png 768w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-43-1536x760.png 1536w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-43.png 1600w\" sizes=\"(max-width: 445px) 100vw, 445px\" \/><\/figure>\n\n<p class=\"wp-block-paragraph\"><strong>Richten Sie einen Server f\u00fcr die kontinuierliche Integration ein.<\/strong><\/p>\n\n<ul class=\"wp-block-list\">\n<li>W\u00e4hlen Sie einen vorhandenen Server, wie z.B. Jenkins, TeamCity, Hudson, TFS usw.<\/li>\n\n\n\n<li>Richten Sie Ihren ersten Build ein (einen Link zu Ihrem Quellcode, z.B. auf GitHub, und einen Befehl zum Erstellen der Anwendung)<\/li>\n\n\n\n<li>Stellen Sie sicher, dass es jedes Mal ausgef\u00fchrt wird, wenn eine \u00c4nderung in die Versionskontrolle eingecheckt wird.<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\"><strong>Richten Sie einige Testsuiten ein.<\/strong>  Richten Sie f\u00fcr jede Testsuite einen separaten Build ein und verkn\u00fcpfen Sie die Builds wie Dominosteine, so dass jeder Build durch den vorhergehenden ausgel\u00f6st wird. Auf diese Weise sehen Sie sehr schnell, ob es ein Problem gibt &#8211; die problematische Code\u00e4nderung stoppt beim ersten Test, der sie erkennt, und geht nicht weiter.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>F\u00fcgen Sie einen Bereitstellungsschritt hinzu<\/strong>. Legen Sie auf Ihrem Continuous Integration Server einen Build fest, der Ihr Skript ausf\u00fchrt, um Ihre Anwendung in einer Test- oder Staging-Umgebung bereitzustellen. Stellen Sie sicher, dass es nur ausgef\u00fchrt wird, wenn alle Tests erfolgreich sind.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Kontinuierliche Tests.<\/strong>  Stellen Sie sicher, dass Sie automatisierte Tests in Ihre Verteilungsautomatisierungspipeline aufnehmen. Kontinuierliche Tests werden durch die Automatisierung von Tests erreicht. Durch die Automatisierung k\u00f6nnen die Tests ausgef\u00fchrt werden, sobald ein Teil des Codes in den jeweiligen Phasen der Ver\u00f6ffentlichungspipeline fertig ist. Daher hilft kontinuierliches Testen den Entwicklern, sich dem Ideal der Qualit\u00e4tsbewertung in mehreren Phasen einer Pipeline anzun\u00e4hern, in der Code kontinuierlich entwickelt, bereitgestellt und eingesetzt wird. Es beschleunigt die Freigabe von Projekten, reduziert Risiken und sorgt f\u00fcr hohe Qualit\u00e4t und Zufriedenheit. Sie k\u00f6nnen auch Pr\u00fcfungen einbauen, um zu einer zuvor funktionierenden Code\u00e4nderung zur\u00fcckzukehren, wenn Tests fehlschlagen.<\/p>\n\n<p class=\"wp-block-paragraph\">Die Arten von Tests k\u00f6nnen Folgendes umfassen:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>End-to-End-Tests (E2E) simulieren die Interaktion von Benutzern mit Ihrer Anwendung.<\/li>\n\n\n\n<li>Leistungstests helfen Ihnen, Drosselstellen oder Speicherlecks zu entdecken.<\/li>\n\n\n\n<li>Exploratives Testen ist eine zuf\u00e4llige Testmethode, um unerwartetes Verhalten festzustellen.<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\"><strong>Konfigurationsmanagement f\u00fcr Umgebungen<\/strong>. Das Ziel ist es, sich wiederholende manuelle Prozesse wie Build, Bereitstellung, Regression oder Tests zu automatisieren. Um dies zu erreichen, m\u00fcssen wir alles versionskontrollieren, was zur Durchf\u00fchrung dieser Prozesse erforderlich ist, einschlie\u00dflich Quellcode, Test- und Bereitstellungsskripten sowie Infrastruktur- und Anwendungskonfigurationsinformationen. Die Implementierung eines Versionskontrollsystems zur Speicherung und Durchf\u00fchrung von \u00c4nderungen an der Konfiguration Ihrer Umgebung ist wichtig. Wenn Sie ein Konfigurations-Repository erstellen, in dem umgebungsspezifische Konfigurationen gespeichert werden, kann Ihr Automatisierungswerkzeug f\u00fcr die Bereitstellung die erforderliche Konfiguration f\u00fcr jede Umgebung abrufen. Dar\u00fcber hinaus erhalten Sie durch die Versionierung Ihrer Konfigurations\u00e4nderungen einen besseren \u00dcberblick \u00fcber die \u00c4nderungen an Ihrer Konfiguration und k\u00f6nnen Konfigurationsprobleme leichter \u00fcberpr\u00fcfen.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>\u00dcberwachung und Protokollierung<\/strong>. In dieser Phase erhalten die Entwickler Feedback und \u00fcberwachen den Zustand des Systems. Mit verschiedenen \u00dcberwachungstools k\u00f6nnen Sie Warnmeldungen einstellen, um Probleme mit Ihrer Anwendung zu erkennen. Es hat keinen Sinn, Ihre Anwendung automatisch bereitzustellen und dann Ihre Protokolle nach Problemen durchsuchen zu m\u00fcssen. Gem\u00e4\u00df den allgemeinen DevOps-Praktiken wird die \u00dcberwachung auch automatisiert und kontinuierlich mit einem \u00dcberwachungs-Tool durchgef\u00fchrt, das Sie warnen kann, wenn eine Anwendungsbereitstellung fehlschl\u00e4gt. Prometheus ist ein gro\u00dfartiges Beispiel f\u00fcr ein \u00dcberwachungs-Tool, das \u00fcber ein Open-Source-\u00dcberwachungs- und Alarmierungs-Tool verf\u00fcgt, das gut f\u00fcr Microservice-Architekturen geeignet ist und eine mehrdimensionale Datenerfassung unterst\u00fctzt. Das Tool umfasst einen Prometheus-Server (auf dem die \u00dcberwachung stattfindet), Benutzerbibliotheken f\u00fcr die Code-Instrumentierung und einen speziellen Alertmanager.<\/p>\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-44-1024x536.png\" alt=\"\" class=\"wp-image-13878\" width=\"461\" height=\"240\" srcset=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-44-1024x536.png 1024w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-44-300x157.png 300w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-44-768x402.png 768w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/05\/image-44.png 1200w\" sizes=\"(max-width: 461px) 100vw, 461px\" \/><\/figure>\n\n<p class=\"wp-block-paragraph\"><strong>Vorteile der Einsatzautomatisierung<\/strong><\/p>\n\n<ol class=\"wp-block-list\">\n<li><strong>Jeder kann einsetzen<\/strong><\/li>\n<\/ol>\n\n<p class=\"wp-block-paragraph\">Mit dem automatisierten Bereitstellungsprozess ist das Know-how f\u00fcr die Freigabe Ihrer Software ein abgeschlossener Prozess, der im System gespeichert ist und nicht im Gehirn eines Einzelnen. Eine kleine Untergruppe in einem Team ist f\u00fcr manuelle oder teilweise automatisierte Verteilungen zust\u00e4ndig, egal wie oft Sie verteilen m\u00fcssen. In der Regel ist eine einzelne Person in einem Projektteam f\u00fcr diese Aufgabe verantwortlich. Wenn diese Person nicht verf\u00fcgbar, krank oder im Urlaub ist, kann die Freigabe der Software zu einer Belastung werden. Die Automatisierung des Einsatzes kann von jedem Teammitglied durchgef\u00fchrt werden, das Zugriff auf das System hat.<\/p>\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Erh\u00f6hte Produktivit\u00e4t<\/strong><\/li>\n<\/ol>\n\n<p class=\"wp-block-paragraph\">Wenn Sie manuelle Prozesse durch Automatisierung ersetzen, spart Ihr Team Zeit, um sich anderen Zielen zu widmen. Da die Ausf\u00fchrung eines manuellen Verteilungsprozesses oft Zeit kostet. Mit einer weniger zeitaufw\u00e4ndigen Aufgabe wie der Automatisierung der Bereitstellung wird das Team sichtbar produktiver sein, indem es seine Zeit f\u00fcr die Entwicklung der n\u00e4chsten besseren Funktionen und die Verbesserung der Software verwendet.<\/p>\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Minimale Fehler<\/strong><\/li>\n<\/ol>\n\n<p class=\"wp-block-paragraph\">Automatisierte Eins\u00e4tze sind im Vergleich zu manuellen Eins\u00e4tzen viel weniger fehleranf\u00e4llig. Leider umfasst die manuelle Bereitstellung mehrere Schritte und kann zu menschlichen Fehlern f\u00fchren. Ohne die Automatisierung der Bereitstellung k\u00f6nnen wichtige Schritte bei einer Softwarever\u00f6ffentlichung versehentlich \u00fcbersehen werden, Probleme w\u00e4hrend der Ver\u00f6ffentlichung k\u00f6nnen nicht erkannt werden, ungenaue Softwareversionen k\u00f6nnen ausgeliefert werden oder fehlerhafte Software wird versehentlich in Betrieb genommen. Ber\u00fccksichtigen Sie die Fehler, die in jeder Bereitstellungsphase auftreten k\u00f6nnen, indem Sie Ihren Automatisierungsprozess f\u00fcr die Bereitstellung so konfigurieren, dass er von der ersten bis zur letzten Phase der Softwarebereitstellung gleich funktioniert.<\/p>\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li><strong>H\u00f6here Verf\u00fcgbarkeit der Testumgebung<\/strong><\/li>\n<\/ol>\n\n<p class=\"wp-block-paragraph\">Wenn \u00c4nderungen zum Testen eintreffen, m\u00fcssen neue Softwareversionen in den Testumgebungen bereitgestellt werden. Manuelle Prozesse f\u00fchren zu Ausf\u00e4llen bei der Bereitstellung. Wenn ein Fehler auftritt, muss die Anwendung heruntergefahren werden. Die Umgebung steht dann nicht mehr f\u00fcr Tests zur Verf\u00fcgung, bis das Implementierungsteam den Fehler erneut diagnostizieren kann. Die Einf\u00fchrung der automatischen Bereitstellung von Code reduziert Fehler und hilft dem Bereitstellungsteam, schneller auf Probleme zu reagieren.<\/p>\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li><strong>Geringeres Risiko von Produktionsausf\u00e4llen<\/strong><\/li>\n<\/ol>\n\n<p class=\"wp-block-paragraph\">Durch die Verwendung desselben Bereitstellungsprozesses in niedrigeren Umgebungen kann das Team seine Anwendung und den Bereitstellungsprozess effektiv testen. Ein Bereitstellungsprozess wird zwischen den Produktionsversionen mehr als hundert Mal in Testumgebungen durchgef\u00fchrt, was Zeit und Gelegenheit bietet, gelegentliche Probleme zu identifizieren und die Stabilit\u00e4t zu verbessern.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Fazit<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">Unternehmen m\u00fcssen nicht nur in der Lage sein, die Automatisierung der Bereitstellung durchzuf\u00fchren, sondern auch den Automatisierungsprozess auf verschiedene Projekte und Teams aufzuteilen und wiederzuverwenden. Mit der richtigen Automatisierungsl\u00f6sung, wie z.B. Deployment Automation, k\u00f6nnen Sie neue Anwendungen und Dienste schneller verteilen, Probleme und Bugs effizienter verwalten und die Produktivit\u00e4t bei der App-Entwicklung steigern.<br\/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Automatisierung der Bereitstellung ist eine Reihe von F\u00e4higkeiten, die zu einer besseren Softwarebereitstellung und Unternehmensleistung f\u00fchren. Durch die Automatisierung der Bereitstellung k\u00f6nnen Unternehmen neue Funktionen schneller und h\u00e4ufiger ver\u00f6ffentlichen. Diese F\u00e4higkeiten wurden durch das DORA State of DevOps Forschungsprogramm entdeckt, eine unabh\u00e4ngige und akademische Untersuchung der Praktiken und F\u00e4higkeiten, die zu einer besseren Leistung [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":13881,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"_jet_sm_ready_style":"","_jet_sm_style":"","_jet_sm_controls_values":"","_jet_sm_fonts_collection":"","_jet_sm_fonts_links":"","footnotes":""},"categories":[20],"tags":[],"writer":[],"class_list":["post-13528","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-unkategorisiert"],"_links":{"self":[{"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/posts\/13528","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/comments?post=13528"}],"version-history":[{"count":4,"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/posts\/13528\/revisions"}],"predecessor-version":[{"id":16943,"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/posts\/13528\/revisions\/16943"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/media\/13881"}],"wp:attachment":[{"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/media?parent=13528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/categories?post=13528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/tags?post=13528"},{"taxonomy":"writer","embeddable":true,"href":"https:\/\/devologyx.io\/de\/wp-json\/wp\/v2\/writer?post=13528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}