Cloud-Entwicklungsumgebungen: Alles, was Sie wissen müssen

by Matt Stamp
Cloud-Entwicklungsumgebungen: Alles, was Sie wissen müssen thumbnail

Cloud-Entwicklungsumgebungen (CDEs) revolutionieren die Softwareentwicklung.

CDEs verlagern Schlüsselentwicklungsprozesse wie das Schreiben von Code, das Ausführen von Builds, das Durchführen von Tests und das Bereitstellen von Anwendungen in die Cloud und bieten so Flexibilität, Effizienz und Einfachheit für Ingenieure. Dies ermöglicht es Entwicklern, besser zusammenzuarbeiten und schneller Software von höherer Qualität zu veröffentlichen, ohne dass die Umgebung ein Hindernis darstellt.

Lassen Sie uns erkunden, was genau CDEs sind, die Vorteile, bewertenswerte Optionen, einfache Schritte zur Konfiguration Ihrer ersten Cloud-Entwicklungsumgebung und Tipps zur langfristigen Optimierung der Nutzung.

Was ist eine Cloud-Entwicklungsumgebung?

Eine Cloud-Entwicklungsumgebung ist eine zentralisierte Plattform für Softwareentwicklungsteams, um zusammenzuarbeiten, zu bauen, zu testen und Anwendungen zu implementieren.

Da zwischen 2020 und 2022 allein ein beachtlicher Prozentsatz von Organisationen hauptsächlich auf cloudbasierte Entwicklungs-Umgebungen umgestiegen ist, halten wir es für wichtig, dass Sie alle Details haben, falls Sie auch den Wechsel in Erwägung ziehen.

Balkendiagramm, das den Vergleich von Organisationen zeigt, die zwischen 2020 und 2022 Cloud zu Hybrid nutzen, und darstellt, dass die meisten Organisationen Cloud nutzen und sehr wenige (7% in 2022) vor Ort Umgebungen nutzen

Ein CDE bringt den gesamten Entwicklungslebenszyklus in einen integrierten Cloud-Arbeitsbereich und entfernt sich von Entwicklern, die fragmentierte Werkzeugketten und Abhängigkeiten über Einzelpersonen und Geräte hinweg haben. Kernkomponenten wie die integrierte Entwicklungsumgebung (IDE), Laufzeit, Infrastrukturkonfigurationen, Abhängigkeiten, Kollaborationstools, Testframeworks und Pipelines sind zusammengefasst und über Cloud-Browser zugänglich.

DreamHost-Glossar

IDE

Ein IDE (Integrated Development Environment) ist eine Softwareanwendung. Sie bietet Computerprogrammierern mehrere Einrichtungen für die Softwareentwicklung. Ein IDE besteht typischerweise aus mindestens einem Quellcode-Editor, Werkzeugen zur Automatisierung des Builds und einem Debugger.

Mehr lesen

Im Vergleich zu traditionellen Entwicklungsumgebungen werden Cloud-Umgebungen in der Cloud gehostet und über den Webbrowser oder eine App zugegriffen. Alle rechenintensiven Prozesse – wie das Kompilieren von Code, das Ausführen automatisierter Tests oder das Erstellen von Containern – finden in der Cloud statt. Entwickler verwenden ihre lokalen Geräte nur als Thin Clients, um auf den Cloud-Arbeitsplatz zuzugreifen, was die Gesamthardwarekosten reduziert.

Eine Cloud-Entwicklungsplattform bietet auch vorgefertigte Vorlagen, um Entwicklungsumgebungen für spezifische App-Stacks schnell aufzusetzen oder mehr Kontrolle für fortgeschrittene benutzerdefinierte Konfigurationen zu ermöglichen, falls benötigt. Damit können Sie konsistente Umgebungen über Teams hinweg haben.

In vielerlei Hinsicht repräsentieren CDEs die nächste Evolutionsstufe der Softwareentwicklung – eine, die fest in der Cloud verankert ist. Sie nutzt die grundlegenden Fähigkeiten des Cloud-Computing, während sie die kontrollierte Flexibilität lokaler Umgebungen ermöglicht.

Lassen Sie uns etwas mehr darüber verstehen, wie sich CDEs von lokalen Umgebungen unterscheiden und welche Vorteile und Einschränkungen diese Konfiguration hat.

