Entwicklung für die Cloud in der Cloud: BigData-Entwicklung mit Docker in AWS

Veröffentlicht: 2022-03-11

Warum brauchen Sie es?

Ich bin Entwickler und arbeite täglich in integrierten Entwicklungsumgebungen (IDE) wie Intellij IDEA oder Eclipse. Diese IDEs sind Desktop-Anwendungen. Seit dem Aufkommen von Google Documents habe ich immer mehr Menschen gesehen, die ihre Arbeit von Desktop-Versionen von Word oder Excel in die Cloud verschoben haben, indem sie ein Online-Äquivalent eines Textverarbeitungsprogramms oder einer Tabellenkalkulationsanwendung verwenden.

Es gibt offensichtliche Gründe dafür, eine Cloud zu verwenden, um Ihre Arbeit aufzubewahren. Heutzutage haben einige Webanwendungen im Vergleich zu den traditionellen Desktop-Geschäftsanwendungen keinen wesentlichen Nachteil in den Funktionalitäten. Die Inhalte sind überall dort verfügbar, wo es einen Webbrowser gibt, und das ist heutzutage fast überall der Fall. Zusammenarbeit und gemeinsame Nutzung sind einfacher und der Verlust von Dateien ist weniger wahrscheinlich.

Leider sind diese Cloud-Vorteile in der Welt der Softwareentwicklung nicht so verbreitet wie bei Geschäftsanwendungen. Es gibt einige Versuche, eine Online-IDE bereitzustellen, aber sie sind weit entfernt von traditionellen IDEs.

Das ist ein Paradoxon; Während wir für die tägliche Codierung immer noch an unseren Desktop gebunden sind, wird die Software jetzt auf mehreren Servern erstellt. Entwickler müssen mit Dingen arbeiten, die sie nicht mehr auf ihrem Computer behalten können. Tatsächlich erhöhen Laptops ihre Rechenleistung nicht mehr; Mehr als 16 GB RAM auf einem Laptop zu haben, ist selten und teuer, und neuere Geräte, beispielsweise Tablets, haben sogar noch weniger.

Aber auch wenn es noch nicht möglich ist, klassische Desktop-Anwendungen für die Softwareentwicklung zu ersetzen, ist es möglich , Ihren gesamten Entwicklungsdesktop in die Cloud zu verlagern . An dem Tag, als mir klar wurde, dass es nicht mehr notwendig war, meine gesamte Software auf meinem Laptop zu haben, und ich die Verfügbarkeit von Webversionen von Terminals und VNC bemerkte, habe ich alles in die Cloud verschoben. Schließlich habe ich ein Build-Kit entwickelt, um diese Umgebung auf automatisierte Weise zu erstellen.

Entwickler in der Cloud

Was ist die Cloud für einen Entwickler? Darin natürlich entwickeln!
Twittern

In diesem Artikel stelle ich eine Reihe von Skripten zum Erstellen einer Cloud-basierten Entwicklungsumgebung für Scala- und Big-Data-Anwendungen vor, die mit Docker in Amazon AWS ausgeführt wird und einen über das Internet zugänglichen Desktop mit IntelliJ IDE, Spark, Hadoop und Zeppelin als Diensten umfasst , und auch Befehlszeilentools wie ein webbasiertes SSH, SBT und Ammonite. Das Kit ist auf GitHub frei verfügbar, und ich beschreibe hier, wie Sie damit Ihre Instanz erstellen. Sie können Ihre Umgebung erstellen und an Ihre speziellen Anforderungen anpassen. Es sollte nicht länger als 10 Minuten dauern, bis es betriebsbereit ist.

Was ist im „BigDataDevKit“ enthalten?

Mein primäres Ziel bei der Entwicklung des Kits war, dass meine Entwicklungsumgebung etwas sein sollte, das ich einfach starten kann, mit all den Diensten und Servern, mit denen ich arbeite, und sie dann zerstören kann, wenn sie nicht mehr benötigt werden. Dies ist besonders wichtig, wenn Sie an verschiedenen Projekten arbeiten, von denen einige eine große Anzahl von Servern und Diensten umfassen, z. B. wenn Sie an Big-Data-Projekten arbeiten.

