Entwicklungsumgebung / Tools

Vorwort

Die eigene Entwicklungsumgebung ist immer auch eine Geschmacksfrage. In der Vergangenheit habe ich die Infrastruktur meiner Entwicklungsumgebung mit einer Kombination aus Vagrant und VirtualBox bereit gestellt. Inzwischen bin ich dazu übergegangen, für die Entwicklung virtuelle Maschinen zu nutzen, die denen der späteren Produktivumgebung ähnlicher sind oder im besten Fall entsprechen. Konkret bedeutet das, dass ich aktuell gar nicht mehr auf meinen lokalen Rechnern entwickele. Stattdessen nutze ich für den Produktiveinsatz virtuelle Server auf meinen dedicated Servern oder für die Entwicklung aus dem Cloudangebot von Hetzner. Das geht schnell, für den Serverstandort kann ich Deutschland wählen und ich bin mit dem Preis-/Leistungsverhältnis zufrieden. Aktuell nutze ich für die Virtualisierung Proxmox mit einem IPv6 Subnet. Leider ist es auch 2021 noch nicht immer möglich auf den Einsatz von IPv4-Adressen zu verzichten oder der Mehraufwand ist mir die Sache nicht Wert, so dass ich auch dann gelegentlich auf Cloudserver zurück greife. In letzten Jahren habe ich zahlreiche anderer Hoster u.a. Strato, Ionos oder Domainfactory eingesetzt, um nur einige zu nennen. Letztendlich bin ich derzeit mit Hetzner zufrieden. Sicher ist, dass es bei der Vielzahl der (Cloud-) Anbieter und Möglichkeiten genauso viele Meinungen dazu gibt, wer das beste Preis- Leistungsverhältnis bietet. Die Entscheidung überlasse ich natürlich Euch, kann Euch aber garantieren, dass die ein oder andere Anleitung, insbesondere zur Konfiguration von Netzwerk und Virtualisierung nicht 1:1 bei allen Hostern funktionieren wird oder Anpassungen notwendig sind. Dazu vielleicht in einem späteren Tutorial mehr. Für die allermeisten Anwendungsfälle ist die Auswahl nicht entscheidend, Ihr müsst auch keine dedicated Server nutzen und könnt jedem beliebigen Cloudanbieter eine Chance geben 😉

Es sind die eigenen Erfahrungen, die Dich weiter bringen im Leben. Das Rad muss zwar nicht ständig neu erfunden werden, aber zu Wissen, wie man ein Rad baut,...

Natürlich ist es sinnvoll vieles zu hinterfragen und um sich Wissen anzueignen ist es häufig kann es Vorteilhaft sein das ein oder andere Rad selbst neu zu bauen, um dann doch Räder zu verwenden, die einfach besser auf der Straße liegen. Aktuell gibt es wirklich sehr viele kleine und große Rädchen, die häufig nur geschickt kombiniert werden wollen. Bei den Cloudanbietern hingegen finden sich häufig ganze Maschinenparks. Der vermeintlich schnellste Weg zum produktiven Einsatz.

In den letzten Jahren habe ich als IDE, Netbeans und Eclipse eingesetzt. Die Auswahl wird nach persönlicher Präferenz, Anwendungszweck und Programmiersprache ebenso stark variieren, wie die der Auswahl des Infrastrukturanbieters. Ich habe derzeit keine ausgeprägte Liste von Anforderungen, programmiere wenig, editiere aber das ein oder andere Konfigurationsfile, z.B. für Server, Docker, Kubernetes.

Für diesen Einsatzzweck benötige ich eigentlich nur einen Remote-Editor, mit vernünftigem Syntaxhighlighting. Ich bin aktuell mit der Open-Source Software Visual Studio Code ganz glücklich. Git ist integriert und zahlreiche Erweiterungen sind vorhanden, so z.B. für Markdown. So kann ich meine Blogbeiträge in Markdown mittels VS Code erstellen und mit wenig Aufwand direkt per Git bereit stellen und hier im Wordpress Blog veröffentlichen. Wer eine cloudbasierte IDE sucht, der kann sich z.B. Cloud9 von AWS anschauen.

In meiner Liste der zu installieren Tools findet sich zuerst Keepass, ein Passwort Safe, den ich Euch nur ans Herz legen kann. Auch in Zeiten von Oauth und Social Logins muss man sich viele (verschiedene) Passwörter merken (Server, Datenbanken, Accounts,...). Auf Dauer sehr anstregend und je nach Anzahl auch unübersichtlich. Es ist sehr warscheinlich, dass ihr mobile Geräte verwendet, die ggf. auch mal irgendwo liegen bleiben könnten. Es sollte selbstverständlich sein, alle Geräte (nicht nur die mobilen) zu verschlüsseln. Allerdings sollten auch alle sensiblen Daten, z.B. Passwörter, Token,... in einer dafür geeigneten Software, nochmals verschlüsselt, strukturiert verwaltet werden können. Die Software Keepass kann mit einem Plugin, z.B. Keeagent ebenfalls dafür eingerichtet werden, SSH-Keys zu verwalten und diese dann als SSH Agent beim Öffnen des SSH Clients (z.B. Putty, Mobaterm,...) automatisch zu laden und zur Verfügung zu stellen. Diese Vorgehensweise würde ich z.B. bei der Verwednung zu SSH-Keys ohne Passphrase sehr empfehlen.

Und jetzt nochmal in Kurz, was benötige ich?

Lokal

  • Keepass
  • Visual Studio Code (VSC) als Schweizer Taschenmesser
  • VSC Extensions: Remote Development von Microsoft, Jinja,...
  • SSH Keypair

Remote (bei WSL ebenfalls lokal)

  • Ubuntu 20 auf einem Cloudserver mit 4GB, z.B. den CX21 bei Hetzner (oder Ubuntu 20 in einer lokalen Virtualisierung bzw. unter Windows als Subsystem. WSL2
  • Ansible
  • Git

Nach der Installation der o.g. Tools sind wir soweit, wir können starten. Auf die lokale Installation gehe ich hier nicht näher ein. Die Remote Installation habe ich schon im Rahmen eines Blogpost zur Low-Code Plattform Corteza bechrieben.