Wie unterscheidet sich die Cloud-Entwicklung von der lokalen Entwicklung?

Die Entwicklung von Cloud-Anwendungen unterscheidet sich von traditionellen Setups, bei denen der Code isoliert auf den Geräten der Entwickler existiert.

Auf hoher Ebene ermöglichen Cloud-Umgebungen Ingenieuren, in Echtzeit an einem remote gehosteten, konsistenten Toolkit zu arbeiten.

Dieser Ansatz löst viele Probleme, mit denen Teams konfrontiert sind, wenn sie Entwicklungsumgebungen konfigurieren, darauf zugreifen und diese über Standorte und Geräte hinweg synchronisieren.

 Lokale EntwicklungCloud-Entwicklung
Lage der Entwicklungs-UmgebungEntwickler müssen erforderliche Komponenten wie Editoren und Datenbanken manuell auf ihren lokalen Maschinen installieren. Dies führt zu komplexen, fragmentierten Toolchains auf verschiedenen Geräten.Cloud-Plattformen übernehmen die zentralisierte Einrichtung und Hosting der Entwicklungs-Umgebung, auf die Ingenieure remote über einen Browser zugreifen.
Konsistenz der UmgebungDas Replizieren von Umgebungen über Entwickler-Laptops ist schwierig und führt zu “funktioniert auf meinem Gerät” Fehlern.Standardisierte Umgebungen werden zusammen mit dem Code auf zentralisierter Infrastruktur versioniert.
Verteilung der BerechnungBuilds und Tests laufen lokal und verlangsamen die Maschinen.Cloud weist bei Bedarf Rechenleistung zu, sodass die Geräte der Entwickler die Produktivität nicht einschränken.
ZusammenarbeitCode befindet sich in isolierten Branches lokal, bis die Überprüfung stattfindet.Cloud-IDEs ermöglichen Echtzeit-Bearbeitung, Kommentierung und Visualisierung von Code durch mehrere Benutzer.
Einarbeitung und ZugangDas Konfigurieren neuer lokaler Maschinen ist schwierig und zeitaufwendig. Beschränkt den Zugang für Entwickler.Entwickler können sich sofort über jedes Gerät in vordefinierte Umgebungen einloggen.

Erhalten Sie Inhalte direkt in Ihren Posteingang

Abonnieren Sie jetzt, um alle neuesten Updates direkt in Ihren Posteingang zu erhalten.

Was sind die Vorteile der Cloud-Entwicklung?

Jetzt, da Sie die Grundlagen von Cloud-Entwicklungsumgebungen verstehen und wie sie sich von traditionellen Einrichtungen unterscheiden, lassen Sie uns die Hauptvorteile eines CDE betrachten.

Verbesserte Sicherheit

Sie minimieren Angriffsflächen, indem Sie die Entwicklung in regulierten Cloud-Plattformen wie AWS oder Azure konsolidieren.

Alle sensiblen Zugangsdaten, Unternehmens-IPs und persönlichen Daten bleiben im Vergleich zu Entwickler-Laptops, die verloren gehen oder kompromittiert werden, geschützt.

Cloud-Infrastrukturen bieten auch Sicherheitsfunktionen wie Verschlüsselung, Zugriffskontrollen und Compliance-Rahmenwerke, die für einzelne Ingenieure allein zu kostspielig sind, um sie zu implementieren.

Zusammenarbeit

Lokal entwickelter Code befindet sich in isolierten Branches und Forks bis zur Überprüfung. Cloud-IDEs ermöglichen Google Docs-artige Echtzeit-Bearbeitung und Kommentierung von Code, da die Umgebung nun geteilt ist.

Der Fortschritt des Teams kann von Anfang an visualisiert werden, und jeder mit dem erforderlichen Zugang kann den Code sehen, während er bearbeitet wird, abhängig davon, wie die Umgebung konfiguriert ist.

Verbesserte Produktivität und Einarbeitung

Bei traditionellen Setups mit dezentraler Entwicklung auf lokalen Geräten kann das Onboarding neuer Entwickler schwierig und zeitaufwendig sein. Sie müssen neue Maschinen von Grund auf konfigurieren, bevor der Entwickler mit der Arbeit beginnen kann.