Meine ideale Cloud-basierte Umgebung sollte:

  • Schließen Sie alle üblichen Entwicklungswerkzeuge ein, vor allem eine grafische IDE.
  • Habe die Server und Dienste, die ich benötige, immer zur Hand.
  • Lassen Sie sich einfach und schnell von Grund auf neu erstellen und erweitern, um weitere Dienste hinzuzufügen.
  • Seien Sie vollständig zugänglich, indem Sie nur einen Webbrowser verwenden.
  • Erlauben Sie optional den Zugriff mit spezialisierten Clients (VNC-Client und SSH-Client).

Durch die Nutzung moderner Cloud-Infrastruktur und -Software, der Leistungsfähigkeit moderner Browser, einer weit verbreiteten Verfügbarkeit von Breitband und dem unschätzbaren Docker habe ich eine Entwicklungsumgebung für Scala und Big-Data-Entwicklung geschaffen, die meinen Entwicklungs-Laptop zum Besseren ersetzt hat.

Derzeit kann ich jederzeit arbeiten, entweder von einem MacBook Pro, einem Surface Tablet oder sogar einem iPad (mit Tastatur), obwohl die letzte Option zugegebenermaßen nicht ideal ist. Alle diese Geräte sind lediglich Clients; der Desktop und alle Server befinden sich in der Cloud.

Docker und Amazon AWS!

Meine aktuelle Umgebung basiert auf den folgenden Onlinediensten:

  • Amazon Web Services für die Server.
  • GitHub zum Speichern des Codes.
  • Dropbox zum Speichern von Dateien.

Ich verwende auch ein paar kostenlose Dienste, wie DuckDns für dynamische IP-Adressen und Let's encrypt, um ein kostenloses SSL-Zertifikat zu erhalten.

In dieser Umgebung habe ich derzeit:

  • Ein grafischer Desktop mit Intellij-Idee, auf den über einen Webbrowser zugegriffen werden kann.
  • Über das Internet zugängliche Befehlszeilentools wie SBT und Ammonite.
  • Hadoop zum Speichern von Dateien und Ausführen von MapReduce-Jobs.
  • Spark Job Server für geplante Jobs.
  • Zeppelin für ein webbasiertes Notizbuch.

Am wichtigsten ist, dass der Webzugriff vollständig mit HTTPS verschlüsselt ist, sowohl für webbasiertes VNC als auch für SSH, und es gibt mehrere Sicherheitsvorkehrungen, um Datenverluste zu vermeiden, eine Sorge, die natürlich wichtig ist, wenn Sie den Inhalt nicht „besitzen“. Ihre physische Festplatte. Beachten Sie, dass das Erhalten einer Kopie Ihrer gesamten Arbeit auf Ihrem Computer automatisch und sehr schnell erfolgt. Wenn Sie alles verlieren, weil jemand Ihr Passwort gestohlen hat, haben Sie trotzdem eine Kopie auf Ihrem Computer, solange Sie alles richtig konfiguriert haben.

Verwenden einer webbasierten Entwicklungsumgebung mit AWS und Docker

Beginnen wir nun damit, zu beschreiben, wie die Umgebung funktioniert. Wenn ich morgens mit der Arbeit beginne, melde ich mich als Erstes bei der Amazon Web Services-Konsole an, wo ich alle meine Instanzen sehe. Normalerweise habe ich viele Entwicklungsinstanzen für verschiedene Projekte konfiguriert, und ich lasse die nicht verwendeten deaktiviert, um Kosten zu sparen. Schließlich kann ich immer nur an einem Projekt gleichzeitig arbeiten. (Nun, manchmal arbeite ich an zwei.)

Bildschirm 1

Also wähle ich die gewünschte Instanz aus, starte sie, warte ein wenig oder gehe mir eine Tasse Kaffee holen. Es unterscheidet sich nicht so sehr vom Einschalten Ihres Computers. Es dauert normalerweise einige Sekunden, bis die Instanz betriebsbereit ist. Sobald ich das grüne Symbol sehe, öffne ich einen Browser und gehe zu einer bekannten URL: https://msciab.duckdns.org/vnc.html . Beachten Sie, dass dies meine URL ist; Wenn Sie ein Kit erstellen, erstellen Sie Ihre eindeutige URL.

