Einheitliche Cloud IDE für Workshops und mehr Entwicklungsumgebung mit AWS Cloud9

Autor / Redakteur: Marco Buss / Stephan Augsten

Ob für eine Schulung oder um alle Entwickler auf einen Stand zu bringen: Manchmal ist es notwendig, eine einheitliche Entwicklungsumgebung bereitzustellen. Mit Cloud9 lassen sich genau solche Szenarien einfach umsetzen.

Firmen zum Thema

Als vollwertige IDE bringt Cloud9 alles mit, was die Entwickler brauchen.
Als vollwertige IDE bringt Cloud9 alles mit, was die Entwickler brauchen.
(Bild: Amazon Web Services)

Workshopleiter und Trainer kennen folgende Situation: Vor einem Training haben die Teilnehmerinnen und Teilnehmer eine detaillierte Anleitung für die Vorbereitung erhalten. Welche Tools sind zu installieren? Wie schaut die Grundkonfiguration aus? Wo ist das benötigte Code Repository zu finden?

Durch diese Vorarbeiten möchte man erreichen, am Schulungstag direkt durchstarten zu können. Die Realität sieht aber meist so aus, dass einige Teilnehmer keine Zeit gefunden haben, die entsprechenden Schritte auszuführen. Dadurch geht wertvolle Zeit verloren, da als erstes alle auf den benötigten Anfangsstand gebracht werden müssen.

Ein ähnliches Szenario ist das Onboarding neuer Teammitglieder. Hier ist die Realität, dass es mitunter Tage dauert bis neue Teammitglieder aktiv arbeiten können da sehr viele Schritte notwendig sind, um die Software entsprechend zu installieren und zu konfigurieren. Dies ist vor allem dann ein Blocker, wenn externe Experten schnell Probleme lösen sollen.

Als vollwertige IDE bringt Cloud9 alles mit, was die Entwickler brauchen.
Als vollwertige IDE bringt Cloud9 alles mit, was die Entwickler brauchen.
(Bild: Amazon Web Services)

Mit AWS Cloud9 existiert ein Service, mit dem die beschriebenen Szenarien gelöst werden können. AWS Cloud9 ist eine browserbasierte integrierte Entwicklungsumgebung (IDE), die in der AWS Cloud gehostet wird. Hier erhält der Nutzer einen Code-Editor, einen Debugger, ein Terminal und weitere Werkzeuge für die Entwicklung mit Cloud9.

Die wichtigsten Tools für gängige Sprachen wie JavaScript, Python und PHP sind bereits vorinstalliert, genauso wie die AWS CLI. Die einzelnen Instanzen sind durch das Netz von AWS mit dem Internet verbunden. Wartezeiten werden verkürzt durch schnellere Downloads von Projektabhängigkeiten oder Docker-Images.

Starten einer neuen Cloud9-Umgebung

Benutzerinnen und Benutzer – ob Administratoren oder Entwickler – provisionieren sich selbst eine AWS-Cloud9-Umgebung mit der AWS Console. Im ersten Schritt benötigt die Umgebung einen Namen. Im nächsten Schritt werden die wichtigsten Parameter definiert.

Die Konfiguration der Entwicklungsumgebung.
Die Konfiguration der Entwicklungsumgebung.
(Bild: Amazon Web Services)

Der Environment-Typ definiert dabei, wie auf die Instanz zugegriffen werden kann. Per Default ist die Instanz per Internet erreichbar. Möchte man das nicht, kann die „no-ingress EC2“-Variante gewählt werden. Es ist aber auch möglich AWS Cloud9 in einer selbst verwalteten Instanz laufen zu lassen.

Neben den Instanztypen und der Plattform sind die „cost-saving settings“ von Interesse. Mit diesem Parameter kann eingestellt werden, nach wie viel Leerlauf die Instanz automatisch pausiert werden soll. Beim nächsten Zugriff startet die Instanz dann in wenigen Minuten neu.

Im letzten Schritt können alle Parameter überprüft werden. Danach kann die neue Umgebung gestartet werden und ist nach wenigen Minuten einsatzbereit. Alternativ kann eine Cloud9-Umgebung auch per AWS CloudFormation erzeugt werden, das ist besonders hilfreich, wenn im Vorfeld einer Schulung mehrere Umgebungen direkt erzeugt werden sollen.

Das folgende AWS CloudFormation Template erstellt ein leeres CodeCommit-Repository, eine Cloud9-Umgebung und klont den Inhalt des Repositorys. Lediglich der Platzhalter <YOUR_SUBNET_ID> muss mit einer Subnet-Id des Accounts ersetzt werden.