Entwickler verschwenden auch viel Zeit mit der Fehlerbehebung von Umgebung, Abhängigkeiten und Konfigurationsproblemen, die nichts mit dem Schreiben von Code zu tun haben. Eine Umfrage aus dem Jahr 2023 zeigt, dass über 50% der Zeit von Entwicklern für Wartung, Konfiguration und operative Aufgaben aufgewendet wird.

Jedoch behandeln CDEs diese Komplexitäten zentral, was es Entwicklern ermöglicht, sich auf die Produktentwicklung zu konzentrieren, anstatt sich mit Umgebungen auseinanderzusetzen. Sie optimieren Arbeitsabläufe, indem sie Werkzeuge in einer cloud-basierten IDE bereitstellen. Zusammen mit vorlagenbasierten Entwicklerumgebungen, automatisiertem Infrastrukturmanagement und schneller Testausführung kann dies die Produktivität der Entwickler erheblich steigern.

Skalierbarkeit

Lokales Ausführen von ressourcenintensiven Build- und Testprozessen wird Maschinen verlangsamen und die Parallelisierung begrenzen.

Jedoch können Softwareteams, die CDEs verwenden, schneller skalieren, ohne zusätzliche Hardware beschaffen zu müssen.

Das Hochfahren neuer Cloud-Entwicklungsumgebungen dauert nur Minuten und ermöglicht schnellere Teamerweiterungen.

Wenn Sie beispielsweise vorübergehend hohe Rechenleistung benötigen, um die Anwendungsleistung unter hoher Last zu testen, können Sie die Ressourcen für Ihre Cloud-Instanz erhöhen, ohne zu viel auszugeben. Viele Cloud-Entwicklungsumgebungen skalieren automatisch hoch oder runter, basierend auf der Systemlast.

Vermeidet Konfigurationsabweichungen

Auf lokalen Setups müssen Entwickler alle erforderlichen Komponenten wie Editoren, Sprachpakete, Frameworks und Datenbanken manuell auf ihren lokalen Maschinen installieren. Das Konfigurieren dieser lokalen Toolchains ist komplex und zeitaufwändig.

Die Komponenten werden im Laufe der Zeit auch über Entwicklergeräte hinweg fragmentiert. Dies wird als Konfigurationsdrift bezeichnet, was normalerweise zu den gefürchteten “funktioniert auf meinem Gerät“-Fehlern führt.

Andererseits verwalten Cloud-Entwicklungsplattformen die Einrichtung und das Hosting an einem zentralen Ort. Ingenieure greifen über einen Webbrowser auf die entfernte Umgebung zu, ohne lokale Tools zu konfigurieren. Alle Teammitglieder verwenden denselben vollständig verpackten, aktuellen Werkzeugsatz in der Cloud.

Obwohl es zahlreiche Vorteile gibt, haben Cloud-Entwicklungsumgebungen auch Nachteile.

Was sind die Nachteile der Verwendung eines CDE?

Die Einführung jeder neuen Technologie bringt sowohl Fortschritt als auch Gefahren mit sich. Hier sind einige potenzielle Nachteile der Nutzung eines CDE:

  • Komplexe Anfangskonfiguration: Der Aufbau eines CDE erfordert erhebliche Cloud- und DevOps-Kenntnisse sowie komplexe Integrationen mit zahlreichen Diensten wie SSO, Sicherheitskontrollen, Benutzeroberfläche, Kollaborationstools usw. Wenn Sie nicht über die erforderlichen Ressourcen verfügen, könnte es eine ausgezeichnete Idee sein, sich weiterzubilden oder neue Mitarbeiter einzustellen, bevor Sie ein CDE implementieren.
  • Abhängigkeit von Anbietern: Die Entscheidung für verwaltete CDE-Lösungen führt oft zu Bindungen an Anbieter. Und wenn Sie später Plattformen wechseln müssen, könnte dies schwierig werden.
  • Steile Lernkurve: Die Übernahme von cloud-basierten Arbeitsabläufen zwingt Teams dazu, neue Konzepte, Praktiken und Werkzeuge zu erlernen. Dies kann anfangs zeitaufwendig sein.
  • Abhängigkeit von der Konnektivität: Entwickler sind offline, wenn die Internetverbindung ausfällt. Außerdem ist die Antwortzeit bei CDEs viel höher als in lokalen Umgebungen, was das Benutzererlebnis beeinträchtigt. Lokale Umgebungen umgehen diese Probleme.
  • Laufende Kosten: Die Cloud-Infrastruktur, robuste CI/CD-Pipelines, Automatisierungsfähigkeiten und Sicherheitsvorkehrungen – all dies hat wiederkehrende Wartungskosten wie Kosten, Upgrades, Fehlerbehebung usw. Je mehr Funktionen angeboten werden, desto höher ist die betriebliche Belastung. Beispielsweise ist bekannt, dass AWS sehr teuer ist.