Da AWS jedem Rechner beim Start eine neue IP zuweist, habe ich einen dynamischen DNS-Dienst konfiguriert, sodass Sie immer dieselbe URL für den Zugriff auf Ihren Server verwenden können, selbst wenn Sie ihn stoppen und neu starten. Sie können es sogar in Ihrem Browser bookmarken. Darüber hinaus verwende ich HTTPS mit gültigen Schlüsseln, um meine Arbeit vollständig vor Sniffer zu schützen, falls ich Passwörter und andere sensible Daten verwalten muss.

Bildschirm 2

Nach dem Laden begrüßt Sie das System mit einem Web-VNC-Webclient, NoVNC. Melden Sie sich einfach an und ein Desktop erscheint. Ich verwende absichtlich einen minimalen Desktop, nur ein Menü mit Anwendungen, und mein einziger Luxus ist ein virtueller Desktop (da ich beim Entwickeln viele Fenster öffne). Für Mail verlasse ich mich immer noch auf andere Anwendungen, heutzutage meistens auf andere Browser-Tabs.

In der virtuellen Maschine habe ich alles, was ich brauche, um Big-Data-Anwendungen zu entwickeln. In erster Linie gibt es eine IDE. Im Build verwende ich die IntelliJ Idea Community Edition. Außerdem gibt es das SBT-Build-Tool und eine Scala-REPL, Ammonite.

Bildschirm 3