AWSTemplateFormatVersion: "2010-09-09"
Description: CodeCommit Repository fuer Cloud9
Resources:
   MyRepo:
      Type: "AWS::CodeCommit::Repository"
      Properties:
         RepositoryName: MyRepo
         RepositoryDescription: Repo fuer Cloud9 Demo
   MyC9Environment:
      Type: "AWS::Cloud9::EnvironmentEC2"
      Properties:
         Repositories:
            - PathComponent: /cfn
              RepositoryUrl: !GetAtt MyRepo.CloneUrlHttp
         InstanceType: t2.micro
         SubnetId: <YOUR_SUBNET_ID>
         AutomaticStopTimeMinutes: 45

Fortan kann arbeitet jeder Teilnehmer oder jedes Mitglied eines Teams mit einer identischen Umgebung. Für Schulungen und Workshops ist das eine Ausgangslage, die das Erlebnis für die Teilnehmer verbessert. Die Teilnehmer können sich auf den Inhalt und nicht auf das Lösen technischer Probleme konzentrieren.

AWS Cloud9 Code Editor

Code-Komplettierung erleichtert den die Programmierarbeit.
Code-Komplettierung erleichtert den die Programmierarbeit.
(Bild: Amazon Web Services)

Das wichtigste einer IDE ist ein guter Editor. Der Browserbasierte Editor von AWS Cloud9 bietet alles was von einer modernen IDE erwartet wird. Codecompletion, Support für mehrere Tabs sowie mehrere Fenster und Fehlermarker um nur einige wenige Beispiele zu nennen. Das Erscheinungsbild des Editors kann mit Hilfe einer Vielzahl von Themes an die eigenen Bedürfnisse angepasst werden.

Cloud9 unterstützt mehr als 40 Programmiersprachen und Anwendungstypen. Die Unterstützung für IDE Features wie Codecompletion ist nicht für jede Sprache gleich. Die beste Unterstützung erhält man beispielsweise für Node.js, Python, PHP und weitere.

AWS Cloud9 Terminal

AWS CLI gehört natürlich zu den mitgelieferten Tools.
AWS CLI gehört natürlich zu den mitgelieferten Tools.
(Bild: Amazon Web Services)

AWS Cloud9 bietet neben dem Editor auch ein Terminal mit sudo Berechtigungen für die verwendete Amazon EC2 Instanz. Das AWS CLI ist bereits installiert. Für die Interaktion mit anderen AWS Services mit der CLI gilt. Mit wenigen Einschränkungen ist alles möglich, was der Benutzer auch über die AWS Konsole ausführen darf.

Kollaboration in AWS Cloud9

Über die Teilen-Schaltfläche ist Arbeiten im Team möglich.
Über die Teilen-Schaltfläche ist Arbeiten im Team möglich.
(Bild: Amazon Web Services)

AWS Cloud9 bietet den Usern die Möglichkeit, mit anderen Benutzern in derselben IDE zusammenzuarbeiten. Dazu können weitere Benutzer über den „Share“-Button eingeladen werden. Die User müssen hierbei Benutzer des Accounts sein oder eine Rolle des Accounts angenommen haben (weitere Details bei AWS).

Die Zugriffsrechte lassen sich jederzeit nachträglich anpassen.
Die Zugriffsrechte lassen sich jederzeit nachträglich anpassen.
(Bild: Amazon Web Services)

Eingeladene Nutzer können nur lesend oder lesend und schreibend Zugang erhalten. Die Einstellung lässt sich jederzeit anpassen. Die Benutzer können direkt in der IDE miteinander Chatten und gleichzeitig am Code arbeiten. AWS Cloud9 markiert die Bereiche, wie im Bild zu sehen entsprechend. Ein wichtiger Usecase für diese Zusammenarbeit ist das Pair Programming oder auch online Schulungen, die vor allem seit der Pandemie stark zugenommen haben. Dadurch erhalten Kursleitern die Möglichkeit, den Teilnehmern direkt in der IDE Hilfestellungen zu geben.

Fazit

Mit AWS Cloud9 erhalten Entwickler eine voll funktionsfähige integrierte Entwicklungsumgebung mit einem großen Funktionsumfang. AWS Cloud9 bietet viele Vorteile im eingangs erwähnten Schulungs- und Trainingskontext sowie dem schnellen Onboarding neuer Teammitglieder.

Marco Buss
Marco Buss
(Bild: Amazon Web Services)

Benutzer können einen fest definierten Stand einer Entwicklungsumgebung in wenigen Minuten bereitstellen. Neben einem leistungsfähigen Editor, Debugger und Unterstützung von über 40 Programmiersprachen ist auch ein Terminal sowie wichtige Kollaborationstools integriert.

* Marco Buss ist Solutions Architect bei AWS mit über 10 Jahren Erfahrung in der Architektur und Entwicklung von Software. Marco interessiert sich neben DevOps ebenso für Microservices und Serverless-Architekturen.

(ID:47547302)