Twitter-Screenshot des Beitrags von Matthew Price, der sagt: „Die Bandbreitenkosten von AWS sind unverschämt. Ihre Großhandelskosten in AWS-East sind wahrscheinlich weniger als 200 $/Gbps/Monat. Das entspricht einer Aufschlagsrate von mehr als 10.000 %. #nevertrustamazon“

Wie Sie Ihre Cloud-Entwicklungsumgebung einrichten

Wenn Sie überzeugt sind, dass Cloud-Entwicklungsumgebungen für Ihre Organisation geeignet sind, werfen wir einen kurzen Blick auf die Einrichtung Ihrer eigenen CDE.

Schritt 1: Wählen Sie einen CDE-Anbieter

Es gibt eine Vielzahl von Cloud-Entwicklungsumgebungen zu bewerten wie:

  • Gitpod – Browserbasierte CDE, die mit GitHub-Code-Repositories integriert
  • AWS Cloud9 – Vollständig verwaltete Cloud-IDE, eng verbunden mit AWS-Diensten
  • Microsoft Visual Studio Online – Cloud-Version der Visual Studio IDE, die sich in Azure einklinkt

Nehmen Sie sich die Zeit, Optionen anhand von Kriterien wie Sprachunterstützung, Zusammenarbeit, Sicherheit, Integrationen, Preisgestaltung und Lernressourcen zu vergleichen. Registrieren Sie sich für Probeaccounts und richten Sie eine Entwicklerumgebung ein, wo immer diese verfügbar ist. Und versuchen Sie, Lösungen mit Unterstützung durch eine Open-Source-Community zu finden, um nicht stecken zu bleiben, wenn Probleme auftreten.

Schritt 2: Einrichten eines Cloud-Kontos

Sobald Sie eine Plattform ausgewählt haben, erstellen Sie ein Konto beim entsprechenden Cloud-Anbieter, falls Sie noch keines haben. Zum Beispiel basiert Gitpod auf GitHub, während Lösungen wie AWS Cloud9 ein AWS-Konto erfordern.

Während der anfänglichen Einrichtung des Cloud-Kontos navigieren Sie durch das Armaturenbrett, um zu lokalisieren, wo Sie auf die verschiedenen Berechnungs-, Speicher- und Networking-Dienste sowie andere verfügbare Dienste auf der Plattform zugreifen können. Zeit dafür während der Testphasen zu verwenden, wird Ihnen helfen zu verstehen, wie einfach oder schwierig es für die unternehmensweite Übernahme sein wird.

Schritt 3: Erstellen Sie Ihre erste virtuelle Maschine

Mit einem erstellten Konto, richten Sie die initiale Entwicklungsumgebung oder „Dev Box“ innerhalb Ihrer gewählten CDE-Plattform ein. Die meisten CDEs bieten vorkonfigurierte Vorlagen, die virtuelle Maschinen oder Entwicklungskontainer in Minuten starten, mit allen wesentlichen Werkzeugen wie Code-Editoren und Terminals.

Beginnen Sie mit offiziellen Bildern, die der CDE-Anbieter für beliebte Sprachen wie Node.js, Python oder Java bereitstellt, falls vorbereitete Konfigurationen existieren. Diese vorbereiteten Umgebungen sind zwar wesentlich, ermöglichen es jedoch Erstanwendern, die Cloud-Entwicklung schnell zu erleben. Sie können dann Ihre benutzerdefinierten Umgebungen erstellen, indem Sie diese als Basisbild verwenden.

Schritt 4: Sicherheit und Networking konfigurieren