Die Hauptmerkmale dieser Umgebung sind jedoch Dienste, die als Container in derselben virtuellen Maschine bereitgestellt werden. Insbesondere habe ich:

  • Zeppelin, das Web-Notebook zur spontanen Verwendung von Scala-Code und zur Datenanalyse ( http://zeppelin:8080 )
  • Der Spark-Jobserver zum Ausführen und Bereitstellen von Spark-Jobs mit einer Rest-Schnittstelle ( http://sparkjobserver:8080 ).
  • Eine Instanz von Hadoop zum Speichern und Abrufen von Daten aus dem HDFS ( http://hadoop:50070 ).

Beachten Sie, dass diese URLs fest sind, aber innerhalb der virtuellen Umgebung zugänglich sind. Sie können ihre Weboberflächen im folgenden Screenshot sehen.

Bildschirm 4

Jeder Dienst wird in einem separaten Docker-Container ausgeführt. Ohne zu technisch zu werden, können Sie sich dies als drei separate Server in Ihrer virtuellen Maschine vorstellen. Das Schöne an der Verwendung von Docker ist, dass Sie Dienste hinzufügen und sogar zwei oder drei virtuelle Maschinen hinzufügen können. Mit Amazon-Containern können Sie Ihre Umgebung einfach skalieren.

Nicht zuletzt steht Ihnen ein Webterminal zur Verfügung. Greifen Sie einfach mit HTTPS auf Ihre URL zu und Sie werden mit einem Terminal auf einer Webseite begrüßt.

Bildschirm 5

Im obigen Screenshot sehen Sie, dass ich die Container aufliste, die die drei Server plus den Desktop sind. Diese Befehlszeilen-Shell gibt Ihnen Zugriff auf die virtuelle Maschine, die die Container enthält, und ermöglicht Ihnen, sie zu verwalten. Es ist, als wären Ihre Server „in der Matrix“ (in Containern virtualisiert), aber diese Shell gibt Ihnen einen Ausweg aus der „Matrix“, um Server und Desktops zu verwalten. Von hier aus können Sie die Container neu starten, auf ihre Dateisysteme zugreifen und andere von Docker zugelassene Manipulationen durchführen. Ich werde Docker hier nicht im Detail besprechen, aber es gibt eine riesige Menge an Dokumentation auf der Docker-Website.

So richten Sie Ihre Instanz ein

Gefällt Ihnen das bisher und Sie möchten Ihre Instanz? Es ist einfach und billig. Sie können es nur für die Kosten der virtuellen Maschine bei Amazon Web Services plus Speicherplatz erwerben. Das Kit in der aktuellen Konfiguration benötigt 4 GB RAM, um alle Dienste zum Laufen zu bringen. Wenn Sie darauf achten, die virtuelle Maschine nur dann zu verwenden, wenn Sie sie brauchen, und Sie beispielsweise 160 Stunden im Monat arbeiten, kostet eine virtuelle Maschine zu den aktuellen Tarifen 160 x 0,052 USD oder 8 USD pro Monat. Hinzu kommen die Lagerkosten. Ich verwende ungefähr 30 GB, aber alles zusammen kann unter 10 $ gehalten werden.

Dies beinhaltet jedoch die Kosten für ein (eventuelles) Dropbox (Pro)-Konto, falls Sie mehr als 2 GB Code sichern möchten. Das kostet weitere 15 US-Dollar pro Monat, bietet aber wichtige Sicherheit für Ihre Daten. Außerdem benötigen Sie ein privates Repository, entweder einen kostenpflichtigen GitHub oder einen anderen Dienst wie Bitbucket, der kostenlose private Repositorys anbietet.

Ich möchte betonen, dass es billiger ist als ein dedizierter Server, wenn Sie es nur dann verwenden, wenn Sie es brauchen. Ja, alles, was hier erwähnt wird, kann auf einem physischen Server eingerichtet werden, aber da ich mit Big Data arbeite, benötige ich viele andere AWS-Dienste, daher denke ich, dass es logisch ist, alles am selben Ort zu haben.

Mal sehen, wie man das ganze Setup durchführt.

Voraussetzungen

Bevor Sie mit dem Erstellen einer virtuellen Maschine beginnen, müssen Sie sich bei den folgenden vier Diensten registrieren:

  • Amazon Web-Services.
  • DuckDNS.
  • Dropbox.
  • Lassen Sie uns verschlüsseln.

Das einzige, wofür Sie Ihre Kreditkarte benötigen, ist Amazon Web Services. DuckDns ist völlig kostenlos, während DropBox Ihnen 2 GB kostenlosen Speicherplatz bietet, der für viele Aufgaben ausreichen kann. Let's Encrypt ist ebenfalls kostenlos und wird intern verwendet, wenn Sie das Image zum Signieren Ihres Zertifikats erstellen. Abgesehen davon empfehle ich auch einen Repository-Hosting-Dienst wie GitHub oder Bitbucket, wenn Sie Ihren Code speichern möchten, dies ist jedoch für die Einrichtung nicht erforderlich.

Navigieren Sie zunächst zum GitHub BigDataDevKit-Repository.

Bildschirm 6

Scrollen Sie die Seite und kopieren Sie das im Bild gezeigte Skript in einen Texteditor Ihrer Wahl:

Bildschirm 7

Dieses Skript wird benötigt, um das Image zu booten. Sie müssen es ändern und einige Werte für die Parameter angeben. Ändern Sie vorsichtig den Text innerhalb der Anführungszeichen. Beachten Sie, dass Sie keine Zeichen wie das Anführungszeichen selbst, den umgekehrten Schrägstrich oder das Dollarzeichen im Passwort verwenden können, es sei denn, Sie zitieren sie. Dieses Problem ist nur für das Passwort relevant. Wenn Sie auf Nummer sicher gehen möchten, vermeiden Sie Anführungszeichen, Dollarzeichen oder Backslashes.

Der Parameter PASSWORD ist ein Passwort, das Sie auswählen, um über eine Webschnittstelle auf die virtuelle Maschine zuzugreifen. Der EMAIL -Parameter ist Ihre E-Mail-Adresse und wird verwendet, wenn Sie ein SSL-Zertifikat registrieren. Sie müssen Ihre E-Mail-Adresse angeben, und dies ist die einzige Voraussetzung, um ein kostenloses SSL-Zertifikat von Let's Encrypt zu erhalten.

Um die Werte für TOKEN und HOST zu erhalten, gehen Sie zur DuckDNS-Site und melden Sie sich an. Sie müssen einen unbenutzten Hostnamen auswählen.

Bildschirm 8

Sehen Sie sich das Bild an, um zu sehen, wo Sie das Token kopieren und wo Sie Ihren Hostnamen hinzufügen müssen. Sie müssen auf die Schaltfläche „Domain hinzufügen“ klicken, um den Hostnamen zu reservieren.

Konfigurieren Ihrer Instanz

Vorausgesetzt, Sie haben alle Parameter und haben das Skript bearbeitet, können Sie Ihre Instanz starten. Melden Sie sich bei der Amazon Web Services-Verwaltungsschnittstelle an, gehen Sie zum EC2-Instanzen-Panel und klicken Sie auf „Launch Instance“.

Bildschirm 9

Auf dem ersten Bildschirm wählen Sie ein Bild aus. Das Skript basiert auf Amazon Linux und es sind keine anderen Optionen verfügbar. Wählen Sie Amazon Linux, die erste Option in der QuickStart-Liste.

Bildschirm 10

Wählen Sie auf dem zweiten Bildschirm den Instance-Typ aus. Angesichts der Größe der ausgeführten Software gibt es mehrere Dienste und Sie benötigen mindestens 4 GB Arbeitsspeicher. Daher empfehle ich Ihnen, die Instanz t2.medium auszuwählen. Sie könnten es verkleinern, indem Sie t2.small verwenden , wenn Sie einige Dienste herunterfahren, oder sogar das Mikro , wenn Sie nur den Desktop möchten.

Bildschirm 11

Klicken Sie auf dem dritten Bildschirm auf „Erweiterte Details“ und fügen Sie das Skript ein, das Sie im vorherigen Schritt konfiguriert haben. Ich empfehle Ihnen außerdem, den Kündigungsschutz zu aktivieren, damit Sie bei einer versehentlichen Kündigung nicht Ihre gesamte Arbeit verlieren.

Bildschirm 12

Der nächste Schritt ist die Konfiguration des Speichers. Der Standardwert für eine Instanz ist 8 GB, was nicht ausreicht, um alle Images aufzunehmen, die wir erstellen werden. Ich empfehle, es auf 20 GB zu erhöhen. Auch wenn es nicht benötigt wird, schlage ich ein anderes Blockgerät mit mindestens 10 GB vor. Das Skript stellt das zweite Blockgerät als Datenordner bereit. Sie können einen Schnappschuss seines Inhalts erstellen, die Instanz beenden, sie dann mithilfe des Schnappschusses neu erstellen und die gesamte Arbeit wiederherstellen. Darüber hinaus geht ein benutzerdefiniertes Blockgerät nicht verloren, wenn Sie die Instanz beenden, sodass Sie doppelt vor versehentlichem Verlust Ihrer Daten geschützt sind. Um Ihre Sicherheit noch weiter zu erhöhen, können Sie Ihre Daten automatisch mit Dropbox sichern.

Bildschirm 13

Der fünfte Schritt ist die Benennung der Instanz. Nimm dein eigenes. Der sechste Schritt bietet eine Möglichkeit, die Firewall zu konfigurieren. Standardmäßig ist nur SSH verfügbar, aber wir brauchen auch HTTPS, also vergessen Sie nicht, auch eine Regel hinzuzufügen, die HTTPS öffnet. Sie könnten HTTPS für die Welt öffnen, aber es ist besser, wenn es nur für Ihre IP gilt, um zu verhindern, dass andere auf Ihren Desktop und Ihre Shell zugreifen, obwohl diese immer noch mit einem Passwort geschützt sind.

Sobald Sie mit dieser letzten Konfiguration fertig sind, können Sie die Instanz starten. Sie werden feststellen, dass die Initialisierung beim ersten Mal, seit das Initialisierungsskript ausgeführt wird, einige Minuten dauern kann und auch einige langwierige Aufgaben wie das Generieren eines HTTPS-Zertifikats mit Let's Encrypt erledigt.

Bildschirm 14

Wenn Sie schließlich sehen, dass die Verwaltungskonsole mit einer Bestätigung „läuft“ und nicht mehr „initialisiert“ wird, können Sie loslegen.

Wenn alle Parameter korrekt sind, können Sie zu https://YOURHOST.duckdns.org navigieren.

Ersetzen Sie YOURHOST durch den von Ihnen gewählten Hostnamen, aber vergessen Sie nicht, dass es sich um eine HTTPS-Site handelt, nicht um HTTP, sodass Ihre Verbindung zum Server verschlüsselt ist, sodass Sie https// in die URL schreiben müssen. Die Site wird auch ein gültiges Zertifikat für Let's Encrypt präsentieren. Wenn beim Abrufen des Zertifikats Probleme auftreten, generiert das Initialisierungsskript ein selbstsigniertes Zertifikat. Sie können sich weiterhin mit einer verschlüsselten Verbindung verbinden, aber der Browser warnt Sie, dass es sich um eine unbekannte Website handelt und die Verbindungen unsicher sind. Es sollte nicht passieren, aber man weiß nie.

Bildschirm 15

Wenn alles funktioniert, greifen Sie dann auf das Webterminal Butterfly zu. Sie können sich mit der Benutzer- app und dem Passwort anmelden, das Sie im Setup-Skript eingegeben haben.

Nach der Anmeldung haben Sie eine Bootstrap-VM, die auch Docker und andere Extras wie ein Nginx-Frontend, Git und das Butterfly-Webterminal enthält. Jetzt können Sie die Einrichtung abschließen, indem Sie die Docker-Images für Ihre Entwicklungsumgebung erstellen.

Geben Sie als Nächstes die folgenden Befehle ein:

 git clone https://github.com/sciabarra/BigDataDevKit cd BigDataDevKit sh build.sh

Der letzte Befehl fordert Sie auch auf, ein Kennwort für den Desktop-Zugriff einzugeben. Sobald dies erledigt ist, werden die Bilder erstellt. Beachten Sie, dass der Build etwa 10 Minuten dauern wird, aber Sie können sehen, was passiert, da alles auf dem Bildschirm angezeigt wird.

Sobald der Build abgeschlossen ist, können Sie Dropbox auch mit dem folgenden Befehl installieren:

 /app/.dropbox-dist/dropboxd

Das System zeigt einen Link an, auf den Sie klicken müssen, um Dropbox zu aktivieren. Sie müssen sich bei Dropbox anmelden und dann sind Sie fertig. Alles, was Sie in den Dropbox-Ordner einfügen, wird automatisch zwischen all Ihren Dropbox-Instanzen synchronisiert.

Anschließend können Sie die virtuelle Maschine neu starten und über die URL https://YOURHOST.dyndns.org/vnc.html auf Ihre Umgebung zugreifen.

Sie können Ihre Maschine stoppen und neu starten, wenn Sie die Arbeit wieder aufnehmen. Die Zugriffs-URL bleibt gleich. Auf diese Weise zahlen Sie nur für die Zeit, in der Sie es nutzen, plus einen monatlichen Aufpreis für den genutzten Speicherplatz.

Aufbewahrung Ihrer Daten

Die folgende Diskussion erfordert einige Kenntnisse darüber, wie Docker und Amazon funktionieren. Wenn Sie die Details nicht verstehen wollen, beachten Sie einfach folgende einfache Regel: In der virtuellen Maschine ist ein /app/Dropbox -Ordner verfügbar, was auch immer Sie in /app/Dropbox platzieren, bleibt erhalten, und alles andere ist wegwerfbar und kann weg. Um die Sicherheit weiter zu verbessern, speichern Sie Ihren wertvollen Code auch in einem Versionskontrollsystem.

Nun, wenn Sie das verstehen wollen, lesen Sie weiter. Wenn Sie meine Anweisungen bei der Erstellung der virtuellen Maschine befolgt haben, ist die virtuelle Maschine vor einer Beendigung geschützt, sodass Sie sie nicht versehentlich zerstören können. Wenn Sie sich ausdrücklich für eine Kündigung entscheiden, wird das Primärvolume vernichtet. Alle Docker-Images gehen verloren, einschließlich aller von Ihnen vorgenommenen Änderungen.

Da der Ordner /app/Dropbox jedoch als Docker-Volume für Container gemountet wird, ist er kein Bestandteil von Docker-Images. In der virtuellen Maschine wird der Ordner /app in das von Ihnen erstellte Amazon Volume gemountet, das auch bei ausdrücklicher Beendigung der virtuellen Maschine nicht zerstört wird. Um das Volume zu entfernen, müssen Sie es ausdrücklich entfernen.

Verwechseln Sie Docker-Volumes, bei denen es sich um eine logische Docker-Einheit handelt, nicht mit Amazon-Volumes, bei denen es sich um eine eher physische Einheit handelt. Was passiert ist, dass das Docker-Volume /app/Dropbox innerhalb des Amazon-Volumes /app abgelegt wird.

Das Amazon-Volume wird nicht automatisch zerstört, wenn Sie die virtuelle Maschine beenden, sodass alles, was darin abgelegt wird, erhalten bleibt, bis Sie auch das Volume ausdrücklich zerstören. Darüber hinaus wird alles, was Sie in das Docker-Volume einfügen, außerhalb des Containers gespeichert, sodass es nicht zerstört wird, wenn der Container zerstört wird. Wenn Sie Dropbox wie empfohlen aktiviert haben, werden alle Ihre Inhalte auf die Dropbox-Server und auf Ihre Festplatte kopiert, wenn Sie Dropbox mit Ihrem/Ihren Computer(n) synchronisieren. Außerdem wird empfohlen, den Quellcode in einem Versionskontrollsystem zu speichern.

Wenn Sie also Ihre Daten im Versionskontrollsystem unter dem Dropbox-Ordner ablegen, muss all dies passieren, um Ihre Daten zu verlieren:

  • Sie kündigen Ihre virtuelle Maschine ausdrücklich.
  • Sie entfernen ausdrücklich das Datenvolumen aus der virtuellen Maschine.
  • Sie entfernen ausdrücklich die Daten aus Dropbox, einschließlich des Verlaufs.
  • Sie entfernen die Daten ausdrücklich aus dem Versionskontrollsystem.

Ich hoffe, Ihre Daten sind sicher genug.

Ich behalte für jedes Projekt eine virtuelle Maschine, und wenn ich fertig bin, lasse ich die nicht verwendeten virtuellen Maschinen ausgeschaltet. Natürlich habe ich meinen gesamten Code auf GitHub und in Dropbox gesichert. Wenn ich die Arbeit an einem Projekt beende, erstelle ich außerdem einen Snapshot des Amazon Web Services-Blocks, bevor ich die virtuelle Maschine vollständig entferne. Auf diese Weise muss ich bei jeder Wiederaufnahme eines Projekts, beispielsweise zu Wartungszwecken, lediglich eine neue virtuelle Maschine mit dem Snapshot starten. Alle meine Daten sind wieder vorhanden und ich kann weiterarbeiten.

Zugriff optimieren

Erstens, wenn Sie direkten Internetzugang haben, der nicht über einen Proxy vermittelt wird, können Sie native SSH- und VNC-Clients verwenden. Der direkte SSH-Zugriff ist wichtig, wenn Sie Dateien in die und aus der virtuellen Maschine kopieren müssen. Für die Dateifreigabe sollten Sie jedoch Dropbox als einfachere Alternative in Betracht ziehen.

Der VNC-Webzugriff ist von unschätzbarem Wert, aber manchmal kann er langsamer sein als ein nativer Client. Sie haben Zugriff auf den VNC-Server auf der virtuellen Maschine über Port 5900. Sie müssen ihn ausdrücklich öffnen, da er standardmäßig geschlossen ist. Ich empfehle, dass Sie es nur für Ihre IP-Adresse öffnen, da das Internet voller „Roboter“ ist, die das Internet nach Diensten durchsuchen, in die sie sich einklinken können, und VNC ist ein häufiges Ziel dieser Roboter.

Fazit

In diesem Artikel wird erläutert, wie Sie moderne Cloud-Technologie nutzen können, um eine effektive Entwicklungsumgebung zu implementieren. Während eine Maschine in der Cloud kein vollständiger Ersatz für Ihren Arbeitscomputer oder einen Laptop sein kann, ist sie gut genug, um Entwicklungsarbeit zu leisten, wenn es wichtig ist, Zugriff auf die IDE zu haben. Meiner Erfahrung nach ist es mit aktuellen Internetverbindungen schnell genug, um damit zu arbeiten.

In der Cloud sind Serverzugriff und -manipulation schneller als sie lokal zu haben. Sie können den Speicher schnell erhöhen (oder verringern), eine andere Umgebung starten, ein Image erstellen und so weiter. Sie haben ein Rechenzentrum zur Hand, und wenn Sie mit Big-Data-Projekten arbeiten, brauchen Sie robuste Dienste und viel Platz. Das bietet die Cloud.