Bevor Sie die weit verbreitete Nutzung durch das Team erlauben, sollten Sie Sicherheitsleitlinien und Netzwerkregeln für die neue CDE-Bereitstellung definieren. Berücksichtigen Sie:

  • Mehrfaktorauthentifizierung erforderlich für den Zugriff auf Umgebungen
  • Einschränken von Berechtigungen zum Erstellen/Löschen von Cloud-Ressourcen
  • Aktivieren verschlüsselter Speicherung für sensible Artefakte
  • Isolation der Team-Entwicklung in privaten Cloud-Netzwerken
  • Protokollieren von Benutzeraktionen und Infrastrukturänderungen

In späteren Phasen müssen Sie möglicherweise die Verwaltung von Geheimnissen, das Scannen der Infrastruktursicherheit und mehr in CDE-Pipelines implementieren, um die Sicherheit Ihrer gemeinsam genutzten Umgebungen zu verbessern.

Schritt 5: Installieren Sie Ihre bevorzugten Entwicklertools

Jetzt, da grundlegende Umgebungen und Umgebungsvariablen eingerichtet und für die Teamnutzung gesichert sind, passen Sie diese weiter an, indem Sie zusätzliche Entwicklungswerkzeuge installieren. Um eine Entwicklumgebung einzurichten, wären einige offensichtliche nächste Schritte das Installieren von Programmiereditoren, Kompilierern, Datenbanken, Webservern und anderer Software, um eine Programmierwerkzeugkiste zu erstellen.

Alle CDEs ermöglichen es Ihnen, die Toolchains auf Ihrem Server anzupassen. Verwenden Sie den nativen Paketmanager auf Linux, um alle Tools zu installieren. Für Windows laden Sie die Installationsprogramme direkt aus dem Internet auf die Cloud-Instanz herunter.

Denken Sie während des Prozesses daran, alle durchgeführten Schritte, ausgeführten Befehle und konfigurierten Tools zu dokumentieren, damit die Umgebungen in Zukunft leicht neu erstellt werden können. Sie möchten, dass diese Dokumentation die einzige Quelle der Wahrheit (SSOT) für Ihre CDEs ist.

Schritt 6: Erstellen, Testen und Bereitstellen

Schließlich beginnen Sie damit, die Cloud-Entwicklungsumgebung zu testen, um mit Cloud-basierten Workflows zu programmieren, zu bauen, zu testen und Anwendungen zu implementieren. Erfahren Sie, wie Sie persistente Zustände über Maschinen hinweg speichern, um Kontinuität zu gewährleisten oder Probleme zu reproduzieren.

Verbessern Sie die Produktivität des Teams, indem Sie die automatische Versionskontrolle konfigurieren und automatisierte Builds und Tests auslösen, wenn Code übermittelt wird.

Da sich die Entwicklung in der Cloud weiterentwickelt, verfeinern und optimieren Sie regelmäßig die Umgebung, indem Sie Standardisierung und Anpassung ausbalancieren. CDEs sollten zu einem natürlichen Schritt für Ihre Entwickler werden, anstatt eine einschränkende Umgebung zu sein, zu deren Nutzung sie gezwungen werden.

Tipps zur Nutzung von Cloud-Entwicklungsumgebungen

Jenseits der anfänglichen Einrichtung gibt es hier fünf Tipps, um mit der Zeit zusätzliche Vorteile aus Cloud-Entwicklungsumgebungen zu ziehen.

Mit anderen Cloud-Diensten verbinden

CDE-Plattformen bieten enge Integrationen mit komplementären Cloud-Diensten, die vom selben Anbieter verwaltet werden. Beispielweise verbessert die AWS Cloud9-Schlüsselpaarauthentifizierung die Sicherheit mit der Amazon EC2-Infrastruktur.

Erkunden Sie Möglichkeiten, wie Cloud-Dienste wie serverlose Datenbanken, Speicherung, Messaging und APIs den Aufbau vereinfachen können. Überprüfen Sie relevante Architekturdiagramme, die zeigen, wie sich die Angebote überschneiden, und integrieren Sie sie dann gezielt. Im Zweifelsfall befragen Sie Ihre Entwicklerteammitglieder und fragen Sie, welche Werkzeugketten sie hinzufügen oder entfernen möchten.

Automation annehmen

Finden Sie Möglichkeiten, Infrastructure-as-Code-Techniken und CDE-Konfiguration so weit wie möglich anzuwenden. Verwenden Sie Dockerfiles, Terraform, Ansible oder andere Ansätze, um Umgebungen zu templatieren und die Bereitstellung für Ihre Entwickler zu vereinfachen, damit sie innerhalb von Sicherheitsleitlinien arbeiten können.

Je früher Sie Umgebungskonfigurationen automatisieren, desto schneller können Sie frische Entwicklungs-Umgebungen bereitstellen und leicht portierbare Umgebungen erstellen.

Behalten Sie den Verbrauch im Auge

Das variable Kostenmodell des Cloud-Computing kann aufgrund unoptimierter Entwicklung zu einem Preisschock führen. Überwachen Sie kontinuierlich die Nutzung der Umgebung mit Tools wie AWS Cost Explorer, um Verschwendung durch untätige Ressourcen, aufgeblähte Berechtigungen oder regionale Fehlkonfigurationen zu identifizieren.

Integrieren Sie die Sichtbarkeit der Cloud-Kosten in bestehende Armaturenbretter und konzentrieren Sie sich dabei auf Ausgabenanomalien, wenn Umgebungen skaliert werden. Definieren Sie außerdem strenge Budgets, die die monatlichen Ausgaben für die Entwicklungsinfrastruktur begrenzen, ohne die Produktivität zu blockieren.

Migrieren Sie nur die Daten, die Sie benötigen

Beim Übergang von langjährigen Projekten zu CDEs, bewerten Sie, ob Caches, Datei-Repositories oder lokale Datenbanken eine Cloud-Migration benötigen. Prüfen Sie, ob Entwicklungsbedürfnisse durch symbolische Verknüpfungen zu ursprünglichen On-Premises-Standorten erfüllt werden können.

Datentransfers können teuer sein und sind oft der Grund, warum Unternehmen hohe monatliche Gebühren an Cloud-Anbieter zahlen. Stellen Sie daher sicher, dass Sie die wichtigsten Daten auswählen.

Folgen Sie dem Modell der geteilten Verantwortung

Alle großen Cloud-Anbieter halten sich an ein Shared Responsibility Model, das die Eigentümerschaft über Sicherheitskontrollen zwischen Kunde und Anbieter regelt. Nehmen Sie sich die Zeit, die Grenzen um die Entität zu verstehen, die für die Sicherung verschiedener Umgebungsschichten verantwortlich ist.

Zum Beispiel sichert Amazon die untere Ebene der Cloud-Infrastruktur, aber Kunden müssen Identitäten, Berechtigungen, Verschlüsselung und Sicherheitsebenen des Netzwerks angemessen konfigurieren. Analysieren Sie und halten Sie dann Ihren Teil der Vereinbarung zur geteilten Verantwortung ein.

Besseres App-Hosting mit DreamHost freischalten

Also, Sie haben das nächste große Ding mit Ihrer neuen, schicken CDE erstellt. Herzlichen Glückwunsch! Aber jetzt benötigen Sie einen Ort, um Ihre Web-App zu hosten, damit echte Benutzer darauf außerhalb Ihrer Entwicklungsumgebung zugreifen können. Das Einrichten und Verwalten Ihrer Hosting-Server ist, besonders im großen Maßstab, schmerzhaft. Lassen Sie stattdessen die Spezialisten bei DreamHost das alles für Sie übernehmen!

Ihre optimierten, verwalteten Hosting-Services sind dafür gemacht, Web-Apps weltweit zu betreiben. Wir sprechen von automatischem Skalieren bei Verkehrsspitzen, 99,9% garantierte Verfügbarkeit und Staging per Klick.

Und das Schöne ist, dass es perfekt mit Cloud-basierten Entwicklungsworkflows harmoniert. Sie entwickeln schnell in der Cloud, und DreamHost macht die Bereitstellung völlig unkompliziert.

Also, wenn Sie nach einem bewährten Hosting-Zuhause für Ihre Webanwendung suchen, versuchen Sie DreamHost!

Erhalten Sie Inhalte direkt in Ihren Posteingang

Abonnieren Sie jetzt, um alle neuesten Updates direkt in Ihren Posteingang zu erhalten.